From 7990d35057203b140ef25aaab92913a91c70cc67 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 22 Dec 2024 21:18:00 -0500 Subject: [PATCH 001/148] add kotlin --- .../camera_android_camerax/android/build.gradle | 7 +++++++ .../pigeons/camerax_library.dart | 12 ++++++------ packages/camera/camera_android_camerax/pubspec.yaml | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/build.gradle b/packages/camera/camera_android_camerax/android/build.gradle index 55a89f61071..0895ff11289 100644 --- a/packages/camera/camera_android_camerax/android/build.gradle +++ b/packages/camera/camera_android_camerax/android/build.gradle @@ -2,6 +2,7 @@ group 'io.flutter.plugins.camerax' version '1.0' buildscript { + ext.kotlin_version = '1.9.10' repositories { google() mavenCentral() @@ -9,6 +10,7 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:8.5.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } @@ -20,6 +22,7 @@ rootProject.allprojects { } apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' android { namespace 'io.flutter.plugins.camerax' @@ -31,6 +34,10 @@ android { targetCompatibility JavaVersion.VERSION_11 } + kotlinOptions { + jvmTarget = '11' + } + defaultConfig { // Many of the CameraX APIs require API 21. minSdkVersion 21 diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 949830db3e8..031e886e542 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -6,13 +6,13 @@ import 'package:pigeon/pigeon.dart'; @ConfigurePigeon( PigeonOptions( + copyrightHeader: 'pigeons/copyright.txt', dartOut: 'lib/src/camerax_library.g.dart', - dartTestOut: 'test/test_camerax_library.g.dart', - dartOptions: DartOptions(copyrightHeader: [ - 'Copyright 2013 The Flutter Authors. All rights reserved.', - 'Use of this source code is governed by a BSD-style license that can be', - 'found in the LICENSE file.', - ]), + kotlinOut: + 'android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/CameraXLibrary.g.kt', + kotlinOptions: KotlinOptions( + package: 'io.flutter.plugins.camerax', + ), javaOut: 'android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java', javaOptions: JavaOptions( diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 2402232a02c..0d5d5f9dace 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -32,7 +32,7 @@ dev_dependencies: integration_test: sdk: flutter mockito: ^5.4.4 - pigeon: ^9.1.0 + pigeon: ^22.7.0 topics: - camera From 849f1496ca1770d1ba09b8a373ff815738bf38e2 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 22 Dec 2024 21:18:38 -0500 Subject: [PATCH 002/148] add copyright --- packages/camera/camera_android_camerax/pigeons/copyright.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/camera/camera_android_camerax/pigeons/copyright.txt diff --git a/packages/camera/camera_android_camerax/pigeons/copyright.txt b/packages/camera/camera_android_camerax/pigeons/copyright.txt new file mode 100644 index 00000000000..fb682b1ab96 --- /dev/null +++ b/packages/camera/camera_android_camerax/pigeons/copyright.txt @@ -0,0 +1,3 @@ +Copyright 2013 The Flutter Authors. All rights reserved. +Use of this source code is governed by a BSD-style license that can be +found in the LICENSE file. \ No newline at end of file From f54d5d91ff196706f32b6c703c2b3213986976a7 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 23 Dec 2024 02:54:18 -0500 Subject: [PATCH 003/148] some work towards --- .../pigeons/camerax_library.dart | 1137 ++++++++++++----- 1 file changed, 821 insertions(+), 316 deletions(-) diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 031e886e542..4ba8633beb6 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -2,38 +2,56 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +// ignore_for_file: avoid_unused_constructor_parameters + import 'package:pigeon/pigeon.dart'; @ConfigurePigeon( PigeonOptions( copyrightHeader: 'pigeons/copyright.txt', - dartOut: 'lib/src/camerax_library.g.dart', + dartOut: 'lib/src/camerax_library2.g.dart', + dartTestOut: 'test/test_camerax_library.g.dart', kotlinOut: - 'android/src/main/kotlin/dev/flutter/packages/interactive_media_ads/CameraXLibrary.g.kt', + 'android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt', kotlinOptions: KotlinOptions( package: 'io.flutter.plugins.camerax', + errorClassName: 'CameraXError', ), - javaOut: - 'android/src/main/java/io/flutter/plugins/camerax/GeneratedCameraXLibrary.java', - javaOptions: JavaOptions( - package: 'io.flutter.plugins.camerax', - className: 'GeneratedCameraXLibrary', - copyrightHeader: [ - 'Copyright 2013 The Flutter Authors. All rights reserved.', - 'Use of this source code is governed by a BSD-style license that can be', - 'found in the LICENSE file.', - ], - ), + ), +) + +/// Immutable class for describing width and height dimensions in pixels. +/// +/// See https://developer.android.com/reference/android/util/Size.html. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'android.util.Size', + ), +) +class CameraSize { + CameraSize(); + + /// The width of the size (in pixels). + late int width; + + /// The height of the size (in pixels). + late int height; +} + +/// A `ResolutionInfo` allows the application to know the resolution information +/// of a specific use case. +/// +/// See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.ResolutionInfo', ), ) class ResolutionInfo { - ResolutionInfo({ - required this.width, - required this.height, - }); + ResolutionInfo(); - int width; - int height; + /// Returns the output resolution used for the use case. + late CameraSize resolution; } class CameraPermissionsErrorData { @@ -50,50 +68,50 @@ class CameraPermissionsErrorData { /// /// See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. enum CameraStateType { + /// Represents a state where the camera device is closed. closed, + + /// Represents a state where the camera device is currently closing. closing, + + /// Represents a state where the camera device is open. open, + + /// Represents a state where the camera device is currently opening. opening, + + /// Represents a state where the camera is waiting for a signal to attempt to + /// open the camera device. pendingOpen, -} -class CameraStateTypeData { - late CameraStateType value; + /// This value is not recognized by this wrapper. + unknown, } /// The types (T) properly wrapped to be used as a LiveData. -/// -/// If you need to add another type to support a type S to use a LiveData in -/// this plugin, ensure the following is done on the Dart side: -/// -/// * In `camera_android_camerax/lib/src/live_data.dart`, add new cases for S in -/// `_LiveDataHostApiImpl#getValueFromInstances` to get the current value of -/// type S from a LiveData instance and in `LiveDataFlutterApiImpl#create` -/// to create the expected type of LiveData when requested. -/// -/// On the native side, ensure the following is done: -/// -/// * Make sure `LiveDataHostApiImpl#getValue` is updated to properly return -/// identifiers for instances of type S. -/// * Update `ObserverFlutterApiWrapper#onChanged` to properly handle receiving -/// calls with instances of type S if a LiveData instance is observed. enum LiveDataSupportedType { cameraState, zoomState, } -class LiveDataSupportedTypeData { - late LiveDataSupportedType value; -} +/// Immutable class for describing the range of two integer values. +/// +/// This is the equivalent to `android.util.Range`. +/// +/// See https://developer.android.com/reference/android/util/Range.html. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'android.util.Range', + ), +) +class CameraIntegerRange { + CameraIntegerRange(); -class ExposureCompensationRange { - ExposureCompensationRange({ - required this.minCompensation, - required this.maxCompensation, - }); + /// The lower endpoint. + late int lower; - int minCompensation; - int maxCompensation; + /// The upper endpoint. + late int upper; } /// Video quality constraints that will be used by a QualitySelector to choose @@ -103,155 +121,260 @@ class ExposureCompensationRange { /// /// See https://developer.android.com/reference/androidx/camera/video/Quality. enum VideoQuality { - SD, // 480p - HD, // 720p - FHD, // 1080p - UHD, // 2160p + /// Standard Definition (SD) 480p video quality. + SD, + + /// High Definition (HD) 720p video quality. + HD, + + /// Full High Definition (FHD) 1080p video quality. + FHD, + + /// Ultra High Definition (UHD) 2160p video quality. + UHD, + + /// The lowest video quality supported by the video frame producer. lowest, - highest, -} -/// Convenience class for sending lists of [Quality]s. -class VideoQualityData { - late VideoQuality quality; + /// The highest video quality supported by the video frame producer. + highest, } -/// Fallback rules for selecting video resolution. +/// VideoRecordEvent is used to report video recording events and status. /// -/// See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. -enum VideoResolutionFallbackRule { - higherQualityOrLowerThan, - higherQualityThan, - lowerQualityOrHigherThan, - lowerQualityThan, -} +/// See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.VideoRecordEvent', + ), +) +abstract class VideoRecordEvent {} -/// Video recording status. +/// Indicates the start of recording. /// -/// See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. -enum VideoRecordEvent { start, finalize } +/// See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Start. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.VideoRecordEvent.Start', + ), +) +abstract class VideoRecordEventStart extends VideoRecordEvent {} -class VideoRecordEventData { - late VideoRecordEvent value; -} +/// Indicates the finalization of recording. +/// +/// See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.VideoRecordEvent.Finalize', + ), +) +abstract class VideoRecordEventFinalize extends VideoRecordEvent {} -/// Convenience class for building [FocusMeteringAction]s with multiple metering -/// points. -class MeteringPointInfo { - MeteringPointInfo({ - required this.meteringPointId, - required this.meteringMode, - }); +/// A MeteringPoint is used to specify a region which can then be converted to +/// sensor coordinate system for focus and metering purpose. +/// +/// See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.MeteringPoint', + ), +) +abstract class MeteringPoint { + /// Creates a MeteringPoint by x, y. + MeteringPoint(double x, double y); - /// InstanceManager ID for a [MeteringPoint]. - int meteringPointId; + /// Creates a MeteringPoint by x, y, size. + MeteringPoint.withSize(double x, double y, double size); - /// The metering mode of the [MeteringPoint] whose ID is [meteringPointId]. + /// Size of the MeteringPoint width and height (ranging from 0 to 1). /// - /// Metering mode should be one of the [FocusMeteringAction] constants. - int? meteringMode; + /// It is the percentage of the sensor width/height (or crop region + /// width/height if crop region is set). + late double size; +} + +enum MeteringMode { + /// A flag used in metering mode indicating the AE (Auto Exposure) region is + /// enabled. + ae, + + /// A flag used in metering mode indicating the AF (Auto Focus) region is + /// enabled. + af, + + /// A flag used in metering mode indicating the AWB (Auto White Balance) + /// region is enabled. + awb, +} + +// /// The types of capture request options this plugin currently supports. +// /// +// /// If you need to add another option to support, ensure the following is done +// /// on the Dart side: +// /// +// /// * In `camera_android_camerax/lib/src/capture_request_options.dart`, add new cases for this +// /// option in `_CaptureRequestOptionsHostApiImpl#createFromInstances` +// /// to create the expected Map entry of option key index and value to send to +// /// the native side. +// /// +// /// On the native side, ensure the following is done: +// /// +// /// * Update `CaptureRequestOptionsHostApiImpl#create` to set the correct +// /// `CaptureRequest` key with a valid value type for this option. +// /// +// /// See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest +// /// for the sorts of capture request options that can be supported via CameraX's +// /// interoperability with Camera2. +// enum CaptureRequestKeySupportedType { +// controlAeLock, +// } + +/// A simple callback that can receive from LiveData. +/// +/// See https://developer.android.com/reference/androidx/lifecycle/Observer. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.lifecycle.Observer', + ), +) +abstract class Observer { + Observer(); + + /// The generic type used by this instance. + late LiveDataSupportedType type; + + /// Called when the data is changed to value. + late void Function(Object value) onChanged; } -/// The types of capture request options this plugin currently supports. -/// -/// If you need to add another option to support, ensure the following is done -/// on the Dart side: -/// -/// * In `camera_android_camerax/lib/src/capture_request_options.dart`, add new cases for this -/// option in `_CaptureRequestOptionsHostApiImpl#createFromInstances` -/// to create the expected Map entry of option key index and value to send to -/// the native side. +/// An interface for retrieving camera information. /// -/// On the native side, ensure the following is done: -/// -/// * Update `CaptureRequestOptionsHostApiImpl#create` to set the correct -/// `CaptureRequest` key with a valid value type for this option. -/// -/// See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest -/// for the sorts of capture request options that can be supported via CameraX's -/// interoperability with Camera2. -enum CaptureRequestKeySupportedType { - controlAeLock, -} +/// See https://developer.android.com/reference/androidx/camera/core/CameraInfo. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.CameraInfo', + ), +) +abstract class CameraInfo { + /// Returns the sensor rotation in degrees, relative to the device's "natural" + /// (default) orientation. + late int sensorRotationDegrees; -@HostApi(dartHostTestHandler: 'TestInstanceManagerHostApi') -abstract class InstanceManagerHostApi { - /// Clear the native `InstanceManager`. - /// - /// This is typically only used after a hot restart. - void clear(); -} + /// Returns a ExposureState. + late ExposureState exposureState; -@HostApi(dartHostTestHandler: 'TestJavaObjectHostApi') -abstract class JavaObjectHostApi { - void dispose(int identifier); -} + /// A LiveData of the camera's state. + @attached + late LiveData cameraState; -@FlutterApi() -abstract class JavaObjectFlutterApi { - void dispose(int identifier); + /// A LiveData of ZoomState. + @attached + late LiveData zoomState; } -@HostApi(dartHostTestHandler: 'TestCameraInfoHostApi') -abstract class CameraInfoHostApi { - int getSensorRotationDegrees(int identifier); +/// Direction of lens of a camera. +enum LensFacing { + /// A camera on the device facing the same direction as the device's screen. + front, - int getCameraState(int identifier); + /// A camera on the device facing the opposite direction as the device's + /// screen. + back, - int getExposureState(int identifier); + /// An external camera that has no fixed facing relative to the device's + /// screen. + external, - int getZoomState(int identifier); + /// A camera on the devices that its lens facing is resolved. + unknown, } -@FlutterApi() -abstract class CameraInfoFlutterApi { - void create(int identifier); -} +/// A set of requirements and priorities used to select a camera or return a +/// filtered set of cameras. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraSelector. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.CameraSelector', + ), +) +abstract class CameraSelector { + CameraSelector(LensFacing? requireLensFacing); -@HostApi(dartHostTestHandler: 'TestCameraSelectorHostApi') -abstract class CameraSelectorHostApi { - void create(int identifier, int? lensFacing); + /// A static `CameraSelector` that selects the default back facing camera. + @static + late CameraSelector defaultBackCamera; - List filter(int identifier, List cameraInfoIds); -} + /// A static `CameraSelector` that selects the default front facing camera. + @static + late CameraSelector defaultFrontCamera; -@FlutterApi() -abstract class CameraSelectorFlutterApi { - void create(int identifier, int? lensFacing); + /// Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the + /// selector. + List filter(List cameraInfos); } -@HostApi(dartHostTestHandler: 'TestProcessCameraProviderHostApi') -abstract class ProcessCameraProviderHostApi { +/// A singleton which can be used to bind the lifecycle of cameras to any +/// `LifecycleOwner` within an application's process. +/// +/// See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.lifecycle.ProcessCameraProvider', + ), +) +abstract class ProcessCameraProvider { + /// Retrieves the ProcessCameraProvider associated with the current process. @async - int getInstance(); - - List getAvailableCameraInfos(int identifier); + @static + ProcessCameraProvider getInstance(); - int bindToLifecycle( - int identifier, int cameraSelectorIdentifier, List useCaseIds); + /// The `CameraInfo` instances of the available cameras. + List getAvailableCameraInfos(); - bool isBound(int identifier, int useCaseIdentifier); + /// Binds the collection of `UseCase` to a `LifecycleOwner`. + Camera bindToLifecycle( + CameraSelector cameraSelectorIdentifier, + List useCases, + ); - void unbind(int identifier, List useCaseIds); + /// Returns true if the `UseCase` is bound to a lifecycle. + bool isBound(UseCase useCase); - void unbindAll(int identifier); -} + /// Unbinds all specified use cases from the lifecycle provider. + void unbind(List useCases); -@FlutterApi() -abstract class ProcessCameraProviderFlutterApi { - void create(int identifier); + /// Unbinds all use cases from the lifecycle provider and removes them from + /// CameraX. + void unbindAll(); } -@HostApi(dartHostTestHandler: 'TestCameraHostApi') -abstract class CameraHostApi { - int getCameraInfo(int identifier); +/// The use case which all other use cases are built on top of. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.UseCase', + ), +) +abstract class UseCase {} - int getCameraControl(int identifier); -} +/// The camera interface is used to control the flow of data to use cases, +/// control the camera via the `CameraControl`, and publish the state of the +/// camera via CameraInfo. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.Camera', + ), +) +abstract class Camera { + /// The `CameraControl` for the Camera. + late CameraControl cameraControl; -@FlutterApi() -abstract class CameraFlutterApi { - void create(int identifier); + /// Returns information about this camera. + CameraInfo getCameraInfo(); } @HostApi(dartHostTestHandler: 'TestSystemServicesHostApi') @@ -286,257 +409,632 @@ abstract class DeviceOrientationManagerFlutterApi { void onDeviceOrientationChanged(String orientation); } -@HostApi(dartHostTestHandler: 'TestPreviewHostApi') -abstract class PreviewHostApi { - void create(int identifier, int? rotation, int? resolutionSelectorId); +/// A use case that provides a camera preview stream for displaying on-screen. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.Preview', + ), +) +abstract class Preview extends UseCase { + Preview(int? targetRotation, ResolutionSelector? resolutionSelector); - int setSurfaceProvider(int identifier); + /// Sets a SurfaceProvider to provide a Surface for Preview. + /// + /// This is a convenience function that + /// 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the + /// Flutter engine. + /// 2. Sets this method with the created `SurfaceProvider`. + /// 3. Returns the texture id of the `TextureEntry` that provided the + /// `SurfaceProducer`. + int setSurfaceProvider(); - void releaseFlutterSurfaceTexture(); + /// Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was + /// created. + void releaseSurfaceProvider(); - ResolutionInfo getResolutionInfo(int identifier); + /// Gets selected resolution information of the `Preview`. + ResolutionInfo? getResolutionInfo(); - void setTargetRotation(int identifier, int rotation); + /// Sets the target rotation. + void setTargetRotation(int rotation); } -@HostApi(dartHostTestHandler: 'TestVideoCaptureHostApi') -abstract class VideoCaptureHostApi { - int withOutput(int videoOutputId); +/// A use case that provides camera stream suitable for video application. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.VideoCapture', + ), +) +abstract class VideoCapture extends UseCase { + /// Create a `VideoCapture` associated with the given `VideoOutput`. + VideoCapture.withOutput(VideoOutput videoOutput); - int getOutput(int identifier); + /// Gets the VideoOutput associated with this VideoCapture. + VideoOutput getOutput(); - void setTargetRotation(int identifier, int rotation); + /// Sets the desired rotation of the output video. + void setTargetRotation(int rotation); } -@FlutterApi() -abstract class VideoCaptureFlutterApi { - void create(int identifier); -} +/// A class that will produce video data from a Surface. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoOutput. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.VideoOutput', + ), +) +abstract class VideoOutput {} -@HostApi(dartHostTestHandler: 'TestRecorderHostApi') -abstract class RecorderHostApi { - void create( - int identifier, int? aspectRatio, int? bitRate, int? qualitySelectorId); +/// An implementation of `VideoOutput` for starting video recordings that are +/// saved to a File, ParcelFileDescriptor, or MediaStore. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.Recorder', + ), +) +abstract class Recorder implements VideoOutput { + Recorder( + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + ); - int getAspectRatio(int identifier); + /// Gets the aspect ratio of this Recorder. + int getAspectRatio(); - int getTargetVideoEncodingBitRate(int identifier); + /// Gets the target video encoding bitrate of this Recorder. + int getTargetVideoEncodingBitRate(); - int prepareRecording(int identifier, String path); + /// Prepares a recording that will be saved to a File. + PendingRecording prepareRecording(String path); } -@FlutterApi() -abstract class RecorderFlutterApi { - void create(int identifier, int? aspectRatio, int? bitRate); -} +/// Listens for `VideoRecordEvent`s from a `PendingRecording`. +@ProxyApi() +abstract class VideoRecordEventListener { + VideoRecordEventListener(); -@HostApi(dartHostTestHandler: 'TestPendingRecordingHostApi') -abstract class PendingRecordingHostApi { - int start(int identifier); + late void Function(VideoRecordEvent event) onEvent; } -@FlutterApi() -abstract class PendingRecordingFlutterApi { - void create(int identifier); - - void onVideoRecordingEvent(VideoRecordEventData event); +/// A recording that can be started at a future time. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.PendingRecording', + ), +) +abstract class PendingRecording { + /// Starts the recording, making it an active recording. + Recording start(VideoRecordEventListener listener); } -@HostApi(dartHostTestHandler: 'TestRecordingHostApi') -abstract class RecordingHostApi { - void close(int identifier); +/// Provides controls for the currently active recording. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/Recording. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.Recording', + ), +) +abstract class Recording { + /// Close this recording. + void close(); - void pause(int identifier); + /// Pauses the current recording if active. + void pause(); - void resume(int identifier); + /// Resumes the current recording if paused. + void resume(); - void stop(int identifier); + /// Stops the recording, as if calling `close`. + /// + /// This method is equivalent to calling `close`. + void stop(); } -@FlutterApi() -abstract class RecordingFlutterApi { - void create(int identifier); +/// FlashModes for image capture. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). +enum FlashMode { + /// Auto flash. + /// + /// The flash will be used according to the camera system's determination when + /// taking a picture. + auto, + + /// No flash. + /// + /// The flash will never be used when taking a picture. + off, + + /// Always flash. + /// + /// The flash will always be used when taking a picture. + on, + + /// Screen flash. + /// + /// Display screen brightness will be used as alternative to flash when taking + /// a picture with front camera. + screen, } -@HostApi(dartHostTestHandler: 'TestImageCaptureHostApi') -abstract class ImageCaptureHostApi { - void create(int identifier, int? targetRotation, int? flashMode, - int? resolutionSelectorId); +/// A use case for taking a picture. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.ImageCapture', + ), +) +abstract class ImageCapture extends UseCase { + ImageCapture( + int? targetRotation, + FlashMode? flashMode, + ResolutionSelector? resolutionSelector, + ); - void setFlashMode(int identifier, int flashMode); + /// Set the flash mode. + void setFlashMode(FlashMode flashMode); + /// Captures a new still image for in memory access. @async - String takePicture(int identifier); + String takePicture(); - void setTargetRotation(int identifier, int rotation); + /// Sets the desired rotation of the output image. + void setTargetRotation(int rotation); } -@HostApi(dartHostTestHandler: 'TestResolutionStrategyHostApi') -abstract class ResolutionStrategyHostApi { - void create(int identifier, ResolutionInfo? boundSize, int? fallbackRule); +/// Fallback rule for choosing an alternate size when the specified bound size +/// is unavailable. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. +enum ResolutionStrategyFallbackRule { + /// When the specified bound size is unavailable, CameraX falls back to the + /// closest higher resolution size. + closestHigher, + + /// When the specified bound size is unavailable, CameraX falls back to select + /// the closest higher resolution size. + closestHigherThenLower, + + /// When the specified bound size is unavailable, CameraX falls back to the + /// closest lower resolution size. + closestLower, + + /// When the specified bound size is unavailable, CameraX falls back to select + /// the closest lower resolution size. + closestLowerThenHigher, + + /// CameraX doesn't select an alternate size when the specified bound size is + /// unavailable. + none, } -@HostApi(dartHostTestHandler: 'TestResolutionSelectorHostApi') -abstract class ResolutionSelectorHostApi { - void create( - int identifier, - int? resolutionStrategyIdentifier, - int? resolutionSelectorIdentifier, - int? aspectRatioStrategyIdentifier, +/// The resolution strategy defines the resolution selection sequence to select +/// the best size. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.resolutionselector.ResolutionStrategy', + ), +) +abstract class ResolutionStrategy { + ResolutionStrategy( + CameraSize boundSize, + ResolutionStrategyFallbackRule fallbackRule, ); -} -@HostApi(dartHostTestHandler: 'TestAspectRatioStrategyHostApi') -abstract class AspectRatioStrategyHostApi { - void create(int identifier, int preferredAspectRatio, int fallbackRule); + @static + late ResolutionStrategy highestAvailableStrategy; } -@FlutterApi() -abstract class CameraStateFlutterApi { - void create(int identifier, CameraStateTypeData type, int? errorIdentifier); +/// A set of requirements and priorities used to select a resolution for the +/// `UseCase`. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.resolutionselector.ResolutionSelector', + ), +) +abstract class ResolutionSelector { + ResolutionSelector( + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + ); } -@FlutterApi() -abstract class ExposureStateFlutterApi { - void create( - int identifier, - ExposureCompensationRange exposureCompensationRange, - double exposureCompensationStep); -} +/// Fallback rule for choosing the aspect ratio when the preferred aspect ratio +/// is not available. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). +enum AspectRatioStrategyFallbackRule { + /// CameraX automatically chooses the next best aspect ratio which contains + /// the closest field of view (FOV) of the camera sensor, from the remaining + /// options. + auto, -@FlutterApi() -abstract class ZoomStateFlutterApi { - void create(int identifier, double minZoomRatio, double maxZoomRatio); + /// CameraX doesn't fall back to select sizes of any other aspect ratio when + /// this fallback rule is used. + none, } -@HostApi(dartHostTestHandler: 'TestImageAnalysisHostApi') -abstract class ImageAnalysisHostApi { - void create(int identifier, int? targetRotation, int? resolutionSelectorId); +/// The aspect ratio strategy defines the sequence of aspect ratios that are +/// used to select the best size for a particular image. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: + 'androidx.camera.core.resolutionselector.AspectRatioStrategy', + ), +) +abstract class AspectRatioStrategy { + /// Creates a new AspectRatioStrategy instance, configured with the specified + /// preferred aspect ratio and fallback rule. + AspectRatioStrategy( + int preferredAspectRatio, + AspectRatioStrategyFallbackRule fallbackRule, + ); + + /// The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 + /// in priority. + @static + late AspectRatioStrategy ratio_16_9FallbackAutoStrategy; - void setAnalyzer(int identifier, int analyzerIdentifier); + /// The pre-defined default aspect ratio strategy that selects sizes with + /// RATIO_4_3 in priority. + @static + late AspectRatioStrategy ratio_4_3FallbackAutoStrategy; +} - void clearAnalyzer(int identifier); +/// Represents the different states the camera can be in. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraState. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.CameraState', + ), +) +abstract class CameraState { + /// The camera's state. + late CameraStateType type; - void setTargetRotation(int identifier, int rotation); + /// Potentially returns an error the camera encountered. + late CameraStateStateError error; } -@HostApi(dartHostTestHandler: 'TestAnalyzerHostApi') -abstract class AnalyzerHostApi { - void create(int identifier); +/// An interface which contains the camera exposure related information. +/// +/// See https://developer.android.com/reference/androidx/camera/core/ExposureState. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.ExposureState', + ), +) +abstract class ExposureState { + /// Get the maximum and minimum exposure compensation values for + /// `CameraControl.setExposureCompensationIndex`. + late CameraIntegerRange exposureCompensationRange; + + /// Get the smallest step by which the exposure compensation can be changed. + late double exposureCompensationStep; } -@HostApi(dartHostTestHandler: 'TestObserverHostApi') -abstract class ObserverHostApi { - void create(int identifier); +/// An interface which contains the zoom related information from a camera. +/// +/// See https://developer.android.com/reference/androidx/camera/core/ZoomState. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.ZoomState', + ), +) +abstract class ZoomState { + /// The minimum zoom ratio. + late double minZoomRatio; + + /// The maximum zoom ratio. + late double maxZoomRatio; } -@FlutterApi() -abstract class ObserverFlutterApi { - void onChanged(int identifier, int valueIdentifier); +/// A use case providing CPU accessible images for an app to perform image +/// analysis on. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.ImageAnalysis', + ), +) +abstract class ImageAnalysis extends UseCase { + ImageAnalysis(int? targetRotation, ResolutionSelector? resolutionSelector); + + /// Sets an analyzer to receive and analyze images. + void setAnalyzer(Analyzer analyzer); + + /// Removes a previously set analyzer. + void clearAnalyzer(); + + /// Sets the target rotation. + void setTargetRotation(int rotation); } -@FlutterApi() -abstract class CameraStateErrorFlutterApi { - void create(int identifier, int code); +/// Interface for analyzing images. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis.Analyzer. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.ImageAnalysis.Analyzer', + ), +) +abstract class Analyzer { + Analyzer(); + + /// Analyzes an image to produce a result. + late void Function(ImageProxy image) analyze; } -@HostApi(dartHostTestHandler: 'TestLiveDataHostApi') -abstract class LiveDataHostApi { - void observe(int identifier, int observerIdentifier); +/// Code for a `CameraState` error. +/// +/// https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() +enum CameraStateErrorCode { + /// An error indicating that the camera device could not be opened due to a + /// device policy. + disabled, + + /// An error indicating that the camera device was closed due to a fatal + /// error. + fatalError, + + /// An error indicating that the camera device is already in use. + inUse, - void removeObservers(int identifier); + /// An error indicating that the camera could not be opened because "Do Not + /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API + /// level 28). + doNotDisturbModeEnabled, - int? getValue(int identifier, LiveDataSupportedTypeData type); + /// An error indicating that the limit number of open cameras has been + /// reached, and more cameras cannot be opened until other instances are + /// closed. + maxCamerasInUse, + + /// An error indicating that the camera device has encountered a recoverable + /// error. + otherRecoverableError, + + /// An error indicating that configuring the camera has failed. + streamConfig, + + /// The value is not recognized by this wrapper. + unknown, } -@FlutterApi() -abstract class LiveDataFlutterApi { - void create(int identifier, LiveDataSupportedTypeData type); +/// Error that the camera has encountered. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.CameraState.StateError', + ), +) +abstract class CameraStateStateError { + /// The code of this error. + late CameraStateErrorCode code; } -@FlutterApi() -abstract class AnalyzerFlutterApi { - void create(int identifier); +/// LiveData is a data holder class that can be observed within a given +/// lifecycle. +/// +/// See https://developer.android.com/reference/androidx/lifecycle/LiveData. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.lifecycle.LiveData', + ), +) +abstract class LiveData { + /// The generic type used by this instance. + late LiveDataSupportedType type; - void analyze(int identifier, int imageProxyIdentifier); -} + /// Adds the given observer to the observers list within the lifespan of the + /// given owner. + void observe(Observer observer); -@HostApi(dartHostTestHandler: 'TestImageProxyHostApi') -abstract class ImageProxyHostApi { - List getPlanes(int identifier); + /// Removes all observers that are tied to the given `LifecycleOwner`. + void removeObservers(); - void close(int identifier); + /// Returns the current value. + Object? getValue(); } -@FlutterApi() -abstract class ImageProxyFlutterApi { - void create(int identifier, int format, int height, int width); +/// An image proxy which has a similar interface as `android.media.Image`. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.ImageProxy', + ), +) +abstract class ImageProxy { + /// The image format. + late int format; + + /// The image width. + late int width; + + /// The image height. + late int height; + + /// Returns the array of planes. + List getPlanes(); + + /// Closes the underlying `android.media.Image`. + void close(); } -@FlutterApi() -abstract class PlaneProxyFlutterApi { - void create(int identifier, Uint8List buffer, int pixelStride, int rowStride); +/// A plane proxy which has an analogous interface as +/// `android.media.Image.Plane`. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.ImageProxy.PlaneProxy', + ), +) +abstract class PlaneProxy { + /// The pixels buffer. + late Uint8List buffer; + + /// The pixel stride. + late int pixelStride; + + /// The row stride. + late int rowStride; } -@HostApi(dartHostTestHandler: 'TestQualitySelectorHostApi') -abstract class QualitySelectorHostApi { - void create(int identifier, List videoQualityDataList, - int? fallbackStrategyId); +/// Defines a desired quality setting that can be used to configure components +/// with quality setting requirements such as creating a Recorder. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.QualitySelector', + ), +) +abstract class QualitySelector { + /// Gets an instance of QualitySelector with a desired quality. + QualitySelector.from( + VideoQuality quality, + FallbackStrategy? fallbackStrategy, + ); + + /// Gets an instance of QualitySelector with ordered desired qualities. + QualitySelector.fromOrderedList( + List qualities, + FallbackStrategy? fallbackStrategy, + ); - ResolutionInfo getResolution(int cameraInfoId, VideoQuality quality); + /// Gets the corresponding resolution from the input quality. + @static + CameraSize? getResolution(CameraInfo cameraInfo, VideoQuality quality); } -@HostApi(dartHostTestHandler: 'TestFallbackStrategyHostApi') -abstract class FallbackStrategyHostApi { - void create(int identifier, VideoQuality quality, - VideoResolutionFallbackRule fallbackRule); +/// A class represents the strategy that will be adopted when the device does +/// not support all the desired Quality in QualitySelector in order to select +/// the quality as possible. +/// +/// See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.video.FallbackStrategy', + ), +) +class FallbackStrategy { + /// Returns a fallback strategy that will choose the quality that is closest + /// to and higher than the input quality. + FallbackStrategy.higherQualityOrLowerThan(VideoQuality quality); + + /// Returns a fallback strategy that will choose the quality that is closest + /// to and higher than the input quality. + FallbackStrategy.higherQualityThan(VideoQuality quality); + + /// Returns a fallback strategy that will choose the quality that is closest + /// to and lower than the input quality. + FallbackStrategy.lowerQualityOrHigherThan(VideoQuality quality); + + /// Returns a fallback strategy that will choose the quality that is closest + /// to and lower than the input quality. + FallbackStrategy.lowerQualityThan(VideoQuality quality); } -@HostApi(dartHostTestHandler: 'TestCameraControlHostApi') -abstract class CameraControlHostApi { +/// The CameraControl provides various asynchronous operations like zoom, focus +/// and metering which affects output of all UseCases currently bound to that +/// camera. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraControl. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.CameraControl', + ), +) +abstract class CameraControl { + /// Enable the torch or disable the torch. @async - void enableTorch(int identifier, bool torch); + void enableTorch(bool torch); + /// Sets current zoom by ratio. @async - void setZoomRatio(int identifier, double ratio); + void setZoomRatio(double ratio); + /// Starts a focus and metering action configured by the + /// `FocusMeteringAction`. @async - int? startFocusAndMetering(int identifier, int focusMeteringActionId); + FocusMeteringResult startFocusAndMetering(FocusMeteringAction action); + /// Cancels current FocusMeteringAction and clears AF/AE/AWB regions. @async - void cancelFocusAndMetering(int identifier); + void cancelFocusAndMetering(); + /// Set the exposure compensation value for the camera. @async - int? setExposureCompensationIndex(int identifier, int index); + int setExposureCompensationIndex(int index); } -@FlutterApi() -abstract class CameraControlFlutterApi { - void create(int identifier); -} +/// The builder used to create the `FocusMeteringAction`. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.FocusMeteringAction.Builder', + ), +) +abstract class FocusMeteringActionBuilder { + /// Adds another MeteringPoint with default metering mode. + void addPoint(MeteringPoint point); -@HostApi(dartHostTestHandler: 'TestFocusMeteringActionHostApi') -abstract class FocusMeteringActionHostApi { - void create(int identifier, List meteringPointInfos, - bool? disableAutoCancel); -} + /// Adds another MeteringPoint with specified meteringMode. + void addPointWithMode(MeteringPoint point, List modes); -@HostApi(dartHostTestHandler: 'TestFocusMeteringResultHostApi') -abstract class FocusMeteringResultHostApi { - bool isFocusSuccessful(int identifier); -} + /// Disables the auto-cancel. + void disableAutoCancel(); -@FlutterApi() -abstract class FocusMeteringResultFlutterApi { - void create(int identifier); + /// Builds the `FocusMeteringAction` instance. + FocusMeteringAction build(); } -@HostApi(dartHostTestHandler: 'TestMeteringPointHostApi') -abstract class MeteringPointHostApi { - void create( - int identifier, double x, double y, double? size, int cameraInfoId); +/// A configuration used to trigger a focus and/or metering action. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.FocusMeteringAction', + ), +) +abstract class FocusMeteringAction {} - double getDefaultPointSize(); +/// Result of the `CameraControl.startFocusAndMetering`. +/// +/// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.FocusMeteringResult', + ), +) +abstract class FocusMeteringResult { + /// If auto focus is successful. + late bool isFocusSuccessful; } @HostApi(dartHostTestHandler: 'TestCaptureRequestOptionsHostApi') @@ -553,10 +1051,17 @@ abstract class Camera2CameraControlHostApi { int identifier, int captureRequestOptionsIdentifier); } -@HostApi(dartHostTestHandler: 'TestResolutionFilterHostApi') -abstract class ResolutionFilterHostApi { - void createWithOnePreferredSize( - int identifier, ResolutionInfo preferredResolution); +/// Applications can filter out unsuitable sizes and sort the resolution list in +/// the preferred order by implementing the resolution filter interface. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.resolutionselector.ResolutionFilter', + ), +) +abstract class ResolutionFilter { + ResolutionFilter.createWithOnePreferredSize(CameraSize preferredSize); } @HostApi(dartHostTestHandler: 'TestCamera2CameraInfoHostApi') From fe63e89506b764a00d6ee84691d7207fcbb3e253 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 23 Dec 2024 08:00:37 -0500 Subject: [PATCH 004/148] rest of non persmission and system stuff for pigeon --- .../pigeons/camerax_library.dart | 125 +++++++++++++++--- 1 file changed, 107 insertions(+), 18 deletions(-) diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 4ba8633beb6..1550a75bcb5 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -1037,18 +1037,66 @@ abstract class FocusMeteringResult { late bool isFocusSuccessful; } -@HostApi(dartHostTestHandler: 'TestCaptureRequestOptionsHostApi') -abstract class CaptureRequestOptionsHostApi { - void create(int identifier, Map options); +/// An immutable package of settings and outputs needed to capture a single +/// image from the camera device. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'android.hardware.camera2.CaptureRequest', + ), +) +abstract class CaptureRequest { + /// Whether auto-exposure (AE) is currently locked to its latest calculated + /// values. + /// + /// Value is boolean. + /// + /// This key is available on all devices. + @static + late CaptureRequestKey controlAELock; +} + +/// A Key is used to do capture request field lookups with CaptureRequest.get or +/// to set fields with `CaptureRequest.Builder.set`. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'android.hardware.camera2.CaptureRequest.Key', + ), +) +abstract class CaptureRequestKey {} + +/// A bundle of Camera2 capture request options. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.camera2.interop.CaptureRequestOptions', + ), +) +abstract class CaptureRequestOptions { + CaptureRequestOptions(Map options); } -@HostApi(dartHostTestHandler: 'TestCamera2CameraControlHostApi') -abstract class Camera2CameraControlHostApi { - void create(int identifier, int cameraControlIdentifier); +/// An class that provides ability to interoperate with the +/// 1android.hardware.camera21 APIs. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.camera2.interop.Camera2CameraControl', + ), +) +abstract class Camera2CameraControl { + /// Gets the `Camera2CameraControl` from a `CameraControl`. + Camera2CameraControl.from(CameraControl cameraControl); + /// Adds a `CaptureRequestOptions` updates the session with the options it + /// contains. @async - void addCaptureRequestOptions( - int identifier, int captureRequestOptionsIdentifier); + void addCaptureRequestOptions(CaptureRequestOptions bundle); } /// Applications can filter out unsuitable sizes and sort the resolution list in @@ -1064,18 +1112,59 @@ abstract class ResolutionFilter { ResolutionFilter.createWithOnePreferredSize(CameraSize preferredSize); } -@HostApi(dartHostTestHandler: 'TestCamera2CameraInfoHostApi') -abstract class Camera2CameraInfoHostApi { - int createFrom(int cameraInfoIdentifier); - - int getSupportedHardwareLevel(int identifier); +/// A Key is used to do camera characteristics field lookups with +/// `CameraCharacteristics.get`. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'android.hardware.camera2.CameraCharacteristics.Key', + ), +) +abstract class CameraCharacteristicsKey {} - String getCameraId(int identifier); +/// The properties describing a `CameraDevice`. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'android.hardware.camera2.CameraCharacteristics', + ), +) +abstract class CameraCharacteristics { + /// Generally classifies the overall set of the camera device functionality. + /// + /// Value is Integer. + /// + /// This key is available on all devices. + @static + late CameraCharacteristicsKey infoSupportedHardwareLevel; - int getSensorOrientation(int identifier); + /// Clockwise angle through which the output image needs to be rotated to be + /// upright on the device screen in its native orientation.. + /// + /// Value is Integer. + /// + /// This key is available on all devices. + @static + late CameraCharacteristicsKey sensorOrientation; } -@FlutterApi() -abstract class Camera2CameraInfoFlutterApi { - void create(int identifier); +/// An interface for retrieving Camera2-related camera information. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.camera2.interop.Camera2CameraInfo', + ), +) +abstract class Camera2CameraInfo { + /// Gets the `Camera2CameraInfo` from a `CameraInfo`. + Camera2CameraInfo.from(CameraInfo cameraInfo); + + /// Gets the string camera ID. + String getCameraId(); + + /// Gets a camera characteristic value. + Object? getCameraCharacteristic(CameraCharacteristicsKey key); } From bbe060f4eab440ee612455684a5c8d944780d572 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 24 Dec 2024 21:40:05 -0500 Subject: [PATCH 005/148] compiling --- .../pigeons/camerax_library.dart | 50 +- .../test/test_camerax_library.g.dart | 2633 ++--------------- 2 files changed, 180 insertions(+), 2503 deletions(-) diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 1550a75bcb5..fc69e3b3d1f 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -28,7 +28,7 @@ import 'package:pigeon/pigeon.dart'; fullClassName: 'android.util.Size', ), ) -class CameraSize { +abstract class CameraSize { CameraSize(); /// The width of the size (in pixels). @@ -47,7 +47,7 @@ class CameraSize { fullClassName: 'androidx.camera.core.ResolutionInfo', ), ) -class ResolutionInfo { +abstract class ResolutionInfo { ResolutionInfo(); /// Returns the output resolution used for the use case. @@ -101,10 +101,10 @@ enum LiveDataSupportedType { /// See https://developer.android.com/reference/android/util/Range.html. @ProxyApi( kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'android.util.Range', + fullClassName: 'android.util.Range<*>', ), ) -class CameraIntegerRange { +abstract class CameraIntegerRange { CameraIntegerRange(); /// The lower endpoint. @@ -190,7 +190,7 @@ abstract class MeteringPoint { /// /// It is the percentage of the sensor width/height (or crop region /// width/height if crop region is set). - late double size; + double getSize(); } enum MeteringMode { @@ -207,34 +207,12 @@ enum MeteringMode { awb, } -// /// The types of capture request options this plugin currently supports. -// /// -// /// If you need to add another option to support, ensure the following is done -// /// on the Dart side: -// /// -// /// * In `camera_android_camerax/lib/src/capture_request_options.dart`, add new cases for this -// /// option in `_CaptureRequestOptionsHostApiImpl#createFromInstances` -// /// to create the expected Map entry of option key index and value to send to -// /// the native side. -// /// -// /// On the native side, ensure the following is done: -// /// -// /// * Update `CaptureRequestOptionsHostApiImpl#create` to set the correct -// /// `CaptureRequest` key with a valid value type for this option. -// /// -// /// See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest -// /// for the sorts of capture request options that can be supported via CameraX's -// /// interoperability with Camera2. -// enum CaptureRequestKeySupportedType { -// controlAeLock, -// } - /// A simple callback that can receive from LiveData. /// /// See https://developer.android.com/reference/androidx/lifecycle/Observer. @ProxyApi( kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'androidx.lifecycle.Observer', + fullClassName: 'androidx.lifecycle.Observer<*>', ), ) abstract class Observer { @@ -264,12 +242,10 @@ abstract class CameraInfo { late ExposureState exposureState; /// A LiveData of the camera's state. - @attached - late LiveData cameraState; + LiveData getCameraState(); /// A LiveData of ZoomState. - @attached - late LiveData zoomState; + LiveData getZoomState(); } /// Direction of lens of a camera. @@ -446,7 +422,7 @@ abstract class Preview extends UseCase { /// See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. @ProxyApi( kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'androidx.camera.video.VideoCapture', + fullClassName: 'androidx.camera.video.VideoCapture<*>', ), ) abstract class VideoCapture extends UseCase { @@ -841,7 +817,7 @@ abstract class CameraStateStateError { /// See https://developer.android.com/reference/androidx/lifecycle/LiveData. @ProxyApi( kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'androidx.lifecycle.LiveData', + fullClassName: 'androidx.lifecycle.LiveData<*>', ), ) abstract class LiveData { @@ -941,7 +917,7 @@ abstract class QualitySelector { fullClassName: 'androidx.camera.video.FallbackStrategy', ), ) -class FallbackStrategy { +abstract class FallbackStrategy { /// Returns a fallback strategy that will choose the quality that is closest /// to and higher than the input quality. FallbackStrategy.higherQualityOrLowerThan(VideoQuality quality); @@ -1063,7 +1039,7 @@ abstract class CaptureRequest { /// See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. @ProxyApi( kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'android.hardware.camera2.CaptureRequest.Key', + fullClassName: 'android.hardware.camera2.CaptureRequest.Key<*>', ), ) abstract class CaptureRequestKey {} @@ -1118,7 +1094,7 @@ abstract class ResolutionFilter { /// See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. @ProxyApi( kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'android.hardware.camera2.CameraCharacteristics.Key', + fullClassName: 'android.hardware.camera2.CameraCharacteristics.Key<*>', ), ) abstract class CameraCharacteristicsKey {} diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index 32235b878f3..b86d55a8163 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -1,9 +1,9 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v9.2.5), do not edit directly. +// Autogenerated from Pigeon (v22.7.0), do not edit directly. // See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, unnecessary_import +// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, unnecessary_import, no_leading_underscores_for_local_identifiers // ignore_for_file: avoid_relative_lib_imports import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; @@ -11,478 +11,45 @@ import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; import 'package:flutter/services.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; +import 'package:camera_android_camerax/src/camerax_library2.g.dart'; -abstract class TestInstanceManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - /// Clear the native `InstanceManager`. - /// - /// This is typically only used after a hot restart. - void clear(); - - static void setup(TestInstanceManagerHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - // ignore message - api.clear(); - return []; - }); - } - } - } -} - -abstract class TestJavaObjectHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void dispose(int identifier); - - static void setup(TestJavaObjectHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.JavaObjectHostApi.dispose', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.JavaObjectHostApi.dispose was null, expected non-null int.'); - api.dispose(arg_identifier!); - return []; - }); - } - } - } -} - -abstract class TestCameraInfoHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - int getSensorRotationDegrees(int identifier); - - int getCameraState(int identifier); - - int getExposureState(int identifier); - - int getZoomState(int identifier); - - static void setup(TestCameraInfoHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees was null, expected non-null int.'); - final int output = api.getSensorRotationDegrees(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getCameraState', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getCameraState was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getCameraState was null, expected non-null int.'); - final int output = api.getCameraState(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getExposureState', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getExposureState was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getExposureState was null, expected non-null int.'); - final int output = api.getExposureState(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getZoomState', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getZoomState was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraInfoHostApi.getZoomState was null, expected non-null int.'); - final int output = api.getZoomState(arg_identifier!); - return [output]; - }); - } - } - } -} - -abstract class TestCameraSelectorHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int? lensFacing); - - List filter(int identifier, List cameraInfoIds); - - static void setup(TestCameraSelectorHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraSelectorHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.create was null, expected non-null int.'); - final int? arg_lensFacing = (args[1] as int?); - api.create(arg_identifier!, arg_lensFacing); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraSelectorHostApi.filter', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null, expected non-null int.'); - final List? arg_cameraInfoIds = - (args[1] as List?)?.cast(); - assert(arg_cameraInfoIds != null, - 'Argument for dev.flutter.pigeon.CameraSelectorHostApi.filter was null, expected non-null List.'); - final List output = - api.filter(arg_identifier!, arg_cameraInfoIds!); - return [output]; - }); - } - } - } -} - -abstract class TestProcessCameraProviderHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - Future getInstance(); - - List getAvailableCameraInfos(int identifier); - - int bindToLifecycle( - int identifier, int cameraSelectorIdentifier, List useCaseIds); - - bool isBound(int identifier, int useCaseIdentifier); - - void unbind(int identifier, List useCaseIds); - - void unbindAll(int identifier); - - static void setup(TestProcessCameraProviderHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - // ignore message - final int output = await api.getInstance(); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos was null, expected non-null int.'); - final List output = - api.getAvailableCameraInfos(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null, expected non-null int.'); - final int? arg_cameraSelectorIdentifier = (args[1] as int?); - assert(arg_cameraSelectorIdentifier != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null, expected non-null int.'); - final List? arg_useCaseIds = - (args[2] as List?)?.cast(); - assert(arg_useCaseIds != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle was null, expected non-null List.'); - final int output = api.bindToLifecycle( - arg_identifier!, arg_cameraSelectorIdentifier!, arg_useCaseIds!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound was null, expected non-null int.'); - final int? arg_useCaseIdentifier = (args[1] as int?); - assert(arg_useCaseIdentifier != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound was null, expected non-null int.'); - final bool output = - api.isBound(arg_identifier!, arg_useCaseIdentifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null, expected non-null int.'); - final List? arg_useCaseIds = - (args[1] as List?)?.cast(); - assert(arg_useCaseIds != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind was null, expected non-null List.'); - api.unbind(arg_identifier!, arg_useCaseIds!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll was null, expected non-null int.'); - api.unbindAll(arg_identifier!); - return []; - }); - } - } - } -} - -abstract class TestCameraHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - int getCameraInfo(int identifier); - - int getCameraControl(int identifier); - - static void setup(TestCameraHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraHostApi.getCameraInfo', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraInfo was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraInfo was null, expected non-null int.'); - final int output = api.getCameraInfo(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraHostApi.getCameraControl', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraControl was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraHostApi.getCameraControl was null, expected non-null int.'); - final int output = api.getCameraControl(arg_identifier!); - return [output]; - }); - } - } - } -} - -class _TestSystemServicesHostApiCodec extends StandardMessageCodec { - const _TestSystemServicesHostApiCodec(); +class _PigeonCodec extends StandardMessageCodec { + const _PigeonCodec(); @override void writeValue(WriteBuffer buffer, Object? value) { - if (value is CameraPermissionsErrorData) { - buffer.putUint8(128); + if (value is int) { + buffer.putUint8(4); + buffer.putInt64(value); + } else if (value is CameraStateType) { + buffer.putUint8(129); + writeValue(buffer, value.index); + } else if (value is LiveDataSupportedType) { + buffer.putUint8(130); + writeValue(buffer, value.index); + } else if (value is VideoQuality) { + buffer.putUint8(131); + writeValue(buffer, value.index); + } else if (value is MeteringMode) { + buffer.putUint8(132); + writeValue(buffer, value.index); + } else if (value is LensFacing) { + buffer.putUint8(133); + writeValue(buffer, value.index); + } else if (value is FlashMode) { + buffer.putUint8(134); + writeValue(buffer, value.index); + } else if (value is ResolutionStrategyFallbackRule) { + buffer.putUint8(135); + writeValue(buffer, value.index); + } else if (value is AspectRatioStrategyFallbackRule) { + buffer.putUint8(136); + writeValue(buffer, value.index); + } else if (value is CameraStateErrorCode) { + buffer.putUint8(137); + writeValue(buffer, value.index); + } else if (value is CameraPermissionsErrorData) { + buffer.putUint8(138); writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); @@ -492,7 +59,34 @@ class _TestSystemServicesHostApiCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 128: + case 129: + final int? value = readValue(buffer) as int?; + return value == null ? null : CameraStateType.values[value]; + case 130: + final int? value = readValue(buffer) as int?; + return value == null ? null : LiveDataSupportedType.values[value]; + case 131: + final int? value = readValue(buffer) as int?; + return value == null ? null : VideoQuality.values[value]; + case 132: + final int? value = readValue(buffer) as int?; + return value == null ? null : MeteringMode.values[value]; + case 133: + final int? value = readValue(buffer) as int?; + return value == null ? null : LensFacing.values[value]; + case 134: + final int? value = readValue(buffer) as int?; + return value == null ? null : FlashMode.values[value]; + case 135: + final int? value = readValue(buffer) as int?; + return value == null ? null : ResolutionStrategyFallbackRule.values[value]; + case 136: + final int? value = readValue(buffer) as int?; + return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + case 137: + final int? value = readValue(buffer) as int?; + return value == null ? null : CameraStateErrorCode.values[value]; + case 138: return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -501,83 +95,86 @@ class _TestSystemServicesHostApiCodec extends StandardMessageCodec { } abstract class TestSystemServicesHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = _TestSystemServicesHostApiCodec(); + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - Future requestCameraPermissions( - bool enableAudio); + Future requestCameraPermissions(bool enableAudio); String getTempFilePath(String prefix, String suffix); bool isPreviewPreTransformed(); - static void setup(TestSystemServicesHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setUp(TestSystemServicesHostApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { + messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', - codec, + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions$messageChannelSuffix', pigeonChannelCodec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions was null.'); + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions was null.'); final List args = (message as List?)!; final bool? arg_enableAudio = (args[0] as bool?); assert(arg_enableAudio != null, - 'Argument for dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions was null, expected non-null bool.'); - final CameraPermissionsErrorData? output = - await api.requestCameraPermissions(arg_enableAudio!); - return [output]; + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions was null, expected non-null bool.'); + try { + final CameraPermissionsErrorData? output = await api.requestCameraPermissions(arg_enableAudio!); + return [output]; + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } }); } } { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath', codec, + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath$messageChannelSuffix', pigeonChannelCodec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath was null.'); + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath was null.'); final List args = (message as List?)!; final String? arg_prefix = (args[0] as String?); assert(arg_prefix != null, - 'Argument for dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath was null, expected non-null String.'); + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath was null, expected non-null String.'); final String? arg_suffix = (args[1] as String?); assert(arg_suffix != null, - 'Argument for dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath was null, expected non-null String.'); - final String output = api.getTempFilePath(arg_prefix!, arg_suffix!); - return [output]; + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath was null, expected non-null String.'); + try { + final String output = api.getTempFilePath(arg_prefix!, arg_suffix!); + return [output]; + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } }); } } { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.isPreviewPreTransformed', - codec, + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.isPreviewPreTransformed$messageChannelSuffix', pigeonChannelCodec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - // ignore message - final bool output = api.isPreviewPreTransformed(); - return [output]; + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { + try { + final bool output = api.isPreviewPreTransformed(); + return [output]; + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } }); } } @@ -585,12 +182,10 @@ abstract class TestSystemServicesHostApi { } abstract class TestDeviceOrientationManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); + static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - void startListeningForDeviceOrientationChange( - bool isFrontFacing, int sensorOrientation); + void startListeningForDeviceOrientationChange(bool isFrontFacing, int sensorOrientation); void stopListeningForDeviceOrientationChange(); @@ -598,1984 +193,90 @@ abstract class TestDeviceOrientationManagerHostApi { String getUiOrientation(); - static void setup(TestDeviceOrientationManagerHostApi? api, - {BinaryMessenger? binaryMessenger}) { + static void setUp(TestDeviceOrientationManagerHostApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { + messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', - codec, + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$messageChannelSuffix', pigeonChannelCodec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null.'); + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null.'); final List args = (message as List?)!; final bool? arg_isFrontFacing = (args[0] as bool?); assert(arg_isFrontFacing != null, - 'Argument for dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null, expected non-null bool.'); + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null, expected non-null bool.'); final int? arg_sensorOrientation = (args[1] as int?); assert(arg_sensorOrientation != null, - 'Argument for dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null, expected non-null int.'); - api.startListeningForDeviceOrientationChange( - arg_isFrontFacing!, arg_sensorOrientation!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - // ignore message - api.stopListeningForDeviceOrientationChange(); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - // ignore message - final int output = api.getDefaultDisplayRotation(); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getUiOrientation', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - // ignore message - final String output = api.getUiOrientation(); - return [output]; - }); - } - } - } -} - -class _TestPreviewHostApiCodec extends StandardMessageCodec { - const _TestPreviewHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is ResolutionInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return ResolutionInfo.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class TestPreviewHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = _TestPreviewHostApiCodec(); - - void create(int identifier, int? rotation, int? resolutionSelectorId); - - int setSurfaceProvider(int identifier); - - void releaseFlutterSurfaceTexture(); - - ResolutionInfo getResolutionInfo(int identifier); - - void setTargetRotation(int identifier, int rotation); - - static void setup(TestPreviewHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.create was null, expected non-null int.'); - final int? arg_rotation = (args[1] as int?); - final int? arg_resolutionSelectorId = (args[2] as int?); - api.create(arg_identifier!, arg_rotation, arg_resolutionSelectorId); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider was null, expected non-null int.'); - final int output = api.setSurfaceProvider(arg_identifier!); - return [output]; + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null, expected non-null int.'); + try { + api.startListeningForDeviceOrientationChange(arg_isFrontFacing!, arg_sensorOrientation!); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } }); } } { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture', - codec, + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$messageChannelSuffix', pigeonChannelCodec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - // ignore message - api.releaseFlutterSurfaceTexture(); - return []; + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { + try { + api.stopListeningForDeviceOrientationChange(); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } }); } } { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.getResolutionInfo', codec, + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$messageChannelSuffix', pigeonChannelCodec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.getResolutionInfo was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.getResolutionInfo was null, expected non-null int.'); - final ResolutionInfo output = api.getResolutionInfo(arg_identifier!); - return [output]; + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { + try { + final int output = api.getDefaultDisplayRotation(); + return [output]; + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } }); } } { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.setTargetRotation', codec, + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$messageChannelSuffix', pigeonChannelCodec, binaryMessenger: binaryMessenger); if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.setTargetRotation was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.setTargetRotation was null, expected non-null int.'); - final int? arg_rotation = (args[1] as int?); - assert(arg_rotation != null, - 'Argument for dev.flutter.pigeon.PreviewHostApi.setTargetRotation was null, expected non-null int.'); - api.setTargetRotation(arg_identifier!, arg_rotation!); - return []; - }); - } - } - } -} - -abstract class TestVideoCaptureHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - int withOutput(int videoOutputId); - - int getOutput(int identifier); - - void setTargetRotation(int identifier, int rotation); - - static void setup(TestVideoCaptureHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoCaptureHostApi.withOutput', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.withOutput was null.'); - final List args = (message as List?)!; - final int? arg_videoOutputId = (args[0] as int?); - assert(arg_videoOutputId != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.withOutput was null, expected non-null int.'); - final int output = api.withOutput(arg_videoOutputId!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoCaptureHostApi.getOutput', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.getOutput was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.getOutput was null, expected non-null int.'); - final int output = api.getOutput(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation was null, expected non-null int.'); - final int? arg_rotation = (args[1] as int?); - assert(arg_rotation != null, - 'Argument for dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation was null, expected non-null int.'); - api.setTargetRotation(arg_identifier!, arg_rotation!); - return []; - }); - } - } - } -} - -abstract class TestRecorderHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create( - int identifier, int? aspectRatio, int? bitRate, int? qualitySelectorId); - - int getAspectRatio(int identifier); - - int getTargetVideoEncodingBitRate(int identifier); - - int prepareRecording(int identifier, String path); - - static void setup(TestRecorderHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.create was null, expected non-null int.'); - final int? arg_aspectRatio = (args[1] as int?); - final int? arg_bitRate = (args[2] as int?); - final int? arg_qualitySelectorId = (args[3] as int?); - api.create(arg_identifier!, arg_aspectRatio, arg_bitRate, - arg_qualitySelectorId); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.getAspectRatio', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.getAspectRatio was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.getAspectRatio was null, expected non-null int.'); - final int output = api.getAspectRatio(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate was null, expected non-null int.'); - final int output = api.getTargetVideoEncodingBitRate(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.prepareRecording', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.prepareRecording was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.prepareRecording was null, expected non-null int.'); - final String? arg_path = (args[1] as String?); - assert(arg_path != null, - 'Argument for dev.flutter.pigeon.RecorderHostApi.prepareRecording was null, expected non-null String.'); - final int output = api.prepareRecording(arg_identifier!, arg_path!); - return [output]; - }); - } - } - } -} - -abstract class TestPendingRecordingHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - int start(int identifier); - - static void setup(TestPendingRecordingHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PendingRecordingHostApi.start', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.PendingRecordingHostApi.start was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.PendingRecordingHostApi.start was null, expected non-null int.'); - final int output = api.start(arg_identifier!); - return [output]; - }); - } - } - } -} - -abstract class TestRecordingHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void close(int identifier); - - void pause(int identifier); - - void resume(int identifier); - - void stop(int identifier); - - static void setup(TestRecordingHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecordingHostApi.close', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.close was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.close was null, expected non-null int.'); - api.close(arg_identifier!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecordingHostApi.pause', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.pause was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.pause was null, expected non-null int.'); - api.pause(arg_identifier!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecordingHostApi.resume', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.resume was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.resume was null, expected non-null int.'); - api.resume(arg_identifier!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecordingHostApi.stop', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.stop was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecordingHostApi.stop was null, expected non-null int.'); - api.stop(arg_identifier!); - return []; - }); - } - } - } -} - -abstract class TestImageCaptureHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int? targetRotation, int? flashMode, - int? resolutionSelectorId); - - void setFlashMode(int identifier, int flashMode); - - Future takePicture(int identifier); - - void setTargetRotation(int identifier, int rotation); - - static void setup(TestImageCaptureHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageCaptureHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.create was null, expected non-null int.'); - final int? arg_targetRotation = (args[1] as int?); - final int? arg_flashMode = (args[2] as int?); - final int? arg_resolutionSelectorId = (args[3] as int?); - api.create(arg_identifier!, arg_targetRotation, arg_flashMode, - arg_resolutionSelectorId); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode was null, expected non-null int.'); - final int? arg_flashMode = (args[1] as int?); - assert(arg_flashMode != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode was null, expected non-null int.'); - api.setFlashMode(arg_identifier!, arg_flashMode!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageCaptureHostApi.takePicture', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.takePicture was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.takePicture was null, expected non-null int.'); - final String output = await api.takePicture(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation was null, expected non-null int.'); - final int? arg_rotation = (args[1] as int?); - assert(arg_rotation != null, - 'Argument for dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation was null, expected non-null int.'); - api.setTargetRotation(arg_identifier!, arg_rotation!); - return []; - }); - } - } - } -} - -class _TestResolutionStrategyHostApiCodec extends StandardMessageCodec { - const _TestResolutionStrategyHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is ResolutionInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return ResolutionInfo.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class TestResolutionStrategyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = - _TestResolutionStrategyHostApiCodec(); - - void create(int identifier, ResolutionInfo? boundSize, int? fallbackRule); - - static void setup(TestResolutionStrategyHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ResolutionStrategyHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ResolutionStrategyHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ResolutionStrategyHostApi.create was null, expected non-null int.'); - final ResolutionInfo? arg_boundSize = (args[1] as ResolutionInfo?); - final int? arg_fallbackRule = (args[2] as int?); - api.create(arg_identifier!, arg_boundSize, arg_fallbackRule); - return []; - }); - } - } - } -} - -abstract class TestResolutionSelectorHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int? resolutionStrategyIdentifier, - int? resolutionSelectorIdentifier, int? aspectRatioStrategyIdentifier); - - static void setup(TestResolutionSelectorHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ResolutionSelectorHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ResolutionSelectorHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ResolutionSelectorHostApi.create was null, expected non-null int.'); - final int? arg_resolutionStrategyIdentifier = (args[1] as int?); - final int? arg_resolutionSelectorIdentifier = (args[2] as int?); - final int? arg_aspectRatioStrategyIdentifier = (args[3] as int?); - api.create( - arg_identifier!, - arg_resolutionStrategyIdentifier, - arg_resolutionSelectorIdentifier, - arg_aspectRatioStrategyIdentifier); - return []; - }); - } - } - } -} - -abstract class TestAspectRatioStrategyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int preferredAspectRatio, int fallbackRule); - - static void setup(TestAspectRatioStrategyHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.AspectRatioStrategyHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null, expected non-null int.'); - final int? arg_preferredAspectRatio = (args[1] as int?); - assert(arg_preferredAspectRatio != null, - 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null, expected non-null int.'); - final int? arg_fallbackRule = (args[2] as int?); - assert(arg_fallbackRule != null, - 'Argument for dev.flutter.pigeon.AspectRatioStrategyHostApi.create was null, expected non-null int.'); - api.create( - arg_identifier!, arg_preferredAspectRatio!, arg_fallbackRule!); - return []; - }); - } - } - } -} - -abstract class TestImageAnalysisHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int? targetRotation, int? resolutionSelectorId); - - void setAnalyzer(int identifier, int analyzerIdentifier); - - void clearAnalyzer(int identifier); - - void setTargetRotation(int identifier, int rotation); - - static void setup(TestImageAnalysisHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageAnalysisHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.create was null, expected non-null int.'); - final int? arg_targetRotation = (args[1] as int?); - final int? arg_resolutionSelectorId = (args[2] as int?); - api.create( - arg_identifier!, arg_targetRotation, arg_resolutionSelectorId); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer was null, expected non-null int.'); - final int? arg_analyzerIdentifier = (args[1] as int?); - assert(arg_analyzerIdentifier != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer was null, expected non-null int.'); - api.setAnalyzer(arg_identifier!, arg_analyzerIdentifier!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer was null, expected non-null int.'); - api.clearAnalyzer(arg_identifier!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation was null, expected non-null int.'); - final int? arg_rotation = (args[1] as int?); - assert(arg_rotation != null, - 'Argument for dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation was null, expected non-null int.'); - api.setTargetRotation(arg_identifier!, arg_rotation!); - return []; - }); - } - } - } -} - -abstract class TestAnalyzerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(TestAnalyzerHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.AnalyzerHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.AnalyzerHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.AnalyzerHostApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return []; - }); - } - } - } -} - -abstract class TestObserverHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(TestObserverHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ObserverHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ObserverHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ObserverHostApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return []; - }); - } - } - } -} - -class _TestLiveDataHostApiCodec extends StandardMessageCodec { - const _TestLiveDataHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is LiveDataSupportedTypeData) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return LiveDataSupportedTypeData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class TestLiveDataHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = _TestLiveDataHostApiCodec(); - - void observe(int identifier, int observerIdentifier); - - void removeObservers(int identifier); - - int? getValue(int identifier, LiveDataSupportedTypeData type); - - static void setup(TestLiveDataHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.LiveDataHostApi.observe', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.observe was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.observe was null, expected non-null int.'); - final int? arg_observerIdentifier = (args[1] as int?); - assert(arg_observerIdentifier != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.observe was null, expected non-null int.'); - api.observe(arg_identifier!, arg_observerIdentifier!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.LiveDataHostApi.removeObservers', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.removeObservers was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.removeObservers was null, expected non-null int.'); - api.removeObservers(arg_identifier!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.LiveDataHostApi.getValue', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null, expected non-null int.'); - final LiveDataSupportedTypeData? arg_type = - (args[1] as LiveDataSupportedTypeData?); - assert(arg_type != null, - 'Argument for dev.flutter.pigeon.LiveDataHostApi.getValue was null, expected non-null LiveDataSupportedTypeData.'); - final int? output = api.getValue(arg_identifier!, arg_type!); - return [output]; - }); - } - } - } -} - -abstract class TestImageProxyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - List getPlanes(int identifier); - - void close(int identifier); - - static void setup(TestImageProxyHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageProxyHostApi.getPlanes', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageProxyHostApi.getPlanes was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageProxyHostApi.getPlanes was null, expected non-null int.'); - final List output = api.getPlanes(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageProxyHostApi.close', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageProxyHostApi.close was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageProxyHostApi.close was null, expected non-null int.'); - api.close(arg_identifier!); - return []; - }); - } - } - } -} - -class _TestQualitySelectorHostApiCodec extends StandardMessageCodec { - const _TestQualitySelectorHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is ResolutionInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else if (value is VideoQualityData) { - buffer.putUint8(129); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return ResolutionInfo.decode(readValue(buffer)!); - case 129: - return VideoQualityData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class TestQualitySelectorHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = _TestQualitySelectorHostApiCodec(); - - void create(int identifier, List videoQualityDataList, - int? fallbackStrategyId); - - ResolutionInfo getResolution(int cameraInfoId, VideoQuality quality); - - static void setup(TestQualitySelectorHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.QualitySelectorHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null, expected non-null int.'); - final List? arg_videoQualityDataList = - (args[1] as List?)?.cast(); - assert(arg_videoQualityDataList != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.create was null, expected non-null List.'); - final int? arg_fallbackStrategyId = (args[2] as int?); - api.create(arg_identifier!, arg_videoQualityDataList!, - arg_fallbackStrategyId); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.QualitySelectorHostApi.getResolution', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null.'); - final List args = (message as List?)!; - final int? arg_cameraInfoId = (args[0] as int?); - assert(arg_cameraInfoId != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null, expected non-null int.'); - final VideoQuality? arg_quality = - args[1] == null ? null : VideoQuality.values[args[1] as int]; - assert(arg_quality != null, - 'Argument for dev.flutter.pigeon.QualitySelectorHostApi.getResolution was null, expected non-null VideoQuality.'); - final ResolutionInfo output = - api.getResolution(arg_cameraInfoId!, arg_quality!); - return [output]; - }); - } - } - } -} - -abstract class TestFallbackStrategyHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, VideoQuality quality, - VideoResolutionFallbackRule fallbackRule); - - static void setup(TestFallbackStrategyHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FallbackStrategyHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null, expected non-null int.'); - final VideoQuality? arg_quality = - args[1] == null ? null : VideoQuality.values[args[1] as int]; - assert(arg_quality != null, - 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null, expected non-null VideoQuality.'); - final VideoResolutionFallbackRule? arg_fallbackRule = args[2] == null - ? null - : VideoResolutionFallbackRule.values[args[2] as int]; - assert(arg_fallbackRule != null, - 'Argument for dev.flutter.pigeon.FallbackStrategyHostApi.create was null, expected non-null VideoResolutionFallbackRule.'); - api.create(arg_identifier!, arg_quality!, arg_fallbackRule!); - return []; - }); - } - } - } -} - -abstract class TestCameraControlHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - Future enableTorch(int identifier, bool torch); - - Future setZoomRatio(int identifier, double ratio); - - Future startFocusAndMetering(int identifier, int focusMeteringActionId); - - Future cancelFocusAndMetering(int identifier); - - Future setExposureCompensationIndex(int identifier, int index); - - static void setup(TestCameraControlHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.enableTorch', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.enableTorch was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.enableTorch was null, expected non-null int.'); - final bool? arg_torch = (args[1] as bool?); - assert(arg_torch != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.enableTorch was null, expected non-null bool.'); - await api.enableTorch(arg_identifier!, arg_torch!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.setZoomRatio', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.setZoomRatio was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.setZoomRatio was null, expected non-null int.'); - final double? arg_ratio = (args[1] as double?); - assert(arg_ratio != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.setZoomRatio was null, expected non-null double.'); - await api.setZoomRatio(arg_identifier!, arg_ratio!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering was null, expected non-null int.'); - final int? arg_focusMeteringActionId = (args[1] as int?); - assert(arg_focusMeteringActionId != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering was null, expected non-null int.'); - final int? output = await api.startFocusAndMetering( - arg_identifier!, arg_focusMeteringActionId!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering was null, expected non-null int.'); - await api.cancelFocusAndMetering(arg_identifier!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex was null, expected non-null int.'); - final int? arg_index = (args[1] as int?); - assert(arg_index != null, - 'Argument for dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex was null, expected non-null int.'); - final int? output = await api.setExposureCompensationIndex( - arg_identifier!, arg_index!); - return [output]; - }); - } - } - } -} - -class _TestFocusMeteringActionHostApiCodec extends StandardMessageCodec { - const _TestFocusMeteringActionHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is MeteringPointInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return MeteringPointInfo.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class TestFocusMeteringActionHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = - _TestFocusMeteringActionHostApiCodec(); - - void create(int identifier, List meteringPointInfos, - bool? disableAutoCancel); - - static void setup(TestFocusMeteringActionHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FocusMeteringActionHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null, expected non-null int.'); - final List? arg_meteringPointInfos = - (args[1] as List?)?.cast(); - assert(arg_meteringPointInfos != null, - 'Argument for dev.flutter.pigeon.FocusMeteringActionHostApi.create was null, expected non-null List.'); - final bool? arg_disableAutoCancel = (args[2] as bool?); - api.create( - arg_identifier!, arg_meteringPointInfos!, arg_disableAutoCancel); - return []; - }); - } - } - } -} - -abstract class TestFocusMeteringResultHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - bool isFocusSuccessful(int identifier); - - static void setup(TestFocusMeteringResultHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful was null, expected non-null int.'); - final bool output = api.isFocusSuccessful(arg_identifier!); - return [output]; - }); - } - } - } -} - -abstract class TestMeteringPointHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create( - int identifier, double x, double y, double? size, int cameraInfoId); - - double getDefaultPointSize(); - - static void setup(TestMeteringPointHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.MeteringPointHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null, expected non-null int.'); - final double? arg_x = (args[1] as double?); - assert(arg_x != null, - 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null, expected non-null double.'); - final double? arg_y = (args[2] as double?); - assert(arg_y != null, - 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null, expected non-null double.'); - final double? arg_size = (args[3] as double?); - final int? arg_cameraInfoId = (args[4] as int?); - assert(arg_cameraInfoId != null, - 'Argument for dev.flutter.pigeon.MeteringPointHostApi.create was null, expected non-null int.'); - api.create( - arg_identifier!, arg_x!, arg_y!, arg_size, arg_cameraInfoId!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.MeteringPointHostApi.getDefaultPointSize', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - // ignore message - final double output = api.getDefaultPointSize(); - return [output]; - }); - } - } - } -} - -class _TestCaptureRequestOptionsHostApiCodec extends StandardMessageCodec { - const _TestCaptureRequestOptionsHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is CameraPermissionsErrorData) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else if (value is CameraStateTypeData) { - buffer.putUint8(129); - writeValue(buffer, value.encode()); - } else if (value is ExposureCompensationRange) { - buffer.putUint8(130); - writeValue(buffer, value.encode()); - } else if (value is LiveDataSupportedTypeData) { - buffer.putUint8(131); - writeValue(buffer, value.encode()); - } else if (value is MeteringPointInfo) { - buffer.putUint8(132); - writeValue(buffer, value.encode()); - } else if (value is ResolutionInfo) { - buffer.putUint8(133); - writeValue(buffer, value.encode()); - } else if (value is VideoQualityData) { - buffer.putUint8(134); - writeValue(buffer, value.encode()); - } else if (value is VideoRecordEventData) { - buffer.putUint8(135); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return CameraPermissionsErrorData.decode(readValue(buffer)!); - case 129: - return CameraStateTypeData.decode(readValue(buffer)!); - case 130: - return ExposureCompensationRange.decode(readValue(buffer)!); - case 131: - return LiveDataSupportedTypeData.decode(readValue(buffer)!); - case 132: - return MeteringPointInfo.decode(readValue(buffer)!); - case 133: - return ResolutionInfo.decode(readValue(buffer)!); - case 134: - return VideoQualityData.decode(readValue(buffer)!); - case 135: - return VideoRecordEventData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class TestCaptureRequestOptionsHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = - _TestCaptureRequestOptionsHostApiCodec(); - - void create(int identifier, Map options); - - static void setup(TestCaptureRequestOptionsHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CaptureRequestOptionsHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CaptureRequestOptionsHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CaptureRequestOptionsHostApi.create was null, expected non-null int.'); - final Map? arg_options = - (args[1] as Map?)?.cast(); - assert(arg_options != null, - 'Argument for dev.flutter.pigeon.CaptureRequestOptionsHostApi.create was null, expected non-null Map.'); - api.create(arg_identifier!, arg_options!); - return []; - }); - } - } - } -} - -abstract class TestCamera2CameraControlHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int cameraControlIdentifier); - - Future addCaptureRequestOptions( - int identifier, int captureRequestOptionsIdentifier); - - static void setup(TestCamera2CameraControlHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraControlHostApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.Camera2CameraControlHostApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.Camera2CameraControlHostApi.create was null, expected non-null int.'); - final int? arg_cameraControlIdentifier = (args[1] as int?); - assert(arg_cameraControlIdentifier != null, - 'Argument for dev.flutter.pigeon.Camera2CameraControlHostApi.create was null, expected non-null int.'); - api.create(arg_identifier!, arg_cameraControlIdentifier!); - return []; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraControlHostApi.addCaptureRequestOptions', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.Camera2CameraControlHostApi.addCaptureRequestOptions was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.Camera2CameraControlHostApi.addCaptureRequestOptions was null, expected non-null int.'); - final int? arg_captureRequestOptionsIdentifier = (args[1] as int?); - assert(arg_captureRequestOptionsIdentifier != null, - 'Argument for dev.flutter.pigeon.Camera2CameraControlHostApi.addCaptureRequestOptions was null, expected non-null int.'); - await api.addCaptureRequestOptions( - arg_identifier!, arg_captureRequestOptionsIdentifier!); - return []; - }); - } - } - } -} - -class _TestResolutionFilterHostApiCodec extends StandardMessageCodec { - const _TestResolutionFilterHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is ResolutionInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return ResolutionInfo.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class TestResolutionFilterHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = - _TestResolutionFilterHostApiCodec(); - - void createWithOnePreferredSize( - int identifier, ResolutionInfo preferredResolution); - - static void setup(TestResolutionFilterHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ResolutionFilterHostApi.createWithOnePreferredSize', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ResolutionFilterHostApi.createWithOnePreferredSize was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ResolutionFilterHostApi.createWithOnePreferredSize was null, expected non-null int.'); - final ResolutionInfo? arg_preferredResolution = - (args[1] as ResolutionInfo?); - assert(arg_preferredResolution != null, - 'Argument for dev.flutter.pigeon.ResolutionFilterHostApi.createWithOnePreferredSize was null, expected non-null ResolutionInfo.'); - api.createWithOnePreferredSize( - arg_identifier!, arg_preferredResolution!); - return []; - }); - } - } - } -} - -abstract class TestCamera2CameraInfoHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => - TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec codec = StandardMessageCodec(); - - int createFrom(int cameraInfoIdentifier); - - int getSupportedHardwareLevel(int identifier); - - String getCameraId(int identifier); - - int getSensorOrientation(int identifier); - - static void setup(TestCamera2CameraInfoHostApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraInfoHostApi.createFrom', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoHostApi.createFrom was null.'); - final List args = (message as List?)!; - final int? arg_cameraInfoIdentifier = (args[0] as int?); - assert(arg_cameraInfoIdentifier != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoHostApi.createFrom was null, expected non-null int.'); - final int output = api.createFrom(arg_cameraInfoIdentifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraInfoHostApi.getSupportedHardwareLevel', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoHostApi.getSupportedHardwareLevel was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoHostApi.getSupportedHardwareLevel was null, expected non-null int.'); - final int output = api.getSupportedHardwareLevel(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraInfoHostApi.getCameraId', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoHostApi.getCameraId was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoHostApi.getCameraId was null, expected non-null int.'); - final String output = api.getCameraId(arg_identifier!); - return [output]; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraInfoHostApi.getSensorOrientation', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger - .setMockDecodedMessageHandler(channel, - (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoHostApi.getSensorOrientation was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoHostApi.getSensorOrientation was null, expected non-null int.'); - final int output = api.getSensorOrientation(arg_identifier!); - return [output]; + _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { + try { + final String output = api.getUiOrientation(); + return [output]; + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } }); } } From a131960ac5470b71c1f21a7fabb34390134108dc Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 24 Dec 2024 21:40:22 -0500 Subject: [PATCH 006/148] compiling --- .../plugins/camerax/CameraXLibrary.g.kt | 5709 ++++++++++++ .../camerax/VideoRecordEventListener.java | 7 + .../lib/src/camerax_library2.g.dart | 7672 +++++++++++++++++ 3 files changed, 13388 insertions(+) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java create mode 100644 packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt new file mode 100644 index 00000000000..d5376393fd6 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -0,0 +1,5709 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// Autogenerated from Pigeon (v22.7.0), do not edit directly. +// See also: https://pub.dev/packages/pigeon +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") + +package io.flutter.plugins.camerax + +import android.util.Log +import io.flutter.plugin.common.BasicMessageChannel +import io.flutter.plugin.common.BinaryMessenger +import io.flutter.plugin.common.EventChannel +import io.flutter.plugin.common.MessageCodec +import io.flutter.plugin.common.StandardMethodCodec +import io.flutter.plugin.common.StandardMessageCodec +import java.io.ByteArrayOutputStream +import java.nio.ByteBuffer + +private fun wrapResult(result: Any?): List { + return listOf(result) +} + +private fun wrapError(exception: Throwable): List { + return if (exception is CameraXError) { + listOf( + exception.code, + exception.message, + exception.details + ) + } else { + listOf( + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) + ) + } +} + +private fun createConnectionError(channelName: String): CameraXError { + return CameraXError("channel-error", "Unable to establish connection on channel: '$channelName'.", "")} + +/** + * Error class for passing custom error details to Flutter via a thrown PlatformException. + * @property code The error code. + * @property message The error message. + * @property details The error details. Must be a datatype supported by the api codec. + */ +class CameraXError ( + val code: String, + override val message: String? = null, + val details: Any? = null +) : Throwable() +/** + * Maintains instances used to communicate with the corresponding objects in Dart. + * + * Objects stored in this container are represented by an object in Dart that is also stored in + * an InstanceManager with the same identifier. + * + * When an instance is added with an identifier, either can be used to retrieve the other. + * + * Added instances are added as a weak reference and a strong reference. When the strong + * reference is removed with [remove] and the weak reference is deallocated, the + * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the strong + * reference is removed and then the identifier is retrieved with the intention to pass the identifier + * to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the instance + * is recreated. The strong reference will then need to be removed manually again. + */ +@Suppress("UNCHECKED_CAST", "MemberVisibilityCanBePrivate") +class CameraXLibraryPigeonInstanceManager(private val finalizationListener: PigeonFinalizationListener) { + /** Interface for listening when a weak reference of an instance is removed from the manager. */ + interface PigeonFinalizationListener { + fun onFinalize(identifier: Long) + } + + private val identifiers = java.util.WeakHashMap() + private val weakInstances = HashMap>() + private val strongInstances = HashMap() + private val referenceQueue = java.lang.ref.ReferenceQueue() + private val weakReferencesToIdentifiers = HashMap, Long>() + private val handler = android.os.Handler(android.os.Looper.getMainLooper()) + private var nextIdentifier: Long = minHostCreatedIdentifier + private var hasFinalizationListenerStopped = false + + /** + * Modifies the time interval used to define how often this instance removes garbage collected + * weak references to native Android objects that this instance was managing. + */ + var clearFinalizedWeakReferencesInterval: Long = 3000 + set(value) { + handler.removeCallbacks { this.releaseAllFinalizedInstances() } + field = value + releaseAllFinalizedInstances() + } + + init { + handler.postDelayed( + { releaseAllFinalizedInstances() }, + clearFinalizedWeakReferencesInterval + ) + } + + companion object { + // Identifiers are locked to a specific range to avoid collisions with objects + // created simultaneously from Dart. + // Host uses identifiers >= 2^16 and Dart is expected to use values n where, + // 0 <= n < 2^16. + private const val minHostCreatedIdentifier: Long = 65536 + private const val tag = "PigeonInstanceManager" + + /** + * Instantiate a new manager with a listener for garbage collected weak + * references. + * + * When the manager is no longer needed, [stopFinalizationListener] must be called. + */ + fun create(finalizationListener: PigeonFinalizationListener): CameraXLibraryPigeonInstanceManager { + return CameraXLibraryPigeonInstanceManager(finalizationListener) + } + } + + /** + * Removes `identifier` and return its associated strongly referenced instance, if present, + * from the manager. + */ + fun remove(identifier: Long): T? { + logWarningIfFinalizationListenerHasStopped() + return strongInstances.remove(identifier) as T? + } + + /** + * Retrieves the identifier paired with an instance, if present, otherwise `null`. + * + * + * If the manager contains a strong reference to `instance`, it will return the identifier + * associated with `instance`. If the manager contains only a weak reference to `instance`, a new + * strong reference to `instance` will be added and will need to be removed again with [remove]. + * + * + * If this method returns a nonnull identifier, this method also expects the Dart + * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart instance the + * identifier is associated with. + */ + fun getIdentifierForStrongReference(instance: Any?): Long? { + logWarningIfFinalizationListenerHasStopped() + val identifier = identifiers[instance] + if (identifier != null) { + strongInstances[identifier] = instance!! + } + return identifier + } + + /** + * Adds a new instance that was instantiated from Dart. + * + * The same instance can be added multiple times, but each identifier must be unique. This + * allows two objects that are equivalent (e.g. the `equals` method returns true and their + * hashcodes are equal) to both be added. + * + * [identifier] must be >= 0 and unique. + */ + fun addDartCreatedInstance(instance: Any, identifier: Long) { + logWarningIfFinalizationListenerHasStopped() + addInstance(instance, identifier) + } + + /** + * Adds a new unique instance that was instantiated from the host platform. + * + * [identifier] must be >= 0 and unique. + */ + fun addHostCreatedInstance(instance: Any): Long { + logWarningIfFinalizationListenerHasStopped() + require(!containsInstance(instance)) { "Instance of ${instance.javaClass} has already been added." } + val identifier = nextIdentifier++ + addInstance(instance, identifier) + return identifier + } + + /** Retrieves the instance associated with identifier, if present, otherwise `null`. */ + fun getInstance(identifier: Long): T? { + logWarningIfFinalizationListenerHasStopped() + val instance = weakInstances[identifier] as java.lang.ref.WeakReference? + return instance?.get() + } + + /** Returns whether this manager contains the given `instance`. */ + fun containsInstance(instance: Any?): Boolean { + logWarningIfFinalizationListenerHasStopped() + return identifiers.containsKey(instance) + } + + /** + * Stops the periodic run of the [PigeonFinalizationListener] for instances that have been garbage + * collected. + * + * The InstanceManager can continue to be used, but the [PigeonFinalizationListener] will no + * longer be called and methods will log a warning. + */ + fun stopFinalizationListener() { + handler.removeCallbacks { this.releaseAllFinalizedInstances() } + hasFinalizationListenerStopped = true + } + + /** + * Removes all of the instances from this manager. + * + * The manager will be empty after this call returns. + */ + fun clear() { + identifiers.clear() + weakInstances.clear() + strongInstances.clear() + weakReferencesToIdentifiers.clear() + } + + /** + * Whether the [PigeonFinalizationListener] is still being called for instances that are garbage + * collected. + * + * See [stopFinalizationListener]. + */ + fun hasFinalizationListenerStopped(): Boolean { + return hasFinalizationListenerStopped + } + + private fun releaseAllFinalizedInstances() { + if (hasFinalizationListenerStopped()) { + return + } + var reference: java.lang.ref.WeakReference? + while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != null) { + val identifier = weakReferencesToIdentifiers.remove(reference) + if (identifier != null) { + weakInstances.remove(identifier) + strongInstances.remove(identifier) + finalizationListener.onFinalize(identifier) + } + } + handler.postDelayed( + { releaseAllFinalizedInstances() }, + clearFinalizedWeakReferencesInterval + ) + } + + private fun addInstance(instance: Any, identifier: Long) { + require(identifier >= 0) { "Identifier must be >= 0: $identifier" } + require(!weakInstances.containsKey(identifier)) { + "Identifier has already been added: $identifier" + } + val weakReference = java.lang.ref.WeakReference(instance, referenceQueue) + identifiers[instance] = identifier + weakInstances[identifier] = weakReference + weakReferencesToIdentifiers[weakReference] = identifier + strongInstances[identifier] = instance + } + + private fun logWarningIfFinalizationListenerHasStopped() { + if (hasFinalizationListenerStopped()) { + Log.w( + tag, + "The manager was used after calls to the PigeonFinalizationListener has been stopped." + ) + } + } +} + + +/** Generated API for managing the Dart and native `InstanceManager`s. */ +private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: BinaryMessenger) { + companion object { + /** The codec used by CameraXLibraryPigeonInstanceManagerApi. */ + val codec: MessageCodec by lazy { + CameraXLibraryPigeonCodec() + } + + /** + * Sets up an instance of `CameraXLibraryPigeonInstanceManagerApi` to handle messages from the + * `binaryMessenger`. + */ + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, instanceManager: CameraXLibraryPigeonInstanceManager?) { + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", codec) + if (instanceManager != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val identifierArg = args[0] as Long + val wrapped: List = try { + instanceManager.remove(identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", codec) + if (instanceManager != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + instanceManager.clear() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) +{ + val channelName = "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } +} +/** + * Provides implementations for each ProxyApi implementation and provides access to resources + * needed by any implementation. + */ +abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: BinaryMessenger) { + /** Whether APIs should ignore calling to Dart. */ + public var ignoreCallsToDart = false + val instanceManager: CameraXLibraryPigeonInstanceManager + private var _codec: MessageCodec? = null + val codec: MessageCodec + get() { + if (_codec == null) { + _codec = CameraXLibraryPigeonProxyApiBaseCodec(this) + } + return _codec!! + } + + init { + val api = CameraXLibraryPigeonInstanceManagerApi(binaryMessenger) + instanceManager = CameraXLibraryPigeonInstanceManager.create( + object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { + override fun onFinalize(identifier: Long) { + api.removeStrongReference(identifier) { + if (it.isFailure) { + Log.e( + "PigeonProxyApiRegistrar", + "Failed to remove Dart strong reference with identifier: $identifier" + ) + } + } + } + } + ) + } + /** + * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of + * `CameraSize` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraSize(): PigeonApiCameraSize + + /** + * An implementation of [PigeonApiResolutionInfo] used to add a new Dart instance of + * `ResolutionInfo` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiResolutionInfo(): PigeonApiResolutionInfo + + /** + * An implementation of [PigeonApiCameraIntegerRange] used to add a new Dart instance of + * `CameraIntegerRange` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraIntegerRange(): PigeonApiCameraIntegerRange + + /** + * An implementation of [PigeonApiVideoRecordEvent] used to add a new Dart instance of + * `VideoRecordEvent` to the Dart `InstanceManager`. + */ + open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent + { + return PigeonApiVideoRecordEvent(this) + } + + /** + * An implementation of [PigeonApiVideoRecordEventStart] used to add a new Dart instance of + * `VideoRecordEventStart` to the Dart `InstanceManager`. + */ + open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart + { + return PigeonApiVideoRecordEventStart(this) + } + + /** + * An implementation of [PigeonApiVideoRecordEventFinalize] used to add a new Dart instance of + * `VideoRecordEventFinalize` to the Dart `InstanceManager`. + */ + open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize + { + return PigeonApiVideoRecordEventFinalize(this) + } + + /** + * An implementation of [PigeonApiMeteringPoint] used to add a new Dart instance of + * `MeteringPoint` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiMeteringPoint(): PigeonApiMeteringPoint + + /** + * An implementation of [PigeonApiObserver] used to add a new Dart instance of + * `Observer` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiObserver(): PigeonApiObserver + + /** + * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of + * `CameraInfo` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraInfo(): PigeonApiCameraInfo + + /** + * An implementation of [PigeonApiCameraSelector] used to add a new Dart instance of + * `CameraSelector` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraSelector(): PigeonApiCameraSelector + + /** + * An implementation of [PigeonApiProcessCameraProvider] used to add a new Dart instance of + * `ProcessCameraProvider` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiProcessCameraProvider(): PigeonApiProcessCameraProvider + + /** + * An implementation of [PigeonApiUseCase] used to add a new Dart instance of + * `UseCase` to the Dart `InstanceManager`. + */ + open fun getPigeonApiUseCase(): PigeonApiUseCase + { + return PigeonApiUseCase(this) + } + + /** + * An implementation of [PigeonApiCamera] used to add a new Dart instance of + * `Camera` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCamera(): PigeonApiCamera + + /** + * An implementation of [PigeonApiPreview] used to add a new Dart instance of + * `Preview` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiPreview(): PigeonApiPreview + + /** + * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of + * `VideoCapture` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiVideoCapture(): PigeonApiVideoCapture + + /** + * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of + * `VideoOutput` to the Dart `InstanceManager`. + */ + open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput + { + return PigeonApiVideoOutput(this) + } + + /** + * An implementation of [PigeonApiRecorder] used to add a new Dart instance of + * `Recorder` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiRecorder(): PigeonApiRecorder + + /** + * An implementation of [PigeonApiVideoRecordEventListener] used to add a new Dart instance of + * `VideoRecordEventListener` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiVideoRecordEventListener(): PigeonApiVideoRecordEventListener + + /** + * An implementation of [PigeonApiPendingRecording] used to add a new Dart instance of + * `PendingRecording` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiPendingRecording(): PigeonApiPendingRecording + + /** + * An implementation of [PigeonApiRecording] used to add a new Dart instance of + * `Recording` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiRecording(): PigeonApiRecording + + /** + * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of + * `ImageCapture` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiImageCapture(): PigeonApiImageCapture + + /** + * An implementation of [PigeonApiResolutionStrategy] used to add a new Dart instance of + * `ResolutionStrategy` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiResolutionStrategy(): PigeonApiResolutionStrategy + + /** + * An implementation of [PigeonApiResolutionSelector] used to add a new Dart instance of + * `ResolutionSelector` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiResolutionSelector(): PigeonApiResolutionSelector + + /** + * An implementation of [PigeonApiAspectRatioStrategy] used to add a new Dart instance of + * `AspectRatioStrategy` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiAspectRatioStrategy(): PigeonApiAspectRatioStrategy + + /** + * An implementation of [PigeonApiCameraState] used to add a new Dart instance of + * `CameraState` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraState(): PigeonApiCameraState + + /** + * An implementation of [PigeonApiExposureState] used to add a new Dart instance of + * `ExposureState` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiExposureState(): PigeonApiExposureState + + /** + * An implementation of [PigeonApiZoomState] used to add a new Dart instance of + * `ZoomState` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiZoomState(): PigeonApiZoomState + + /** + * An implementation of [PigeonApiImageAnalysis] used to add a new Dart instance of + * `ImageAnalysis` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiImageAnalysis(): PigeonApiImageAnalysis + + /** + * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of + * `Analyzer` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiAnalyzer(): PigeonApiAnalyzer + + /** + * An implementation of [PigeonApiCameraStateStateError] used to add a new Dart instance of + * `CameraStateStateError` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraStateStateError(): PigeonApiCameraStateStateError + + /** + * An implementation of [PigeonApiLiveData] used to add a new Dart instance of + * `LiveData` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiLiveData(): PigeonApiLiveData + + /** + * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of + * `ImageProxy` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiImageProxy(): PigeonApiImageProxy + + /** + * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of + * `PlaneProxy` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiPlaneProxy(): PigeonApiPlaneProxy + + /** + * An implementation of [PigeonApiQualitySelector] used to add a new Dart instance of + * `QualitySelector` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiQualitySelector(): PigeonApiQualitySelector + + /** + * An implementation of [PigeonApiFallbackStrategy] used to add a new Dart instance of + * `FallbackStrategy` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiFallbackStrategy(): PigeonApiFallbackStrategy + + /** + * An implementation of [PigeonApiCameraControl] used to add a new Dart instance of + * `CameraControl` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraControl(): PigeonApiCameraControl + + /** + * An implementation of [PigeonApiFocusMeteringActionBuilder] used to add a new Dart instance of + * `FocusMeteringActionBuilder` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiFocusMeteringActionBuilder(): PigeonApiFocusMeteringActionBuilder + + /** + * An implementation of [PigeonApiFocusMeteringAction] used to add a new Dart instance of + * `FocusMeteringAction` to the Dart `InstanceManager`. + */ + open fun getPigeonApiFocusMeteringAction(): PigeonApiFocusMeteringAction + { + return PigeonApiFocusMeteringAction(this) + } + + /** + * An implementation of [PigeonApiFocusMeteringResult] used to add a new Dart instance of + * `FocusMeteringResult` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiFocusMeteringResult(): PigeonApiFocusMeteringResult + + /** + * An implementation of [PigeonApiCaptureRequest] used to add a new Dart instance of + * `CaptureRequest` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCaptureRequest(): PigeonApiCaptureRequest + + /** + * An implementation of [PigeonApiCaptureRequestKey] used to add a new Dart instance of + * `CaptureRequestKey` to the Dart `InstanceManager`. + */ + open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey + { + return PigeonApiCaptureRequestKey(this) + } + + /** + * An implementation of [PigeonApiCaptureRequestOptions] used to add a new Dart instance of + * `CaptureRequestOptions` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCaptureRequestOptions(): PigeonApiCaptureRequestOptions + + /** + * An implementation of [PigeonApiCamera2CameraControl] used to add a new Dart instance of + * `Camera2CameraControl` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCamera2CameraControl(): PigeonApiCamera2CameraControl + + /** + * An implementation of [PigeonApiResolutionFilter] used to add a new Dart instance of + * `ResolutionFilter` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiResolutionFilter(): PigeonApiResolutionFilter + + /** + * An implementation of [PigeonApiCameraCharacteristicsKey] used to add a new Dart instance of + * `CameraCharacteristicsKey` to the Dart `InstanceManager`. + */ + open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey + { + return PigeonApiCameraCharacteristicsKey(this) + } + + /** + * An implementation of [PigeonApiCameraCharacteristics] used to add a new Dart instance of + * `CameraCharacteristics` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraCharacteristics(): PigeonApiCameraCharacteristics + + /** + * An implementation of [PigeonApiCamera2CameraInfo] used to add a new Dart instance of + * `Camera2CameraInfo` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCamera2CameraInfo(): PigeonApiCamera2CameraInfo + + fun setUp() { + CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, instanceManager) + PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSize()) + PigeonApiResolutionInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionInfo()) + PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraIntegerRange()) + PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPoint()) + PigeonApiObserver.setUpMessageHandlers(binaryMessenger, getPigeonApiObserver()) + PigeonApiCameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraInfo()) + PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSelector()) + PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, getPigeonApiProcessCameraProvider()) + PigeonApiCamera.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera()) + PigeonApiPreview.setUpMessageHandlers(binaryMessenger, getPigeonApiPreview()) + PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoCapture()) + PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, getPigeonApiRecorder()) + PigeonApiVideoRecordEventListener.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoRecordEventListener()) + PigeonApiPendingRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiPendingRecording()) + PigeonApiRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiRecording()) + PigeonApiImageCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiImageCapture()) + PigeonApiResolutionStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionStrategy()) + PigeonApiResolutionSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionSelector()) + PigeonApiAspectRatioStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiAspectRatioStrategy()) + PigeonApiImageAnalysis.setUpMessageHandlers(binaryMessenger, getPigeonApiImageAnalysis()) + PigeonApiAnalyzer.setUpMessageHandlers(binaryMessenger, getPigeonApiAnalyzer()) + PigeonApiLiveData.setUpMessageHandlers(binaryMessenger, getPigeonApiLiveData()) + PigeonApiImageProxy.setUpMessageHandlers(binaryMessenger, getPigeonApiImageProxy()) + PigeonApiQualitySelector.setUpMessageHandlers(binaryMessenger, getPigeonApiQualitySelector()) + PigeonApiFallbackStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiFallbackStrategy()) + PigeonApiCameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraControl()) + PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers(binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) + PigeonApiCaptureRequest.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequest()) + PigeonApiCaptureRequestOptions.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequestOptions()) + PigeonApiCamera2CameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraControl()) + PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionFilter()) + PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraCharacteristics()) + PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraInfo()) + } + fun tearDown() { + CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, null) + PigeonApiResolutionInfo.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, null) + PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, null) + PigeonApiObserver.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCameraInfo.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, null) + PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCamera.setUpMessageHandlers(binaryMessenger, null) + PigeonApiPreview.setUpMessageHandlers(binaryMessenger, null) + PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, null) + PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, null) + PigeonApiVideoRecordEventListener.setUpMessageHandlers(binaryMessenger, null) + PigeonApiPendingRecording.setUpMessageHandlers(binaryMessenger, null) + PigeonApiRecording.setUpMessageHandlers(binaryMessenger, null) + PigeonApiImageCapture.setUpMessageHandlers(binaryMessenger, null) + PigeonApiResolutionStrategy.setUpMessageHandlers(binaryMessenger, null) + PigeonApiResolutionSelector.setUpMessageHandlers(binaryMessenger, null) + PigeonApiAspectRatioStrategy.setUpMessageHandlers(binaryMessenger, null) + PigeonApiImageAnalysis.setUpMessageHandlers(binaryMessenger, null) + PigeonApiAnalyzer.setUpMessageHandlers(binaryMessenger, null) + PigeonApiLiveData.setUpMessageHandlers(binaryMessenger, null) + PigeonApiImageProxy.setUpMessageHandlers(binaryMessenger, null) + PigeonApiQualitySelector.setUpMessageHandlers(binaryMessenger, null) + PigeonApiFallbackStrategy.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCameraControl.setUpMessageHandlers(binaryMessenger, null) + PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCaptureRequest.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCaptureRequestOptions.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCamera2CameraControl.setUpMessageHandlers(binaryMessenger, null) + PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, null) + PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, null) + } +} +private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibraryPigeonProxyApiRegistrar) : CameraXLibraryPigeonCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return when (type) { + 128.toByte() -> { + return registrar.instanceManager.getInstance(readValue(buffer) as Long) + } + else -> super.readValueOfType(type, buffer) + } + } + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + if (value is Boolean || value is ByteArray || value is Double || value is DoubleArray || value is FloatArray || value is Int || value is IntArray || value is List<*> || value is Long || value is LongArray || value is Map<*, *> || value is String || value is CameraStateType || value is LiveDataSupportedType || value is VideoQuality || value is MeteringMode || value is LensFacing || value is FlashMode || value is ResolutionStrategyFallbackRule || value is AspectRatioStrategyFallbackRule || value is CameraStateErrorCode || value == null) { + super.writeValue(stream, value) + return + } + + if (value is android.util.Size) { + registrar.getPigeonApiCameraSize().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ResolutionInfo) { + registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) { } + } + else if (value is android.util.Range<*>) { + registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoRecordEvent.Start) { + registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { + registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoRecordEvent) { + registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.MeteringPoint) { + registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) { } + } + else if (value is androidx.lifecycle.Observer<*>) { + registrar.getPigeonApiObserver().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraInfo) { + registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraSelector) { + registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { + registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.Camera) { + registrar.getPigeonApiCamera().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.Preview) { + registrar.getPigeonApiPreview().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoCapture<*>) { + registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.Recorder) { + registrar.getPigeonApiRecorder().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoOutput) { + registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) { } + } + else if (value is VideoRecordEventListener) { + registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.PendingRecording) { + registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.Recording) { + registrar.getPigeonApiRecording().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageCapture) { + registrar.getPigeonApiImageCapture().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { + registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { + registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { + registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraState) { + registrar.getPigeonApiCameraState().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ExposureState) { + registrar.getPigeonApiExposureState().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ZoomState) { + registrar.getPigeonApiZoomState().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageAnalysis) { + registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.UseCase) { + registrar.getPigeonApiUseCase().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { + registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraState.StateError) { + registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) { } + } + else if (value is androidx.lifecycle.LiveData<*>) { + registrar.getPigeonApiLiveData().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageProxy) { + registrar.getPigeonApiImageProxy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { + registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.QualitySelector) { + registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.FallbackStrategy) { + registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraControl) { + registrar.getPigeonApiCameraControl().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.FocusMeteringAction.Builder) { + registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.FocusMeteringAction) { + registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.FocusMeteringResult) { + registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CaptureRequest) { + registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { + registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { + registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { + registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { + registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { + registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CameraCharacteristics) { + registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { + registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) { } + } + + when { + registrar.instanceManager.containsInstance(value) -> { + stream.write(128) + writeValue(stream, registrar.instanceManager.getIdentifierForStrongReference(value)) + } + else -> throw IllegalArgumentException("Unsupported value: '$value' of type '${value.javaClass.name}'") + } + } +} + +/** + * The states the camera can be in. + * + * See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. + */ +enum class CameraStateType(val raw: Int) { + /** Represents a state where the camera device is closed. */ + CLOSED(0), + /** Represents a state where the camera device is currently closing. */ + CLOSING(1), + /** Represents a state where the camera device is open. */ + OPEN(2), + /** Represents a state where the camera device is currently opening. */ + OPENING(3), + /** + * Represents a state where the camera is waiting for a signal to attempt to + * open the camera device. + */ + PENDING_OPEN(4), + /** This value is not recognized by this wrapper. */ + UNKNOWN(5); + + companion object { + fun ofRaw(raw: Int): CameraStateType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** The types (T) properly wrapped to be used as a LiveData. */ +enum class LiveDataSupportedType(val raw: Int) { + CAMERA_STATE(0), + ZOOM_STATE(1); + + companion object { + fun ofRaw(raw: Int): LiveDataSupportedType? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** + * Video quality constraints that will be used by a QualitySelector to choose + * an appropriate video resolution. + * + * These are pre-defined quality constants that are universally used for video. + * + * See https://developer.android.com/reference/androidx/camera/video/Quality. + */ +enum class VideoQuality(val raw: Int) { + /** Standard Definition (SD) 480p video quality. */ + SD(0), + /** High Definition (HD) 720p video quality. */ + HD(1), + /** Full High Definition (FHD) 1080p video quality. */ + FHD(2), + /** Ultra High Definition (UHD) 2160p video quality. */ + UHD(3), + /** The lowest video quality supported by the video frame producer. */ + LOWEST(4), + /** The highest video quality supported by the video frame producer. */ + HIGHEST(5); + + companion object { + fun ofRaw(raw: Int): VideoQuality? { + return values().firstOrNull { it.raw == raw } + } + } +} + +enum class MeteringMode(val raw: Int) { + /** + * A flag used in metering mode indicating the AE (Auto Exposure) region is + * enabled. + */ + AE(0), + /** + * A flag used in metering mode indicating the AF (Auto Focus) region is + * enabled. + */ + AF(1), + /** + * A flag used in metering mode indicating the AWB (Auto White Balance) + * region is enabled. + */ + AWB(2); + + companion object { + fun ofRaw(raw: Int): MeteringMode? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** Direction of lens of a camera. */ +enum class LensFacing(val raw: Int) { + /** A camera on the device facing the same direction as the device's screen. */ + FRONT(0), + /** + * A camera on the device facing the opposite direction as the device's + * screen. + */ + BACK(1), + /** + * An external camera that has no fixed facing relative to the device's + * screen. + */ + EXTERNAL(2), + /** A camera on the devices that its lens facing is resolved. */ + UNKNOWN(3); + + companion object { + fun ofRaw(raw: Int): LensFacing? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** + * FlashModes for image capture. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). + */ +enum class FlashMode(val raw: Int) { + /** + * Auto flash. + * + * The flash will be used according to the camera system's determination when + * taking a picture. + */ + AUTO(0), + /** + * No flash. + * + * The flash will never be used when taking a picture. + */ + OFF(1), + /** + * Always flash. + * + * The flash will always be used when taking a picture. + */ + ON(2), + /** + * Screen flash. + * + * Display screen brightness will be used as alternative to flash when taking + * a picture with front camera. + */ + SCREEN(3); + + companion object { + fun ofRaw(raw: Int): FlashMode? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** + * Fallback rule for choosing an alternate size when the specified bound size + * is unavailable. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + */ +enum class ResolutionStrategyFallbackRule(val raw: Int) { + /** + * When the specified bound size is unavailable, CameraX falls back to the + * closest higher resolution size. + */ + CLOSEST_HIGHER(0), + /** + * When the specified bound size is unavailable, CameraX falls back to select + * the closest higher resolution size. + */ + CLOSEST_HIGHER_THEN_LOWER(1), + /** + * When the specified bound size is unavailable, CameraX falls back to the + * closest lower resolution size. + */ + CLOSEST_LOWER(2), + /** + * When the specified bound size is unavailable, CameraX falls back to select + * the closest lower resolution size. + */ + CLOSEST_LOWER_THEN_HIGHER(3), + /** + * CameraX doesn't select an alternate size when the specified bound size is + * unavailable. + */ + NONE(4); + + companion object { + fun ofRaw(raw: Int): ResolutionStrategyFallbackRule? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** + * Fallback rule for choosing the aspect ratio when the preferred aspect ratio + * is not available. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). + */ +enum class AspectRatioStrategyFallbackRule(val raw: Int) { + /** + * CameraX automatically chooses the next best aspect ratio which contains + * the closest field of view (FOV) of the camera sensor, from the remaining + * options. + */ + AUTO(0), + /** + * CameraX doesn't fall back to select sizes of any other aspect ratio when + * this fallback rule is used. + */ + NONE(1); + + companion object { + fun ofRaw(raw: Int): AspectRatioStrategyFallbackRule? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** + * Code for a `CameraState` error. + * + * https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() + */ +enum class CameraStateErrorCode(val raw: Int) { + /** + * An error indicating that the camera device could not be opened due to a + * device policy. + */ + DISABLED(0), + /** + * An error indicating that the camera device was closed due to a fatal + * error. + */ + FATAL_ERROR(1), + /** An error indicating that the camera device is already in use. */ + IN_USE(2), + /** + * An error indicating that the camera could not be opened because "Do Not + * Disturb" mode is enabled on devices affected by a bug in Android 9 (API + * level 28). + */ + DO_NOT_DISTURB_MODE_ENABLED(3), + /** + * An error indicating that the limit number of open cameras has been + * reached, and more cameras cannot be opened until other instances are + * closed. + */ + MAX_CAMERAS_IN_USE(4), + /** + * An error indicating that the camera device has encountered a recoverable + * error. + */ + OTHER_RECOVERABLE_ERROR(5), + /** An error indicating that configuring the camera has failed. */ + STREAM_CONFIG(6), + /** The value is not recognized by this wrapper. */ + UNKNOWN(7); + + companion object { + fun ofRaw(raw: Int): CameraStateErrorCode? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** Generated class from Pigeon that represents data sent in messages. */ +data class CameraPermissionsErrorData ( + val errorCode: String, + val description: String +) + { + companion object { + fun fromList(pigeonVar_list: List): CameraPermissionsErrorData { + val errorCode = pigeonVar_list[0] as String + val description = pigeonVar_list[1] as String + return CameraPermissionsErrorData(errorCode, description) + } + } + fun toList(): List { + return listOf( + errorCode, + description, + ) + } +} +private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { + override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { + return when (type) { + 129.toByte() -> { + return (readValue(buffer) as Long?)?.let { + CameraStateType.ofRaw(it.toInt()) + } + } + 130.toByte() -> { + return (readValue(buffer) as Long?)?.let { + LiveDataSupportedType.ofRaw(it.toInt()) + } + } + 131.toByte() -> { + return (readValue(buffer) as Long?)?.let { + VideoQuality.ofRaw(it.toInt()) + } + } + 132.toByte() -> { + return (readValue(buffer) as Long?)?.let { + MeteringMode.ofRaw(it.toInt()) + } + } + 133.toByte() -> { + return (readValue(buffer) as Long?)?.let { + LensFacing.ofRaw(it.toInt()) + } + } + 134.toByte() -> { + return (readValue(buffer) as Long?)?.let { + FlashMode.ofRaw(it.toInt()) + } + } + 135.toByte() -> { + return (readValue(buffer) as Long?)?.let { + ResolutionStrategyFallbackRule.ofRaw(it.toInt()) + } + } + 136.toByte() -> { + return (readValue(buffer) as Long?)?.let { + AspectRatioStrategyFallbackRule.ofRaw(it.toInt()) + } + } + 137.toByte() -> { + return (readValue(buffer) as Long?)?.let { + CameraStateErrorCode.ofRaw(it.toInt()) + } + } + 138.toByte() -> { + return (readValue(buffer) as? List)?.let { + CameraPermissionsErrorData.fromList(it) + } + } + else -> super.readValueOfType(type, buffer) + } + } + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + when (value) { + is CameraStateType -> { + stream.write(129) + writeValue(stream, value.raw) + } + is LiveDataSupportedType -> { + stream.write(130) + writeValue(stream, value.raw) + } + is VideoQuality -> { + stream.write(131) + writeValue(stream, value.raw) + } + is MeteringMode -> { + stream.write(132) + writeValue(stream, value.raw) + } + is LensFacing -> { + stream.write(133) + writeValue(stream, value.raw) + } + is FlashMode -> { + stream.write(134) + writeValue(stream, value.raw) + } + is ResolutionStrategyFallbackRule -> { + stream.write(135) + writeValue(stream, value.raw) + } + is AspectRatioStrategyFallbackRule -> { + stream.write(136) + writeValue(stream, value.raw) + } + is CameraStateErrorCode -> { + stream.write(137) + writeValue(stream, value.raw) + } + is CameraPermissionsErrorData -> { + stream.write(138) + writeValue(stream, value.toList()) + } + else -> super.writeValue(stream, value) + } + } +} + + +/** + * Immutable class for describing width and height dimensions in pixels. + * + * See https://developer.android.com/reference/android/util/Size.html. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(width: Long, height: Long): android.util.Size + + /** The width of the size (in pixels). */ + abstract fun width(pigeon_instance: android.util.Size): Long + + /** The height of the size (in pixels). */ + abstract fun height(pigeon_instance: android.util.Size): Long + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSize?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val widthArg = args[1] as Long + val heightArg = args[2] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(widthArg,heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraSize and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val widthArg = width(pigeon_instanceArg) + val heightArg = height(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, widthArg, heightArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A `ResolutionInfo` allows the application to know the resolution information + * of a specific use case. + * + * See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(resolution: android.util.Size): androidx.camera.core.ResolutionInfo + + /** Returns the output resolution used for the use case. */ + abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionInfo?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val resolutionArg = args[1] as android.util.Size + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionArg = resolution(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, resolutionArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * Immutable class for describing the range of two integer values. + * + * This is the equivalent to `android.util.Range`. + * + * See https://developer.android.com/reference/android/util/Range.html. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(lower: Long, upper: Long): android.util.Range<*> + + /** The lower endpoint. */ + abstract fun lower(pigeon_instance: android.util.Range<*>): Long + + /** The upper endpoint. */ + abstract fun upper(pigeon_instance: android.util.Range<*>): Long + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraIntegerRange?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val lowerArg = args[1] as Long + val upperArg = args[2] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(lowerArg,upperArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: android.util.Range<*>, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val lowerArg = lower(pigeon_instanceArg) + val upperArg = upper(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, lowerArg, upperArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * VideoRecordEvent is used to report video recording events and status. + * + * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. + */ +@Suppress("UNCHECKED_CAST") +open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * Indicates the start of recording. + * + * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Start. + */ +@Suppress("UNCHECKED_CAST") +open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + + @Suppress("FunctionName") + /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent + { + return pigeonRegistrar.getPigeonApiVideoRecordEvent() + } + +} +/** + * Indicates the finalization of recording. + * + * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. + */ +@Suppress("UNCHECKED_CAST") +open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + + @Suppress("FunctionName") + /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent + { + return pigeonRegistrar.getPigeonApiVideoRecordEvent() + } + +} +/** + * A MeteringPoint is used to specify a region which can then be converted to + * sensor coordinate system for focus and metering purpose. + * + * See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Creates a MeteringPoint by x, y. */ + abstract fun pigeon_defaultConstructor(x: Double, y: Double): androidx.camera.core.MeteringPoint + + /** Creates a MeteringPoint by x, y, size. */ + abstract fun withSize(x: Double, y: Double, size: Double): androidx.camera.core.MeteringPoint + + /** + * Size of the MeteringPoint width and height (ranging from 0 to 1). + * + * It is the percentage of the sensor width/height (or crop region + * width/height if crop region is set). + */ + abstract fun getSize(pigeon_instance: androidx.camera.core.MeteringPoint): Double + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPoint?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val xArg = args[1] as Double + val yArg = args[2] as Double + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(xArg,yArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.withSize", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val xArg = args[1] as Double + val yArg = args[2] as Double + val sizeArg = args[3] as Double + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withSize(xArg,yArg,sizeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPoint + val wrapped: List = try { + listOf(api.getSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of MeteringPoint and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPoint, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A simple callback that can receive from LiveData. + * + * See https://developer.android.com/reference/androidx/lifecycle/Observer. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(type: LiveDataSupportedType): androidx.lifecycle.Observer<*> + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiObserver?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val typeArg = args[1] as LiveDataSupportedType + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(typeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of Observer and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.lifecycle.Observer<*>, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + throw IllegalStateException("Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.") + } + + /** Called when the data is changed to value. */ + fun onChanged(pigeon_instanceArg: androidx.lifecycle.Observer<*>, valueArg: Any, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Observer.onChanged" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_instanceArg, valueArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * An interface for retrieving camera information. + * + * See https://developer.android.com/reference/androidx/camera/core/CameraInfo. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Returns the sensor rotation in degrees, relative to the device's "natural" + * (default) orientation. + */ + abstract fun sensorRotationDegrees(pigeon_instance: androidx.camera.core.CameraInfo): Long + + /** Returns a ExposureState. */ + abstract fun exposureState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.camera.core.ExposureState + + /** A LiveData of the camera's state. */ + abstract fun getCameraState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.lifecycle.LiveData<*> + + /** A LiveData of ZoomState. */ + abstract fun getZoomState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.lifecycle.LiveData<*> + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraInfo?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo + val wrapped: List = try { + listOf(api.getCameraState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo + val wrapped: List = try { + listOf(api.getZoomState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraInfo and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraInfo, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) + val exposureStateArg = exposureState(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, sensorRotationDegreesArg, exposureStateArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A set of requirements and priorities used to select a camera or return a + * filtered set of cameras. + * + * See https://developer.android.com/reference/androidx/camera/core/CameraSelector. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(requireLensFacing: LensFacing?): androidx.camera.core.CameraSelector + + /** A static `CameraSelector` that selects the default back facing camera. */ + abstract fun defaultBackCamera(): androidx.camera.core.CameraSelector + + /** A static `CameraSelector` that selects the default front facing camera. */ + abstract fun defaultFrontCamera(): androidx.camera.core.CameraSelector + + /** + * Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the + * selector. + */ + abstract fun filter(pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List): List + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSelector?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val requireLensFacingArg = args[1] as LensFacing? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultBackCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultFrontCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraSelector + val cameraInfosArg = args[1] as List + val wrapped: List = try { + listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraSelector and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraSelector, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A singleton which can be used to bind the lifecycle of cameras to any + * `LifecycleOwner` within an application's process. + * + * See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Retrieves the ProcessCameraProvider associated with the current process. */ + abstract fun getInstance(callback: (Result) -> Unit) + + /** The `CameraInfo` instances of the available cameras. */ + abstract fun getAvailableCameraInfos(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider): List + + /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ + abstract fun bindToLifecycle(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelectorIdentifier: androidx.camera.core.CameraSelector, useCases: List): androidx.camera.core.Camera + + /** Returns true if the `UseCase` is bound to a lifecycle. */ + abstract fun isBound(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase): Boolean + + /** Unbinds all specified use cases from the lifecycle provider. */ + abstract fun unbind(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCases: List) + + /** + * Unbinds all use cases from the lifecycle provider and removes them from + * CameraX. + */ + abstract fun unbindAll(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiProcessCameraProvider?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + api.getInstance{ result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + val data = result.getOrNull() + reply.reply(wrapResult(data)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val wrapped: List = try { + listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val cameraSelectorIdentifierArg = args[1] as androidx.camera.core.CameraSelector + val useCasesArg = args[2] as List + val wrapped: List = try { + listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorIdentifierArg, useCasesArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val useCaseArg = args[1] as androidx.camera.core.UseCase + val wrapped: List = try { + listOf(api.isBound(pigeon_instanceArg, useCaseArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val useCasesArg = args[1] as List + val wrapped: List = try { + api.unbind(pigeon_instanceArg, useCasesArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val wrapped: List = try { + api.unbindAll(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * The use case which all other use cases are built on top of. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase. + */ +@Suppress("UNCHECKED_CAST") +open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * The camera interface is used to control the flow of data to use cases, + * control the camera via the `CameraControl`, and publish the state of the + * camera via CameraInfo. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The `CameraControl` for the Camera. */ + abstract fun cameraControl(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraControl + + /** Returns information about this camera. */ + abstract fun getCameraInfo(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraInfo + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.Camera + val wrapped: List = try { + listOf(api.getCameraInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of Camera and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Camera, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val cameraControlArg = cameraControl(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, cameraControlArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface SystemServicesHostApi { + fun requestCameraPermissions(enableAudio: Boolean, callback: (Result) -> Unit) + fun getTempFilePath(prefix: String, suffix: String): String + fun isPreviewPreTransformed(): Boolean + + companion object { + /** The codec used by SystemServicesHostApi. */ + val codec: MessageCodec by lazy { + CameraXLibraryPigeonCodec() + } + /** Sets up an instance of `SystemServicesHostApi` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: SystemServicesHostApi?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val enableAudioArg = args[0] as Boolean + api.requestCameraPermissions(enableAudioArg) { result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + val data = result.getOrNull() + reply.reply(wrapResult(data)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val prefixArg = args[0] as String + val suffixArg = args[1] as String + val wrapped: List = try { + listOf(api.getTempFilePath(prefixArg, suffixArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.isPreviewPreTransformed$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.isPreviewPreTransformed()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated class from Pigeon that represents Flutter messages that can be called from Kotlin. */ +class SystemServicesFlutterApi(private val binaryMessenger: BinaryMessenger, private val messageChannelSuffix: String = "") { + companion object { + /** The codec used by SystemServicesFlutterApi. */ + val codec: MessageCodec by lazy { + CameraXLibraryPigeonCodec() + } + } + fun onCameraError(errorDescriptionArg: String, callback: (Result) -> Unit) +{ + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesFlutterApi.onCameraError$separatedMessageChannelSuffix" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(errorDescriptionArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } +} +/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ +interface DeviceOrientationManagerHostApi { + fun startListeningForDeviceOrientationChange(isFrontFacing: Boolean, sensorOrientation: Long) + fun stopListeningForDeviceOrientationChange() + fun getDefaultDisplayRotation(): Long + fun getUiOrientation(): String + + companion object { + /** The codec used by DeviceOrientationManagerHostApi. */ + val codec: MessageCodec by lazy { + CameraXLibraryPigeonCodec() + } + /** Sets up an instance of `DeviceOrientationManagerHostApi` to handle messages through the `binaryMessenger`. */ + @JvmOverloads + fun setUp(binaryMessenger: BinaryMessenger, api: DeviceOrientationManagerHostApi?, messageChannelSuffix: String = "") { + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val isFrontFacingArg = args[0] as Boolean + val sensorOrientationArg = args[1] as Long + val wrapped: List = try { + api.startListeningForDeviceOrientationChange(isFrontFacingArg, sensorOrientationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + api.stopListeningForDeviceOrientationChange() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getDefaultDisplayRotation()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$separatedMessageChannelSuffix", codec) + if (api != null) { + channel.setMessageHandler { _, reply -> + val wrapped: List = try { + listOf(api.getUiOrientation()) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } +} +/** Generated class from Pigeon that represents Flutter messages that can be called from Kotlin. */ +class DeviceOrientationManagerFlutterApi(private val binaryMessenger: BinaryMessenger, private val messageChannelSuffix: String = "") { + companion object { + /** The codec used by DeviceOrientationManagerFlutterApi. */ + val codec: MessageCodec by lazy { + CameraXLibraryPigeonCodec() + } + } + fun onDeviceOrientationChanged(orientationArg: String, callback: (Result) -> Unit) +{ + val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged$separatedMessageChannelSuffix" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(orientationArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } +} +/** + * A use case that provides a camera preview stream for displaying on-screen. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(targetRotation: Long?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.Preview + + /** + * Sets a SurfaceProvider to provide a Surface for Preview. + * + * This is a convenience function that + * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the + * Flutter engine. + * 2. Sets this method with the created `SurfaceProvider`. + * 3. Returns the texture id of the `TextureEntry` that provided the + * `SurfaceProducer`. + */ + abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview): Long + + /** + * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was + * created. + */ + abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) + + /** Gets selected resolution information of the `Preview`. */ + abstract fun getResolutionInfo(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.ResolutionInfo? + + /** Sets the target rotation. */ + abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPreview?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val targetRotationArg = args[1] as Long? + val resolutionSelectorArg = args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,resolutionSelectorArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val wrapped: List = try { + listOf(api.setSurfaceProvider(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val wrapped: List = try { + api.releaseSurfaceProvider(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val wrapped: List = try { + listOf(api.getResolutionInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val rotationArg = args[1] as Long + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of Preview and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Preview, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + + @Suppress("FunctionName") + /** An implementation of [PigeonApiUseCase] used to access callback methods */ + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { + return pigeonRegistrar.getPigeonApiUseCase() + } + +} +/** + * A use case that provides camera stream suitable for video application. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Create a `VideoCapture` associated with the given `VideoOutput`. */ + abstract fun withOutput(videoOutput: androidx.camera.video.VideoOutput): androidx.camera.video.VideoCapture<*> + + /** Gets the VideoOutput associated with this VideoCapture. */ + abstract fun getOutput(pigeon_instance: androidx.camera.video.VideoCapture<*>): androidx.camera.video.VideoOutput + + /** Sets the desired rotation of the output video. */ + abstract fun setTargetRotation(pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoCapture?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val videoOutputArg = args[1] as androidx.camera.video.VideoOutput + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withOutput(videoOutputArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> + val wrapped: List = try { + listOf(api.getOutput(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> + val rotationArg = args[1] as Long + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of VideoCapture and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + + @Suppress("FunctionName") + /** An implementation of [PigeonApiUseCase] used to access callback methods */ + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { + return pigeonRegistrar.getPigeonApiUseCase() + } + +} +/** + * A class that will produce video data from a Surface. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoOutput. + */ +@Suppress("UNCHECKED_CAST") +open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of VideoOutput and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoOutput, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * An implementation of `VideoOutput` for starting video recordings that are + * saved to a File, ParcelFileDescriptor, or MediaStore. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(aspectRatio: Long?, targetVideoEncodingBitRate: Long?, qualitySelector: androidx.camera.video.QualitySelector?): androidx.camera.video.Recorder + + /** Gets the aspect ratio of this Recorder. */ + abstract fun getAspectRatio(pigeon_instance: androidx.camera.video.Recorder): Long + + /** Gets the target video encoding bitrate of this Recorder. */ + abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long + + /** Prepares a recording that will be saved to a File. */ + abstract fun prepareRecording(pigeon_instance: androidx.camera.video.Recorder, path: String): androidx.camera.video.PendingRecording + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecorder?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val aspectRatioArg = args[1] as Long? + val targetVideoEncodingBitRateArg = args[2] as Long? + val qualitySelectorArg = args[3] as androidx.camera.video.QualitySelector? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioArg,targetVideoEncodingBitRateArg,qualitySelectorArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder + val wrapped: List = try { + listOf(api.getAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder + val wrapped: List = try { + listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder + val pathArg = args[1] as String + val wrapped: List = try { + listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of Recorder and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recorder, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + + @Suppress("FunctionName") + /** An implementation of [PigeonApiVideoOutput] used to access callback methods */ + fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput + { + return pigeonRegistrar.getPigeonApiVideoOutput() + } + +} +/** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(): VideoRecordEventListener + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoRecordEventListener?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: VideoRecordEventListener, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + throw IllegalStateException("Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.") + } + + fun onEvent(pigeon_instanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_instanceArg, eventArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A recording that can be started at a future time. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Starts the recording, making it an active recording. */ + abstract fun start(pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener): androidx.camera.video.Recording + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPendingRecording?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording + val listenerArg = args[1] as VideoRecordEventListener + val wrapped: List = try { + listOf(api.start(pigeon_instanceArg, listenerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of PendingRecording and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.PendingRecording, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * Provides controls for the currently active recording. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/video/Recording. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Close this recording. */ + abstract fun close(pigeon_instance: androidx.camera.video.Recording) + + /** Pauses the current recording if active. */ + abstract fun pause(pigeon_instance: androidx.camera.video.Recording) + + /** Resumes the current recording if paused. */ + abstract fun resume(pigeon_instance: androidx.camera.video.Recording) + + /** + * Stops the recording, as if calling `close`. + * + * This method is equivalent to calling `close`. + */ + abstract fun stop(pigeon_instance: androidx.camera.video.Recording) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecording?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.Recording + val wrapped: List = try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.Recording + val wrapped: List = try { + api.pause(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.resume", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.Recording + val wrapped: List = try { + api.resume(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.Recording + val wrapped: List = try { + api.stop(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of Recording and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recording, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A use case for taking a picture. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(targetRotation: Long?, flashMode: FlashMode?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageCapture + + /** Set the flash mode. */ + abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: FlashMode) + + /** Captures a new still image for in memory access. */ + abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) + + /** Sets the desired rotation of the output image. */ + abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageCapture?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val targetRotationArg = args[1] as Long? + val flashModeArg = args[2] as FlashMode? + val resolutionSelectorArg = args[3] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,flashModeArg,resolutionSelectorArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture + val flashModeArg = args[1] as FlashMode + val wrapped: List = try { + api.setFlashMode(pigeon_instanceArg, flashModeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture + api.takePicture(pigeon_instanceArg) { result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + val data = result.getOrNull() + reply.reply(wrapResult(data)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture + val rotationArg = args[1] as Long + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ImageCapture and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + + @Suppress("FunctionName") + /** An implementation of [PigeonApiUseCase] used to access callback methods */ + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { + return pigeonRegistrar.getPigeonApiUseCase() + } + +} +/** + * The resolution strategy defines the resolution selection sequence to select + * the best size. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(boundSize: android.util.Size, fallbackRule: ResolutionStrategyFallbackRule): androidx.camera.core.resolutionselector.ResolutionStrategy + + abstract fun highestAvailableStrategy(): androidx.camera.core.resolutionselector.ResolutionStrategy + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionStrategy?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val boundSizeArg = args[1] as android.util.Size + val fallbackRuleArg = args[2] as ResolutionStrategyFallbackRule + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(boundSizeArg,fallbackRuleArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.highestAvailableStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A set of requirements and priorities used to select a resolution for the + * `UseCase`. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?, resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?): androidx.camera.core.resolutionselector.ResolutionSelector + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionSelector?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val aspectRatioStrategyArg = args[1] as androidx.camera.core.resolutionselector.AspectRatioStrategy? + val resolutionStrategyArg = args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val resolutionFilterArg = args[3] as androidx.camera.core.resolutionselector.ResolutionFilter? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioStrategyArg,resolutionStrategyArg,resolutionFilterArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * The aspect ratio strategy defines the sequence of aspect ratios that are + * used to select the best size for a particular image. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Creates a new AspectRatioStrategy instance, configured with the specified + * preferred aspect ratio and fallback rule. + */ + abstract fun pigeon_defaultConstructor(preferredAspectRatio: Long, fallbackRule: AspectRatioStrategyFallbackRule): androidx.camera.core.resolutionselector.AspectRatioStrategy + + /** + * The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 + * in priority. + */ + abstract fun ratio_16_9FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + + /** + * The pre-defined default aspect ratio strategy that selects sizes with + * RATIO_4_3 in priority. + */ + abstract fun ratio_4_3FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAspectRatioStrategy?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val preferredAspectRatioArg = args[1] as Long + val fallbackRuleArg = args[2] as AspectRatioStrategyFallbackRule + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(preferredAspectRatioArg,fallbackRuleArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * Represents the different states the camera can be in. + * + * See https://developer.android.com/reference/androidx/camera/core/CameraState. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The camera's state. */ + abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType + + /** Potentially returns an error the camera encountered. */ + abstract fun error(pigeon_instance: androidx.camera.core.CameraState): androidx.camera.core.CameraState.StateError + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val typeArg = type(pigeon_instanceArg) + val errorArg = error(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, typeArg, errorArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * An interface which contains the camera exposure related information. + * + * See https://developer.android.com/reference/androidx/camera/core/ExposureState. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Get the maximum and minimum exposure compensation values for + * `CameraControl.setExposureCompensationIndex`. + */ + abstract fun exposureCompensationRange(pigeon_instance: androidx.camera.core.ExposureState): android.util.Range<*> + + /** Get the smallest step by which the exposure compensation can be changed. */ + abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ExposureState, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) + val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * An interface which contains the zoom related information from a camera. + * + * See https://developer.android.com/reference/androidx/camera/core/ZoomState. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The minimum zoom ratio. */ + abstract fun minZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double + + /** The maximum zoom ratio. */ + abstract fun maxZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) + val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, minZoomRatioArg, maxZoomRatioArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A use case providing CPU accessible images for an app to perform image + * analysis on. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(targetRotation: Long?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageAnalysis + + /** Sets an analyzer to receive and analyze images. */ + abstract fun setAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer) + + /** Removes a previously set analyzer. */ + abstract fun clearAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis) + + /** Sets the target rotation. */ + abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageAnalysis, rotation: Long) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageAnalysis?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val targetRotationArg = args[1] as Long? + val resolutionSelectorArg = args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,resolutionSelectorArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis + val analyzerArg = args[1] as androidx.camera.core.ImageAnalysis.Analyzer + val wrapped: List = try { + api.setAnalyzer(pigeon_instanceArg, analyzerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis + val wrapped: List = try { + api.clearAnalyzer(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis + val rotationArg = args[1] as Long + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + + @Suppress("FunctionName") + /** An implementation of [PigeonApiUseCase] used to access callback methods */ + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { + return pigeonRegistrar.getPigeonApiUseCase() + } + +} +/** + * Interface for analyzing images. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis.Analyzer. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(): androidx.camera.core.ImageAnalysis.Analyzer + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAnalyzer?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of Analyzer and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + throw IllegalStateException("Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.") + } + + /** Analyzes an image to produce a result. */ + fun analyze(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, imageArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_instanceArg, imageArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * Error that the camera has encountered. + * + * See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The code of this error. */ + abstract fun code(pigeon_instance: androidx.camera.core.CameraState.StateError): CameraStateErrorCode + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState.StateError, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val codeArg = code(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, codeArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * LiveData is a data holder class that can be observed within a given + * lifecycle. + * + * See https://developer.android.com/reference/androidx/lifecycle/LiveData. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The generic type used by this instance. */ + abstract fun type(pigeon_instance: androidx.lifecycle.LiveData<*>): LiveDataSupportedType + + /** + * Adds the given observer to the observers list within the lifespan of the + * given owner. + */ + abstract fun observe(pigeon_instance: androidx.lifecycle.LiveData<*>, observer: androidx.lifecycle.Observer<*>) + + /** Removes all observers that are tied to the given `LifecycleOwner`. */ + abstract fun removeObservers(pigeon_instance: androidx.lifecycle.LiveData<*>) + + /** Returns the current value. */ + abstract fun getValue(pigeon_instance: androidx.lifecycle.LiveData<*>): Any? + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiLiveData?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.lifecycle.LiveData<*> + val observerArg = args[1] as androidx.lifecycle.Observer<*> + val wrapped: List = try { + api.observe(pigeon_instanceArg, observerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.lifecycle.LiveData<*> + val wrapped: List = try { + api.removeObservers(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.lifecycle.LiveData<*> + val wrapped: List = try { + listOf(api.getValue(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.lifecycle.LiveData<*>, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val typeArg = type(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, typeArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * An image proxy which has a similar interface as `android.media.Image`. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The image format. */ + abstract fun format(pigeon_instance: androidx.camera.core.ImageProxy): Long + + /** The image width. */ + abstract fun width(pigeon_instance: androidx.camera.core.ImageProxy): Long + + /** The image height. */ + abstract fun height(pigeon_instance: androidx.camera.core.ImageProxy): Long + + /** Returns the array of planes. */ + abstract fun getPlanes(pigeon_instance: androidx.camera.core.ImageProxy): List + + /** Closes the underlying `android.media.Image`. */ + abstract fun close(pigeon_instance: androidx.camera.core.ImageProxy) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageProxy?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy + val wrapped: List = try { + listOf(api.getPlanes(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy + val wrapped: List = try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ImageProxy and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val formatArg = format(pigeon_instanceArg) + val widthArg = width(pigeon_instanceArg) + val heightArg = height(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, formatArg, widthArg, heightArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A plane proxy which has an analogous interface as + * `android.media.Image.Plane`. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The pixels buffer. */ + abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray + + /** The pixel stride. */ + abstract fun pixelStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long + + /** The row stride. */ + abstract fun rowStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val bufferArg = buffer(pigeon_instanceArg) + val pixelStrideArg = pixelStride(pigeon_instanceArg) + val rowStrideArg = rowStride(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, bufferArg, pixelStrideArg, rowStrideArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * Defines a desired quality setting that can be used to configure components + * with quality setting requirements such as creating a Recorder. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Gets an instance of QualitySelector with a desired quality. */ + abstract fun from(quality: VideoQuality, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + + /** Gets an instance of QualitySelector with ordered desired qualities. */ + abstract fun fromOrderedList(qualities: List, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + + /** Gets the corresponding resolution from the input quality. */ + abstract fun getResolution(cameraInfo: androidx.camera.core.CameraInfo, quality: VideoQuality): android.util.Size? + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiQualitySelector?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val qualityArg = args[1] as VideoQuality + val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(qualityArg,fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val qualitiesArg = args[1] as List + val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.fromOrderedList(qualitiesArg,fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val cameraInfoArg = args[0] as androidx.camera.core.CameraInfo + val qualityArg = args[1] as VideoQuality + val wrapped: List = try { + listOf(api.getResolution(cameraInfoArg, qualityArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of QualitySelector and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.QualitySelector, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A class represents the strategy that will be adopted when the device does + * not support all the desired Quality in QualitySelector in order to select + * the quality as possible. + * + * See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Returns a fallback strategy that will choose the quality that is closest + * to and higher than the input quality. + */ + abstract fun higherQualityOrLowerThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + + /** + * Returns a fallback strategy that will choose the quality that is closest + * to and higher than the input quality. + */ + abstract fun higherQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + + /** + * Returns a fallback strategy that will choose the quality that is closest + * to and lower than the input quality. + */ + abstract fun lowerQualityOrHigherThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + + /** + * Returns a fallback strategy that will choose the quality that is closest + * to and lower than the input quality. + */ + abstract fun lowerQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFallbackStrategy?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val qualityArg = args[1] as VideoQuality + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val qualityArg = args[1] as VideoQuality + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val qualityArg = args[1] as VideoQuality + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val qualityArg = args[1] as VideoQuality + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.FallbackStrategy, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * The CameraControl provides various asynchronous operations like zoom, focus + * and metering which affects output of all UseCases currently bound to that + * camera. + * + * See https://developer.android.com/reference/androidx/camera/core/CameraControl. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Enable the torch or disable the torch. */ + abstract fun enableTorch(pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit) + + /** Sets current zoom by ratio. */ + abstract fun setZoomRatio(pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit) + + /** + * Starts a focus and metering action configured by the + * `FocusMeteringAction`. + */ + abstract fun startFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) + + /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ + abstract fun cancelFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, callback: (Result) -> Unit) + + /** Set the exposure compensation value for the camera. */ + abstract fun setExposureCompensationIndex(pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraControl?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + val torchArg = args[1] as Boolean + api.enableTorch(pigeon_instanceArg, torchArg) { result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + reply.reply(wrapResult(null)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + val ratioArg = args[1] as Double + api.setZoomRatio(pigeon_instanceArg, ratioArg) { result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + reply.reply(wrapResult(null)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + val actionArg = args[1] as androidx.camera.core.FocusMeteringAction + api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + val data = result.getOrNull() + reply.reply(wrapResult(data)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + api.cancelFocusAndMetering(pigeon_instanceArg) { result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + reply.reply(wrapResult(null)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + val indexArg = args[1] as Long + api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + val data = result.getOrNull() + reply.reply(wrapResult(data)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraControl and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraControl, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * The builder used to create the `FocusMeteringAction`. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Adds another MeteringPoint with default metering mode. */ + abstract fun addPoint(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint) + + /** Adds another MeteringPoint with specified meteringMode. */ + abstract fun addPointWithMode(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, modes: List) + + /** Disables the auto-cancel. */ + abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) + + /** Builds the `FocusMeteringAction` instance. */ + abstract fun build(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder): androidx.camera.core.FocusMeteringAction + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFocusMeteringActionBuilder?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pointArg = args[1] as androidx.camera.core.MeteringPoint + val wrapped: List = try { + api.addPoint(pigeon_instanceArg, pointArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pointArg = args[1] as androidx.camera.core.MeteringPoint + val modesArg = args[2] as List + val wrapped: List = try { + api.addPointWithMode(pigeon_instanceArg, pointArg, modesArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val wrapped: List = try { + api.disableAutoCancel(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val wrapped: List = try { + listOf(api.build(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A configuration used to trigger a focus and/or metering action. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. + */ +@Suppress("UNCHECKED_CAST") +open class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * Result of the `CameraControl.startFocusAndMetering`. + * + * See https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** If auto focus is successful. */ + abstract fun isFocusSuccessful(pigeon_instance: androidx.camera.core.FocusMeteringResult): Boolean + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, isFocusSuccessfulArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * An immutable package of settings and outputs needed to capture a single + * image from the camera device. + * + * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Whether auto-exposure (AE) is currently locked to its latest calculated + * values. + * + * Value is boolean. + * + * This key is available on all devices. + */ + abstract fun controlAELock(): android.hardware.camera2.CaptureRequest.Key<*> + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequest?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.controlAELock(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CaptureRequest and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A Key is used to do capture request field lookups with CaptureRequest.get or + * to set fields with `CaptureRequest.Builder.set`. + * + * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. + */ +@Suppress("UNCHECKED_CAST") +open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A bundle of Camera2 capture request options. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(options: Map, Any?>): androidx.camera.camera2.interop.CaptureRequestOptions + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequestOptions?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val optionsArg = args[1] as Map, Any?> + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * An class that provides ability to interoperate with the + * 1android.hardware.camera21 APIs. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Gets the `Camera2CameraControl` from a `CameraControl`. */ + abstract fun from(cameraControl: androidx.camera.core.CameraControl): androidx.camera.camera2.interop.Camera2CameraControl + + /** + * Adds a `CaptureRequestOptions` updates the session with the options it + * contains. + */ + abstract fun addCaptureRequestOptions(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, bundle: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraControl?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val cameraControlArg = args[1] as androidx.camera.core.CameraControl + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraControlArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraControl + val bundleArg = args[1] as androidx.camera.camera2.interop.CaptureRequestOptions + api.addCaptureRequestOptions(pigeon_instanceArg, bundleArg) { result: Result -> + val error = result.exceptionOrNull() + if (error != null) { + reply.reply(wrapError(error)) + } else { + reply.reply(wrapResult(null)) + } + } + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * Applications can filter out unsuitable sizes and sort the resolution list in + * the preferred order by implementing the resolution filter interface. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun createWithOnePreferredSize(preferredSize: android.util.Size): androidx.camera.core.resolutionselector.ResolutionFilter + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionFilter?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val preferredSizeArg = args[1] as android.util.Size + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * A Key is used to do camera characteristics field lookups with + * `CameraCharacteristics.get`. + * + * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. + */ +@Suppress("UNCHECKED_CAST") +open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * The properties describing a `CameraDevice`. + * + * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Generally classifies the overall set of the camera device functionality. + * + * Value is Integer. + * + * This key is available on all devices. + */ + abstract fun infoSupportedHardwareLevel(): android.hardware.camera2.CameraCharacteristics.Key<*> + + /** + * Clockwise angle through which the output image needs to be rotated to be + * upright on the device screen in its native orientation.. + * + * Value is Integer. + * + * This key is available on all devices. + */ + abstract fun sensorOrientation(): android.hardware.camera2.CameraCharacteristics.Key<*> + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraCharacteristics?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.infoSupportedHardwareLevel(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.sensorOrientation(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** + * An interface for retrieving Camera2-related camera information. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Gets the `Camera2CameraInfo` from a `CameraInfo`. */ + abstract fun from(cameraInfo: androidx.camera.core.CameraInfo): androidx.camera.camera2.interop.Camera2CameraInfo + + /** Gets the string camera ID. */ + abstract fun getCameraId(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo): String + + /** Gets a camera characteristic value. */ + abstract fun getCameraCharacteristic(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, key: android.hardware.camera2.CameraCharacteristics.Key<*>): Any? + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraInfo?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraInfoArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo + val wrapped: List = try { + listOf(api.getCameraId(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo + val keyArg = args[1] as android.hardware.camera2.CameraCharacteristics.Key<*> + val wrapped: List = try { + listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java new file mode 100644 index 00000000000..af145a7b0d2 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java @@ -0,0 +1,7 @@ +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent; + +public interface VideoRecordEventListener { + void onEvent(VideoRecordEvent event); +} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart new file mode 100644 index 00000000000..1533b5a05a3 --- /dev/null +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -0,0 +1,7672 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// Autogenerated from Pigeon (v22.7.0), do not edit directly. +// See also: https://pub.dev/packages/pigeon +// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers + +import 'dart:async'; +import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; + +import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/services.dart'; +import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; + +PlatformException _createConnectionError(String channelName) { + return PlatformException( + code: 'channel-error', + message: 'Unable to establish connection on channel: "$channelName".', + ); +} + +List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { + if (empty) { + return []; + } + if (error == null) { + return [result]; + } + return [error.code, error.message, error.details]; +} +/// An immutable object that serves as the base class for all ProxyApis and +/// can provide functional copies of itself. +/// +/// All implementers are expected to be [immutable] as defined by the annotation +/// and override [pigeon_copy] returning an instance of itself. +@immutable +abstract class PigeonInternalProxyApiBaseClass { + /// Construct a [PigeonInternalProxyApiBaseClass]. + PigeonInternalProxyApiBaseClass({ + this.pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) : pigeon_instanceManager = + pigeon_instanceManager ?? PigeonInstanceManager.instance; + + /// Sends and receives binary data across the Flutter platform barrier. + /// + /// If it is null, the default BinaryMessenger will be used, which routes to + /// the host platform. + @protected + final BinaryMessenger? pigeon_binaryMessenger; + + /// Maintains instances stored to communicate with native language objects. + final PigeonInstanceManager pigeon_instanceManager; + + /// Instantiates and returns a functionally identical object to oneself. + /// + /// Outside of tests, this method should only ever be called by + /// [PigeonInstanceManager]. + /// + /// Subclasses should always override their parent's implementation of this + /// method. + @protected + PigeonInternalProxyApiBaseClass pigeon_copy(); +} + +/// Maintains instances used to communicate with the native objects they +/// represent. +/// +/// Added instances are stored as weak references and their copies are stored +/// as strong references to maintain access to their variables and callback +/// methods. Both are stored with the same identifier. +/// +/// When a weak referenced instance becomes inaccessible, +/// [onWeakReferenceRemoved] is called with its associated identifier. +/// +/// If an instance is retrieved and has the possibility to be used, +/// (e.g. calling [getInstanceWithWeakReference]) a copy of the strong reference +/// is added as a weak reference with the same identifier. This prevents a +/// scenario where the weak referenced instance was released and then later +/// returned by the host platform. +class PigeonInstanceManager { + /// Constructs a [PigeonInstanceManager]. + PigeonInstanceManager({required void Function(int) onWeakReferenceRemoved}) { + this.onWeakReferenceRemoved = (int identifier) { + _weakInstances.remove(identifier); + onWeakReferenceRemoved(identifier); + }; + _finalizer = Finalizer(this.onWeakReferenceRemoved); + } + + // Identifiers are locked to a specific range to avoid collisions with objects + // created simultaneously by the host platform. + // Host uses identifiers >= 2^16 and Dart is expected to use values n where, + // 0 <= n < 2^16. + static const int _maxDartCreatedIdentifier = 65536; + + /// The default [PigeonInstanceManager] used by ProxyApis. + /// + /// On creation, this manager makes a call to clear the native + /// InstanceManager. This is to prevent identifier conflicts after a host + /// restart. + static final PigeonInstanceManager instance = _initInstance(); + + // Expando is used because it doesn't prevent its keys from becoming + // inaccessible. This allows the manager to efficiently retrieve an identifier + // of an instance without holding a strong reference to that instance. + // + // It also doesn't use `==` to search for identifiers, which would lead to an + // infinite loop when comparing an object to its copy. (i.e. which was caused + // by calling instanceManager.getIdentifier() inside of `==` while this was a + // HashMap). + final Expando _identifiers = Expando(); + final Map> _weakInstances = + >{}; + final Map _strongInstances = {}; + late final Finalizer _finalizer; + int _nextIdentifier = 0; + + /// Called when a weak referenced instance is removed by [removeWeakReference] + /// or becomes inaccessible. + late final void Function(int) onWeakReferenceRemoved; + + static PigeonInstanceManager _initInstance() { + WidgetsFlutterBinding.ensureInitialized(); + final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); + // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. + api.clear(); + final PigeonInstanceManager instanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (int identifier) { + api.removeStrongReference(identifier); + }, + ); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); + CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventFinalize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + MeteringPoint.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Observer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ProcessCameraProvider.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + UseCase.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Preview.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoOutput.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Recorder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventListener.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + PendingRecording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Recording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + AspectRatioStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ExposureState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ZoomState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageAnalysis.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Analyzer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraStateStateError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + LiveData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + PlaneProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + QualitySelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FallbackStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringActionBuilder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringAction.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringResult.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequest.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequestKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequestOptions.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Camera2CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionFilter.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + return instanceManager; + } + + /// Adds a new instance that was instantiated by Dart. + /// + /// In other words, Dart wants to add a new instance that will represent + /// an object that will be instantiated on the host platform. + /// + /// Throws assertion error if the instance has already been added. + /// + /// Returns the randomly generated id of the [instance] added. + int addDartCreatedInstance(PigeonInternalProxyApiBaseClass instance) { + final int identifier = _nextUniqueIdentifier(); + _addInstanceWithIdentifier(instance, identifier); + return identifier; + } + + /// Removes the instance, if present, and call [onWeakReferenceRemoved] with + /// its identifier. + /// + /// Returns the identifier associated with the removed instance. Otherwise, + /// `null` if the instance was not found in this manager. + /// + /// This does not remove the strong referenced instance associated with + /// [instance]. This can be done with [remove]. + int? removeWeakReference(PigeonInternalProxyApiBaseClass instance) { + final int? identifier = getIdentifier(instance); + if (identifier == null) { + return null; + } + + _identifiers[instance] = null; + _finalizer.detach(instance); + onWeakReferenceRemoved(identifier); + + return identifier; + } + + /// Removes [identifier] and its associated strongly referenced instance, if + /// present, from the manager. + /// + /// Returns the strong referenced instance associated with [identifier] before + /// it was removed. Returns `null` if [identifier] was not associated with + /// any strong reference. + /// + /// This does not remove the weak referenced instance associated with + /// [identifier]. This can be done with [removeWeakReference]. + T? remove(int identifier) { + return _strongInstances.remove(identifier) as T?; + } + + /// Retrieves the instance associated with identifier. + /// + /// The value returned is chosen from the following order: + /// + /// 1. A weakly referenced instance associated with identifier. + /// 2. If the only instance associated with identifier is a strongly + /// referenced instance, a copy of the instance is added as a weak reference + /// with the same identifier. Returning the newly created copy. + /// 3. If no instance is associated with identifier, returns null. + /// + /// This method also expects the host `InstanceManager` to have a strong + /// reference to the instance the identifier is associated with. + T? getInstanceWithWeakReference(int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; + + if (weakInstance == null) { + final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; + if (strongInstance != null) { + final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); + _identifiers[copy] = identifier; + _weakInstances[identifier] = WeakReference(copy); + _finalizer.attach(copy, identifier, detach: copy); + return copy as T; + } + return strongInstance as T?; + } + + return weakInstance as T; + } + + /// Retrieves the identifier associated with instance. + int? getIdentifier(PigeonInternalProxyApiBaseClass instance) { + return _identifiers[instance]; + } + + /// Adds a new instance that was instantiated by the host platform. + /// + /// In other words, the host platform wants to add a new instance that + /// represents an object on the host platform. Stored with [identifier]. + /// + /// Throws assertion error if the instance or its identifier has already been + /// added. + /// + /// Returns unique identifier of the [instance] added. + void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { + _addInstanceWithIdentifier(instance, identifier); + } + + void _addInstanceWithIdentifier(PigeonInternalProxyApiBaseClass instance, int identifier) { + assert(!containsIdentifier(identifier)); + assert(getIdentifier(instance) == null); + assert(identifier >= 0); + + _identifiers[instance] = identifier; + _weakInstances[identifier] = WeakReference(instance); + _finalizer.attach(instance, identifier, detach: instance); + + final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); + _identifiers[copy] = identifier; + _strongInstances[identifier] = copy; + } + + /// Whether this manager contains the given [identifier]. + bool containsIdentifier(int identifier) { + return _weakInstances.containsKey(identifier) || + _strongInstances.containsKey(identifier); + } + + int _nextUniqueIdentifier() { + late int identifier; + do { + identifier = _nextIdentifier; + _nextIdentifier = (_nextIdentifier + 1) % _maxDartCreatedIdentifier; + } while (containsIdentifier(identifier)); + return identifier; + } +} + +/// Generated API for managing the Dart and native `PigeonInstanceManager`s. +class _PigeonInternalInstanceManagerApi { + /// Constructor for [_PigeonInternalInstanceManagerApi]. + _PigeonInternalInstanceManagerApi({BinaryMessenger? binaryMessenger}) + : pigeonVar_binaryMessenger = binaryMessenger; + + final BinaryMessenger? pigeonVar_binaryMessenger; + + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + static void setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? binaryMessenger, + PigeonInstanceManager? instanceManager, + }) { + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null.'); + final List args = (message as List?)!; + final int? arg_identifier = (args[0] as int?); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null, expected non-null int.'); + try { + (instanceManager ?? PigeonInstanceManager.instance) + .remove(arg_identifier!); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + Future removeStrongReference(int identifier) async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([identifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Clear the native `PigeonInstanceManager`. + /// + /// This is typically called after a hot restart. + Future clear() async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } +} + +class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } +} + + +/// The states the camera can be in. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. +enum CameraStateType { + /// Represents a state where the camera device is closed. + closed, + /// Represents a state where the camera device is currently closing. + closing, + /// Represents a state where the camera device is open. + open, + /// Represents a state where the camera device is currently opening. + opening, + /// Represents a state where the camera is waiting for a signal to attempt to + /// open the camera device. + pendingOpen, + /// This value is not recognized by this wrapper. + unknown, +} + +/// The types (T) properly wrapped to be used as a LiveData. +enum LiveDataSupportedType { + cameraState, + zoomState, +} + +/// Video quality constraints that will be used by a QualitySelector to choose +/// an appropriate video resolution. +/// +/// These are pre-defined quality constants that are universally used for video. +/// +/// See https://developer.android.com/reference/androidx/camera/video/Quality. +enum VideoQuality { + /// Standard Definition (SD) 480p video quality. + SD, + /// High Definition (HD) 720p video quality. + HD, + /// Full High Definition (FHD) 1080p video quality. + FHD, + /// Ultra High Definition (UHD) 2160p video quality. + UHD, + /// The lowest video quality supported by the video frame producer. + lowest, + /// The highest video quality supported by the video frame producer. + highest, +} + +enum MeteringMode { + /// A flag used in metering mode indicating the AE (Auto Exposure) region is + /// enabled. + ae, + /// A flag used in metering mode indicating the AF (Auto Focus) region is + /// enabled. + af, + /// A flag used in metering mode indicating the AWB (Auto White Balance) + /// region is enabled. + awb, +} + +/// Direction of lens of a camera. +enum LensFacing { + /// A camera on the device facing the same direction as the device's screen. + front, + /// A camera on the device facing the opposite direction as the device's + /// screen. + back, + /// An external camera that has no fixed facing relative to the device's + /// screen. + external, + /// A camera on the devices that its lens facing is resolved. + unknown, +} + +/// FlashModes for image capture. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). +enum FlashMode { + /// Auto flash. + /// + /// The flash will be used according to the camera system's determination when + /// taking a picture. + auto, + /// No flash. + /// + /// The flash will never be used when taking a picture. + off, + /// Always flash. + /// + /// The flash will always be used when taking a picture. + on, + /// Screen flash. + /// + /// Display screen brightness will be used as alternative to flash when taking + /// a picture with front camera. + screen, +} + +/// Fallback rule for choosing an alternate size when the specified bound size +/// is unavailable. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. +enum ResolutionStrategyFallbackRule { + /// When the specified bound size is unavailable, CameraX falls back to the + /// closest higher resolution size. + closestHigher, + /// When the specified bound size is unavailable, CameraX falls back to select + /// the closest higher resolution size. + closestHigherThenLower, + /// When the specified bound size is unavailable, CameraX falls back to the + /// closest lower resolution size. + closestLower, + /// When the specified bound size is unavailable, CameraX falls back to select + /// the closest lower resolution size. + closestLowerThenHigher, + /// CameraX doesn't select an alternate size when the specified bound size is + /// unavailable. + none, +} + +/// Fallback rule for choosing the aspect ratio when the preferred aspect ratio +/// is not available. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). +enum AspectRatioStrategyFallbackRule { + /// CameraX automatically chooses the next best aspect ratio which contains + /// the closest field of view (FOV) of the camera sensor, from the remaining + /// options. + auto, + /// CameraX doesn't fall back to select sizes of any other aspect ratio when + /// this fallback rule is used. + none, +} + +/// Code for a `CameraState` error. +/// +/// https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() +enum CameraStateErrorCode { + /// An error indicating that the camera device could not be opened due to a + /// device policy. + disabled, + /// An error indicating that the camera device was closed due to a fatal + /// error. + fatalError, + /// An error indicating that the camera device is already in use. + inUse, + /// An error indicating that the camera could not be opened because "Do Not + /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API + /// level 28). + doNotDisturbModeEnabled, + /// An error indicating that the limit number of open cameras has been + /// reached, and more cameras cannot be opened until other instances are + /// closed. + maxCamerasInUse, + /// An error indicating that the camera device has encountered a recoverable + /// error. + otherRecoverableError, + /// An error indicating that configuring the camera has failed. + streamConfig, + /// The value is not recognized by this wrapper. + unknown, +} + +class CameraPermissionsErrorData { + CameraPermissionsErrorData({ + required this.errorCode, + required this.description, + }); + + String errorCode; + + String description; + + Object encode() { + return [ + errorCode, + description, + ]; + } + + static CameraPermissionsErrorData decode(Object result) { + result as List; + return CameraPermissionsErrorData( + errorCode: result[0]! as String, + description: result[1]! as String, + ); + } +} + + +class _PigeonCodec extends StandardMessageCodec { + const _PigeonCodec(); + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is int) { + buffer.putUint8(4); + buffer.putInt64(value); + } else if (value is CameraStateType) { + buffer.putUint8(129); + writeValue(buffer, value.index); + } else if (value is LiveDataSupportedType) { + buffer.putUint8(130); + writeValue(buffer, value.index); + } else if (value is VideoQuality) { + buffer.putUint8(131); + writeValue(buffer, value.index); + } else if (value is MeteringMode) { + buffer.putUint8(132); + writeValue(buffer, value.index); + } else if (value is LensFacing) { + buffer.putUint8(133); + writeValue(buffer, value.index); + } else if (value is FlashMode) { + buffer.putUint8(134); + writeValue(buffer, value.index); + } else if (value is ResolutionStrategyFallbackRule) { + buffer.putUint8(135); + writeValue(buffer, value.index); + } else if (value is AspectRatioStrategyFallbackRule) { + buffer.putUint8(136); + writeValue(buffer, value.index); + } else if (value is CameraStateErrorCode) { + buffer.putUint8(137); + writeValue(buffer, value.index); + } else if (value is CameraPermissionsErrorData) { + buffer.putUint8(138); + writeValue(buffer, value.encode()); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 129: + final int? value = readValue(buffer) as int?; + return value == null ? null : CameraStateType.values[value]; + case 130: + final int? value = readValue(buffer) as int?; + return value == null ? null : LiveDataSupportedType.values[value]; + case 131: + final int? value = readValue(buffer) as int?; + return value == null ? null : VideoQuality.values[value]; + case 132: + final int? value = readValue(buffer) as int?; + return value == null ? null : MeteringMode.values[value]; + case 133: + final int? value = readValue(buffer) as int?; + return value == null ? null : LensFacing.values[value]; + case 134: + final int? value = readValue(buffer) as int?; + return value == null ? null : FlashMode.values[value]; + case 135: + final int? value = readValue(buffer) as int?; + return value == null ? null : ResolutionStrategyFallbackRule.values[value]; + case 136: + final int? value = readValue(buffer) as int?; + return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + case 137: + final int? value = readValue(buffer) as int?; + return value == null ? null : CameraStateErrorCode.values[value]; + case 138: + return CameraPermissionsErrorData.decode(readValue(buffer)!); + default: + return super.readValueOfType(type, buffer); + } + } +} +/// Immutable class for describing width and height dimensions in pixels. +/// +/// See https://developer.android.com/reference/android/util/Size.html. +class CameraSize extends PigeonInternalProxyApiBaseClass { + CameraSize({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.width, + required this.height, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraSize; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, width, height]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [CameraSize] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraSize.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.width, + required this.height, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecCameraSize = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// The width of the size (in pixels). + final int width; + + /// The height of the size (in pixels). + final int height; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraSize Function( + int width, + int height, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.'); + final int? arg_width = (args[1] as int?); + assert(arg_width != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.'); + final int? arg_height = (args[2] as int?); + assert(arg_height != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_width!, arg_height!) ?? + CameraSize.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + width: arg_width!, + height: arg_height!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CameraSize pigeon_copy() { + return CameraSize.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + width: width, + height: height, + ); + } +} + +/// A `ResolutionInfo` allows the application to know the resolution information +/// of a specific use case. +/// +/// See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. +class ResolutionInfo extends PigeonInternalProxyApiBaseClass { + ResolutionInfo({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.resolution, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecResolutionInfo; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, resolution]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [ResolutionInfo] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ResolutionInfo.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.resolution, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecResolutionInfo = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// Returns the output resolution used for the use case. + final CameraSize resolution; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ResolutionInfo Function(CameraSize resolution)? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null int.'); + final CameraSize? arg_resolution = (args[1] as CameraSize?); + assert(arg_resolution != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null CameraSize.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_resolution!) ?? + ResolutionInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolution: arg_resolution!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + ResolutionInfo pigeon_copy() { + return ResolutionInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolution: resolution, + ); + } +} + +/// Immutable class for describing the range of two integer values. +/// +/// This is the equivalent to `android.util.Range`. +/// +/// See https://developer.android.com/reference/android/util/Range.html. +class CameraIntegerRange extends PigeonInternalProxyApiBaseClass { + CameraIntegerRange({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.lower, + required this.upper, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraIntegerRange; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, lower, upper]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [CameraIntegerRange] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraIntegerRange.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.lower, + required this.upper, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecCameraIntegerRange = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// The lower endpoint. + final int lower; + + /// The upper endpoint. + final int upper; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraIntegerRange Function( + int lower, + int upper, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.'); + final int? arg_lower = (args[1] as int?); + assert(arg_lower != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.'); + final int? arg_upper = (args[2] as int?); + assert(arg_upper != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_lower!, arg_upper!) ?? + CameraIntegerRange.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + lower: arg_lower!, + upper: arg_upper!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CameraIntegerRange pigeon_copy() { + return CameraIntegerRange.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + lower: lower, + upper: upper, + ); + } +} + +/// VideoRecordEvent is used to report video recording events and status. +/// +/// See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. +class VideoRecordEvent extends PigeonInternalProxyApiBaseClass { + /// Constructs [VideoRecordEvent] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + VideoRecordEvent.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + VideoRecordEvent Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + VideoRecordEvent.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + VideoRecordEvent pigeon_copy() { + return VideoRecordEvent.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// Indicates the start of recording. +/// +/// See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Start. +class VideoRecordEventStart extends VideoRecordEvent { + /// Constructs [VideoRecordEventStart] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + VideoRecordEventStart.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + VideoRecordEventStart Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + VideoRecordEventStart.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + VideoRecordEventStart pigeon_copy() { + return VideoRecordEventStart.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// Indicates the finalization of recording. +/// +/// See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. +class VideoRecordEventFinalize extends VideoRecordEvent { + /// Constructs [VideoRecordEventFinalize] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + VideoRecordEventFinalize.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + VideoRecordEventFinalize Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + VideoRecordEventFinalize.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + VideoRecordEventFinalize pigeon_copy() { + return VideoRecordEventFinalize.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A MeteringPoint is used to specify a region which can then be converted to +/// sensor coordinate system for focus and metering purpose. +/// +/// See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. +class MeteringPoint extends PigeonInternalProxyApiBaseClass { + /// Creates a MeteringPoint by x, y. + MeteringPoint({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required double x, + required double y, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecMeteringPoint; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, x, y]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Creates a MeteringPoint by x, y, size. + MeteringPoint.withSize({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required double x, + required double y, + required double size, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecMeteringPoint; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.withSize'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, x, y, size]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [MeteringPoint] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + MeteringPoint.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecMeteringPoint = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + MeteringPoint Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + MeteringPoint.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Size of the MeteringPoint width and height (ranging from 0 to 1). + /// + /// It is the percentage of the sensor width/height (or crop region + /// width/height if crop region is set). + Future getSize() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecMeteringPoint; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as double?)!; + } + } + + @override + MeteringPoint pigeon_copy() { + return MeteringPoint.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A simple callback that can receive from LiveData. +/// +/// See https://developer.android.com/reference/androidx/lifecycle/Observer. +class Observer extends PigeonInternalProxyApiBaseClass { + Observer({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.type, + required this.onChanged, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecObserver; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, type]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [Observer] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + Observer.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.type, + required this.onChanged, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecObserver = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// The generic type used by this instance. + final LiveDataSupportedType type; + + /// Called when the data is changed to value. + /// + /// For the associated Native object to be automatically garbage collected, + /// it is required that the implementation of this `Function` doesn't have a + /// strong reference to the encapsulating class instance. When this `Function` + /// references a non-local variable, it is strongly recommended to access it + /// with a `WeakReference`: + /// + /// ```dart + /// final WeakReference weakMyVariable = WeakReference(myVariable); + /// final Observer instance = Observer( + /// onChanged: (Observer pigeon_instance, ...) { + /// print(weakMyVariable?.target); + /// }, + /// ); + /// ``` + /// + /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to + /// release the associated Native object manually. + final void Function( + Observer pigeon_instance, + Object value, + ) onChanged; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + void Function( + Observer pigeon_instance, + Object value, + )? onChanged, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.Observer.onChanged', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null.'); + final List args = (message as List?)!; + final Observer? arg_pigeon_instance = (args[0] as Observer?); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Observer.'); + final Object? arg_value = (args[1] as Object?); + assert(arg_value != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Object.'); + try { + (onChanged ?? arg_pigeon_instance!.onChanged) + .call(arg_pigeon_instance!, arg_value!); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + Observer pigeon_copy() { + return Observer.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + type: type, + onChanged: onChanged, + ); + } +} + +/// An interface for retrieving camera information. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraInfo. +class CameraInfo extends PigeonInternalProxyApiBaseClass { + /// Constructs [CameraInfo] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraInfo.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.sensorRotationDegrees, + required this.exposureState, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecCameraInfo = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// Returns the sensor rotation in degrees, relative to the device's "natural" + /// (default) orientation. + final int sensorRotationDegrees; + + /// Returns a ExposureState. + final ExposureState exposureState; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraInfo Function( + int sensorRotationDegrees, + ExposureState exposureState, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.'); + final int? arg_sensorRotationDegrees = (args[1] as int?); + assert(arg_sensorRotationDegrees != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.'); + final ExposureState? arg_exposureState = (args[2] as ExposureState?); + assert(arg_exposureState != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null ExposureState.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call( + arg_sensorRotationDegrees!, arg_exposureState!) ?? + CameraInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + sensorRotationDegrees: arg_sensorRotationDegrees!, + exposureState: arg_exposureState!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// A LiveData of the camera's state. + Future getCameraState() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraInfo; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as LiveData?)!; + } + } + + /// A LiveData of ZoomState. + Future getZoomState() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraInfo; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as LiveData?)!; + } + } + + @override + CameraInfo pigeon_copy() { + return CameraInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + sensorRotationDegrees: sensorRotationDegrees, + exposureState: exposureState, + ); + } +} + +/// A set of requirements and priorities used to select a camera or return a +/// filtered set of cameras. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraSelector. +class CameraSelector extends PigeonInternalProxyApiBaseClass { + CameraSelector({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + LensFacing? requireLensFacing, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraSelector; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, requireLensFacing]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [CameraSelector] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraSelector.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecCameraSelector = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// A static `CameraSelector` that selects the default back facing camera. + static final CameraSelector defaultBackCamera = pigeonVar_defaultBackCamera(); + + /// A static `CameraSelector` that selects the default front facing camera. + static final CameraSelector defaultFrontCamera = + pigeonVar_defaultFrontCamera(); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraSelector Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + CameraSelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + static CameraSelector pigeonVar_defaultBackCamera() { + final CameraSelector pigeonVar_instance = CameraSelector.pigeon_detached(); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec(PigeonInstanceManager.instance); + final BinaryMessenger pigeonVar_binaryMessenger = + ServicesBinding.instance.defaultBinaryMessenger; + final int pigeonVar_instanceIdentifier = PigeonInstanceManager.instance + .addDartCreatedInstance(pigeonVar_instance); + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + return pigeonVar_instance; + } + + static CameraSelector pigeonVar_defaultFrontCamera() { + final CameraSelector pigeonVar_instance = CameraSelector.pigeon_detached(); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec(PigeonInstanceManager.instance); + final BinaryMessenger pigeonVar_binaryMessenger = + ServicesBinding.instance.defaultBinaryMessenger; + final int pigeonVar_instanceIdentifier = PigeonInstanceManager.instance + .addDartCreatedInstance(pigeonVar_instance); + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + return pigeonVar_instance; + } + + /// Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the + /// selector. + Future> filter(List cameraInfos) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraSelector; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, cameraInfos]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as List?)!.cast(); + } + } + + @override + CameraSelector pigeon_copy() { + return CameraSelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A singleton which can be used to bind the lifecycle of cameras to any +/// `LifecycleOwner` within an application's process. +/// +/// See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. +class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { + /// Constructs [ProcessCameraProvider] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ProcessCameraProvider.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecProcessCameraProvider = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ProcessCameraProvider Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + ProcessCameraProvider.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Retrieves the ProcessCameraProvider associated with the current process. + static Future getInstance({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as ProcessCameraProvider?)!; + } + } + + /// The `CameraInfo` instances of the available cameras. + Future> getAvailableCameraInfos() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecProcessCameraProvider; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as List?)!.cast(); + } + } + + /// Binds the collection of `UseCase` to a `LifecycleOwner`. + Future bindToLifecycle( + CameraSelector cameraSelectorIdentifier, + List useCases, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecProcessCameraProvider; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, cameraSelectorIdentifier, useCases]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as Camera?)!; + } + } + + /// Returns true if the `UseCase` is bound to a lifecycle. + Future isBound(UseCase useCase) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecProcessCameraProvider; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, useCase]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as bool?)!; + } + } + + /// Unbinds all specified use cases from the lifecycle provider. + Future unbind(List useCases) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecProcessCameraProvider; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, useCases]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Unbinds all use cases from the lifecycle provider and removes them from + /// CameraX. + Future unbindAll() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecProcessCameraProvider; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + @override + ProcessCameraProvider pigeon_copy() { + return ProcessCameraProvider.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// The use case which all other use cases are built on top of. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase. +class UseCase extends PigeonInternalProxyApiBaseClass { + /// Constructs [UseCase] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + UseCase.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + UseCase Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + UseCase.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + UseCase pigeon_copy() { + return UseCase.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// The camera interface is used to control the flow of data to use cases, +/// control the camera via the `CameraControl`, and publish the state of the +/// camera via CameraInfo. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. +class Camera extends PigeonInternalProxyApiBaseClass { + /// Constructs [Camera] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + Camera.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.cameraControl, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecCamera = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// The `CameraControl` for the Camera. + final CameraControl cameraControl; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + Camera Function(CameraControl cameraControl)? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null int.'); + final CameraControl? arg_cameraControl = (args[1] as CameraControl?); + assert(arg_cameraControl != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null CameraControl.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_cameraControl!) ?? + Camera.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + cameraControl: arg_cameraControl!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Returns information about this camera. + Future getCameraInfo() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCamera; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as CameraInfo?)!; + } + } + + @override + Camera pigeon_copy() { + return Camera.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + cameraControl: cameraControl, + ); + } +} + + +class SystemServicesHostApi { + /// Constructor for [SystemServicesHostApi]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + SystemServicesHostApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) + : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; + + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + final String pigeonVar_messageChannelSuffix; + + Future requestCameraPermissions(bool enableAudio) async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([enableAudio]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return (pigeonVar_replyList[0] as CameraPermissionsErrorData?); + } + } + + Future getTempFilePath(String prefix, String suffix) async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([prefix, suffix]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as String?)!; + } + } + + Future isPreviewPreTransformed() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.isPreviewPreTransformed$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as bool?)!; + } + } +} + +abstract class SystemServicesFlutterApi { + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + void onCameraError(String errorDescription); + + static void setUp(SystemServicesFlutterApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { + messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + { + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesFlutterApi.onCameraError$messageChannelSuffix', pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (api == null) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesFlutterApi.onCameraError was null.'); + final List args = (message as List?)!; + final String? arg_errorDescription = (args[0] as String?); + assert(arg_errorDescription != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesFlutterApi.onCameraError was null, expected non-null String.'); + try { + api.onCameraError(arg_errorDescription!); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } +} + +class DeviceOrientationManagerHostApi { + /// Constructor for [DeviceOrientationManagerHostApi]. The [binaryMessenger] named argument is + /// available for dependency injection. If it is left null, the default + /// BinaryMessenger will be used which routes to the host platform. + DeviceOrientationManagerHostApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) + : pigeonVar_binaryMessenger = binaryMessenger, + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + final BinaryMessenger? pigeonVar_binaryMessenger; + + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + final String pigeonVar_messageChannelSuffix; + + Future startListeningForDeviceOrientationChange(bool isFrontFacing, int sensorOrientation) async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([isFrontFacing, sensorOrientation]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future stopListeningForDeviceOrientationChange() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future getDefaultDisplayRotation() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as int?)!; + } + } + + Future getUiOrientation() async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send(null) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as String?)!; + } + } +} + +abstract class DeviceOrientationManagerFlutterApi { + static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + + void onDeviceOrientationChanged(String orientation); + + static void setUp(DeviceOrientationManagerFlutterApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { + messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + { + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged$messageChannelSuffix', pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (api == null) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); + final List args = (message as List?)!; + final String? arg_orientation = (args[0] as String?); + assert(arg_orientation != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null, expected non-null String.'); + try { + api.onDeviceOrientationChanged(arg_orientation!); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } +} +/// A use case that provides a camera preview stream for displaying on-screen. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. +class Preview extends UseCase { + Preview({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + int? targetRotation, + ResolutionSelector? resolutionSelector, + }) : super.pigeon_detached() { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecPreview; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + targetRotation, + resolutionSelector + ]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [Preview] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + Preview.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecPreview = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + Preview Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + Preview.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Sets a SurfaceProvider to provide a Surface for Preview. + /// + /// This is a convenience function that + /// 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the + /// Flutter engine. + /// 2. Sets this method with the created `SurfaceProvider`. + /// 3. Returns the texture id of the `TextureEntry` that provided the + /// `SurfaceProducer`. + Future setSurfaceProvider() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecPreview; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as int?)!; + } + } + + /// Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was + /// created. + Future releaseSurfaceProvider() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecPreview; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Gets selected resolution information of the `Preview`. + Future getResolutionInfo() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecPreview; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return (pigeonVar_replyList[0] as ResolutionInfo?); + } + } + + /// Sets the target rotation. + Future setTargetRotation(int rotation) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecPreview; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, rotation]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + @override + Preview pigeon_copy() { + return Preview.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A use case that provides camera stream suitable for video application. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. +class VideoCapture extends UseCase { + /// Create a `VideoCapture` associated with the given `VideoOutput`. + VideoCapture.withOutput({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required VideoOutput videoOutput, + }) : super.pigeon_detached() { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecVideoCapture; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, videoOutput]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [VideoCapture] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + VideoCapture.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecVideoCapture = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + VideoCapture Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + VideoCapture.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Gets the VideoOutput associated with this VideoCapture. + Future getOutput() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecVideoCapture; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as VideoOutput?)!; + } + } + + /// Sets the desired rotation of the output video. + Future setTargetRotation(int rotation) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecVideoCapture; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, rotation]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + @override + VideoCapture pigeon_copy() { + return VideoCapture.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A class that will produce video data from a Surface. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoOutput. +class VideoOutput extends PigeonInternalProxyApiBaseClass { + /// Constructs [VideoOutput] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + VideoOutput.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + VideoOutput Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + VideoOutput.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + VideoOutput pigeon_copy() { + return VideoOutput.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// An implementation of `VideoOutput` for starting video recordings that are +/// saved to a File, ParcelFileDescriptor, or MediaStore. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder. +class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { + Recorder({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecRecorder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([ + pigeonVar_instanceIdentifier, + aspectRatio, + targetVideoEncodingBitRate, + qualitySelector + ]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [Recorder] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + Recorder.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecRecorder = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + Recorder Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + Recorder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Gets the aspect ratio of this Recorder. + Future getAspectRatio() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecRecorder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as int?)!; + } + } + + /// Gets the target video encoding bitrate of this Recorder. + Future getTargetVideoEncodingBitRate() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecRecorder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as int?)!; + } + } + + /// Prepares a recording that will be saved to a File. + Future prepareRecording(String path) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecRecorder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, path]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as PendingRecording?)!; + } + } + + @override + Recorder pigeon_copy() { + return Recorder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// Listens for `VideoRecordEvent`s from a `PendingRecording`. +class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { + VideoRecordEventListener({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.onEvent, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecVideoRecordEventListener; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [VideoRecordEventListener] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + VideoRecordEventListener.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.onEvent, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecVideoRecordEventListener = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// Callback method. + /// + /// For the associated Native object to be automatically garbage collected, + /// it is required that the implementation of this `Function` doesn't have a + /// strong reference to the encapsulating class instance. When this `Function` + /// references a non-local variable, it is strongly recommended to access it + /// with a `WeakReference`: + /// + /// ```dart + /// final WeakReference weakMyVariable = WeakReference(myVariable); + /// final VideoRecordEventListener instance = VideoRecordEventListener( + /// onEvent: (VideoRecordEventListener pigeon_instance, ...) { + /// print(weakMyVariable?.target); + /// }, + /// ); + /// ``` + /// + /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to + /// release the associated Native object manually. + final void Function( + VideoRecordEventListener pigeon_instance, + VideoRecordEvent event, + ) onEvent; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + void Function( + VideoRecordEventListener pigeon_instance, + VideoRecordEvent event, + )? onEvent, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null.'); + final List args = (message as List?)!; + final VideoRecordEventListener? arg_pigeon_instance = + (args[0] as VideoRecordEventListener?); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEventListener.'); + final VideoRecordEvent? arg_event = (args[1] as VideoRecordEvent?); + assert(arg_event != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEvent.'); + try { + (onEvent ?? arg_pigeon_instance!.onEvent) + .call(arg_pigeon_instance!, arg_event!); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + VideoRecordEventListener pigeon_copy() { + return VideoRecordEventListener.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + onEvent: onEvent, + ); + } +} + +/// A recording that can be started at a future time. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. +class PendingRecording extends PigeonInternalProxyApiBaseClass { + /// Constructs [PendingRecording] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + PendingRecording.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecPendingRecording = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + PendingRecording Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + PendingRecording.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Starts the recording, making it an active recording. + Future start(VideoRecordEventListener listener) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecPendingRecording; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.PendingRecording.start'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, listener]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as Recording?)!; + } + } + + @override + PendingRecording pigeon_copy() { + return PendingRecording.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// Provides controls for the currently active recording. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/Recording. +class Recording extends PigeonInternalProxyApiBaseClass { + /// Constructs [Recording] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + Recording.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecRecording = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + Recording Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + Recording.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Close this recording. + Future close() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecRecording; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Recording.close'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Pauses the current recording if active. + Future pause() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecRecording; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Recording.pause'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Resumes the current recording if paused. + Future resume() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecRecording; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Recording.resume'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Stops the recording, as if calling `close`. + /// + /// This method is equivalent to calling `close`. + Future stop() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecRecording; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Recording.stop'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + @override + Recording pigeon_copy() { + return Recording.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A use case for taking a picture. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. +class ImageCapture extends UseCase { + ImageCapture({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + int? targetRotation, + FlashMode? flashMode, + ResolutionSelector? resolutionSelector, + }) : super.pigeon_detached() { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageCapture; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + targetRotation, + flashMode, + resolutionSelector + ]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [ImageCapture] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ImageCapture.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecImageCapture = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ImageCapture Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + ImageCapture.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Set the flash mode. + Future setFlashMode(FlashMode flashMode) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageCapture; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, flashMode]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Captures a new still image for in memory access. + Future takePicture() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageCapture; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as String?)!; + } + } + + /// Sets the desired rotation of the output image. + Future setTargetRotation(int rotation) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageCapture; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, rotation]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + @override + ImageCapture pigeon_copy() { + return ImageCapture.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// The resolution strategy defines the resolution selection sequence to select +/// the best size. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. +class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { + ResolutionStrategy({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecResolutionStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, boundSize, fallbackRule]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [ResolutionStrategy] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ResolutionStrategy.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecResolutionStrategy = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static final ResolutionStrategy highestAvailableStrategy = + pigeonVar_highestAvailableStrategy(); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ResolutionStrategy Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + ResolutionStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + static ResolutionStrategy pigeonVar_highestAvailableStrategy() { + final ResolutionStrategy pigeonVar_instance = + ResolutionStrategy.pigeon_detached(); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec(PigeonInstanceManager.instance); + final BinaryMessenger pigeonVar_binaryMessenger = + ServicesBinding.instance.defaultBinaryMessenger; + final int pigeonVar_instanceIdentifier = PigeonInstanceManager.instance + .addDartCreatedInstance(pigeonVar_instance); + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + return pigeonVar_instance; + } + + @override + ResolutionStrategy pigeon_copy() { + return ResolutionStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A set of requirements and priorities used to select a resolution for the +/// `UseCase`. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. +class ResolutionSelector extends PigeonInternalProxyApiBaseClass { + ResolutionSelector({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecResolutionSelector; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([ + pigeonVar_instanceIdentifier, + aspectRatioStrategy, + resolutionStrategy, + resolutionFilter + ]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [ResolutionSelector] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ResolutionSelector.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecResolutionSelector = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ResolutionSelector Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + ResolutionSelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + ResolutionSelector pigeon_copy() { + return ResolutionSelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// The aspect ratio strategy defines the sequence of aspect ratios that are +/// used to select the best size for a particular image. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. +class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { + /// Creates a new AspectRatioStrategy instance, configured with the specified + /// preferred aspect ratio and fallback rule. + AspectRatioStrategy({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required int preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecAspectRatioStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + preferredAspectRatio, + fallbackRule + ]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [AspectRatioStrategy] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + AspectRatioStrategy.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecAspectRatioStrategy = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 + /// in priority. + static final AspectRatioStrategy ratio_16_9FallbackAutoStrategy = + pigeonVar_ratio_16_9FallbackAutoStrategy(); + + /// The pre-defined default aspect ratio strategy that selects sizes with + /// RATIO_4_3 in priority. + static final AspectRatioStrategy ratio_4_3FallbackAutoStrategy = + pigeonVar_ratio_4_3FallbackAutoStrategy(); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + AspectRatioStrategy Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + AspectRatioStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + static AspectRatioStrategy pigeonVar_ratio_16_9FallbackAutoStrategy() { + final AspectRatioStrategy pigeonVar_instance = + AspectRatioStrategy.pigeon_detached(); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec(PigeonInstanceManager.instance); + final BinaryMessenger pigeonVar_binaryMessenger = + ServicesBinding.instance.defaultBinaryMessenger; + final int pigeonVar_instanceIdentifier = PigeonInstanceManager.instance + .addDartCreatedInstance(pigeonVar_instance); + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + return pigeonVar_instance; + } + + static AspectRatioStrategy pigeonVar_ratio_4_3FallbackAutoStrategy() { + final AspectRatioStrategy pigeonVar_instance = + AspectRatioStrategy.pigeon_detached(); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec(PigeonInstanceManager.instance); + final BinaryMessenger pigeonVar_binaryMessenger = + ServicesBinding.instance.defaultBinaryMessenger; + final int pigeonVar_instanceIdentifier = PigeonInstanceManager.instance + .addDartCreatedInstance(pigeonVar_instance); + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + return pigeonVar_instance; + } + + @override + AspectRatioStrategy pigeon_copy() { + return AspectRatioStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// Represents the different states the camera can be in. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraState. +class CameraState extends PigeonInternalProxyApiBaseClass { + /// Constructs [CameraState] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraState.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.type, + required this.error, + }); + + /// The camera's state. + final CameraStateType type; + + /// Potentially returns an error the camera encountered. + final CameraStateStateError error; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraState Function( + CameraStateType type, + CameraStateStateError error, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null int.'); + final CameraStateType? arg_type = (args[1] as CameraStateType?); + assert(arg_type != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null CameraStateType.'); + final CameraStateStateError? arg_error = + (args[2] as CameraStateStateError?); + assert(arg_error != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null CameraStateStateError.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_type!, arg_error!) ?? + CameraState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + type: arg_type!, + error: arg_error!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CameraState pigeon_copy() { + return CameraState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + type: type, + error: error, + ); + } +} + +/// An interface which contains the camera exposure related information. +/// +/// See https://developer.android.com/reference/androidx/camera/core/ExposureState. +class ExposureState extends PigeonInternalProxyApiBaseClass { + /// Constructs [ExposureState] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ExposureState.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.exposureCompensationRange, + required this.exposureCompensationStep, + }); + + /// Get the maximum and minimum exposure compensation values for + /// `CameraControl.setExposureCompensationIndex`. + final CameraIntegerRange exposureCompensationRange; + + /// Get the smallest step by which the exposure compensation can be changed. + final double exposureCompensationStep; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ExposureState Function( + CameraIntegerRange exposureCompensationRange, + double exposureCompensationStep, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null int.'); + final CameraIntegerRange? arg_exposureCompensationRange = + (args[1] as CameraIntegerRange?); + assert(arg_exposureCompensationRange != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null CameraIntegerRange.'); + final double? arg_exposureCompensationStep = (args[2] as double?); + assert(arg_exposureCompensationStep != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null double.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_exposureCompensationRange!, + arg_exposureCompensationStep!) ?? + ExposureState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + exposureCompensationRange: arg_exposureCompensationRange!, + exposureCompensationStep: arg_exposureCompensationStep!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + ExposureState pigeon_copy() { + return ExposureState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + exposureCompensationRange: exposureCompensationRange, + exposureCompensationStep: exposureCompensationStep, + ); + } +} + +/// An interface which contains the zoom related information from a camera. +/// +/// See https://developer.android.com/reference/androidx/camera/core/ZoomState. +class ZoomState extends PigeonInternalProxyApiBaseClass { + /// Constructs [ZoomState] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ZoomState.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.minZoomRatio, + required this.maxZoomRatio, + }); + + /// The minimum zoom ratio. + final double minZoomRatio; + + /// The maximum zoom ratio. + final double maxZoomRatio; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ZoomState Function( + double minZoomRatio, + double maxZoomRatio, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null int.'); + final double? arg_minZoomRatio = (args[1] as double?); + assert(arg_minZoomRatio != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.'); + final double? arg_maxZoomRatio = (args[2] as double?); + assert(arg_maxZoomRatio != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_minZoomRatio!, arg_maxZoomRatio!) ?? + ZoomState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + minZoomRatio: arg_minZoomRatio!, + maxZoomRatio: arg_maxZoomRatio!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + ZoomState pigeon_copy() { + return ZoomState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + minZoomRatio: minZoomRatio, + maxZoomRatio: maxZoomRatio, + ); + } +} + +/// A use case providing CPU accessible images for an app to perform image +/// analysis on. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis. +class ImageAnalysis extends UseCase { + ImageAnalysis({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + int? targetRotation, + ResolutionSelector? resolutionSelector, + }) : super.pigeon_detached() { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageAnalysis; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + targetRotation, + resolutionSelector + ]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [ImageAnalysis] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ImageAnalysis.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecImageAnalysis = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ImageAnalysis Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + ImageAnalysis.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Sets an analyzer to receive and analyze images. + Future setAnalyzer(Analyzer analyzer) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageAnalysis; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, analyzer]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Removes a previously set analyzer. + Future clearAnalyzer() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageAnalysis; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Sets the target rotation. + Future setTargetRotation(int rotation) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageAnalysis; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, rotation]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + @override + ImageAnalysis pigeon_copy() { + return ImageAnalysis.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// Interface for analyzing images. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis.Analyzer. +class Analyzer extends PigeonInternalProxyApiBaseClass { + Analyzer({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.analyze, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecAnalyzer; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [Analyzer] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + Analyzer.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.analyze, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecAnalyzer = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// Analyzes an image to produce a result. + /// + /// For the associated Native object to be automatically garbage collected, + /// it is required that the implementation of this `Function` doesn't have a + /// strong reference to the encapsulating class instance. When this `Function` + /// references a non-local variable, it is strongly recommended to access it + /// with a `WeakReference`: + /// + /// ```dart + /// final WeakReference weakMyVariable = WeakReference(myVariable); + /// final Analyzer instance = Analyzer( + /// analyze: (Analyzer pigeon_instance, ...) { + /// print(weakMyVariable?.target); + /// }, + /// ); + /// ``` + /// + /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to + /// release the associated Native object manually. + final void Function( + Analyzer pigeon_instance, + ImageProxy image, + ) analyze; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + void Function( + Analyzer pigeon_instance, + ImageProxy image, + )? analyze, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null.'); + final List args = (message as List?)!; + final Analyzer? arg_pigeon_instance = (args[0] as Analyzer?); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null Analyzer.'); + final ImageProxy? arg_image = (args[1] as ImageProxy?); + assert(arg_image != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null ImageProxy.'); + try { + (analyze ?? arg_pigeon_instance!.analyze) + .call(arg_pigeon_instance!, arg_image!); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + Analyzer pigeon_copy() { + return Analyzer.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + analyze: analyze, + ); + } +} + +/// Error that the camera has encountered. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. +class CameraStateStateError extends PigeonInternalProxyApiBaseClass { + /// Constructs [CameraStateStateError] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraStateStateError.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.code, + }); + + /// The code of this error. + final CameraStateErrorCode code; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraStateStateError Function(CameraStateErrorCode code)? + pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null int.'); + final CameraStateErrorCode? arg_code = + (args[1] as CameraStateErrorCode?); + assert(arg_code != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null CameraStateErrorCode.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_code!) ?? + CameraStateStateError.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + code: arg_code!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CameraStateStateError pigeon_copy() { + return CameraStateStateError.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + code: code, + ); + } +} + +/// LiveData is a data holder class that can be observed within a given +/// lifecycle. +/// +/// See https://developer.android.com/reference/androidx/lifecycle/LiveData. +class LiveData extends PigeonInternalProxyApiBaseClass { + /// Constructs [LiveData] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + LiveData.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.type, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecLiveData = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// The generic type used by this instance. + final LiveDataSupportedType type; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + LiveData Function(LiveDataSupportedType type)? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null int.'); + final LiveDataSupportedType? arg_type = + (args[1] as LiveDataSupportedType?); + assert(arg_type != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null LiveDataSupportedType.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_type!) ?? + LiveData.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + type: arg_type!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Adds the given observer to the observers list within the lifespan of the + /// given owner. + Future observe(Observer observer) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecLiveData; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.LiveData.observe'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, observer]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Removes all observers that are tied to the given `LifecycleOwner`. + Future removeObservers() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecLiveData; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Returns the current value. + Future getValue() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecLiveData; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.LiveData.getValue'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return pigeonVar_replyList[0]; + } + } + + @override + LiveData pigeon_copy() { + return LiveData.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + type: type, + ); + } +} + +/// An image proxy which has a similar interface as `android.media.Image`. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. +class ImageProxy extends PigeonInternalProxyApiBaseClass { + /// Constructs [ImageProxy] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ImageProxy.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.format, + required this.width, + required this.height, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecImageProxy = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + /// The image format. + final int format; + + /// The image width. + final int width; + + /// The image height. + final int height; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ImageProxy Function( + int format, + int width, + int height, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); + final int? arg_format = (args[1] as int?); + assert(arg_format != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); + final int? arg_width = (args[2] as int?); + assert(arg_width != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); + final int? arg_height = (args[3] as int?); + assert(arg_height != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_format!, arg_width!, arg_height!) ?? + ImageProxy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + format: arg_format!, + width: arg_width!, + height: arg_height!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Returns the array of planes. + Future> getPlanes() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageProxy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as List?)!.cast(); + } + } + + /// Closes the underlying `android.media.Image`. + Future close() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecImageProxy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.close'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + @override + ImageProxy pigeon_copy() { + return ImageProxy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + format: format, + width: width, + height: height, + ); + } +} + +/// A plane proxy which has an analogous interface as +/// `android.media.Image.Plane`. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. +class PlaneProxy extends PigeonInternalProxyApiBaseClass { + /// Constructs [PlaneProxy] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + PlaneProxy.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.buffer, + required this.pixelStride, + required this.rowStride, + }); + + /// The pixels buffer. + final Uint8List buffer; + + /// The pixel stride. + final int pixelStride; + + /// The row stride. + final int rowStride; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + PlaneProxy Function( + Uint8List buffer, + int pixelStride, + int rowStride, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.'); + final Uint8List? arg_buffer = (args[1] as Uint8List?); + assert(arg_buffer != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null Uint8List.'); + final int? arg_pixelStride = (args[2] as int?); + assert(arg_pixelStride != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.'); + final int? arg_rowStride = (args[3] as int?); + assert(arg_rowStride != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call( + arg_buffer!, arg_pixelStride!, arg_rowStride!) ?? + PlaneProxy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + buffer: arg_buffer!, + pixelStride: arg_pixelStride!, + rowStride: arg_rowStride!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + PlaneProxy pigeon_copy() { + return PlaneProxy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + buffer: buffer, + pixelStride: pixelStride, + rowStride: rowStride, + ); + } +} + +/// Defines a desired quality setting that can be used to configure components +/// with quality setting requirements such as creating a Recorder. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector. +class QualitySelector extends PigeonInternalProxyApiBaseClass { + /// Gets an instance of QualitySelector with a desired quality. + QualitySelector.from({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecQualitySelector; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.from'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + quality, + fallbackStrategy + ]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Gets an instance of QualitySelector with ordered desired qualities. + QualitySelector.fromOrderedList({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required List qualities, + FallbackStrategy? fallbackStrategy, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecQualitySelector; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + qualities, + fallbackStrategy + ]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [QualitySelector] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + QualitySelector.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecQualitySelector = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + QualitySelector Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + QualitySelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Gets the corresponding resolution from the input quality. + static Future getResolution( + CameraInfo cameraInfo, + VideoQuality quality, { + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([cameraInfo, quality]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return (pigeonVar_replyList[0] as CameraSize?); + } + } + + @override + QualitySelector pigeon_copy() { + return QualitySelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A class represents the strategy that will be adopted when the device does +/// not support all the desired Quality in QualitySelector in order to select +/// the quality as possible. +/// +/// See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. +class FallbackStrategy extends PigeonInternalProxyApiBaseClass { + /// Returns a fallback strategy that will choose the quality that is closest + /// to and higher than the input quality. + FallbackStrategy.higherQualityOrLowerThan({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required VideoQuality quality, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFallbackStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, quality]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Returns a fallback strategy that will choose the quality that is closest + /// to and higher than the input quality. + FallbackStrategy.higherQualityThan({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required VideoQuality quality, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFallbackStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, quality]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Returns a fallback strategy that will choose the quality that is closest + /// to and lower than the input quality. + FallbackStrategy.lowerQualityOrHigherThan({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required VideoQuality quality, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFallbackStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, quality]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Returns a fallback strategy that will choose the quality that is closest + /// to and lower than the input quality. + FallbackStrategy.lowerQualityThan({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required VideoQuality quality, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFallbackStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, quality]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [FallbackStrategy] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + FallbackStrategy.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecFallbackStrategy = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + FallbackStrategy Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + FallbackStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + FallbackStrategy pigeon_copy() { + return FallbackStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// The CameraControl provides various asynchronous operations like zoom, focus +/// and metering which affects output of all UseCases currently bound to that +/// camera. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraControl. +class CameraControl extends PigeonInternalProxyApiBaseClass { + /// Constructs [CameraControl] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraControl.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecCameraControl = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraControl Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + CameraControl.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Enable the torch or disable the torch. + Future enableTorch(bool torch) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraControl; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, torch]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Sets current zoom by ratio. + Future setZoomRatio(double ratio) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraControl; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, ratio]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Starts a focus and metering action configured by the + /// `FocusMeteringAction`. + Future startFocusAndMetering( + FocusMeteringAction action) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraControl; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, action]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as FocusMeteringResult?)!; + } + } + + /// Cancels current FocusMeteringAction and clears AF/AE/AWB regions. + Future cancelFocusAndMetering() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraControl; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Set the exposure compensation value for the camera. + Future setExposureCompensationIndex(int index) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCameraControl; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, index]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as int?)!; + } + } + + @override + CameraControl pigeon_copy() { + return CameraControl.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// The builder used to create the `FocusMeteringAction`. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. +class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { + /// Constructs [FocusMeteringActionBuilder] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + FocusMeteringActionBuilder.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecFocusMeteringActionBuilder = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + FocusMeteringActionBuilder Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + FocusMeteringActionBuilder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Adds another MeteringPoint with default metering mode. + Future addPoint(MeteringPoint point) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFocusMeteringActionBuilder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, point]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Adds another MeteringPoint with specified meteringMode. + Future addPointWithMode( + MeteringPoint point, + List modes, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFocusMeteringActionBuilder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, point, modes]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Disables the auto-cancel. + Future disableAutoCancel() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFocusMeteringActionBuilder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + /// Builds the `FocusMeteringAction` instance. + Future build() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFocusMeteringActionBuilder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as FocusMeteringAction?)!; + } + } + + @override + FocusMeteringActionBuilder pigeon_copy() { + return FocusMeteringActionBuilder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A configuration used to trigger a focus and/or metering action. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. +class FocusMeteringAction extends PigeonInternalProxyApiBaseClass { + /// Constructs [FocusMeteringAction] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + FocusMeteringAction.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + FocusMeteringAction Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + FocusMeteringAction.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + FocusMeteringAction pigeon_copy() { + return FocusMeteringAction.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// Result of the `CameraControl.startFocusAndMetering`. +/// +/// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult. +class FocusMeteringResult extends PigeonInternalProxyApiBaseClass { + /// Constructs [FocusMeteringResult] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + FocusMeteringResult.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.isFocusSuccessful, + }); + + /// If auto focus is successful. + final bool isFocusSuccessful; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + FocusMeteringResult Function(bool isFocusSuccessful)? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null int.'); + final bool? arg_isFocusSuccessful = (args[1] as bool?); + assert(arg_isFocusSuccessful != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null bool.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_isFocusSuccessful!) ?? + FocusMeteringResult.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + isFocusSuccessful: arg_isFocusSuccessful!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + FocusMeteringResult pigeon_copy() { + return FocusMeteringResult.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + isFocusSuccessful: isFocusSuccessful, + ); + } +} + +/// An immutable package of settings and outputs needed to capture a single +/// image from the camera device. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest. +class CaptureRequest extends PigeonInternalProxyApiBaseClass { + /// Constructs [CaptureRequest] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CaptureRequest.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + /// Whether auto-exposure (AE) is currently locked to its latest calculated + /// values. + /// + /// Value is boolean. + /// + /// This key is available on all devices. + static final CaptureRequestKey controlAELock = pigeonVar_controlAELock(); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CaptureRequest Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + CaptureRequest.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + static CaptureRequestKey pigeonVar_controlAELock() { + final CaptureRequestKey pigeonVar_instance = + CaptureRequestKey.pigeon_detached(); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec(PigeonInstanceManager.instance); + final BinaryMessenger pigeonVar_binaryMessenger = + ServicesBinding.instance.defaultBinaryMessenger; + final int pigeonVar_instanceIdentifier = PigeonInstanceManager.instance + .addDartCreatedInstance(pigeonVar_instance); + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + return pigeonVar_instance; + } + + @override + CaptureRequest pigeon_copy() { + return CaptureRequest.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A Key is used to do capture request field lookups with CaptureRequest.get or +/// to set fields with `CaptureRequest.Builder.set`. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. +class CaptureRequestKey extends PigeonInternalProxyApiBaseClass { + /// Constructs [CaptureRequestKey] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CaptureRequestKey.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CaptureRequestKey Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + CaptureRequestKey.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CaptureRequestKey pigeon_copy() { + return CaptureRequestKey.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A bundle of Camera2 capture request options. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. +class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { + CaptureRequestOptions({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required Map options, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCaptureRequestOptions; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, options]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [CaptureRequestOptions] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CaptureRequestOptions.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecCaptureRequestOptions = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CaptureRequestOptions Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + CaptureRequestOptions.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CaptureRequestOptions pigeon_copy() { + return CaptureRequestOptions.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// An class that provides ability to interoperate with the +/// 1android.hardware.camera21 APIs. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. +class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { + /// Gets the `Camera2CameraControl` from a `CameraControl`. + Camera2CameraControl.from({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required CameraControl cameraControl, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCamera2CameraControl; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, cameraControl]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [Camera2CameraControl] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + Camera2CameraControl.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecCamera2CameraControl = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + Camera2CameraControl Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + Camera2CameraControl.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Adds a `CaptureRequestOptions` updates the session with the options it + /// contains. + Future addCaptureRequestOptions(CaptureRequestOptions bundle) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCamera2CameraControl; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, bundle]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + @override + Camera2CameraControl pigeon_copy() { + return Camera2CameraControl.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// Applications can filter out unsuitable sizes and sort the resolution list in +/// the preferred order by implementing the resolution filter interface. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. +class ResolutionFilter extends PigeonInternalProxyApiBaseClass { + ResolutionFilter.createWithOnePreferredSize({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required CameraSize preferredSize, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecResolutionFilter; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, preferredSize]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [ResolutionFilter] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + ResolutionFilter.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecResolutionFilter = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + ResolutionFilter Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + ResolutionFilter.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + ResolutionFilter pigeon_copy() { + return ResolutionFilter.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A Key is used to do camera characteristics field lookups with +/// `CameraCharacteristics.get`. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. +class CameraCharacteristicsKey extends PigeonInternalProxyApiBaseClass { + /// Constructs [CameraCharacteristicsKey] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraCharacteristicsKey.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraCharacteristicsKey Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + CameraCharacteristicsKey.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CameraCharacteristicsKey pigeon_copy() { + return CameraCharacteristicsKey.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// The properties describing a `CameraDevice`. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics. +class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { + /// Constructs [CameraCharacteristics] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraCharacteristics.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + /// Generally classifies the overall set of the camera device functionality. + /// + /// Value is Integer. + /// + /// This key is available on all devices. + static final CameraCharacteristicsKey infoSupportedHardwareLevel = + pigeonVar_infoSupportedHardwareLevel(); + + /// Clockwise angle through which the output image needs to be rotated to be + /// upright on the device screen in its native orientation.. + /// + /// Value is Integer. + /// + /// This key is available on all devices. + static final CameraCharacteristicsKey sensorOrientation = + pigeonVar_sensorOrientation(); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraCharacteristics Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + CameraCharacteristics.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + static CameraCharacteristicsKey pigeonVar_infoSupportedHardwareLevel() { + final CameraCharacteristicsKey pigeonVar_instance = + CameraCharacteristicsKey.pigeon_detached(); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec(PigeonInstanceManager.instance); + final BinaryMessenger pigeonVar_binaryMessenger = + ServicesBinding.instance.defaultBinaryMessenger; + final int pigeonVar_instanceIdentifier = PigeonInstanceManager.instance + .addDartCreatedInstance(pigeonVar_instance); + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + return pigeonVar_instance; + } + + static CameraCharacteristicsKey pigeonVar_sensorOrientation() { + final CameraCharacteristicsKey pigeonVar_instance = + CameraCharacteristicsKey.pigeon_detached(); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec(PigeonInstanceManager.instance); + final BinaryMessenger pigeonVar_binaryMessenger = + ServicesBinding.instance.defaultBinaryMessenger; + final int pigeonVar_instanceIdentifier = PigeonInstanceManager.instance + .addDartCreatedInstance(pigeonVar_instance); + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + return pigeonVar_instance; + } + + @override + CameraCharacteristics pigeon_copy() { + return CameraCharacteristics.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// An interface for retrieving Camera2-related camera information. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. +class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { + /// Gets the `Camera2CameraInfo` from a `CameraInfo`. + Camera2CameraInfo.from({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required CameraInfo cameraInfo, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCamera2CameraInfo; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, cameraInfo]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [Camera2CameraInfo] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + Camera2CameraInfo.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecCamera2CameraInfo = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + Camera2CameraInfo Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + Camera2CameraInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Gets the string camera ID. + Future getCameraId() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCamera2CameraInfo; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as String?)!; + } + } + + /// Gets a camera characteristic value. + Future getCameraCharacteristic(CameraCharacteristicsKey key) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCamera2CameraInfo; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, key]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return pigeonVar_replyList[0]; + } + } + + @override + Camera2CameraInfo pigeon_copy() { + return Camera2CameraInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + From 8d3664abff302d729e39c0bef8a29116d16fb60a Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 24 Dec 2024 21:43:12 -0500 Subject: [PATCH 007/148] change dependencies --- .../lib/src/android_camera_camerax.dart | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 1d068eb24f1..59d40d26425 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -12,46 +12,46 @@ import 'package:flutter/services.dart' import 'package:flutter/widgets.dart' show RotatedBox, Size, Texture, Widget, visibleForTesting; import 'package:stream_transform/stream_transform.dart'; - -import 'analyzer.dart'; -import 'aspect_ratio_strategy.dart'; -import 'camera.dart'; -import 'camera2_camera_control.dart'; -import 'camera2_camera_info.dart'; -import 'camera_control.dart'; -import 'camera_info.dart'; -import 'camera_metadata.dart'; -import 'camera_selector.dart'; -import 'camera_state.dart'; -import 'camerax_library.g.dart'; -import 'camerax_proxy.dart'; -import 'capture_request_options.dart'; -import 'device_orientation_manager.dart'; -import 'exposure_state.dart'; -import 'fallback_strategy.dart'; -import 'focus_metering_action.dart'; -import 'focus_metering_result.dart'; -import 'image_analysis.dart'; -import 'image_capture.dart'; -import 'image_proxy.dart'; -import 'live_data.dart'; -import 'metering_point.dart'; -import 'observer.dart'; -import 'pending_recording.dart'; -import 'plane_proxy.dart'; -import 'preview.dart'; -import 'process_camera_provider.dart'; -import 'quality_selector.dart'; -import 'recorder.dart'; -import 'recording.dart'; -import 'resolution_filter.dart'; -import 'resolution_selector.dart'; -import 'resolution_strategy.dart'; -import 'surface.dart'; -import 'system_services.dart'; -import 'use_case.dart'; -import 'video_capture.dart'; -import 'zoom_state.dart'; +import 'camerax_library2.g.dart'; +// import 'analyzer.dart'; +// import 'aspect_ratio_strategy.dart'; +// import 'camera.dart'; +// import 'camera2_camera_control.dart'; +// import 'camera2_camera_info.dart'; +// import 'camera_control.dart'; +// import 'camera_info.dart'; +// import 'camera_metadata.dart'; +// import 'camera_selector.dart'; +// import 'camera_state.dart'; +// import 'camerax_library.g.dart'; +// import 'camerax_proxy.dart'; +// import 'capture_request_options.dart'; +// import 'device_orientation_manager.dart'; +// import 'exposure_state.dart'; +// import 'fallback_strategy.dart'; +// import 'focus_metering_action.dart'; +// import 'focus_metering_result.dart'; +// import 'image_analysis.dart'; +// import 'image_capture.dart'; +// import 'image_proxy.dart'; +// import 'live_data.dart'; +// import 'metering_point.dart'; +// import 'observer.dart'; +// import 'pending_recording.dart'; +// import 'plane_proxy.dart'; +// import 'preview.dart'; +// import 'process_camera_provider.dart'; +// import 'quality_selector.dart'; +// import 'recorder.dart'; +// import 'recording.dart'; +// import 'resolution_filter.dart'; +// import 'resolution_selector.dart'; +// import 'resolution_strategy.dart'; +// import 'surface.dart'; +// import 'system_services.dart'; +// import 'use_case.dart'; +// import 'video_capture.dart'; +// import 'zoom_state.dart'; /// The Android implementation of [CameraPlatform] that uses the CameraX library. class AndroidCameraCameraX extends CameraPlatform { From 1f93a1e04346c1edba80b093250ea22e3bcb2f45 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 25 Dec 2024 02:35:49 -0500 Subject: [PATCH 008/148] some progress --- .../plugins/camerax/CameraXLibrary.g.kt | 4696 ++++++++++++++++- .../lib/src/android_camera_camerax.dart | 141 +- .../lib/src/camerax_library.dart | 67 + .../lib/src/camerax_library2.g.dart | 685 ++- .../lib/src/camerax_proxy2.dart | 286 + .../pigeons/camerax_library.dart | 60 +- .../camera_android_camerax/pubspec.yaml | 6 +- 7 files changed, 5626 insertions(+), 315 deletions(-) create mode 100644 packages/camera/camera_android_camerax/lib/src/camerax_library.dart create mode 100644 packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index d5376393fd6..a9d55efb296 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -608,10 +608,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiFocusMeteringAction] used to add a new Dart instance of * `FocusMeteringAction` to the Dart `InstanceManager`. */ - open fun getPigeonApiFocusMeteringAction(): PigeonApiFocusMeteringAction - { - return PigeonApiFocusMeteringAction(this) - } + abstract fun getPigeonApiFocusMeteringAction(): PigeonApiFocusMeteringAction /** * An implementation of [PigeonApiFocusMeteringResult] used to add a new Dart instance of @@ -673,6 +670,18 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary */ abstract fun getPigeonApiCamera2CameraInfo(): PigeonApiCamera2CameraInfo + /** + * An implementation of [PigeonApiMeteringPointFactory] used to add a new Dart instance of + * `MeteringPointFactory` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory + + /** + * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart instance of + * `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): PigeonApiDisplayOrientedMeteringPointFactory + fun setUp() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, instanceManager) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSize()) @@ -708,6 +717,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionFilter()) PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraCharacteristics()) PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraInfo()) + PigeonApiMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPointFactory()) + PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) } fun tearDown() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, null) @@ -744,6 +755,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, null) PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, null) PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, null) + PigeonApiMeteringPointFactory.setUpMessageHandlers(binaryMessenger, null) + PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, null) } } private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibraryPigeonProxyApiRegistrar) : CameraXLibraryPigeonCodec() { @@ -903,6 +916,12 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) { } } + else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { + registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.MeteringPointFactory) { + registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) { } + } when { registrar.instanceManager.containsInstance(value) -> { @@ -1386,6 +1405,101 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraSize}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraSizeProxyApi extends PigeonApiCameraSize { + CameraSizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraSize pigeon_defaultConstructor() { + return CameraSize(); + } + + @NonNull + @Override + public Long width(CameraSize pigeon_instance) { + return pigeon_instance.getWidth(); + } + + @NonNull + @Override + public Long height(CameraSize pigeon_instance) { + return pigeon_instance.getHeight(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraSizeProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + assertTrue(api.pigeon_defaultConstructor() instanceof CameraSizeProxyApi.CameraSize); + } + + @Test + public void width() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + final CameraSize instance = mock(CameraSize.class); + final Long value = 0; + when(instance.getWidth()).thenReturn(value); + + assertEquals(value, api.width(instance)); + } + + @Test + public void height() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + final CameraSize instance = mock(CameraSize.class); + final Long value = 0; + when(instance.getHeight()).thenReturn(value); + + assertEquals(value, api.height(instance)); + } + +} +*/ /** * A `ResolutionInfo` allows the application to know the resolution information * of a specific use case. @@ -1459,6 +1573,86 @@ abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ResolutionInfo; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionInfo}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionInfoProxyApi extends PigeonApiResolutionInfo { + ResolutionInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionInfo pigeon_defaultConstructor() { + return ResolutionInfo(); + } + + @NonNull + @Override + public android.util.Size resolution(ResolutionInfo pigeon_instance) { + return pigeon_instance.getResolution(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ResolutionInfo +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionInfoProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); + + assertTrue(api.pigeon_defaultConstructor() instanceof ResolutionInfoProxyApi.ResolutionInfo); + } + + @Test + public void resolution() { + final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); + + final ResolutionInfo instance = mock(ResolutionInfo.class); + final android.util.Size value = mock(CameraSize.class); + when(instance.getResolution()).thenReturn(value); + + assertEquals(value, api.resolution(instance)); + } + +} +*/ /** * Immutable class for describing the range of two integer values. * @@ -1538,6 +1732,101 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.util.Range<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraIntegerRange}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraIntegerRangeProxyApi extends PigeonApiCameraIntegerRange { + CameraIntegerRangeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraIntegerRange pigeon_defaultConstructor() { + return CameraIntegerRange(); + } + + @NonNull + @Override + public Long lower(CameraIntegerRange pigeon_instance) { + return pigeon_instance.getLower(); + } + + @NonNull + @Override + public Long upper(CameraIntegerRange pigeon_instance) { + return pigeon_instance.getUpper(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.util.Range<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraIntegerRangeProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + assertTrue(api.pigeon_defaultConstructor() instanceof CameraIntegerRangeProxyApi.CameraIntegerRange); + } + + @Test + public void lower() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + final CameraIntegerRange instance = mock(CameraIntegerRange.class); + final Long value = 0; + when(instance.getLower()).thenReturn(value); + + assertEquals(value, api.lower(instance)); + } + + @Test + public void upper() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + final CameraIntegerRange instance = mock(CameraIntegerRange.class); + final Long value = 0; + when(instance.getUpper()).thenReturn(value); + + assertEquals(value, api.upper(instance)); + } + +} +*/ /** * VideoRecordEvent is used to report video recording events and status. * @@ -1578,6 +1867,54 @@ open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPig } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEvent}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventProxyApi extends PigeonApiVideoRecordEvent { + VideoRecordEventProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventProxyApiTest { +} +*/ /** * Indicates the start of recording. * @@ -1625,6 +1962,54 @@ open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibra } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent.Start; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventStart}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventStartProxyApi extends PigeonApiVideoRecordEventStart { + VideoRecordEventStartProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent.Start +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventStartProxyApiTest { +} +*/ /** * Indicates the finalization of recording. * @@ -1672,6 +2057,54 @@ open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent.Finalize; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventFinalize}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventFinalizeProxyApi extends PigeonApiVideoRecordEventFinalize { + VideoRecordEventFinalizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent.Finalize +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventFinalizeProxyApiTest { +} +*/ /** * A MeteringPoint is used to specify a region which can then be converted to * sensor coordinate system for focus and metering purpose. @@ -1680,12 +2113,6 @@ open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLi */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** Creates a MeteringPoint by x, y. */ - abstract fun pigeon_defaultConstructor(x: Double, y: Double): androidx.camera.core.MeteringPoint - - /** Creates a MeteringPoint by x, y, size. */ - abstract fun withSize(x: Double, y: Double, size: Double): androidx.camera.core.MeteringPoint - /** * Size of the MeteringPoint width and height (ranging from 0 to 1). * @@ -1698,47 +2125,6 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPoint?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_defaultConstructor", codec) - if (api != null) { - channel.setMessageHandler { message, reply -> - val args = message as List - val pigeon_identifierArg = args[0] as Long - val xArg = args[1] as Double - val yArg = args[2] as Double - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(xArg,yArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } - reply.reply(wrapped) - } - } else { - channel.setMessageHandler(null) - } - } - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.withSize", codec) - if (api != null) { - channel.setMessageHandler { message, reply -> - val args = message as List - val pigeon_identifierArg = args[0] as Long - val xArg = args[1] as Double - val yArg = args[2] as Double - val sizeArg = args[3] as Double - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withSize(xArg,yArg,sizeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } - reply.reply(wrapped) - } - } else { - channel.setMessageHandler(null) - } - } run { val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", codec) if (api != null) { @@ -1792,6 +2178,71 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.MeteringPoint; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link MeteringPoint}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class MeteringPointProxyApi extends PigeonApiMeteringPoint { + MeteringPointProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Double getSize(MeteringPoint pigeon_instance) { + return pigeon_instance.getSize(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.MeteringPoint +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MeteringPointProxyApiTest { + @Test + public void getSize() { + final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); + + final MeteringPoint instance = mock(MeteringPoint.class); + final Double value = 1.0; + when(instance.getSize()).thenReturn(value); + + assertEquals(value, api.getSize(instance )); + } + +} +*/ /** * A simple callback that can receive from LiveData. * @@ -1871,9 +2322,114 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } } -/** - * An interface for retrieving camera information. - * + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.lifecycle.Observer<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Observer}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ObserverProxyApi extends PigeonApiObserver { + ObserverProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link Observer} that passes arguments of callback methods to Dart. */ + static class ObserverImpl extends Observer { + private final ObserverProxyApi api; + ObserverImpl(@NonNull ObserverProxyApi api) { + this.api = api; + } + @Override + public void onChanged(@NonNull Any value) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onChanged(this, value, reply -> null)); + } + } + + @NonNull + @Override + public Observer pigeon_defaultConstructor() { + return ObserverImpl(); + } + + @NonNull + @Override + public LiveDataSupportedType type(Observer pigeon_instance) { + switch (pigeon_instance.type) { + case LiveDataSupportedType.CAMERA_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + case LiveDataSupportedType.ZOOM_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.ZOOM_STATE; + default: return io.flutter.plugins.camerax.LiveDataSupportedType.UNKNOWN; + } + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.lifecycle.Observer<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ObserverProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); + + assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.Observer); + } + + @Test + public void type() { + final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); + + final Observer instance = mock(Observer.class); + final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + when(instance.getType()).thenReturn(value); + + assertEquals(value, api.type(instance)); + } + + @Test + public void onChanged() { + final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final ObserverImpl instance = new ObserverImpl(mockApi); + final Any value = -1; + instance.onChanged(value); + + verify(mockApi).onChanged(eq(instance), eq(value), any()); + } + +} +*/ +/** + * An interface for retrieving camera information. + * * See https://developer.android.com/reference/androidx/camera/core/CameraInfo. */ @Suppress("UNCHECKED_CAST") @@ -1969,6 +2525,126 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraInfo; +import androidx.camera.core.ExposureState; +import androidx.lifecycle.LiveData<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraInfo}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraInfoProxyApi extends PigeonApiCameraInfo { + CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Long sensorRotationDegrees(CameraInfo pigeon_instance) { + return pigeon_instance.getSensorRotationDegrees(); + } + + @NonNull + @Override + public androidx.camera.core.ExposureState exposureState(CameraInfo pigeon_instance) { + return pigeon_instance.getExposureState(); + } + + @NonNull + @Override + public androidx.lifecycle.LiveData<*> getCameraState(CameraInfo pigeon_instance) { + return pigeon_instance.getCameraState(); + } + + @NonNull + @Override + public androidx.lifecycle.LiveData<*> getZoomState(CameraInfo pigeon_instance) { + return pigeon_instance.getZoomState(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraInfo +import androidx.camera.core.ExposureState +import androidx.lifecycle.LiveData<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraInfoProxyApiTest { + @Test + public void sensorRotationDegrees() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final Long value = 0; + when(instance.getSensorRotationDegrees()).thenReturn(value); + + assertEquals(value, api.sensorRotationDegrees(instance)); + } + + @Test + public void exposureState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final androidx.camera.core.ExposureState value = mock(ExposureState.class); + when(instance.getExposureState()).thenReturn(value); + + assertEquals(value, api.exposureState(instance)); + } + + @Test + public void getCameraState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final androidx.lifecycle.LiveData<*> value = mock(LiveData.class); + when(instance.getCameraState()).thenReturn(value); + + assertEquals(value, api.getCameraState(instance )); + } + + @Test + public void getZoomState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final androidx.lifecycle.LiveData<*> value = mock(LiveData.class); + when(instance.getZoomState()).thenReturn(value); + + assertEquals(value, api.getZoomState(instance )); + } + +} +*/ /** * A set of requirements and priorities used to select a camera or return a * filtered set of cameras. @@ -2104,6 +2780,99 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraSelector; +import androidx.camera.core.CameraInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraSelector}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraSelectorProxyApi extends PigeonApiCameraSelector { + CameraSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraSelector pigeon_defaultConstructor(@Nullable LensFacing? requireLensFacing) { + return CameraSelector(requireLensFacing); + } + + @NonNull + @Override + public androidx.camera.core.CameraSelector defaultBackCamera() { + return CameraSelector.getDefaultBackCamera(); + } + + @NonNull + @Override + public androidx.camera.core.CameraSelector defaultFrontCamera() { + return CameraSelector.getDefaultFrontCamera(); + } + + @NonNull + @Override + public List filter(CameraSelector, pigeon_instance@NonNull List cameraInfos) { + return pigeon_instance.filter(cameraInfos); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraSelector +import androidx.camera.core.CameraInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraSelectorProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); + + assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT) instanceof CameraSelectorProxyApi.CameraSelector); + } + + @Test + public void filter() { + final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); + + final CameraSelector instance = mock(CameraSelector.class); + final List cameraInfos = Arrays.asList(mock(CameraInfo.class)); + final List value = Arrays.asList(mock(CameraInfo.class)); + when(instance.filter(cameraInfos)).thenReturn(value); + + assertEquals(value, api.filter(instance, cameraInfos)); + } + +} +*/ /** * A singleton which can be used to bind the lifecycle of cameras to any * `LifecycleOwner` within an application's process. @@ -2282,6 +3051,153 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.lifecycle.ProcessCameraProvider; +import androidx.camera.core.UseCase; +import androidx.camera.core.CameraSelector; +import androidx.camera.core.CameraInfo; +import androidx.camera.core.Camera; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ProcessCameraProvider}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ProcessCameraProviderProxyApi extends PigeonApiProcessCameraProvider { + ProcessCameraProviderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public androidx.camera.lifecycle.ProcessCameraProvider getInstance() { + return ProcessCameraProvider.getInstance(); + } + + @NonNull + @Override + public List getAvailableCameraInfos(ProcessCameraProvider pigeon_instance) { + return pigeon_instance.getAvailableCameraInfos(); + } + + @NonNull + @Override + public androidx.camera.core.Camera bindToLifecycle(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.CameraSelector cameraSelectorIdentifier, @NonNull List useCases) { + return pigeon_instance.bindToLifecycle(cameraSelectorIdentifier, useCases); + } + + @NonNull + @Override + public Boolean isBound(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.UseCase useCase) { + return pigeon_instance.isBound(useCase); + } + + @Override + public Void unbind(ProcessCameraProvider, pigeon_instance@NonNull List useCases) { + pigeon_instance.unbind(useCases); + } + + @Override + public Void unbindAll(ProcessCameraProvider pigeon_instance) { + pigeon_instance.unbindAll(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.lifecycle.ProcessCameraProvider +import androidx.camera.core.UseCase +import androidx.camera.core.CameraSelector +import androidx.camera.core.CameraInfo +import androidx.camera.core.Camera +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ProcessCameraProviderProxyApiTest { + @Test + public void getAvailableCameraInfos() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final List value = Arrays.asList(mock(CameraInfo.class)); + when(instance.getAvailableCameraInfos()).thenReturn(value); + + assertEquals(value, api.getAvailableCameraInfos(instance )); + } + + @Test + public void bindToLifecycle() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final androidx.camera.core.CameraSelector cameraSelectorIdentifier = mock(CameraSelector.class); + final List useCases = Arrays.asList(mock(UseCase.class)); + final androidx.camera.core.Camera value = mock(Camera.class); + when(instance.bindToLifecycle(cameraSelectorIdentifier, useCases)).thenReturn(value); + + assertEquals(value, api.bindToLifecycle(instance, cameraSelectorIdentifier, useCases)); + } + + @Test + public void isBound() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final androidx.camera.core.UseCase useCase = mock(UseCase.class); + final Boolean value = true; + when(instance.isBound(useCase)).thenReturn(value); + + assertEquals(value, api.isBound(instance, useCase)); + } + + @Test + public void unbind() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final List useCases = Arrays.asList(mock(UseCase.class)); + api.unbind(instance, useCases); + + verify(instance).unbind(useCases); + } + + @Test + public void unbindAll() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + api.unbindAll(instance ); + + verify(instance).unbindAll(); + } + +} +*/ /** * The use case which all other use cases are built on top of. * @@ -2322,6 +3238,54 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.UseCase; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link UseCase}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class UseCaseProxyApi extends PigeonApiUseCase { + UseCaseProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.UseCase +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class UseCaseProxyApiTest { +} +*/ /** * The camera interface is used to control the flow of data to use cases, * control the camera via the `CameraControl`, and publish the state of the @@ -2395,6 +3359,92 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.Camera; +import androidx.camera.core.CameraControl; +import androidx.camera.core.CameraInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Camera}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraProxyApi extends PigeonApiCamera { + CameraProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public androidx.camera.core.CameraControl cameraControl(Camera pigeon_instance) { + return pigeon_instance.getCameraControl(); + } + + @NonNull + @Override + public androidx.camera.core.CameraInfo getCameraInfo(Camera pigeon_instance) { + return pigeon_instance.getCameraInfo(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.Camera +import androidx.camera.core.CameraControl +import androidx.camera.core.CameraInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraProxyApiTest { + @Test + public void cameraControl() { + final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); + + final Camera instance = mock(Camera.class); + final androidx.camera.core.CameraControl value = mock(CameraControl.class); + when(instance.getCameraControl()).thenReturn(value); + + assertEquals(value, api.cameraControl(instance)); + } + + @Test + public void getCameraInfo() { + final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); + + final Camera instance = mock(Camera.class); + final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); + when(instance.getCameraInfo()).thenReturn(value); + + assertEquals(value, api.getCameraInfo(instance )); + } + +} +*/ /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ interface SystemServicesHostApi { fun requestCameraPermissions(enableAudio: Boolean, callback: (Result) -> Unit) @@ -2773,21 +3823,151 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.Preview; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.ResolutionInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** - * A use case that provides camera stream suitable for video application. + * ProxyApi implementation for {@link Preview}. * - * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** Create a `VideoCapture` associated with the given `VideoOutput`. */ - abstract fun withOutput(videoOutput: androidx.camera.video.VideoOutput): androidx.camera.video.VideoCapture<*> +class PreviewProxyApi extends PigeonApiPreview { + PreviewProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } - /** Gets the VideoOutput associated with this VideoCapture. */ - abstract fun getOutput(pigeon_instance: androidx.camera.video.VideoCapture<*>): androidx.camera.video.VideoOutput + @NonNull + @Override + public Preview pigeon_defaultConstructor(@Nullable Long? targetRotation, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector) { + return Preview(targetRotation, resolutionSelector); + } - /** Sets the desired rotation of the output video. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long) + @NonNull + @Override + public Long setSurfaceProvider(Preview pigeon_instance) { + return pigeon_instance.setSurfaceProvider(); + } + + @Override + public Void releaseSurfaceProvider(Preview pigeon_instance) { + pigeon_instance.releaseSurfaceProvider(); + } + + @Nullable + @Override + public androidx.camera.core.ResolutionInfo? getResolutionInfo(Preview pigeon_instance) { + return pigeon_instance.getResolutionInfo(); + } + + @Override + public Void setTargetRotation(Preview, pigeon_instance@NonNull Long rotation) { + pigeon_instance.setTargetRotation(rotation); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.Preview +import androidx.camera.core.resolutionselector.ResolutionSelector +import androidx.camera.core.ResolutionInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PreviewProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + assertTrue(api.pigeon_defaultConstructor(0, mock(ResolutionSelector.class)) instanceof PreviewProxyApi.Preview); + } + + @Test + public void setSurfaceProvider() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final Long value = 0; + when(instance.setSurfaceProvider()).thenReturn(value); + + assertEquals(value, api.setSurfaceProvider(instance )); + } + + @Test + public void releaseSurfaceProvider() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + api.releaseSurfaceProvider(instance ); + + verify(instance).releaseSurfaceProvider(); + } + + @Test + public void getResolutionInfo() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); + when(instance.getResolutionInfo()).thenReturn(value); + + assertEquals(value, api.getResolutionInfo(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} +*/ +/** + * A use case that provides camera stream suitable for video application. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Create a `VideoCapture` associated with the given `VideoOutput`. */ + abstract fun withOutput(videoOutput: androidx.camera.video.VideoOutput): androidx.camera.video.VideoCapture<*> + + /** Gets the VideoOutput associated with this VideoCapture. */ + abstract fun getOutput(pigeon_instance: androidx.camera.video.VideoCapture<*>): androidx.camera.video.VideoOutput + + /** Sets the desired rotation of the output video. */ + abstract fun setTargetRotation(pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long) companion object { @Suppress("LocalVariableName") @@ -2891,6 +4071,102 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoCapture<*>; +import androidx.camera.video.VideoOutput; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoCapture}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoCaptureProxyApi extends PigeonApiVideoCapture { + VideoCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public VideoCapture withOutput(@NonNull androidx.camera.video.VideoOutput videoOutput) { + return VideoCapture(videoOutput); + } + + @NonNull + @Override + public androidx.camera.video.VideoOutput getOutput(VideoCapture pigeon_instance) { + return pigeon_instance.getOutput(); + } + + @Override + public Void setTargetRotation(VideoCapture, pigeon_instance@NonNull Long rotation) { + pigeon_instance.setTargetRotation(rotation); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoCapture<*> +import androidx.camera.video.VideoOutput +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoCaptureProxyApiTest { + @Test + public void withOutput() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + assertTrue(api.withOutput(mock(VideoOutput.class)) instanceof VideoCaptureProxyApi.VideoCapture); + } + + @Test + public void getOutput() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + final VideoCapture instance = mock(VideoCapture.class); + final androidx.camera.video.VideoOutput value = mock(VideoOutput.class); + when(instance.getOutput()).thenReturn(value); + + assertEquals(value, api.getOutput(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + final VideoCapture instance = mock(VideoCapture.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} +*/ /** * A class that will produce video data from a Surface. * @@ -2931,6 +4207,54 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoOutput; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoOutput}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoOutputProxyApi extends PigeonApiVideoOutput { + VideoOutputProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoOutput +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoOutputProxyApiTest { +} +*/ /** * An implementation of `VideoOutput` for starting video recordings that are * saved to a File, ParcelFileDescriptor, or MediaStore. @@ -3070,6 +4394,123 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.Recorder; +import androidx.camera.video.QualitySelector; +import androidx.camera.video.PendingRecording; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Recorder}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class RecorderProxyApi extends PigeonApiRecorder { + RecorderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Recorder pigeon_defaultConstructor(@Nullable Long? aspectRatio, @Nullable Long? targetVideoEncodingBitRate, @Nullable androidx.camera.video.QualitySelector? qualitySelector) { + return Recorder(aspectRatio, targetVideoEncodingBitRate, qualitySelector); + } + + @NonNull + @Override + public Long getAspectRatio(Recorder pigeon_instance) { + return pigeon_instance.getAspectRatio(); + } + + @NonNull + @Override + public Long getTargetVideoEncodingBitRate(Recorder pigeon_instance) { + return pigeon_instance.getTargetVideoEncodingBitRate(); + } + + @NonNull + @Override + public androidx.camera.video.PendingRecording prepareRecording(Recorder, pigeon_instance@NonNull String path) { + return pigeon_instance.prepareRecording(path); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.Recorder +import androidx.camera.video.QualitySelector +import androidx.camera.video.PendingRecording +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class RecorderProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + assertTrue(api.pigeon_defaultConstructor(0, 0, mock(QualitySelector.class)) instanceof RecorderProxyApi.Recorder); + } + + @Test + public void getAspectRatio() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final Long value = 0; + when(instance.getAspectRatio()).thenReturn(value); + + assertEquals(value, api.getAspectRatio(instance )); + } + + @Test + public void getTargetVideoEncodingBitRate() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final Long value = 0; + when(instance.getTargetVideoEncodingBitRate()).thenReturn(value); + + assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); + } + + @Test + public void prepareRecording() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final String path = "myString"; + final androidx.camera.video.PendingRecording value = mock(PendingRecording.class); + when(instance.prepareRecording(path)).thenReturn(value); + + assertEquals(value, api.prepareRecording(instance, path)); + } + +} +*/ /** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @@ -3143,6 +4584,90 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventListener}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventListenerProxyApi extends PigeonApiVideoRecordEventListener { + VideoRecordEventListenerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link VideoRecordEventListener} that passes arguments of callback methods to Dart. */ + static class VideoRecordEventListenerImpl extends VideoRecordEventListener { + private final VideoRecordEventListenerProxyApi api; + VideoRecordEventListenerImpl(@NonNull VideoRecordEventListenerProxyApi api) { + this.api = api; + } + @Override + public void onEvent(@NonNull androidx.camera.video.VideoRecordEvent event) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onEvent(this, event, reply -> null)); + } + } + + @NonNull + @Override + public VideoRecordEventListener pigeon_defaultConstructor() { + return VideoRecordEventListenerImpl(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventListenerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiVideoRecordEventListener api = new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); + + assertTrue(api.pigeon_defaultConstructor() instanceof VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl); + } + + @Test + public void onEvent() { + final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final VideoRecordEventListenerImpl instance = new VideoRecordEventListenerImpl(mockApi); + final androidx.camera.video.VideoRecordEvent event = mock(VideoRecordEvent.class); + instance.onEvent(event); + + verify(mockApi).onEvent(eq(instance), eq(event), any()); + } + +} +*/ /** * A recording that can be started at a future time. * @@ -3211,6 +4736,74 @@ abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibrar } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.PendingRecording; +import androidx.camera.video.Recording; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link PendingRecording}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class PendingRecordingProxyApi extends PigeonApiPendingRecording { + PendingRecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public androidx.camera.video.Recording start(PendingRecording, pigeon_instance@NonNull VideoRecordEventListener listener) { + return pigeon_instance.start(listener); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.PendingRecording +import androidx.camera.video.Recording +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PendingRecordingProxyApiTest { + @Test + public void start() { + final PigeonApiPendingRecording api = new TestProxyApiRegistrar().getPigeonApiPendingRecording(); + + final PendingRecording instance = mock(PendingRecording.class); + final VideoRecordEventListener listener = mock(VideoRecordEventListener.class); + final androidx.camera.video.Recording value = mock(Recording.class); + when(instance.start(listener)).thenReturn(value); + + assertEquals(value, api.start(instance, listener)); + } + +} +*/ /** * Provides controls for the currently active recording. * @@ -3346,40 +4939,148 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.Recording; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** - * A use case for taking a picture. + * ProxyApi implementation for {@link Recording}. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(targetRotation: Long?, flashMode: FlashMode?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageCapture +class RecordingProxyApi extends PigeonApiRecording { + RecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } - /** Set the flash mode. */ - abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: FlashMode) + @Override + public Void close(Recording pigeon_instance) { + pigeon_instance.close(); + } - /** Captures a new still image for in memory access. */ - abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) + @Override + public Void pause(Recording pigeon_instance) { + pigeon_instance.pause(); + } - /** Sets the desired rotation of the output image. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) + @Override + public Void resume(Recording pigeon_instance) { + pigeon_instance.resume(); + } - companion object { - @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageCapture?) { - val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", codec) - if (api != null) { - channel.setMessageHandler { message, reply -> - val args = message as List - val pigeon_identifierArg = args[0] as Long - val targetRotationArg = args[1] as Long? - val flashModeArg = args[2] as FlashMode? - val resolutionSelectorArg = args[3] as androidx.camera.core.resolutionselector.ResolutionSelector? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,flashModeArg,resolutionSelectorArg), pigeon_identifierArg) - listOf(null) + @Override + public Void stop(Recording pigeon_instance) { + pigeon_instance.stop(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.Recording +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class RecordingProxyApiTest { + @Test + public void close() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.close(instance ); + + verify(instance).close(); + } + + @Test + public void pause() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.pause(instance ); + + verify(instance).pause(); + } + + @Test + public void resume() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.resume(instance ); + + verify(instance).resume(); + } + + @Test + public void stop() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.stop(instance ); + + verify(instance).stop(); + } + +} +*/ +/** + * A use case for taking a picture. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(targetRotation: Long?, flashMode: FlashMode?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageCapture + + /** Set the flash mode. */ + abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: FlashMode) + + /** Captures a new still image for in memory access. */ + abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) + + /** Sets the desired rotation of the output image. */ + abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageCapture?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val targetRotationArg = args[1] as Long? + val flashModeArg = args[2] as FlashMode? + val resolutionSelectorArg = args[3] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,flashModeArg,resolutionSelectorArg), pigeon_identifierArg) + listOf(null) } catch (exception: Throwable) { wrapError(exception) } @@ -3490,6 +5191,118 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageCapture; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ImageCapture}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ImageCaptureProxyApi extends PigeonApiImageCapture { + ImageCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ImageCapture pigeon_defaultConstructor(@Nullable Long? targetRotation, @Nullable FlashMode? flashMode, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector) { + return ImageCapture(targetRotation, flashMode, resolutionSelector); + } + + @Override + public Void setFlashMode(ImageCapture, pigeon_instance@NonNull FlashMode flashMode) { + pigeon_instance.setFlashMode(flashMode); + } + + @NonNull + @Override + public String takePicture(ImageCapture pigeon_instance) { + return pigeon_instance.takePicture(); + } + + @Override + public Void setTargetRotation(ImageCapture, pigeon_instance@NonNull Long rotation) { + pigeon_instance.setTargetRotation(rotation); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageCapture +import androidx.camera.core.resolutionselector.ResolutionSelector +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageCaptureProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.FlashMode.AUTO, mock(ResolutionSelector.class)) instanceof ImageCaptureProxyApi.ImageCapture); + } + + @Test + public void setFlashMode() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final FlashMode flashMode = io.flutter.plugins.camerax.FlashMode.AUTO; + api.setFlashMode(instance, flashMode); + + verify(instance).setFlashMode(flashMode); + } + + @Test + public void takePicture() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final String value = "myString"; + when(instance.takePicture()).thenReturn(value); + + assertEquals(value, api.takePicture(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} +*/ /** * The resolution strategy defines the resolution selection sequence to select * the best size. @@ -3580,6 +5393,75 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionStrategy; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionStrategy}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionStrategyProxyApi extends PigeonApiResolutionStrategy { + ResolutionStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionStrategy pigeon_defaultConstructor(@NonNull android.util.Size boundSize, @NonNull ResolutionStrategyFallbackRule fallbackRule) { + return ResolutionStrategy(boundSize, fallbackRule); + } + + @NonNull + @Override + public androidx.camera.core.resolutionselector.ResolutionStrategy highestAvailableStrategy() { + return ResolutionStrategy.getHighestAvailableStrategy(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.ResolutionStrategy +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionStrategyProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + assertTrue(api.pigeon_defaultConstructor(mock(CameraSize.class), io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER) instanceof ResolutionStrategyProxyApi.ResolutionStrategy); + } + +} +*/ /** * A set of requirements and priorities used to select a resolution for the * `UseCase`. @@ -3651,6 +5533,73 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.resolutionselector.AspectRatioStrategy; +import androidx.camera.core.resolutionselector.ResolutionStrategy; +import androidx.camera.core.resolutionselector.ResolutionFilter; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionSelector}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { + ResolutionSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionSelector pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.AspectRatioStrategy? aspectRatioStrategy, @Nullable androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy, @Nullable androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter) { + return ResolutionSelector(aspectRatioStrategy, resolutionStrategy, resolutionFilter); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.ResolutionSelector +import androidx.camera.core.resolutionselector.AspectRatioStrategy +import androidx.camera.core.resolutionselector.ResolutionStrategy +import androidx.camera.core.resolutionselector.ResolutionFilter +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionSelectorProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class), mock(ResolutionStrategy.class), mock(ResolutionFilter.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); + } + +} +*/ /** * The aspect ratio strategy defines the sequence of aspect ratios that are * used to select the best size for a particular image. @@ -3773,6 +5722,79 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.AspectRatioStrategy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link AspectRatioStrategy}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class AspectRatioStrategyProxyApi extends PigeonApiAspectRatioStrategy { + AspectRatioStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public AspectRatioStrategy pigeon_defaultConstructor(@NonNull Long preferredAspectRatio, @NonNull AspectRatioStrategyFallbackRule fallbackRule) { + return AspectRatioStrategy(preferredAspectRatio, fallbackRule); + } + + @NonNull + @Override + public androidx.camera.core.resolutionselector.AspectRatioStrategy ratio_16_9FallbackAutoStrategy() { + return AspectRatioStrategy.getRatio_16_9FallbackAutoStrategy(); + } + + @NonNull + @Override + public androidx.camera.core.resolutionselector.AspectRatioStrategy ratio_4_3FallbackAutoStrategy() { + return AspectRatioStrategy.getRatio_4_3FallbackAutoStrategy(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.AspectRatioStrategy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class AspectRatioStrategyProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + + assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO) instanceof AspectRatioStrategyProxyApi.AspectRatioStrategy); + } + +} +*/ /** * Represents the different states the camera can be in. * @@ -3784,7 +5806,7 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType /** Potentially returns an error the camera encountered. */ - abstract fun error(pigeon_instance: androidx.camera.core.CameraState): androidx.camera.core.CameraState.StateError + abstract fun error(pigeon_instance: androidx.camera.core.CameraState): androidx.camera.core.CameraState.StateError? @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ @@ -3821,6 +5843,97 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState; +import androidx.camera.core.CameraState.StateError; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraState}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraStateProxyApi extends PigeonApiCameraState { + CameraStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraStateType type(CameraState pigeon_instance) { + switch (pigeon_instance.type) { + case CameraStateType.CLOSED: return io.flutter.plugins.camerax.CameraStateType.CLOSED; + case CameraStateType.CLOSING: return io.flutter.plugins.camerax.CameraStateType.CLOSING; + case CameraStateType.OPEN: return io.flutter.plugins.camerax.CameraStateType.OPEN; + case CameraStateType.OPENING: return io.flutter.plugins.camerax.CameraStateType.OPENING; + case CameraStateType.PENDING_OPEN: return io.flutter.plugins.camerax.CameraStateType.PENDING_OPEN; + default: return io.flutter.plugins.camerax.CameraStateType.UNKNOWN; + } + } + + @Nullable + @Override + public androidx.camera.core.CameraState.StateError? error(CameraState pigeon_instance) { + return pigeon_instance.getError(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraState +import androidx.camera.core.CameraState.StateError +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraStateProxyApiTest { + @Test + public void type() { + final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); + + final CameraState instance = mock(CameraState.class); + final CameraStateType value = io.flutter.plugins.camerax.CameraStateType.CLOSED; + when(instance.getType()).thenReturn(value); + + assertEquals(value, api.type(instance)); + } + + @Test + public void error() { + final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); + + final CameraState instance = mock(CameraState.class); + final androidx.camera.core.CameraState.StateError value = mock(CameraStateStateError.class); + when(instance.getError()).thenReturn(value); + + assertEquals(value, api.error(instance)); + } + +} +*/ /** * An interface which contains the camera exposure related information. * @@ -3872,31 +5985,115 @@ abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ExposureState; +import android.util.Range<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** - * An interface which contains the zoom related information from a camera. + * ProxyApi implementation for {@link ExposureState}. * - * See https://developer.android.com/reference/androidx/camera/core/ZoomState. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** The minimum zoom ratio. */ - abstract fun minZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double +class ExposureStateProxyApi extends PigeonApiExposureState { + ExposureStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } - /** The maximum zoom ratio. */ - abstract fun maxZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double + @NonNull + @Override + public android.util.Range<*> exposureCompensationRange(ExposureState pigeon_instance) { + return pigeon_instance.getExposureCompensationRange(); + } - @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit) -{ - if (pigeonRegistrar.ignoreCallsToDart) { - callback( - Result.failure( - CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) + @NonNull + @Override + public Double exposureCompensationStep(ExposureState pigeon_instance) { + return pigeon_instance.getExposureCompensationStep(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ExposureState +import android.util.Range<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ExposureStateProxyApiTest { + @Test + public void exposureCompensationRange() { + final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); + + final ExposureState instance = mock(ExposureState.class); + final android.util.Range<*> value = mock(CameraIntegerRange.class); + when(instance.getExposureCompensationRange()).thenReturn(value); + + assertEquals(value, api.exposureCompensationRange(instance)); + } + + @Test + public void exposureCompensationStep() { + final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); + + final ExposureState instance = mock(ExposureState.class); + final Double value = 1.0; + when(instance.getExposureCompensationStep()).thenReturn(value); + + assertEquals(value, api.exposureCompensationStep(instance)); + } + +} +*/ +/** + * An interface which contains the zoom related information from a camera. + * + * See https://developer.android.com/reference/androidx/camera/core/ZoomState. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The minimum zoom ratio. */ + abstract fun minZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double + + /** The maximum zoom ratio. */ + abstract fun maxZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) return } val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) @@ -3920,6 +6117,88 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ZoomState; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ZoomState}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ZoomStateProxyApi extends PigeonApiZoomState { + ZoomStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Double minZoomRatio(ZoomState pigeon_instance) { + return pigeon_instance.getMinZoomRatio(); + } + + @NonNull + @Override + public Double maxZoomRatio(ZoomState pigeon_instance) { + return pigeon_instance.getMaxZoomRatio(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ZoomState +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ZoomStateProxyApiTest { + @Test + public void minZoomRatio() { + final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); + + final ZoomState instance = mock(ZoomState.class); + final Double value = 1.0; + when(instance.getMinZoomRatio()).thenReturn(value); + + assertEquals(value, api.minZoomRatio(instance)); + } + + @Test + public void maxZoomRatio() { + final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); + + final ZoomState instance = mock(ZoomState.class); + final Double value = 1.0; + when(instance.getMaxZoomRatio()).thenReturn(value); + + assertEquals(value, api.maxZoomRatio(instance)); + } + +} +*/ /** * A use case providing CPU accessible images for an app to perform image * analysis on. @@ -4062,6 +6341,118 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageAnalysis; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.ImageAnalysis.Analyzer; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ImageAnalysis}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { + ImageAnalysisProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ImageAnalysis pigeon_defaultConstructor(@Nullable Long? targetRotation, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector) { + return ImageAnalysis(targetRotation, resolutionSelector); + } + + @Override + public Void setAnalyzer(ImageAnalysis, pigeon_instance@NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) { + pigeon_instance.setAnalyzer(analyzer); + } + + @Override + public Void clearAnalyzer(ImageAnalysis pigeon_instance) { + pigeon_instance.clearAnalyzer(); + } + + @Override + public Void setTargetRotation(ImageAnalysis, pigeon_instance@NonNull Long rotation) { + pigeon_instance.setTargetRotation(rotation); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageAnalysis +import androidx.camera.core.resolutionselector.ResolutionSelector +import androidx.camera.core.ImageAnalysis.Analyzer +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageAnalysisProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + assertTrue(api.pigeon_defaultConstructor(0, mock(ResolutionSelector.class)) instanceof ImageAnalysisProxyApi.ImageAnalysis); + } + + @Test + public void setAnalyzer() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); + api.setAnalyzer(instance, analyzer); + + verify(instance).setAnalyzer(analyzer); + } + + @Test + public void clearAnalyzer() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + api.clearAnalyzer(instance ); + + verify(instance).clearAnalyzer(); + } + + @Test + public void setTargetRotation() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} +*/ /** * Interface for analyzing images. * @@ -4140,6 +6531,92 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageAnalysis.Analyzer; +import androidx.camera.core.ImageProxy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Analyzer}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class AnalyzerProxyApi extends PigeonApiAnalyzer { + AnalyzerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link Analyzer} that passes arguments of callback methods to Dart. */ + static class AnalyzerImpl extends Analyzer { + private final AnalyzerProxyApi api; + AnalyzerImpl(@NonNull AnalyzerProxyApi api) { + this.api = api; + } + @Override + public void analyze(@NonNull androidx.camera.core.ImageProxy image) { + api.getPigeonRegistrar().runOnMainThread(() -> api.analyze(this, image, reply -> null)); + } + } + + @NonNull + @Override + public Analyzer pigeon_defaultConstructor() { + return AnalyzerImpl(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageAnalysis.Analyzer +import androidx.camera.core.ImageProxy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class AnalyzerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiAnalyzer api = new TestProxyApiRegistrar().getPigeonApiAnalyzer(); + + assertTrue(api.pigeon_defaultConstructor() instanceof AnalyzerProxyApi.AnalyzerImpl); + } + + @Test + public void analyze() { + final AnalyzerProxyApi mockApi = mock(AnalyzerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final AnalyzerImpl instance = new AnalyzerImpl(mockApi); + final androidx.camera.core.ImageProxy image = mock(ImageProxy.class); + instance.analyze(image); + + verify(mockApi).analyze(eq(instance), eq(image), any()); + } + +} +*/ /** * Error that the camera has encountered. * @@ -4184,6 +6661,80 @@ abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXL } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState.StateError; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraStateStateError}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraStateStateErrorProxyApi extends PigeonApiCameraStateStateError { + CameraStateStateErrorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraStateErrorCode code(CameraStateStateError pigeon_instance) { + switch (pigeon_instance.code) { + case CameraStateErrorCode.DISABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.DISABLED; + case CameraStateErrorCode.FATAL_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.FATAL_ERROR; + case CameraStateErrorCode.IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.IN_USE; + case CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED; + case CameraStateErrorCode.MAX_CAMERAS_IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.MAX_CAMERAS_IN_USE; + case CameraStateErrorCode.OTHER_RECOVERABLE_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.OTHER_RECOVERABLE_ERROR; + case CameraStateErrorCode.STREAM_CONFIG: return io.flutter.plugins.camerax.CameraStateErrorCode.STREAM_CONFIG; + default: return io.flutter.plugins.camerax.CameraStateErrorCode.UNKNOWN; + } + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraState.StateError +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraStateStateErrorProxyApiTest { + @Test + public void code() { + final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); + + final CameraStateStateError instance = mock(CameraStateStateError.class); + final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.DISABLED; + when(instance.getCode()).thenReturn(value); + + assertEquals(value, api.code(instance)); + } + +} +*/ /** * LiveData is a data holder class that can be observed within a given * lifecycle. @@ -4302,6 +6853,125 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.lifecycle.LiveData<*>; +import androidx.lifecycle.Observer<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link LiveData}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class LiveDataProxyApi extends PigeonApiLiveData { + LiveDataProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public LiveDataSupportedType type(LiveData pigeon_instance) { + switch (pigeon_instance.type) { + case LiveDataSupportedType.CAMERA_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + case LiveDataSupportedType.ZOOM_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.ZOOM_STATE; + default: return io.flutter.plugins.camerax.LiveDataSupportedType.UNKNOWN; + } + } + + @Override + public Void observe(LiveData, pigeon_instance@NonNull androidx.lifecycle.Observer<*> observer) { + pigeon_instance.observe(observer); + } + + @Override + public Void removeObservers(LiveData pigeon_instance) { + pigeon_instance.removeObservers(); + } + + @Nullable + @Override + public Any? getValue(LiveData pigeon_instance) { + return pigeon_instance.getValue(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.lifecycle.LiveData<*> +import androidx.lifecycle.Observer<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class LiveDataProxyApiTest { + @Test + public void type() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + when(instance.getType()).thenReturn(value); + + assertEquals(value, api.type(instance)); + } + + @Test + public void observe() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + final androidx.lifecycle.Observer<*> observer = mock(Observer.class); + api.observe(instance, observer); + + verify(instance).observe(observer); + } + + @Test + public void removeObservers() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + api.removeObservers(instance ); + + verify(instance).removeObservers(); + } + + @Test + public void getValue() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + final Any value = -1; + when(instance.getValue()).thenReturn(value); + + assertEquals(value, api.getValue(instance )); + } + +} +*/ /** * An image proxy which has a similar interface as `android.media.Image`. * @@ -4402,24 +7072,157 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageProxy; +import androidx.camera.core.ImageProxy.PlaneProxy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** - * A plane proxy which has an analogous interface as - * `android.media.Image.Plane`. + * ProxyApi implementation for {@link ImageProxy}. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** The pixels buffer. */ - abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray +class ImageProxyProxyApi extends PigeonApiImageProxy { + ImageProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } - /** The pixel stride. */ - abstract fun pixelStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long + @NonNull + @Override + public Long format(ImageProxy pigeon_instance) { + return pigeon_instance.getFormat(); + } - /** The row stride. */ - abstract fun rowStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long + @NonNull + @Override + public Long width(ImageProxy pigeon_instance) { + return pigeon_instance.getWidth(); + } - @Suppress("LocalVariableName", "FunctionName") + @NonNull + @Override + public Long height(ImageProxy pigeon_instance) { + return pigeon_instance.getHeight(); + } + + @NonNull + @Override + public List getPlanes(ImageProxy pigeon_instance) { + return pigeon_instance.getPlanes(); + } + + @Override + public Void close(ImageProxy pigeon_instance) { + pigeon_instance.close(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageProxy +import androidx.camera.core.ImageProxy.PlaneProxy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageProxyProxyApiTest { + @Test + public void format() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final Long value = 0; + when(instance.getFormat()).thenReturn(value); + + assertEquals(value, api.format(instance)); + } + + @Test + public void width() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final Long value = 0; + when(instance.getWidth()).thenReturn(value); + + assertEquals(value, api.width(instance)); + } + + @Test + public void height() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final Long value = 0; + when(instance.getHeight()).thenReturn(value); + + assertEquals(value, api.height(instance)); + } + + @Test + public void getPlanes() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final List value = Arrays.asList(mock(PlaneProxy.class)); + when(instance.getPlanes()).thenReturn(value); + + assertEquals(value, api.getPlanes(instance )); + } + + @Test + public void close() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + api.close(instance ); + + verify(instance).close(); + } + +} +*/ +/** + * A plane proxy which has an analogous interface as + * `android.media.Image.Plane`. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The pixels buffer. */ + abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray + + /** The pixel stride. */ + abstract fun pixelStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long + + /** The row stride. */ + abstract fun rowStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long + + @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit) { @@ -4455,6 +7258,105 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageProxy.PlaneProxy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link PlaneProxy}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class PlaneProxyProxyApi extends PigeonApiPlaneProxy { + PlaneProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ByteArray buffer(PlaneProxy pigeon_instance) { + return pigeon_instance.getBuffer(); + } + + @NonNull + @Override + public Long pixelStride(PlaneProxy pigeon_instance) { + return pigeon_instance.getPixelStride(); + } + + @NonNull + @Override + public Long rowStride(PlaneProxy pigeon_instance) { + return pigeon_instance.getRowStride(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageProxy.PlaneProxy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PlaneProxyProxyApiTest { + @Test + public void buffer() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final ByteArray value = {0xA1}; + when(instance.getBuffer()).thenReturn(value); + + assertEquals(value, api.buffer(instance)); + } + + @Test + public void pixelStride() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final Long value = 0; + when(instance.getPixelStride()).thenReturn(value); + + assertEquals(value, api.pixelStride(instance)); + } + + @Test + public void rowStride() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final Long value = 0; + when(instance.getRowStride()).thenReturn(value); + + assertEquals(value, api.rowStride(instance)); + } + +} +*/ /** * Defines a desired quality setting that can be used to configure components * with quality setting requirements such as creating a Recorder. @@ -4570,6 +7472,92 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.QualitySelector; +import androidx.camera.video.FallbackStrategy; +import androidx.camera.core.CameraInfo; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link QualitySelector}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class QualitySelectorProxyApi extends PigeonApiQualitySelector { + QualitySelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public QualitySelector from(@NonNull VideoQuality quality, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { + return QualitySelector(quality, fallbackStrategy); + } + + @NonNull + @Override + public QualitySelector fromOrderedList(@NonNull List qualities, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { + return QualitySelector(qualities, fallbackStrategy); + } + + @Nullable + @Override + public android.util.Size? getResolution(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull VideoQuality quality) { + return QualitySelector.getResolution(cameraInfo, quality); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.QualitySelector +import androidx.camera.video.FallbackStrategy +import androidx.camera.core.CameraInfo +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class QualitySelectorProxyApiTest { + @Test + public void from() { + final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + assertTrue(api.from(io.flutter.plugins.camerax.VideoQuality.SD, mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); + } + + @Test + public void fromOrderedList() { + final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + assertTrue(api.fromOrderedList(Arrays.asList(io.flutter.plugins.camerax.VideoQuality.SD), mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); + } + +} +*/ /** * A class represents the strategy that will be adopted when the device does * not support all the desired Quality in QualitySelector in order to select @@ -4719,6 +7707,106 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.FallbackStrategy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FallbackStrategy}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FallbackStrategyProxyApi extends PigeonApiFallbackStrategy { + FallbackStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public FallbackStrategy higherQualityOrLowerThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + + @NonNull + @Override + public FallbackStrategy higherQualityThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + + @NonNull + @Override + public FallbackStrategy lowerQualityOrHigherThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + + @NonNull + @Override + public FallbackStrategy lowerQualityThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.FallbackStrategy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FallbackStrategyProxyApiTest { + @Test + public void higherQualityOrLowerThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.higherQualityOrLowerThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + + @Test + public void higherQualityThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.higherQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + + @Test + public void lowerQualityOrHigherThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.lowerQualityOrHigherThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + + @Test + public void lowerQualityThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.lowerQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + +} +*/ /** * The CameraControl provides various asynchronous operations like zoom, focus * and metering which affects output of all UseCases currently bound to that @@ -4887,6 +7975,141 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraControl; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.FocusMeteringResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraControl}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraControlProxyApi extends PigeonApiCameraControl { + CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public Void enableTorch(CameraControl, pigeon_instance@NonNull Boolean torch) { + pigeon_instance.enableTorch(torch); + } + + @Override + public Void setZoomRatio(CameraControl, pigeon_instance@NonNull Double ratio) { + pigeon_instance.setZoomRatio(ratio); + } + + @NonNull + @Override + public androidx.camera.core.FocusMeteringResult startFocusAndMetering(CameraControl, pigeon_instance@NonNull androidx.camera.core.FocusMeteringAction action) { + return pigeon_instance.startFocusAndMetering(action); + } + + @Override + public Void cancelFocusAndMetering(CameraControl pigeon_instance) { + pigeon_instance.cancelFocusAndMetering(); + } + + @NonNull + @Override + public Long setExposureCompensationIndex(CameraControl, pigeon_instance@NonNull Long index) { + return pigeon_instance.setExposureCompensationIndex(index); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraControl +import androidx.camera.core.FocusMeteringAction +import androidx.camera.core.FocusMeteringResult +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraControlProxyApiTest { + @Test + public void enableTorch() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final Boolean torch = true; + api.enableTorch(instance, torch); + + verify(instance).enableTorch(torch); + } + + @Test + public void setZoomRatio() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final Double ratio = 1.0; + api.setZoomRatio(instance, ratio); + + verify(instance).setZoomRatio(ratio); + } + + @Test + public void startFocusAndMetering() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final androidx.camera.core.FocusMeteringAction action = mock(FocusMeteringAction.class); + final androidx.camera.core.FocusMeteringResult value = mock(FocusMeteringResult.class); + when(instance.startFocusAndMetering(action)).thenReturn(value); + + assertEquals(value, api.startFocusAndMetering(instance, action)); + } + + @Test + public void cancelFocusAndMetering() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + api.cancelFocusAndMetering(instance ); + + verify(instance).cancelFocusAndMetering(); + } + + @Test + public void setExposureCompensationIndex() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final Long index = 0; + final Long value = 0; + when(instance.setExposureCompensationIndex(index)).thenReturn(value); + + assertEquals(value, api.setExposureCompensationIndex(instance, index)); + } + +} +*/ /** * The builder used to create the `FocusMeteringAction`. * @@ -5020,37 +8243,170 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringAction.Builder; +import androidx.camera.core.MeteringPoint; +import androidx.camera.core.FocusMeteringAction; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** - * A configuration used to trigger a focus and/or metering action. + * ProxyApi implementation for {@link FocusMeteringActionBuilder}. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. */ -@Suppress("UNCHECKED_CAST") -open class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) -{ - if (pigeonRegistrar.ignoreCallsToDart) { - callback( - Result.failure( - CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { +class FocusMeteringActionBuilderProxyApi extends PigeonApiFocusMeteringActionBuilder { + FocusMeteringActionBuilderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public Void addPoint(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point) { + pigeon_instance.addPoint(point); + } + + @Override + public Void addPointWithMode(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point, @NonNull List modes) { + pigeon_instance.addPointWithMode(point, modes); + } + + @Override + public Void disableAutoCancel(FocusMeteringActionBuilder pigeon_instance) { + pigeon_instance.disableAutoCancel(); + } + + @NonNull + @Override + public androidx.camera.core.FocusMeteringAction build(FocusMeteringActionBuilder pigeon_instance) { + return pigeon_instance.build(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.FocusMeteringAction.Builder +import androidx.camera.core.MeteringPoint +import androidx.camera.core.FocusMeteringAction +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringActionBuilderProxyApiTest { + @Test + public void addPoint() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); + api.addPoint(instance, point); + + verify(instance).addPoint(point); + } + + @Test + public void addPointWithMode() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); + final List modes = Arrays.asList(io.flutter.plugins.camerax.MeteringMode.AE); + api.addPointWithMode(instance, point, modes); + + verify(instance).addPointWithMode(point, modes); + } + + @Test + public void disableAutoCancel() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + api.disableAutoCancel(instance ); + + verify(instance).disableAutoCancel(); + } + + @Test + public void build() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); + when(instance.build()).thenReturn(value); + + assertEquals(value, api.build(instance )); + } + +} +*/ +/** + * A configuration used to trigger a focus and/or metering action. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** All MeteringPoints used for AE regions. */ + abstract fun meteringPointsAe(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + + /** All MeteringPoints used for AF regions. */ + abstract fun meteringPointsAf(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + + /** All MeteringPoints used for AWB regions. */ + abstract fun meteringPointsAwb(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + + /** If auto-cancel is enabled or not. */ + abstract fun isAutoCancelEnabled(pigeon_instance: androidx.camera.core.FocusMeteringAction): Boolean + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) + val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) + val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) + val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, meteringPointsAeArg, meteringPointsAfArg, meteringPointsAwbArg, isAutoCancelEnabledArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { callback(Result.success(Unit)) } } else { @@ -5060,6 +8416,124 @@ open class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibrary } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.MeteringPoint; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FocusMeteringAction}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FocusMeteringActionProxyApi extends PigeonApiFocusMeteringAction { + FocusMeteringActionProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public List meteringPointsAe(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getMeteringPointsAe(); + } + + @NonNull + @Override + public List meteringPointsAf(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getMeteringPointsAf(); + } + + @NonNull + @Override + public List meteringPointsAwb(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getMeteringPointsAwb(); + } + + @NonNull + @Override + public Boolean isAutoCancelEnabled(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getIsAutoCancelEnabled(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.FocusMeteringAction +import androidx.camera.core.MeteringPoint +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringActionProxyApiTest { + @Test + public void meteringPointsAe() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Arrays.asList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAe()).thenReturn(value); + + assertEquals(value, api.meteringPointsAe(instance)); + } + + @Test + public void meteringPointsAf() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Arrays.asList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAf()).thenReturn(value); + + assertEquals(value, api.meteringPointsAf(instance)); + } + + @Test + public void meteringPointsAwb() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Arrays.asList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAwb()).thenReturn(value); + + assertEquals(value, api.meteringPointsAwb(instance)); + } + + @Test + public void isAutoCancelEnabled() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final Boolean value = true; + when(instance.getIsAutoCancelEnabled()).thenReturn(value); + + assertEquals(value, api.isAutoCancelEnabled(instance)); + } + +} +*/ /** * Result of the `CameraControl.startFocusAndMetering`. * @@ -5104,6 +8578,71 @@ abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLib } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FocusMeteringResult}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FocusMeteringResultProxyApi extends PigeonApiFocusMeteringResult { + FocusMeteringResultProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Boolean isFocusSuccessful(FocusMeteringResult pigeon_instance) { + return pigeon_instance.getIsFocusSuccessful(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.FocusMeteringResult +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringResultProxyApiTest { + @Test + public void isFocusSuccessful() { + final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); + + final FocusMeteringResult instance = mock(FocusMeteringResult.class); + final Boolean value = true; + when(instance.getIsFocusSuccessful()).thenReturn(value); + + assertEquals(value, api.isFocusSuccessful(instance)); + } + +} +*/ /** * An immutable package of settings and outputs needed to capture a single * image from the camera device. @@ -5180,6 +8719,62 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CaptureRequest; +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequest}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestProxyApi extends PigeonApiCaptureRequest { + CaptureRequestProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public android.hardware.camera2.CaptureRequest.Key<*> controlAELock() { + return CaptureRequest.getControlAELock(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CaptureRequest +import android.hardware.camera2.CaptureRequest.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestProxyApiTest { +} +*/ /** * A Key is used to do capture request field lookups with CaptureRequest.get or * to set fields with `CaptureRequest.Builder.set`. @@ -5221,6 +8816,54 @@ open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequestKey}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestKeyProxyApi extends PigeonApiCaptureRequestKey { + CaptureRequestKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CaptureRequest.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestKeyProxyApiTest { +} +*/ /** * A bundle of Camera2 capture request options. * @@ -5289,6 +8932,69 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.CaptureRequestOptions; +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequestOptions}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { + CaptureRequestOptionsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map, Any?> options) { + return CaptureRequestOptions(options); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.camera2.interop.CaptureRequestOptions +import android.hardware.camera2.CaptureRequest.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestOptionsProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); + + assertTrue(api.pigeon_defaultConstructor(new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}) instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); + } + +} +*/ /** * An class that provides ability to interoperate with the * 1android.hardware.camera21 APIs. @@ -5385,6 +9091,87 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.Camera2CameraControl; +import androidx.camera.core.CameraControl; +import androidx.camera.camera2.interop.CaptureRequestOptions; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Camera2CameraControl}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class Camera2CameraControlProxyApi extends PigeonApiCamera2CameraControl { + Camera2CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Camera2CameraControl from(@NonNull androidx.camera.core.CameraControl cameraControl) { + return Camera2CameraControl(cameraControl); + } + + @Override + public Void addCaptureRequestOptions(Camera2CameraControl, pigeon_instance@NonNull androidx.camera.camera2.interop.CaptureRequestOptions bundle) { + pigeon_instance.addCaptureRequestOptions(bundle); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.camera2.interop.Camera2CameraControl +import androidx.camera.core.CameraControl +import androidx.camera.camera2.interop.CaptureRequestOptions +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class Camera2CameraControlProxyApiTest { + @Test + public void from() { + final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + + assertTrue(api.from(mock(CameraControl.class)) instanceof Camera2CameraControlProxyApi.Camera2CameraControl); + } + + @Test + public void addCaptureRequestOptions() { + final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + + final Camera2CameraControl instance = mock(Camera2CameraControl.class); + final androidx.camera.camera2.interop.CaptureRequestOptions bundle = mock(CaptureRequestOptions.class); + api.addCaptureRequestOptions(instance, bundle); + + verify(instance).addCaptureRequestOptions(bundle); + } + +} +*/ /** * Applications can filter out unsuitable sizes and sort the resolution list in * the preferred order by implementing the resolution filter interface. @@ -5454,9 +9241,72 @@ abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibrar } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionFilter; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** - * A Key is used to do camera characteristics field lookups with - * `CameraCharacteristics.get`. + * ProxyApi implementation for {@link ResolutionFilter}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionFilterProxyApi extends PigeonApiResolutionFilter { + ResolutionFilterProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionFilter createWithOnePreferredSize(@NonNull android.util.Size preferredSize) { + return ResolutionFilter(preferredSize); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.ResolutionFilter +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionFilterProxyApiTest { + @Test + public void createWithOnePreferredSize() { + final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); + + assertTrue(api.createWithOnePreferredSize(mock(CameraSize.class)) instanceof ResolutionFilterProxyApi.ResolutionFilter); + } + +} +*/ +/** + * A Key is used to do camera characteristics field lookups with + * `CameraCharacteristics.get`. * * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. */ @@ -5495,6 +9345,54 @@ open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraCharacteristicsKey}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraCharacteristicsKeyProxyApi extends PigeonApiCameraCharacteristicsKey { + CameraCharacteristicsKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CameraCharacteristics.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraCharacteristicsKeyProxyApiTest { +} +*/ /** * The properties describing a `CameraDevice`. * @@ -5597,6 +9495,68 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraCharacteristics}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraCharacteristicsProxyApi extends PigeonApiCameraCharacteristics { + CameraCharacteristicsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public android.hardware.camera2.CameraCharacteristics.Key<*> infoSupportedHardwareLevel() { + return CameraCharacteristics.getInfoSupportedHardwareLevel(); + } + + @NonNull + @Override + public android.hardware.camera2.CameraCharacteristics.Key<*> sensorOrientation() { + return CameraCharacteristics.getSensorOrientation(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CameraCharacteristics +import android.hardware.camera2.CameraCharacteristics.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraCharacteristicsProxyApiTest { +} +*/ /** * An interface for retrieving Camera2-related camera information. * @@ -5707,3 +9667,431 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.Camera2CameraInfo; +import androidx.camera.core.CameraInfo; +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Camera2CameraInfo}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class Camera2CameraInfoProxyApi extends PigeonApiCamera2CameraInfo { + Camera2CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Camera2CameraInfo from(@NonNull androidx.camera.core.CameraInfo cameraInfo) { + return Camera2CameraInfo(cameraInfo); + } + + @NonNull + @Override + public String getCameraId(Camera2CameraInfo pigeon_instance) { + return pigeon_instance.getCameraId(); + } + + @Nullable + @Override + public Any? getCameraCharacteristic(Camera2CameraInfo, pigeon_instance@NonNull android.hardware.camera2.CameraCharacteristics.Key<*> key) { + return pigeon_instance.getCameraCharacteristic(key); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.camera2.interop.Camera2CameraInfo +import androidx.camera.core.CameraInfo +import android.hardware.camera2.CameraCharacteristics.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class Camera2CameraInfoProxyApiTest { + @Test + public void from() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + assertTrue(api.from(mock(CameraInfo.class)) instanceof Camera2CameraInfoProxyApi.Camera2CameraInfo); + } + + @Test + public void getCameraId() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); + final String value = "myString"; + when(instance.getCameraId()).thenReturn(value); + + assertEquals(value, api.getCameraId(instance )); + } + + @Test + public void getCameraCharacteristic() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); + final android.hardware.camera2.CameraCharacteristics.Key<*> key = mock(CameraCharacteristicsKey.class); + final Any value = -1; + when(instance.getCameraCharacteristic(key)).thenReturn(value); + + assertEquals(value, api.getCameraCharacteristic(instance, key)); + } + +} +*/ +/** + * A factory to create a MeteringPoint. + * + * See https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Creates a MeteringPoint by x, y. */ + abstract fun createPoint(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double): androidx.camera.core.MeteringPoint + + /** Creates a MeteringPoint by x, y, size. */ + abstract fun createPointWithSize(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double, size: Double): androidx.camera.core.MeteringPoint + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPointFactory?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory + val xArg = args[1] as Double + val yArg = args[2] as Double + val wrapped: List = try { + listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory + val xArg = args[1] as Double + val yArg = args[2] as Double + val sizeArg = args[3] as Double + val wrapped: List = try { + listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.MeteringPointFactory; +import androidx.camera.core.MeteringPoint; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link MeteringPointFactory}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class MeteringPointFactoryProxyApi extends PigeonApiMeteringPointFactory { + MeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public androidx.camera.core.MeteringPoint createPoint(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y) { + return pigeon_instance.createPoint(x, y); + } + + @NonNull + @Override + public androidx.camera.core.MeteringPoint createPointWithSize(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y, @NonNull Double size) { + return pigeon_instance.createPointWithSize(x, y, size); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.MeteringPointFactory +import androidx.camera.core.MeteringPoint +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MeteringPointFactoryProxyApiTest { + @Test + public void createPoint() { + final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + + final MeteringPointFactory instance = mock(MeteringPointFactory.class); + final Double x = 1.0; + final Double y = 1.0; + final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); + when(instance.createPoint(x, y)).thenReturn(value); + + assertEquals(value, api.createPoint(instance, x, y)); + } + + @Test + public void createPointWithSize() { + final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + + final MeteringPointFactory instance = mock(MeteringPointFactory.class); + final Double x = 1.0; + final Double y = 1.0; + final Double size = 1.0; + final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); + when(instance.createPointWithSize(x, y, size)).thenReturn(value); + + assertEquals(value, api.createPointWithSize(instance, x, y, size)); + } + +} +*/ +/** + * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint + * which can then be used to construct a FocusMeteringAction to start a focus + * and metering action. + * + * See https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) + * into a MeteringPoint based on the current display's rotation and + * CameraInfo. + */ + abstract fun pigeon_defaultConstructor(cameraInfo: androidx.camera.core.CameraInfo, width: Double, height: Double): androidx.camera.core.DisplayOrientedMeteringPointFactory + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDisplayOrientedMeteringPointFactory?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo + val widthArg = args[2] as Double + val heightArg = args[3] as Double + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(cameraInfoArg,widthArg,heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } + } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + + @Suppress("FunctionName") + /** An implementation of [PigeonApiMeteringPointFactory] used to access callback methods */ + fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory + { + return pigeonRegistrar.getPigeonApiMeteringPointFactory() + } + +} + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.DisplayOrientedMeteringPointFactory; +import androidx.camera.core.CameraInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link DisplayOrientedMeteringPointFactory}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class DisplayOrientedMeteringPointFactoryProxyApi extends PigeonApiDisplayOrientedMeteringPointFactory { + DisplayOrientedMeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public DisplayOrientedMeteringPointFactory pigeon_defaultConstructor(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull Double width, @NonNull Double height) { + return DisplayOrientedMeteringPointFactory(cameraInfo, width, height); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.DisplayOrientedMeteringPointFactory +import androidx.camera.core.CameraInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class DisplayOrientedMeteringPointFactoryProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiDisplayOrientedMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiDisplayOrientedMeteringPointFactory(); + + assertTrue(api.pigeon_defaultConstructor(mock(CameraInfo.class), 1.0, 1.0) instanceof DisplayOrientedMeteringPointFactoryProxyApi.DisplayOrientedMeteringPointFactory); + } + +} +*/ diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 59d40d26425..66b69373b15 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -12,7 +12,8 @@ import 'package:flutter/services.dart' import 'package:flutter/widgets.dart' show RotatedBox, Size, Texture, Widget, visibleForTesting; import 'package:stream_transform/stream_transform.dart'; -import 'camerax_library2.g.dart'; +import 'camerax_library.dart'; +import 'camerax_proxy2.dart'; // import 'analyzer.dart'; // import 'aspect_ratio_strategy.dart'; // import 'camera.dart'; @@ -66,7 +67,7 @@ class AndroidCameraCameraX extends CameraPlatform { /// Proxy for creating `JavaObject`s and calling their methods that require /// testing. @visibleForTesting - CameraXProxy proxy = CameraXProxy(); + CameraXProxy proxy = const CameraXProxy(); /// The [ProcessCameraProvider] instance used to access camera functionality. @visibleForTesting @@ -113,11 +114,11 @@ class AndroidCameraCameraX extends CameraPlatform { @visibleForTesting String? videoOutputPath; - /// Stream queue to pick up finalized viceo recording events in - /// [stopVideoRecording]. - final StreamQueue videoRecordingEventStreamQueue = - StreamQueue( - PendingRecording.videoRecordingEventStreamController.stream); + // /// Stream queue to pick up finalized viceo recording events in + // /// [stopVideoRecording]. + // final StreamQueue videoRecordingEventStreamQueue = + // StreamQueue( + // PendingRecording.videoRecordingEventStreamController.stream); /// Whether or not [preview] has been bound to the lifecycle of the camera by /// [createCamera]. @@ -266,7 +267,7 @@ class AndroidCameraCameraX extends CameraPlatform { Future> availableCameras() async { final List cameraDescriptions = []; - processCameraProvider ??= await proxy.getProcessCameraProvider(); + processCameraProvider ??= await proxy.getInstanceProcessCameraProvider(); final List cameraInfos = await processCameraProvider!.getAvailableCameraInfos(); @@ -279,12 +280,12 @@ class AndroidCameraCameraX extends CameraPlatform { // Determine the lens direction by filtering the CameraInfo // TODO(gmackall): replace this with call to CameraInfo.getLensFacing when changes containing that method are available if ((await proxy - .createCameraSelector(CameraSelector.lensFacingBack) + .newCameraSelector(requireLensFacing: LensFacing.back) .filter([cameraInfo])) .isNotEmpty) { cameraLensDirection = CameraLensDirection.back; } else if ((await proxy - .createCameraSelector(CameraSelector.lensFacingFront) + .newCameraSelector(requireLensFacing: LensFacing.front) .filter([cameraInfo])) .isNotEmpty) { cameraLensDirection = CameraLensDirection.front; @@ -293,7 +294,7 @@ class AndroidCameraCameraX extends CameraPlatform { continue; } - cameraSensorOrientation = await cameraInfo.getSensorRotationDegrees(); + cameraSensorOrientation = cameraInfo.sensorRotationDegrees; cameraName = 'Camera $cameraCount'; cameraCount++; @@ -347,11 +348,12 @@ class AndroidCameraCameraX extends CameraPlatform { await proxy.requestCameraPermissions(mediaSettings?.enableAudio ?? false); // Save CameraSelector that matches cameraDescription. - final int cameraSelectorLensDirection = + final LensFacing cameraSelectorLensDirection = _getCameraSelectorLensDirection(cameraDescription.lensDirection); - cameraIsFrontFacing = - cameraSelectorLensDirection == CameraSelector.lensFacingFront; - cameraSelector = proxy.createCameraSelector(cameraSelectorLensDirection); + cameraIsFrontFacing = cameraSelectorLensDirection == LensFacing.front; + cameraSelector = proxy.newCameraSelector( + requireLensFacing: cameraSelectorLensDirection, + ); // Start listening for device orientation changes preceding camera creation. proxy.startListeningForDeviceOrientationChange( cameraIsFrontFacing, cameraDescription.sensorOrientation); @@ -363,27 +365,32 @@ class AndroidCameraCameraX extends CameraPlatform { _getQualitySelectorFromPreset(mediaSettings?.resolutionPreset); // Retrieve a fresh ProcessCameraProvider instance. - processCameraProvider ??= await proxy.getProcessCameraProvider(); - processCameraProvider!.unbindAll(); + processCameraProvider ??= await proxy.getInstanceProcessCameraProvider(); + unawaited(processCameraProvider!.unbindAll()); // Configure Preview instance. - preview = proxy.createPreview(presetResolutionSelector, - /* use CameraX default target rotation */ null); - final int flutterSurfaceTextureId = - await proxy.setPreviewSurfaceProvider(preview!); + preview = proxy.newPreview( + resolutionSelector: presetResolutionSelector, + /* use CameraX default target rotation */ targetRotation: null, + ); + final int flutterSurfaceTextureId = await preview!.setSurfaceProvider(); // Configure ImageCapture instance. - imageCapture = proxy.createImageCapture(presetResolutionSelector, - /* use CameraX default target rotation */ null); + imageCapture = proxy.newImageCapture( + resolutionSelector: presetResolutionSelector, + /* use CameraX default target rotation */ targetRotation: null, + ); // Configure ImageAnalysis instance. // Defaults to YUV_420_888 image format. - imageAnalysis = proxy.createImageAnalysis(presetResolutionSelector, - /* use CameraX default target rotation */ null); + imageAnalysis = proxy.newImageAnalysis( + resolutionSelector: presetResolutionSelector, + /* use CameraX default target rotation */ targetRotation: null, + ); // Configure VideoCapture and Recorder instances. - recorder = proxy.createRecorder(presetQualitySelector); - videoCapture = await proxy.createVideoCapture(recorder!); + recorder = proxy.newRecorder(qualitySelector: presetQualitySelector); + videoCapture = proxy.withOutputVideoCapture(videoOutput: recorder!); // Bind configured UseCases to ProcessCameraProvider instance & mark Preview // instance as bound but not paused. Video capture is bound at first use @@ -398,7 +405,7 @@ class AndroidCameraCameraX extends CameraPlatform { // if necessary. final Camera2CameraInfo camera2CameraInfo = - await proxy.getCamera2CameraInfo(cameraInfo!); + await proxy.fromCamera2CameraInfo(cameraInfo: cameraInfo!); await Future.wait(>[ SystemServices.isPreviewPreTransformed() .then((bool value) => isPreviewPreTransformed = value), @@ -444,7 +451,7 @@ class AndroidCameraCameraX extends CameraPlatform { } final ResolutionInfo previewResolutionInfo = - await preview!.getResolutionInfo(); + (await preview!.getResolutionInfo())!; // Mark auto-focus, auto-exposure and setting points for focus & exposure // as available operations as CameraX does its best across devices to @@ -456,8 +463,8 @@ class AndroidCameraCameraX extends CameraPlatform { cameraEventStreamController.add(CameraInitializedEvent( cameraId, - previewResolutionInfo.width.toDouble(), - previewResolutionInfo.height.toDouble(), + previewResolutionInfo.resolution.width.toDouble(), + previewResolutionInfo.resolution.height.toDouble(), exposureMode, exposurePointSupported, focusMode, @@ -469,9 +476,9 @@ class AndroidCameraCameraX extends CameraPlatform { /// [cameraId] not used. @override Future dispose(int cameraId) async { - preview?.releaseFlutterSurfaceTexture(); + await preview?.releaseSurfaceProvider(); await liveCameraState?.removeObservers(); - processCameraProvider?.unbindAll(); + await processCameraProvider?.unbindAll(); await imageAnalysis?.clearAnalyzer(); await _subscriptionForDeviceOrientationChanges?.cancel(); } @@ -562,7 +569,7 @@ class AndroidCameraCameraX extends CameraPlatform { // achieve the expected exposure mode as needed). await _startFocusAndMeteringForPoint( point: point, - meteringMode: FocusMeteringAction.flagAe, + meteringMode: MeteringMode.ae, disableAutoCancel: _currentFocusMode == FocusMode.locked); } @@ -571,8 +578,8 @@ class AndroidCameraCameraX extends CameraPlatform { /// [cameraId] not used. @override Future getMinExposureOffset(int cameraId) async { - final ExposureState exposureState = await cameraInfo!.getExposureState(); - return exposureState.exposureCompensationRange.minCompensation * + final ExposureState exposureState = cameraInfo!.exposureState; + return exposureState.exposureCompensationRange.lower * exposureState.exposureCompensationStep; } @@ -581,8 +588,8 @@ class AndroidCameraCameraX extends CameraPlatform { /// [cameraId] not used. @override Future getMaxExposureOffset(int cameraId) async { - final ExposureState exposureState = await cameraInfo!.getExposureState(); - return exposureState.exposureCompensationRange.maxCompensation * + final ExposureState exposureState = cameraInfo!.exposureState; + return exposureState.exposureCompensationRange.upper * exposureState.exposureCompensationStep; } @@ -609,12 +616,7 @@ class AndroidCameraCameraX extends CameraPlatform { // default auto-focus point if set previously to lock focus. final MeteringPoint? unLockedFocusPoint = _defaultFocusPointLocked ? null - : currentFocusMeteringAction!.meteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAf) - .toList() - .first - .$1; + : currentFocusMeteringAction!.meteringPointsAf.first; _defaultFocusPointLocked = false; autoFocusPoint = unLockedFocusPoint; disableAutoCancel = false; @@ -623,20 +625,26 @@ class AndroidCameraCameraX extends CameraPlatform { // Determine if there is an auto-focus point set currently to lock. if (currentFocusMeteringAction != null) { - final List<(MeteringPoint, int?)> possibleCurrentAfPoints = - currentFocusMeteringAction!.meteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAf) - .toList(); + final List possibleCurrentAfPoints = + currentFocusMeteringAction!.meteringPointsAf; lockedFocusPoint = possibleCurrentAfPoints.isEmpty ? null - : possibleCurrentAfPoints.first.$1; + : possibleCurrentAfPoints.first; } // If there isn't, lock center of entire sensor area by default. if (lockedFocusPoint == null) { - lockedFocusPoint = - proxy.createMeteringPoint(0.5, 0.5, 1, cameraInfo!); + final DisplayOrientedMeteringPointFactory meteringPointFactory = + proxy.newDisplayOrientedMeteringPointFactory( + cameraInfo: cameraInfo!, + width: 1, + height: 1, + ); + lockedFocusPoint = await meteringPointFactory.createPointWithSize( + 0.5, + 0.5, + 1, + ); _defaultFocusPointLocked = true; } @@ -646,7 +654,7 @@ class AndroidCameraCameraX extends CameraPlatform { // Start appropriate focus and metering action. final bool focusAndMeteringWasSuccessful = await _startFocusAndMeteringFor( meteringPoint: autoFocusPoint, - meteringMode: FocusMeteringAction.flagAf, + meteringMode: MeteringMode.af, disableAutoCancel: disableAutoCancel); if (!focusAndMeteringWasSuccessful) { @@ -673,7 +681,7 @@ class AndroidCameraCameraX extends CameraPlatform { /// [cameraId] not used. @override Future getExposureOffsetStepSize(int cameraId) async { - final ExposureState exposureState = await cameraInfo!.getExposureState(); + final ExposureState exposureState = cameraInfo!.exposureState; final double exposureOffsetStepSize = exposureState.exposureCompensationStep; if (exposureOffsetStepSize == 0) { @@ -700,7 +708,7 @@ class AndroidCameraCameraX extends CameraPlatform { @override Future setExposureOffset(int cameraId, double offset) async { final double exposureOffsetStepSize = - (await cameraInfo!.getExposureState()).exposureCompensationStep; + (await cameraInfo!.exposureState).exposureCompensationStep; if (exposureOffsetStepSize == 0) { throw CameraException(exposureCompensationNotSupported, 'Exposure compensation not supported'); @@ -746,7 +754,7 @@ class AndroidCameraCameraX extends CameraPlatform { // achieve the expected exposure mode as needed). await _startFocusAndMeteringForPoint( point: point, - meteringMode: FocusMeteringAction.flagAf, + meteringMode: MeteringMode.af, disableAutoCancel: _currentFocusMode == FocusMode.locked); } @@ -759,11 +767,11 @@ class AndroidCameraCameraX extends CameraPlatform { @override Future setExposureMode(int cameraId, ExposureMode mode) async { final Camera2CameraControl camera2Control = - proxy.getCamera2CameraControl(cameraControl); + proxy.fromCamera2CameraControl(cameraControl: cameraControl); final bool lockExposureMode = mode == ExposureMode.locked; final CaptureRequestOptions captureRequestOptions = proxy - .createCaptureRequestOptions(<( + .newCaptureRequestOptions(<( CaptureRequestKeySupportedType, Object? )>[(CaptureRequestKeySupportedType.controlAeLock, lockExposureMode)]); @@ -1325,14 +1333,16 @@ class AndroidCameraCameraX extends CameraPlatform { /// Returns [CameraSelector] lens direction that maps to specified /// [CameraLensDirection]. - int _getCameraSelectorLensDirection(CameraLensDirection lensDirection) { + LensFacing _getCameraSelectorLensDirection( + CameraLensDirection lensDirection, + ) { switch (lensDirection) { case CameraLensDirection.front: - return CameraSelector.lensFacingFront; + return LensFacing.front; case CameraLensDirection.back: - return CameraSelector.lensFacingBack; + return LensFacing.back; case CameraLensDirection.external: - return CameraSelector.lensFacingExternal; + return LensFacing.external; } } @@ -1445,13 +1455,12 @@ class AndroidCameraCameraX extends CameraPlatform { Future _startFocusAndMeteringForPoint( {required Point? point, - required int meteringMode, + required MeteringMode meteringMode, bool disableAutoCancel = false}) async { return _startFocusAndMeteringFor( meteringPoint: point == null ? null - : proxy.createMeteringPoint( - point.x, point.y, /* size */ null, cameraInfo!), + : proxy.newMeteringPoint(x: point.x, y: point.y), meteringMode: meteringMode, disableAutoCancel: disableAutoCancel); } @@ -1479,7 +1488,7 @@ class AndroidCameraCameraX extends CameraPlatform { /// null, then focus and metering will be canceled. Future _startFocusAndMeteringFor( {required MeteringPoint? meteringPoint, - required int meteringMode, + required MeteringMode meteringMode, bool disableAutoCancel = false}) async { if (meteringPoint == null) { // Try to clear any metering point from previous action with the specified diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart new file mode 100644 index 00000000000..850735f9d1d --- /dev/null +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -0,0 +1,67 @@ +import 'camerax_library2.g.dart' as camerax; + +export 'camerax_library2.g.dart' hide LiveData; + +void setUpGenerics() { + camerax.LiveData.pigeon_setUpMessageHandlers( + pigeon_instanceManager: camerax.PigeonInstanceManager.instance, + pigeon_newInstance: (camerax.LiveDataSupportedType type) { + switch (type) { + case camerax.LiveDataSupportedType.cameraState: + return LiveData.detached(type: type); + case camerax.LiveDataSupportedType.zoomState: + return LiveData.detached(type: type); + } + }, + ); +} + +class LiveData extends camerax.LiveData { + LiveData.detached({required super.type}) : super.pigeon_detached(); + + static camerax.LiveDataSupportedType? asSupportedType(Type type) { + switch (type) { + case camerax.CameraState(): + return camerax.LiveDataSupportedType.cameraState; + case camerax.ZoomState(): + return camerax.LiveDataSupportedType.zoomState; + } + + return null; + } + + @override + Future observe(covariant Observer observer) { + return super.observe(observer); + } + + @override + Future getValue() async { + return (await super.getValue()) as T?; + } +} + +class Observer extends camerax.Observer { + Observer({ + required void Function(Observer instance, T value) onChanged, + }) : super( + type: asSupportedType(T), + onChanged: ( + camerax.Observer instance, + Object value, + ) { + onChanged(instance as Observer, value as T); + }, + ); + + static camerax.LiveDataSupportedType asSupportedType(Type type) { + switch (type) { + case camerax.CameraState(): + return camerax.LiveDataSupportedType.cameraState; + case camerax.ZoomState(): + return camerax.LiveDataSupportedType.zoomState; + } + + throw UnsupportedError('Type `$type` is unsupported.'); + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 1533b5a05a3..60fa6667211 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -178,6 +178,8 @@ class PigeonInstanceManager { CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + MeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); return instanceManager; } @@ -430,6 +432,276 @@ class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { } } +/// Handles constructing objects and calling static methods for the Android +/// Interactive Media Ads native library. +/// +/// This class provides dependency injection for the implementations of the +/// platform interface classes. Improving the ease of unit testing and/or +/// overriding the underlying Android classes. +/// +/// By default each function calls the default constructor of the class it +/// intends to return. +class InteractiveMediaAdsProxy { + /// Constructs an [InteractiveMediaAdsProxy]. + const InteractiveMediaAdsProxy({ + this.newCameraSize = CameraSize.new, + this.newResolutionInfo = ResolutionInfo.new, + this.newCameraIntegerRange = CameraIntegerRange.new, + this.newObserver = Observer.new, + this.newCameraSelector = CameraSelector.new, + this.newPreview = Preview.new, + this.withOutputVideoCapture = VideoCapture.withOutput, + this.newRecorder = Recorder.new, + this.newVideoRecordEventListener = VideoRecordEventListener.new, + this.newImageCapture = ImageCapture.new, + this.newResolutionStrategy = ResolutionStrategy.new, + this.newResolutionSelector = ResolutionSelector.new, + this.newAspectRatioStrategy = AspectRatioStrategy.new, + this.newImageAnalysis = ImageAnalysis.new, + this.newAnalyzer = Analyzer.new, + this.fromQualitySelector = QualitySelector.from, + this.fromOrderedListQualitySelector = QualitySelector.fromOrderedList, + this.higherQualityOrLowerThanFallbackStrategy = + FallbackStrategy.higherQualityOrLowerThan, + this.higherQualityThanFallbackStrategy = FallbackStrategy.higherQualityThan, + this.lowerQualityOrHigherThanFallbackStrategy = + FallbackStrategy.lowerQualityOrHigherThan, + this.lowerQualityThanFallbackStrategy = FallbackStrategy.lowerQualityThan, + this.newCaptureRequestOptions = CaptureRequestOptions.new, + this.fromCamera2CameraControl = Camera2CameraControl.from, + this.createWithOnePreferredSizeResolutionFilter = + ResolutionFilter.createWithOnePreferredSize, + this.fromCamera2CameraInfo = Camera2CameraInfo.from, + this.newDisplayOrientedMeteringPointFactory = + DisplayOrientedMeteringPointFactory.new, + this.getInstanceProcessCameraProvider = ProcessCameraProvider.getInstance, + this.getResolutionQualitySelector = QualitySelector.getResolution, + this.defaultBackCameraCameraSelector = _defaultBackCameraCameraSelector, + this.defaultFrontCameraCameraSelector = _defaultFrontCameraCameraSelector, + this.highestAvailableStrategyResolutionStrategy = + _highestAvailableStrategyResolutionStrategy, + this.ratio_16_9FallbackAutoStrategyAspectRatioStrategy = + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + this.ratio_4_3FallbackAutoStrategyAspectRatioStrategy = + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + this.controlAELockCaptureRequest = _controlAELockCaptureRequest, + this.infoSupportedHardwareLevelCameraCharacteristics = + _infoSupportedHardwareLevelCameraCharacteristics, + this.sensorOrientationCameraCharacteristics = + _sensorOrientationCameraCharacteristics, + }); + + /// Constructs [CameraSize]. + final CameraSize Function({ + required int width, + required int height, + }) newCameraSize; + + /// Constructs [ResolutionInfo]. + final ResolutionInfo Function({required CameraSize resolution}) + newResolutionInfo; + + /// Constructs [CameraIntegerRange]. + final CameraIntegerRange Function({ + required int lower, + required int upper, + }) newCameraIntegerRange; + + /// Constructs [Observer]. + final Observer Function({ + required void Function( + Observer, + Object, + ) onChanged, + required LiveDataSupportedType type, + }) newObserver; + + /// Constructs [CameraSelector]. + final CameraSelector Function({LensFacing? requireLensFacing}) + newCameraSelector; + + /// Constructs [Preview]. + final Preview Function({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + }) newPreview; + + /// Constructs [VideoCapture]. + final VideoCapture Function({required VideoOutput videoOutput}) + withOutputVideoCapture; + + /// Constructs [Recorder]. + final Recorder Function({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + }) newRecorder; + + /// Constructs [VideoRecordEventListener]. + final VideoRecordEventListener Function( + {required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent}) newVideoRecordEventListener; + + /// Constructs [ImageCapture]. + final ImageCapture Function({ + int? targetRotation, + FlashMode? flashMode, + ResolutionSelector? resolutionSelector, + }) newImageCapture; + + /// Constructs [ResolutionStrategy]. + final ResolutionStrategy Function({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + }) newResolutionStrategy; + + /// Constructs [ResolutionSelector]. + final ResolutionSelector Function({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + }) newResolutionSelector; + + /// Constructs [AspectRatioStrategy]. + final AspectRatioStrategy Function({ + required int preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + }) newAspectRatioStrategy; + + /// Constructs [ImageAnalysis]. + final ImageAnalysis Function({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + }) newImageAnalysis; + + /// Constructs [Analyzer]. + final Analyzer Function( + {required void Function( + Analyzer, + ImageProxy, + ) analyze}) newAnalyzer; + + /// Constructs [QualitySelector]. + final QualitySelector Function({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + }) fromQualitySelector; + + /// Constructs [QualitySelector]. + final QualitySelector Function({ + required List qualities, + FallbackStrategy? fallbackStrategy, + }) fromOrderedListQualitySelector; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({required VideoQuality quality}) + higherQualityOrLowerThanFallbackStrategy; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({required VideoQuality quality}) + higherQualityThanFallbackStrategy; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({required VideoQuality quality}) + lowerQualityOrHigherThanFallbackStrategy; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({required VideoQuality quality}) + lowerQualityThanFallbackStrategy; + + /// Constructs [CaptureRequestOptions]. + final CaptureRequestOptions Function( + {required Map options}) + newCaptureRequestOptions; + + /// Constructs [Camera2CameraControl]. + final Camera2CameraControl Function({required CameraControl cameraControl}) + fromCamera2CameraControl; + + /// Constructs [ResolutionFilter]. + final ResolutionFilter Function({required CameraSize preferredSize}) + createWithOnePreferredSizeResolutionFilter; + + /// Constructs [Camera2CameraInfo]. + final Camera2CameraInfo Function({required CameraInfo cameraInfo}) + fromCamera2CameraInfo; + + /// Constructs [DisplayOrientedMeteringPointFactory]. + final DisplayOrientedMeteringPointFactory Function({ + required CameraInfo cameraInfo, + required double width, + required double height, + }) newDisplayOrientedMeteringPointFactory; + + /// Calls to [ProcessCameraProvider.getInstance]. + final Future Function() + getInstanceProcessCameraProvider; + + /// Calls to [QualitySelector.getResolution]. + final Future Function( + CameraInfo, + VideoQuality, + ) getResolutionQualitySelector; + + /// Calls to [CameraSelector.defaultBackCamera]. + final CameraSelector Function() defaultBackCameraCameraSelector; + + /// Calls to [CameraSelector.defaultFrontCamera]. + final CameraSelector Function() defaultFrontCameraCameraSelector; + + /// Calls to [ResolutionStrategy.highestAvailableStrategy]. + final ResolutionStrategy Function() + highestAvailableStrategyResolutionStrategy; + + /// Calls to [AspectRatioStrategy.ratio_16_9FallbackAutoStrategy]. + final AspectRatioStrategy Function() + ratio_16_9FallbackAutoStrategyAspectRatioStrategy; + + /// Calls to [AspectRatioStrategy.ratio_4_3FallbackAutoStrategy]. + final AspectRatioStrategy Function() + ratio_4_3FallbackAutoStrategyAspectRatioStrategy; + + /// Calls to [CaptureRequest.controlAELock]. + final CaptureRequestKey Function() controlAELockCaptureRequest; + + /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. + final CameraCharacteristicsKey Function() + infoSupportedHardwareLevelCameraCharacteristics; + + /// Calls to [CameraCharacteristics.sensorOrientation]. + final CameraCharacteristicsKey Function() + sensorOrientationCameraCharacteristics; + + static CameraSelector _defaultBackCameraCameraSelector() => + CameraSelector.defaultBackCamera; + + static CameraSelector _defaultFrontCameraCameraSelector() => + CameraSelector.defaultFrontCamera; + + static ResolutionStrategy _highestAvailableStrategyResolutionStrategy() => + ResolutionStrategy.highestAvailableStrategy; + + static AspectRatioStrategy + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; + + static AspectRatioStrategy + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; + + static CaptureRequestKey _controlAELockCaptureRequest() => + CaptureRequest.controlAELock; + + static CameraCharacteristicsKey + _infoSupportedHardwareLevelCameraCharacteristics() => + CameraCharacteristics.infoSupportedHardwareLevel; + + static CameraCharacteristicsKey _sensorOrientationCameraCharacteristics() => + CameraCharacteristics.sensorOrientation; +} + /// The states the camera can be in. /// @@ -1309,83 +1581,6 @@ class VideoRecordEventFinalize extends VideoRecordEvent { /// /// See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. class MeteringPoint extends PigeonInternalProxyApiBaseClass { - /// Creates a MeteringPoint by x, y. - MeteringPoint({ - super.pigeon_binaryMessenger, - super.pigeon_instanceManager, - required double x, - required double y, - }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); - final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = - _pigeonVar_codecMeteringPoint; - final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; - () async { - const String pigeonVar_channelName = - 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_defaultConstructor'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final List? pigeonVar_replyList = await pigeonVar_channel - .send([pigeonVar_instanceIdentifier, x, y]) - as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } - }(); - } - - /// Creates a MeteringPoint by x, y, size. - MeteringPoint.withSize({ - super.pigeon_binaryMessenger, - super.pigeon_instanceManager, - required double x, - required double y, - required double size, - }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); - final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = - _pigeonVar_codecMeteringPoint; - final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; - () async { - const String pigeonVar_channelName = - 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.withSize'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final List? pigeonVar_replyList = await pigeonVar_channel - .send([pigeonVar_instanceIdentifier, x, y, size]) - as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } - }(); - } - /// Constructs [MeteringPoint] without creating the associated native object. /// /// This should only be used by subclasses created by this library or to @@ -4579,14 +4774,14 @@ class CameraState extends PigeonInternalProxyApiBaseClass { super.pigeon_binaryMessenger, super.pigeon_instanceManager, required this.type, - required this.error, + this.error, }); /// The camera's state. final CameraStateType type; /// Potentially returns an error the camera encountered. - final CameraStateStateError error; + final CameraStateStateError? error; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -4594,7 +4789,7 @@ class CameraState extends PigeonInternalProxyApiBaseClass { PigeonInstanceManager? pigeon_instanceManager, CameraState Function( CameraStateType type, - CameraStateStateError error, + CameraStateStateError? error, )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = @@ -4623,17 +4818,15 @@ class CameraState extends PigeonInternalProxyApiBaseClass { 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null CameraStateType.'); final CameraStateStateError? arg_error = (args[2] as CameraStateStateError?); - assert(arg_error != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null CameraStateStateError.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_type!, arg_error!) ?? + pigeon_newInstance?.call(arg_type!, arg_error) ?? CameraState.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, type: arg_type!, - error: arg_error!, + error: arg_error, ), arg_pigeon_instanceIdentifier!, ); @@ -6567,13 +6760,34 @@ class FocusMeteringAction extends PigeonInternalProxyApiBaseClass { FocusMeteringAction.pigeon_detached({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + required this.meteringPointsAe, + required this.meteringPointsAf, + required this.meteringPointsAwb, + required this.isAutoCancelEnabled, }); + /// All MeteringPoints used for AE regions. + final List meteringPointsAe; + + /// All MeteringPoints used for AF regions. + final List meteringPointsAf; + + /// All MeteringPoints used for AWB regions. + final List meteringPointsAwb; + + /// If auto-cancel is enabled or not. + final bool isAutoCancelEnabled; + static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - FocusMeteringAction Function()? pigeon_newInstance, + FocusMeteringAction Function( + List meteringPointsAe, + List meteringPointsAf, + List meteringPointsAwb, + bool isAutoCancelEnabled, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( @@ -6596,13 +6810,36 @@ class FocusMeteringAction extends PigeonInternalProxyApiBaseClass { final int? arg_pigeon_instanceIdentifier = (args[0] as int?); assert(arg_pigeon_instanceIdentifier != null, 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null int.'); + final List? arg_meteringPointsAe = + (args[1] as List?)?.cast(); + assert(arg_meteringPointsAe != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.'); + final List? arg_meteringPointsAf = + (args[2] as List?)?.cast(); + assert(arg_meteringPointsAf != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.'); + final List? arg_meteringPointsAwb = + (args[3] as List?)?.cast(); + assert(arg_meteringPointsAwb != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.'); + final bool? arg_isAutoCancelEnabled = (args[4] as bool?); + assert(arg_isAutoCancelEnabled != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null bool.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? + pigeon_newInstance?.call( + arg_meteringPointsAe!, + arg_meteringPointsAf!, + arg_meteringPointsAwb!, + arg_isAutoCancelEnabled!) ?? FocusMeteringAction.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + meteringPointsAe: arg_meteringPointsAe!, + meteringPointsAf: arg_meteringPointsAf!, + meteringPointsAwb: arg_meteringPointsAwb!, + isAutoCancelEnabled: arg_isAutoCancelEnabled!, ), arg_pigeon_instanceIdentifier!, ); @@ -6623,6 +6860,10 @@ class FocusMeteringAction extends PigeonInternalProxyApiBaseClass { return FocusMeteringAction.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + meteringPointsAe: meteringPointsAe, + meteringPointsAf: meteringPointsAf, + meteringPointsAwb: meteringPointsAwb, + isAutoCancelEnabled: isAutoCancelEnabled, ); } } @@ -7670,3 +7911,275 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { } } +/// A factory to create a MeteringPoint. +/// +/// See https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory. +class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { + /// Constructs [MeteringPointFactory] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + MeteringPointFactory.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecMeteringPointFactory = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + MeteringPointFactory Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + MeteringPointFactory.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + /// Creates a MeteringPoint by x, y. + Future createPoint( + double x, + double y, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecMeteringPointFactory; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, x, y]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as MeteringPoint?)!; + } + } + + /// Creates a MeteringPoint by x, y, size. + Future createPointWithSize( + double x, + double y, + double size, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecMeteringPointFactory; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, x, y, size]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as MeteringPoint?)!; + } + } + + @override + MeteringPointFactory pigeon_copy() { + return MeteringPointFactory.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + +/// A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint +/// which can then be used to construct a FocusMeteringAction to start a focus +/// and metering action. +/// +/// See https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. +class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { + /// Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) + /// into a MeteringPoint based on the current display's rotation and + /// CameraInfo. + DisplayOrientedMeteringPointFactory({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required CameraInfo cameraInfo, + required double width, + required double height, + }) : super.pigeon_detached() { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecDisplayOrientedMeteringPointFactory; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + cameraInfo, + width, + height + ]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Constructs [DisplayOrientedMeteringPointFactory] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + DisplayOrientedMeteringPointFactory.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecDisplayOrientedMeteringPointFactory = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + DisplayOrientedMeteringPointFactory Function()? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null, expected non-null int.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call() ?? + DisplayOrientedMeteringPointFactory.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + DisplayOrientedMeteringPointFactory pigeon_copy() { + return DisplayOrientedMeteringPointFactory.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } +} + diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart new file mode 100644 index 00000000000..2054ef78995 --- /dev/null +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -0,0 +1,286 @@ +import 'camerax_library2.g.dart'; + +/// Handles constructing objects and calling static methods for the Android +/// Interactive Media Ads native library. +/// +/// This class provides dependency injection for the implementations of the +/// platform interface classes. Improving the ease of unit testing and/or +/// overriding the underlying Android classes. +/// +/// By default each function calls the default constructor of the class it +/// intends to return. +class CameraXProxy { + /// Constructs an [CameraXProxy]. + const CameraXProxy({ + this.newCameraSize = CameraSize.new, + this.newResolutionInfo = ResolutionInfo.new, + this.newCameraIntegerRange = CameraIntegerRange.new, + this.newMeteringPoint = MeteringPoint.new, + this.withSizeMeteringPoint = MeteringPoint.withSize, + this.newObserver = Observer.new, + this.newCameraSelector = CameraSelector.new, + this.newPreview = Preview.new, + this.withOutputVideoCapture = VideoCapture.withOutput, + this.newRecorder = Recorder.new, + this.newVideoRecordEventListener = VideoRecordEventListener.new, + this.newImageCapture = ImageCapture.new, + this.newResolutionStrategy = ResolutionStrategy.new, + this.newResolutionSelector = ResolutionSelector.new, + this.newAspectRatioStrategy = AspectRatioStrategy.new, + this.newImageAnalysis = ImageAnalysis.new, + this.newAnalyzer = Analyzer.new, + this.fromQualitySelector = QualitySelector.from, + this.fromOrderedListQualitySelector = QualitySelector.fromOrderedList, + this.higherQualityOrLowerThanFallbackStrategy = + FallbackStrategy.higherQualityOrLowerThan, + this.higherQualityThanFallbackStrategy = FallbackStrategy.higherQualityThan, + this.lowerQualityOrHigherThanFallbackStrategy = + FallbackStrategy.lowerQualityOrHigherThan, + this.lowerQualityThanFallbackStrategy = FallbackStrategy.lowerQualityThan, + this.newCaptureRequestOptions = CaptureRequestOptions.new, + this.fromCamera2CameraControl = Camera2CameraControl.from, + this.createWithOnePreferredSizeResolutionFilter = + ResolutionFilter.createWithOnePreferredSize, + this.fromCamera2CameraInfo = Camera2CameraInfo.from, + this.newDisplayOrientedMeteringPointFactory = + DisplayOrientedMeteringPointFactory.new, + this.getInstanceProcessCameraProvider = ProcessCameraProvider.getInstance, + this.getResolutionQualitySelector = QualitySelector.getResolution, + this.defaultBackCameraCameraSelector = _defaultBackCameraCameraSelector, + this.defaultFrontCameraCameraSelector = _defaultFrontCameraCameraSelector, + this.highestAvailableStrategyResolutionStrategy = + _highestAvailableStrategyResolutionStrategy, + this.ratio_16_9FallbackAutoStrategyAspectRatioStrategy = + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + this.ratio_4_3FallbackAutoStrategyAspectRatioStrategy = + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + this.controlAELockCaptureRequest = _controlAELockCaptureRequest, + this.infoSupportedHardwareLevelCameraCharacteristics = + _infoSupportedHardwareLevelCameraCharacteristics, + this.sensorOrientationCameraCharacteristics = + _sensorOrientationCameraCharacteristics, + }); + + /// Constructs [CameraSize]. + final CameraSize Function({ + required int width, + required int height, + }) newCameraSize; + + /// Constructs [ResolutionInfo]. + final ResolutionInfo Function({required CameraSize resolution}) + newResolutionInfo; + + /// Constructs [CameraIntegerRange]. + final CameraIntegerRange Function({ + required int lower, + required int upper, + }) newCameraIntegerRange; + + /// Constructs [MeteringPoint]. + final MeteringPoint Function({ + required double x, + required double y, + }) newMeteringPoint; + + /// Constructs [MeteringPoint]. + final MeteringPoint Function({ + required double x, + required double y, + required double size, + }) withSizeMeteringPoint; + + /// Constructs [Observer]. + final Observer Function({ + required void Function( + Observer, + Object, + ) onChanged, + required LiveDataSupportedType type, + }) newObserver; + + /// Constructs [CameraSelector]. + final CameraSelector Function({LensFacing? requireLensFacing}) + newCameraSelector; + + /// Constructs [Preview]. + final Preview Function({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + }) newPreview; + + /// Constructs [VideoCapture]. + final VideoCapture Function({required VideoOutput videoOutput}) + withOutputVideoCapture; + + /// Constructs [Recorder]. + final Recorder Function({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + }) newRecorder; + + /// Constructs [VideoRecordEventListener]. + final VideoRecordEventListener Function( + {required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent}) newVideoRecordEventListener; + + /// Constructs [ImageCapture]. + final ImageCapture Function({ + int? targetRotation, + FlashMode? flashMode, + ResolutionSelector? resolutionSelector, + }) newImageCapture; + + /// Constructs [ResolutionStrategy]. + final ResolutionStrategy Function({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + }) newResolutionStrategy; + + /// Constructs [ResolutionSelector]. + final ResolutionSelector Function({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + }) newResolutionSelector; + + /// Constructs [AspectRatioStrategy]. + final AspectRatioStrategy Function({ + required int preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + }) newAspectRatioStrategy; + + /// Constructs [ImageAnalysis]. + final ImageAnalysis Function({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + }) newImageAnalysis; + + /// Constructs [Analyzer]. + final Analyzer Function( + {required void Function( + Analyzer, + ImageProxy, + ) analyze}) newAnalyzer; + + /// Constructs [QualitySelector]. + final QualitySelector Function({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + }) fromQualitySelector; + + /// Constructs [QualitySelector]. + final QualitySelector Function({ + required List qualities, + FallbackStrategy? fallbackStrategy, + }) fromOrderedListQualitySelector; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({required VideoQuality quality}) + higherQualityOrLowerThanFallbackStrategy; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({required VideoQuality quality}) + higherQualityThanFallbackStrategy; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({required VideoQuality quality}) + lowerQualityOrHigherThanFallbackStrategy; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({required VideoQuality quality}) + lowerQualityThanFallbackStrategy; + + /// Constructs [CaptureRequestOptions]. + final CaptureRequestOptions Function( + {required Map options}) + newCaptureRequestOptions; + + /// Constructs [Camera2CameraControl]. + final Camera2CameraControl Function({required CameraControl cameraControl}) + fromCamera2CameraControl; + + /// Constructs [ResolutionFilter]. + final ResolutionFilter Function({required CameraSize preferredSize}) + createWithOnePreferredSizeResolutionFilter; + + /// Constructs [Camera2CameraInfo]. + final Camera2CameraInfo Function({required CameraInfo cameraInfo}) + fromCamera2CameraInfo; + + /// Constructs [DisplayOrientedMeteringPointFactory]. + final DisplayOrientedMeteringPointFactory Function({ + required CameraInfo cameraInfo, + required double width, + required double height, + }) newDisplayOrientedMeteringPointFactory; + + /// Calls to [ProcessCameraProvider.getInstance]. + final Future Function() + getInstanceProcessCameraProvider; + + /// Calls to [QualitySelector.getResolution]. + final Future Function( + CameraInfo, + VideoQuality, + ) getResolutionQualitySelector; + + /// Calls to [CameraSelector.defaultBackCamera]. + final CameraSelector Function() defaultBackCameraCameraSelector; + + /// Calls to [CameraSelector.defaultFrontCamera]. + final CameraSelector Function() defaultFrontCameraCameraSelector; + + /// Calls to [ResolutionStrategy.highestAvailableStrategy]. + final ResolutionStrategy Function() + highestAvailableStrategyResolutionStrategy; + + /// Calls to [AspectRatioStrategy.ratio_16_9FallbackAutoStrategy]. + final AspectRatioStrategy Function() + ratio_16_9FallbackAutoStrategyAspectRatioStrategy; + + /// Calls to [AspectRatioStrategy.ratio_4_3FallbackAutoStrategy]. + final AspectRatioStrategy Function() + ratio_4_3FallbackAutoStrategyAspectRatioStrategy; + + /// Calls to [CaptureRequest.controlAELock]. + final CaptureRequestKey Function() controlAELockCaptureRequest; + + /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. + final CameraCharacteristicsKey Function() + infoSupportedHardwareLevelCameraCharacteristics; + + /// Calls to [CameraCharacteristics.sensorOrientation]. + final CameraCharacteristicsKey Function() + sensorOrientationCameraCharacteristics; + + static CameraSelector _defaultBackCameraCameraSelector() => + CameraSelector.defaultBackCamera; + + static CameraSelector _defaultFrontCameraCameraSelector() => + CameraSelector.defaultFrontCamera; + + static ResolutionStrategy _highestAvailableStrategyResolutionStrategy() => + ResolutionStrategy.highestAvailableStrategy; + + static AspectRatioStrategy + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; + + static AspectRatioStrategy + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; + + static CaptureRequestKey _controlAELockCaptureRequest() => + CaptureRequest.controlAELock; + + static CameraCharacteristicsKey + _infoSupportedHardwareLevelCameraCharacteristics() => + CameraCharacteristics.infoSupportedHardwareLevel; + + static CameraCharacteristicsKey _sensorOrientationCameraCharacteristics() => + CameraCharacteristics.sensorOrientation; +} diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index fc69e3b3d1f..69de37344f0 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -180,12 +180,6 @@ abstract class VideoRecordEventFinalize extends VideoRecordEvent {} ), ) abstract class MeteringPoint { - /// Creates a MeteringPoint by x, y. - MeteringPoint(double x, double y); - - /// Creates a MeteringPoint by x, y, size. - MeteringPoint.withSize(double x, double y, double size); - /// Size of the MeteringPoint width and height (ranging from 0 to 1). /// /// It is the percentage of the sensor width/height (or crop region @@ -689,7 +683,7 @@ abstract class CameraState { late CameraStateType type; /// Potentially returns an error the camera encountered. - late CameraStateStateError error; + late CameraStateStateError? error; } /// An interface which contains the camera exposure related information. @@ -998,7 +992,19 @@ abstract class FocusMeteringActionBuilder { fullClassName: 'androidx.camera.core.FocusMeteringAction', ), ) -abstract class FocusMeteringAction {} +abstract class FocusMeteringAction { + /// All MeteringPoints used for AE regions. + late List meteringPointsAe; + + /// All MeteringPoints used for AF regions. + late List meteringPointsAf; + + /// All MeteringPoints used for AWB regions. + late List meteringPointsAwb; + + /// If auto-cancel is enabled or not. + late bool isAutoCancelEnabled; +} /// Result of the `CameraControl.startFocusAndMetering`. /// @@ -1144,3 +1150,41 @@ abstract class Camera2CameraInfo { /// Gets a camera characteristic value. Object? getCameraCharacteristic(CameraCharacteristicsKey key); } + +/// A factory to create a MeteringPoint. +/// +/// See https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.MeteringPointFactory', + ), +) +abstract class MeteringPointFactory { + /// Creates a MeteringPoint by x, y. + MeteringPoint createPoint(double x, double y); + + /// Creates a MeteringPoint by x, y, size. + MeteringPoint createPointWithSize(double x, double y, double size); +} + +/// A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint +/// which can then be used to construct a FocusMeteringAction to start a focus +/// and metering action. +/// +/// See https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. +@ProxyApi( + kotlinOptions: KotlinProxyApiOptions( + fullClassName: 'androidx.camera.core.DisplayOrientedMeteringPointFactory', + ), +) +abstract class DisplayOrientedMeteringPointFactory + extends MeteringPointFactory { + /// Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) + /// into a MeteringPoint based on the current display's rotation and + /// CameraInfo. + DisplayOrientedMeteringPointFactory( + CameraInfo cameraInfo, + double width, + double height, + ); +} diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 0d5d5f9dace..cc97d4f2440 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -32,7 +32,11 @@ dev_dependencies: integration_test: sdk: flutter mockito: ^5.4.4 - pigeon: ^22.7.0 + pigeon: + git: + url: git@github.com:bparrishMines/packages.git + ref: pigeon_helper + path: packages/pigeon topics: - camera From bdf04609973c8d3172a70c4b7de1f400ba87f48c Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 25 Dec 2024 17:15:55 -0500 Subject: [PATCH 009/148] finish on system api update --- .../plugins/camerax/CameraXLibrary.g.kt | 229 +++++++++--- .../lib/src/android_camera_camerax.dart | 333 ++++++++++-------- .../lib/src/camerax_library.dart | 72 +++- .../lib/src/camerax_library2.g.dart | 190 ++++++++-- .../lib/src/camerax_proxy2.dart | 32 +- .../pigeons/camerax_library.dart | 60 +++- .../test/test_camerax_library.g.dart | 50 ++- 7 files changed, 698 insertions(+), 268 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index a9d55efb296..435d4628ef5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -770,7 +770,7 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar } override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { - if (value is Boolean || value is ByteArray || value is Double || value is DoubleArray || value is FloatArray || value is Int || value is IntArray || value is List<*> || value is Long || value is LongArray || value is Map<*, *> || value is String || value is CameraStateType || value is LiveDataSupportedType || value is VideoQuality || value is MeteringMode || value is LensFacing || value is FlashMode || value is ResolutionStrategyFallbackRule || value is AspectRatioStrategyFallbackRule || value is CameraStateErrorCode || value == null) { + if (value is Boolean || value is ByteArray || value is Double || value is DoubleArray || value is FloatArray || value is Int || value is IntArray || value is List<*> || value is Long || value is LongArray || value is Map<*, *> || value is String || value is InfoSupportedHardwareLevel || value is AspectRatio || value is CameraStateType || value is LiveDataSupportedType || value is VideoQuality || value is MeteringMode || value is LensFacing || value is CameraXFlashMode || value is ResolutionStrategyFallbackRule || value is AspectRatioStrategyFallbackRule || value is CameraStateErrorCode || value == null) { super.writeValue(stream, value) return } @@ -933,6 +933,59 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar } } +/** + * Generally classifies the overall set of the camera device functionality. + * + * See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. + */ +enum class InfoSupportedHardwareLevel(val raw: Int) { + /** + * This camera device is capable of YUV reprocessing and RAW data capture, in + * addition to FULL-level capabilities. + */ + LEVEL3(0), + /** + * This camera device is backed by an external camera connected to this + * Android device. + */ + EXTERNAL(1), + /** This camera device is capable of supporting advanced imaging applications. */ + FULL(2), + /** This camera device is running in backward compatibility mode. */ + LEGACY(3), + /** + * This camera device does not have enough capabilities to qualify as a FULL + * device or better. + */ + LIMITED(4); + + companion object { + fun ofRaw(raw: Int): InfoSupportedHardwareLevel? { + return values().firstOrNull { it.raw == raw } + } + } +} + +/** + * The aspect ratio of the use case. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/AspectRatio. + */ +enum class AspectRatio(val raw: Int) { + /** 16:9 standard aspect ratio. */ + RATIO16TO9(0), + /** 4:3 standard aspect ratio. */ + RATIO4TO3(1), + /** The aspect ratio representing no preference for aspect ratio. */ + RATIO_DEFAULT(2); + + companion object { + fun ofRaw(raw: Int): AspectRatio? { + return values().firstOrNull { it.raw == raw } + } + } +} + /** * The states the camera can be in. * @@ -1056,7 +1109,7 @@ enum class LensFacing(val raw: Int) { * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). */ -enum class FlashMode(val raw: Int) { +enum class CameraXFlashMode(val raw: Int) { /** * Auto flash. * @@ -1085,7 +1138,7 @@ enum class FlashMode(val raw: Int) { SCREEN(3); companion object { - fun ofRaw(raw: Int): FlashMode? { + fun ofRaw(raw: Int): CameraXFlashMode? { return values().firstOrNull { it.raw == raw } } } @@ -1167,14 +1220,14 @@ enum class CameraStateErrorCode(val raw: Int) { * An error indicating that the camera device could not be opened due to a * device policy. */ - DISABLED(0), + CAMERA_DISABLED(0), /** * An error indicating that the camera device was closed due to a fatal * error. */ - FATAL_ERROR(1), + CAMERA_FATAL_ERROR(1), /** An error indicating that the camera device is already in use. */ - IN_USE(2), + CAMERA_IN_USE(2), /** * An error indicating that the camera could not be opened because "Do Not * Disturb" mode is enabled on devices affected by a bug in Android 9 (API @@ -1229,50 +1282,60 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { return when (type) { 129.toByte() -> { return (readValue(buffer) as Long?)?.let { - CameraStateType.ofRaw(it.toInt()) + InfoSupportedHardwareLevel.ofRaw(it.toInt()) } } 130.toByte() -> { return (readValue(buffer) as Long?)?.let { - LiveDataSupportedType.ofRaw(it.toInt()) + AspectRatio.ofRaw(it.toInt()) } } 131.toByte() -> { return (readValue(buffer) as Long?)?.let { - VideoQuality.ofRaw(it.toInt()) + CameraStateType.ofRaw(it.toInt()) } } 132.toByte() -> { return (readValue(buffer) as Long?)?.let { - MeteringMode.ofRaw(it.toInt()) + LiveDataSupportedType.ofRaw(it.toInt()) } } 133.toByte() -> { return (readValue(buffer) as Long?)?.let { - LensFacing.ofRaw(it.toInt()) + VideoQuality.ofRaw(it.toInt()) } } 134.toByte() -> { return (readValue(buffer) as Long?)?.let { - FlashMode.ofRaw(it.toInt()) + MeteringMode.ofRaw(it.toInt()) } } 135.toByte() -> { return (readValue(buffer) as Long?)?.let { - ResolutionStrategyFallbackRule.ofRaw(it.toInt()) + LensFacing.ofRaw(it.toInt()) } } 136.toByte() -> { return (readValue(buffer) as Long?)?.let { - AspectRatioStrategyFallbackRule.ofRaw(it.toInt()) + CameraXFlashMode.ofRaw(it.toInt()) } } 137.toByte() -> { return (readValue(buffer) as Long?)?.let { - CameraStateErrorCode.ofRaw(it.toInt()) + ResolutionStrategyFallbackRule.ofRaw(it.toInt()) } } 138.toByte() -> { + return (readValue(buffer) as Long?)?.let { + AspectRatioStrategyFallbackRule.ofRaw(it.toInt()) + } + } + 139.toByte() -> { + return (readValue(buffer) as Long?)?.let { + CameraStateErrorCode.ofRaw(it.toInt()) + } + } + 140.toByte() -> { return (readValue(buffer) as? List)?.let { CameraPermissionsErrorData.fromList(it) } @@ -1282,44 +1345,52 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { } override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { - is CameraStateType -> { + is InfoSupportedHardwareLevel -> { stream.write(129) writeValue(stream, value.raw) } - is LiveDataSupportedType -> { + is AspectRatio -> { stream.write(130) writeValue(stream, value.raw) } - is VideoQuality -> { + is CameraStateType -> { stream.write(131) writeValue(stream, value.raw) } - is MeteringMode -> { + is LiveDataSupportedType -> { stream.write(132) writeValue(stream, value.raw) } - is LensFacing -> { + is VideoQuality -> { stream.write(133) writeValue(stream, value.raw) } - is FlashMode -> { + is MeteringMode -> { stream.write(134) writeValue(stream, value.raw) } - is ResolutionStrategyFallbackRule -> { + is LensFacing -> { stream.write(135) writeValue(stream, value.raw) } - is AspectRatioStrategyFallbackRule -> { + is CameraXFlashMode -> { stream.write(136) writeValue(stream, value.raw) } - is CameraStateErrorCode -> { + is ResolutionStrategyFallbackRule -> { stream.write(137) writeValue(stream, value.raw) } - is CameraPermissionsErrorData -> { + is AspectRatioStrategyFallbackRule -> { stream.write(138) + writeValue(stream, value.raw) + } + is CameraStateErrorCode -> { + stream.write(139) + writeValue(stream, value.raw) + } + is CameraPermissionsErrorData -> { + stream.write(140) writeValue(stream, value.toList()) } else -> super.writeValue(stream, value) @@ -5054,10 +5125,10 @@ public class RecordingProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(targetRotation: Long?, flashMode: FlashMode?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageCapture + abstract fun pigeon_defaultConstructor(targetRotation: Long?, flashMode: CameraXFlashMode?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageCapture /** Set the flash mode. */ - abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: FlashMode) + abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode) /** Captures a new still image for in memory access. */ abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) @@ -5076,7 +5147,7 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig val args = message as List val pigeon_identifierArg = args[0] as Long val targetRotationArg = args[1] as Long? - val flashModeArg = args[2] as FlashMode? + val flashModeArg = args[2] as CameraXFlashMode? val resolutionSelectorArg = args[3] as androidx.camera.core.resolutionselector.ResolutionSelector? val wrapped: List = try { api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,flashModeArg,resolutionSelectorArg), pigeon_identifierArg) @@ -5096,7 +5167,7 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture - val flashModeArg = args[1] as FlashMode + val flashModeArg = args[1] as CameraXFlashMode val wrapped: List = try { api.setFlashMode(pigeon_instanceArg, flashModeArg) listOf(null) @@ -5217,12 +5288,12 @@ class ImageCaptureProxyApi extends PigeonApiImageCapture { @NonNull @Override - public ImageCapture pigeon_defaultConstructor(@Nullable Long? targetRotation, @Nullable FlashMode? flashMode, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector) { + public ImageCapture pigeon_defaultConstructor(@Nullable Long? targetRotation, @Nullable CameraXFlashMode? flashMode, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector) { return ImageCapture(targetRotation, flashMode, resolutionSelector); } @Override - public Void setFlashMode(ImageCapture, pigeon_instance@NonNull FlashMode flashMode) { + public Void setFlashMode(ImageCapture, pigeon_instance@NonNull CameraXFlashMode flashMode) { pigeon_instance.setFlashMode(flashMode); } @@ -5265,7 +5336,7 @@ public class ImageCaptureProxyApiTest { public void pigeon_defaultConstructor() { final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.FlashMode.AUTO, mock(ResolutionSelector.class)) instanceof ImageCaptureProxyApi.ImageCapture); + assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO, mock(ResolutionSelector.class)) instanceof ImageCaptureProxyApi.ImageCapture); } @Test @@ -5273,7 +5344,7 @@ public class ImageCaptureProxyApiTest { final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); final ImageCapture instance = mock(ImageCapture.class); - final FlashMode flashMode = io.flutter.plugins.camerax.FlashMode.AUTO; + final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; api.setFlashMode(instance, flashMode); verify(instance).setFlashMode(flashMode); @@ -5612,7 +5683,7 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib * Creates a new AspectRatioStrategy instance, configured with the specified * preferred aspect ratio and fallback rule. */ - abstract fun pigeon_defaultConstructor(preferredAspectRatio: Long, fallbackRule: AspectRatioStrategyFallbackRule): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun pigeon_defaultConstructor(preferredAspectRatio: AspectRatio, fallbackRule: AspectRatioStrategyFallbackRule): androidx.camera.core.resolutionselector.AspectRatioStrategy /** * The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 @@ -5636,7 +5707,7 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val preferredAspectRatioArg = args[1] as Long + val preferredAspectRatioArg = args[1] as AspectRatio val fallbackRuleArg = args[2] as AspectRatioStrategyFallbackRule val wrapped: List = try { api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(preferredAspectRatioArg,fallbackRuleArg), pigeon_identifierArg) @@ -5747,7 +5818,7 @@ class AspectRatioStrategyProxyApi extends PigeonApiAspectRatioStrategy { @NonNull @Override - public AspectRatioStrategy pigeon_defaultConstructor(@NonNull Long preferredAspectRatio, @NonNull AspectRatioStrategyFallbackRule fallbackRule) { + public AspectRatioStrategy pigeon_defaultConstructor(@NonNull AspectRatio preferredAspectRatio, @NonNull AspectRatioStrategyFallbackRule fallbackRule) { return AspectRatioStrategy(preferredAspectRatio, fallbackRule); } @@ -5790,7 +5861,7 @@ public class AspectRatioStrategyProxyApiTest { public void pigeon_defaultConstructor() { final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO) instanceof AspectRatioStrategyProxyApi.AspectRatioStrategy); + assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO) instanceof AspectRatioStrategyProxyApi.AspectRatioStrategy); } } @@ -6688,9 +6759,9 @@ class CameraStateStateErrorProxyApi extends PigeonApiCameraStateStateError { @Override public CameraStateErrorCode code(CameraStateStateError pigeon_instance) { switch (pigeon_instance.code) { - case CameraStateErrorCode.DISABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.DISABLED; - case CameraStateErrorCode.FATAL_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.FATAL_ERROR; - case CameraStateErrorCode.IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.IN_USE; + case CameraStateErrorCode.CAMERA_DISABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; + case CameraStateErrorCode.CAMERA_FATAL_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_FATAL_ERROR; + case CameraStateErrorCode.CAMERA_IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_IN_USE; case CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED; case CameraStateErrorCode.MAX_CAMERAS_IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.MAX_CAMERAS_IN_USE; case CameraStateErrorCode.OTHER_RECOVERABLE_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.OTHER_RECOVERABLE_ERROR; @@ -6727,7 +6798,7 @@ public class CameraStateStateErrorProxyApiTest { final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); final CameraStateStateError instance = mock(CameraStateStateError.class); - final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.DISABLED; + final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; when(instance.getCode()).thenReturn(value); assertEquals(value, api.code(instance)); @@ -8117,6 +8188,15 @@ public class CameraControlProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | + * FLAG_AE | FLAG_AWB. + */ + abstract fun pigeon_defaultConstructor(point: androidx.camera.core.MeteringPoint): androidx.camera.core.FocusMeteringAction.Builder + + /** Creates a Builder from a `MeteringPoint` and `MeteringMode`. */ + abstract fun withMode(point: androidx.camera.core.MeteringPoint, mode: MeteringMode): androidx.camera.core.FocusMeteringAction.Builder + /** Adds another MeteringPoint with default metering mode. */ abstract fun addPoint(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint) @@ -8133,6 +8213,45 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFocusMeteringActionBuilder?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val pointArg = args[1] as androidx.camera.core.MeteringPoint + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val pointArg = args[1] as androidx.camera.core.MeteringPoint + val modeArg = args[2] as MeteringMode + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withMode(pointArg,modeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } run { val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", codec) if (api != null) { @@ -8268,6 +8387,18 @@ class FocusMeteringActionBuilderProxyApi extends PigeonApiFocusMeteringActionBui super(pigeonRegistrar); } + @NonNull + @Override + public FocusMeteringActionBuilder pigeon_defaultConstructor(@NonNull androidx.camera.core.MeteringPoint point) { + return FocusMeteringActionBuilder(point); + } + + @NonNull + @Override + public FocusMeteringActionBuilder withMode(@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { + return FocusMeteringActionBuilder(point, mode); + } + @Override public Void addPoint(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point) { pigeon_instance.addPoint(point); @@ -8314,6 +8445,20 @@ import org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class FocusMeteringActionBuilderProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + assertTrue(api.pigeon_defaultConstructor(mock(MeteringPoint.class)) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); + } + + @Test + public void withMode() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + assertTrue(api.withMode(mock(MeteringPoint.class), io.flutter.plugins.camerax.MeteringMode.AE) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); + } + @Test public void addPoint() { final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); @@ -9403,7 +9548,7 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL /** * Generally classifies the overall set of the camera device functionality. * - * Value is Integer. + * Value is `InfoSupportedHardwareLeve`. * * This key is available on all devices. */ diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 66b69373b15..8b6451e2585 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -14,45 +14,6 @@ import 'package:flutter/widgets.dart' import 'package:stream_transform/stream_transform.dart'; import 'camerax_library.dart'; import 'camerax_proxy2.dart'; -// import 'analyzer.dart'; -// import 'aspect_ratio_strategy.dart'; -// import 'camera.dart'; -// import 'camera2_camera_control.dart'; -// import 'camera2_camera_info.dart'; -// import 'camera_control.dart'; -// import 'camera_info.dart'; -// import 'camera_metadata.dart'; -// import 'camera_selector.dart'; -// import 'camera_state.dart'; -// import 'camerax_library.g.dart'; -// import 'camerax_proxy.dart'; -// import 'capture_request_options.dart'; -// import 'device_orientation_manager.dart'; -// import 'exposure_state.dart'; -// import 'fallback_strategy.dart'; -// import 'focus_metering_action.dart'; -// import 'focus_metering_result.dart'; -// import 'image_analysis.dart'; -// import 'image_capture.dart'; -// import 'image_proxy.dart'; -// import 'live_data.dart'; -// import 'metering_point.dart'; -// import 'observer.dart'; -// import 'pending_recording.dart'; -// import 'plane_proxy.dart'; -// import 'preview.dart'; -// import 'process_camera_provider.dart'; -// import 'quality_selector.dart'; -// import 'recorder.dart'; -// import 'recording.dart'; -// import 'resolution_filter.dart'; -// import 'resolution_selector.dart'; -// import 'resolution_strategy.dart'; -// import 'surface.dart'; -// import 'system_services.dart'; -// import 'use_case.dart'; -// import 'video_capture.dart'; -// import 'zoom_state.dart'; /// The Android implementation of [CameraPlatform] that uses the CameraX library. class AndroidCameraCameraX extends CameraPlatform { @@ -114,11 +75,22 @@ class AndroidCameraCameraX extends CameraPlatform { @visibleForTesting String? videoOutputPath; - // /// Stream queue to pick up finalized viceo recording events in - // /// [stopVideoRecording]. - // final StreamQueue videoRecordingEventStreamQueue = - // StreamQueue( - // PendingRecording.videoRecordingEventStreamController.stream); + /// Stream that emits an event when the corresponding video recording is finalized. + static final StreamController + videoRecordingEventStreamController = + StreamController.broadcast(); + + /// Stream queue to pick up finalized viceo recording events in + /// [stopVideoRecording]. + final StreamQueue videoRecordingEventStreamQueue = + StreamQueue(videoRecordingEventStreamController.stream); + + late final VideoRecordEventListener _videoRecordingEventListener = + proxy.newVideoRecordEventListener( + onEvent: (_, VideoRecordEvent event) { + videoRecordingEventStreamController.add(event); + }, + ); /// Whether or not [preview] has been bound to the lifecycle of the camera by /// [createCamera]. @@ -136,7 +108,7 @@ class AndroidCameraCameraX extends CameraPlatform { ImageCapture? imageCapture; /// The flash mode currently configured for [imageCapture]. - int? _currentFlashMode; + CameraXFlashMode? _currentFlashMode; /// Whether or not torch flash mode has been enabled for the [camera]. @visibleForTesting @@ -269,7 +241,7 @@ class AndroidCameraCameraX extends CameraPlatform { processCameraProvider ??= await proxy.getInstanceProcessCameraProvider(); final List cameraInfos = - await processCameraProvider!.getAvailableCameraInfos(); + (await processCameraProvider!.getAvailableCameraInfos()).cast(); CameraLensDirection? cameraLensDirection; int cameraCount = 0; @@ -770,11 +742,12 @@ class AndroidCameraCameraX extends CameraPlatform { proxy.fromCamera2CameraControl(cameraControl: cameraControl); final bool lockExposureMode = mode == ExposureMode.locked; - final CaptureRequestOptions captureRequestOptions = proxy - .newCaptureRequestOptions(<( - CaptureRequestKeySupportedType, - Object? - )>[(CaptureRequestKeySupportedType.controlAeLock, lockExposureMode)]); + final CaptureRequestOptions captureRequestOptions = + proxy.newCaptureRequestOptions( + options: { + proxy.controlAELockCaptureRequest(): lockExposureMode, + }, + ); await camera2Control.addCaptureRequestOptions(captureRequestOptions); _currentExposureMode = mode; @@ -949,7 +922,7 @@ class AndroidCameraCameraX extends CameraPlatform { } else if (torchEnabled) { // Ensure any previously set flash modes are unset when torch mode has // been enabled. - await imageCapture!.setFlashMode(ImageCapture.flashModeOff); + await imageCapture!.setFlashMode(CameraXFlashMode.off); } // Set target rotation to default CameraX rotation only if capture @@ -985,11 +958,11 @@ class AndroidCameraCameraX extends CameraPlatform { switch (mode) { case FlashMode.off: - _currentFlashMode = ImageCapture.flashModeOff; + _currentFlashMode = CameraXFlashMode.off; case FlashMode.auto: - _currentFlashMode = ImageCapture.flashModeAuto; + _currentFlashMode = CameraXFlashMode.auto; case FlashMode.always: - _currentFlashMode = ImageCapture.flashModeOn; + _currentFlashMode = CameraXFlashMode.on; case FlashMode.torch: _currentFlashMode = null; if (torchEnabled) { @@ -1048,14 +1021,15 @@ class AndroidCameraCameraX extends CameraPlatform { // https://developer.android.com/media/camera/camerax/architecture#combine-use-cases // for more information on supported concurrent camera use cases. final Camera2CameraInfo camera2CameraInfo = - await proxy.getCamera2CameraInfo(cameraInfo!); - final int cameraInfoSupportedHardwareLevel = - await camera2CameraInfo.getSupportedHardwareLevel(); + proxy.fromCamera2CameraInfo(cameraInfo: cameraInfo!); + final InfoSupportedHardwareLevel cameraInfoSupportedHardwareLevel = + (await camera2CameraInfo.getCameraCharacteristic( + proxy.infoSupportedHardwareLevelCameraCharacteristics(), + ))! as InfoSupportedHardwareLevel; // Handle limited level device restrictions: final bool cameraSupportsConcurrentImageCapture = - cameraInfoSupportedHardwareLevel != - CameraMetadata.infoSupportedHardwareLevelLegacy; + cameraInfoSupportedHardwareLevel != InfoSupportedHardwareLevel.legacy; if (!cameraSupportsConcurrentImageCapture) { // Concurrent preview + video recording + image capture is not supported // unless the camera device is cameraSupportsHardwareLevelLimited or @@ -1065,8 +1039,7 @@ class AndroidCameraCameraX extends CameraPlatform { // Handle level 3 device restrictions: final bool cameraSupportsHardwareLevel3 = - cameraInfoSupportedHardwareLevel == - CameraMetadata.infoSupportedHardwareLevel3; + cameraInfoSupportedHardwareLevel == InfoSupportedHardwareLevel.level3; if (!cameraSupportsHardwareLevel3 || streamCallback == null) { // Concurrent preview + video recording + image streaming is not supported // unless the camera device is cameraSupportsHardwareLevel3 or better. @@ -1091,7 +1064,8 @@ class AndroidCameraCameraX extends CameraPlatform { videoOutputPath = await SystemServices.getTempFilePath(videoPrefix, '.temp'); pendingRecording = await recorder!.prepareRecording(videoOutputPath!); - recording = await pendingRecording!.start(); + + recording = await pendingRecording!.start(_videoRecordingEventListener); if (streamCallback != null) { onStreamedFrameAvailable(options.cameraId).listen(streamCallback); @@ -1099,7 +1073,7 @@ class AndroidCameraCameraX extends CameraPlatform { // Wait for video recording to start. VideoRecordEvent event = await videoRecordingEventStreamQueue.next; - while (event != VideoRecordEvent.start) { + while (event is VideoRecordEventStart) { event = await videoRecordingEventStreamQueue.next; } } @@ -1122,7 +1096,7 @@ class AndroidCameraCameraX extends CameraPlatform { /// Stop the active recording and wait for the video recording to be finalized. await recording!.close(); VideoRecordEvent event = await videoRecordingEventStreamQueue.next; - while (event != VideoRecordEvent.finalize) { + while (event is VideoRecordEventFinalize) { event = await videoRecordingEventStreamQueue.next; } recording = null; @@ -1244,8 +1218,9 @@ class AndroidCameraCameraX extends CameraPlatform { await imageProxy.close(); } - final Analyzer analyzer = proxy.createAnalyzer(analyze); - await imageAnalysis!.setAnalyzer(analyzer); + await imageAnalysis!.setAnalyzer(proxy.newAnalyzer( + analyze: (_, ImageProxy image) => analyze(image), + )); } /// Unbinds [useCase] from camera lifecycle controlled by the @@ -1256,7 +1231,7 @@ class AndroidCameraCameraX extends CameraPlatform { return; } - processCameraProvider!.unbind([useCase]); + await processCameraProvider!.unbind([useCase]); } // Methods for configuring image streaming: @@ -1293,8 +1268,8 @@ class AndroidCameraCameraX extends CameraPlatform { /// If a previous [liveCameraState] was stored, existing observers are /// removed, as well. Future _updateCameraInfoAndLiveCameraState(int cameraId) async { - cameraInfo = await camera!.getCameraInfo(); - cameraControl = await camera!.getCameraControl(); + cameraInfo = (await camera!.getCameraInfo()) as CameraInfo; + cameraControl = camera!.cameraControl; await liveCameraState?.removeObservers(); liveCameraState = await cameraInfo!.getCameraState(); await liveCameraState!.observe(_createCameraClosingObserver(cameraId)); @@ -1311,22 +1286,47 @@ class AndroidCameraCameraX extends CameraPlatform { WeakReference(this); // Callback method used to implement the behavior described above: - void onChanged(Object stateAsObject) { - // This cast is safe because the Observer implementation ensures - // the type of stateAsObject is the same as the observer this callback - // is attached to. - final CameraState state = stateAsObject as CameraState; + void onChanged(CameraState state) { if (state.type == CameraStateType.closing) { weakThis.target!.cameraEventStreamController .add(CameraClosingEvent(cameraId)); } if (state.error != null) { + late final String errorDescription; + switch (state.error!.code) { + case CameraStateErrorCode.cameraInUse: + errorDescription = + 'The camera was already in use, possibly by a higher-priority camera client.'; + case CameraStateErrorCode.maxCamerasInUse: + errorDescription = + 'The limit number of open cameras has been reached, and more cameras cannot be opened until other instances are closed.'; + case CameraStateErrorCode.otherRecoverableError: + errorDescription = + 'The camera device has encountered a recoverable error. CameraX will attempt to recover from the error.'; + case CameraStateErrorCode.streamConfig: + errorDescription = 'Configuring the camera has failed.'; + case CameraStateErrorCode.cameraDisabled: + errorDescription = + 'The camera device could not be opened due to a device policy. Thia may be caused by a client from a background process attempting to open the camera.'; + case CameraStateErrorCode.cameraFatalError: + errorDescription = + 'The camera was closed due to a fatal error. This may require the Android device be shut down and restarted to restore camera function or may indicate a persistent camera hardware problem.'; + case CameraStateErrorCode.doNotDisturbModeEnabled: + errorDescription = + 'The camera could not be opened because "Do Not Disturb" mode is enabled. Please disable this mode, and try opening the camera again.'; + case CameraStateErrorCode.unknown: + errorDescription = + 'There was an unspecified issue with the current camera state.'; + } weakThis.target!.cameraEventStreamController - .add(CameraErrorEvent(cameraId, state.error!.getDescription())); + .add(CameraErrorEvent(cameraId, errorDescription)); } } - return proxy.createCameraStateObserver(onChanged); + // TODO: move to proxy + return Observer( + onChanged: (_, CameraState value) => onChanged(value), + ); } // Methods for mapping Flutter camera constants to CameraX constants: @@ -1369,49 +1369,56 @@ class AndroidCameraCameraX extends CameraPlatform { /// closest lower resolution available. ResolutionSelector? _getResolutionSelectorFromPreset( ResolutionPreset? preset) { - const int fallbackRule = - ResolutionStrategy.fallbackRuleClosestLowerThenHigher; + const ResolutionStrategyFallbackRule fallbackRule = + ResolutionStrategyFallbackRule.closestLowerThenHigher; - Size? boundSize; - int? aspectRatio; + CameraSize? boundSize; + AspectRatio? aspectRatio; ResolutionStrategy? resolutionStrategy; switch (preset) { case ResolutionPreset.low: - boundSize = const Size(320, 240); + boundSize = proxy.newCameraSize(width: 320, height: 240); aspectRatio = AspectRatio.ratio4To3; case ResolutionPreset.medium: - boundSize = const Size(720, 480); + boundSize = proxy.newCameraSize(width: 720, height: 480); case ResolutionPreset.high: - boundSize = const Size(1280, 720); + boundSize = proxy.newCameraSize(width: 1280, height: 720); aspectRatio = AspectRatio.ratio16To9; case ResolutionPreset.veryHigh: - boundSize = const Size(1920, 1080); + boundSize = proxy.newCameraSize(width: 1920, height: 1080); aspectRatio = AspectRatio.ratio16To9; case ResolutionPreset.ultraHigh: - boundSize = const Size(3840, 2160); + boundSize = proxy.newCameraSize(width: 3840, height: 2160); aspectRatio = AspectRatio.ratio16To9; case ResolutionPreset.max: // Automatically set strategy to choose highest available. - resolutionStrategy = - proxy.createResolutionStrategy(highestAvailable: true); - return proxy.createResolutionSelector(resolutionStrategy, - /* ResolutionFilter */ null, /* AspectRatioStrategy */ null); + resolutionStrategy = proxy.highestAvailableStrategyResolutionStrategy(); + return proxy.newResolutionSelector( + resolutionStrategy: resolutionStrategy, + ); case null: // If no preset is specified, default to CameraX's default behavior // for each UseCase. return null; } - resolutionStrategy = proxy.createResolutionStrategy( - boundSize: boundSize, fallbackRule: fallbackRule); - final ResolutionFilter resolutionFilter = - proxy.createResolutionFilterWithOnePreferredSize(boundSize); + resolutionStrategy = proxy.newResolutionStrategy( + boundSize: CameraSize(width: boundSize.width, height: boundSize.height), + fallbackRule: fallbackRule, + ); + final ResolutionFilter resolutionFilter = proxy + .createWithOnePreferredSizeResolutionFilter(preferredSize: boundSize); final AspectRatioStrategy? aspectRatioStrategy = aspectRatio == null ? null - : proxy.createAspectRatioStrategy( - aspectRatio, AspectRatioStrategy.fallbackRuleAuto); - return proxy.createResolutionSelector( - resolutionStrategy, resolutionFilter, aspectRatioStrategy); + : proxy.newAspectRatioStrategy( + preferredAspectRatio: aspectRatio, + fallbackRule: AspectRatioStrategyFallbackRule.auto, + ); + return proxy.newResolutionSelector( + resolutionStrategy: resolutionStrategy, + resolutionFilter: resolutionFilter, + aspectRatioStrategy: aspectRatioStrategy, + ); } /// Returns the [QualitySelector] that maps to the specified resolution @@ -1442,25 +1449,43 @@ class AndroidCameraCameraX extends CameraPlatform { // We will choose the next highest video quality if the one desired // is unavailable. - const VideoResolutionFallbackRule fallbackRule = - VideoResolutionFallbackRule.lowerQualityOrHigherThan; - final FallbackStrategy fallbackStrategy = proxy.createFallbackStrategy( - quality: videoQuality, fallbackRule: fallbackRule); + final FallbackStrategy fallbackStrategy = + proxy.lowerQualityOrHigherThanFallbackStrategy( + quality: videoQuality, + ); - return proxy.createQualitySelector( - videoQuality: videoQuality, fallbackStrategy: fallbackStrategy); + return proxy.fromQualitySelector( + quality: videoQuality, + fallbackStrategy: fallbackStrategy, + ); } // Methods for configuring auto-focus and auto-exposure: - Future _startFocusAndMeteringForPoint( - {required Point? point, - required MeteringMode meteringMode, - bool disableAutoCancel = false}) async { + Future _startFocusAndMeteringForPoint({ + required Point? point, + required MeteringMode meteringMode, + bool disableAutoCancel = false, + }) async { + MeteringPoint? meteringPoint; + if (point != null) { + if (point.x < 0 || point.x > 1 || point.y < 0 || point.y > 1) { + throw CameraException( + 'pointInvalid', + 'The coordinates of a metering point for an auto-focus or auto-exposure action must be within (0,0) and (1,1), but a point with coordinates (${point.x}, ${point.y}) was provided for metering mode $meteringMode.', + ); + } + + final DisplayOrientedMeteringPointFactory meteringPointFactory = + proxy.newDisplayOrientedMeteringPointFactory( + width: 1.0, + height: 1.0, + cameraInfo: cameraInfo!, + ); + meteringPoint = await meteringPointFactory.createPoint(point.x, point.y); + } return _startFocusAndMeteringFor( - meteringPoint: point == null - ? null - : proxy.newMeteringPoint(x: point.x, y: point.y), + meteringPoint: meteringPoint, meteringMode: meteringMode, disableAutoCancel: disableAutoCancel); } @@ -1499,58 +1524,64 @@ class AndroidCameraCameraX extends CameraPlatform { return false; } - // Remove metering point with specified meteringMode from current focus - // and metering action, as only one focus or exposure point may be set - // at once in this plugin. - final List<(MeteringPoint, int?)> newMeteringPointInfos = - currentFocusMeteringAction!.meteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - // meteringPointInfo may technically include points without a - // mode specified, but this logic is safe because this plugin - // only uses points that explicitly have mode - // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. - meteringPointInfo.$2 != meteringMode) - .toList(); - - if (newMeteringPointInfos.isEmpty) { + late final List newMeteringPoints; + switch (meteringMode) { + case MeteringMode.ae: + newMeteringPoints = currentFocusMeteringAction!.meteringPointsAe; + case MeteringMode.af: + newMeteringPoints = currentFocusMeteringAction!.meteringPointsAf; + case MeteringMode.awb: + newMeteringPoints = currentFocusMeteringAction!.meteringPointsAwb; + } + + if (newMeteringPoints.isEmpty) { // If no other metering points were specified, cancel any previously // started focus and metering actions. await cameraControl.cancelFocusAndMetering(); currentFocusMeteringAction = null; return true; } - currentFocusMeteringAction = proxy.createFocusMeteringAction( - newMeteringPointInfos, disableAutoCancel); - } else if (meteringPoint.x < 0 || - meteringPoint.x > 1 || - meteringPoint.y < 0 || - meteringPoint.y > 1) { - throw CameraException('pointInvalid', - 'The coordinates of a metering point for an auto-focus or auto-exposure action must be within (0,0) and (1,1), but a point with coordinates (${meteringPoint.x}, ${meteringPoint.y}) was provided for metering mode $meteringMode.'); + final FocusMeteringActionBuilder actionBuilder = + proxy.withModeFocusMeteringActionBuilder( + point: newMeteringPoints.first, + mode: meteringMode, + ); + unawaited(actionBuilder.disableAutoCancel()); + newMeteringPoints.skip(1).forEach(actionBuilder.addPoint); + currentFocusMeteringAction = await actionBuilder.build(); } else { - // Add new metering point with specified meteringMode, which may involve - // replacing a metering point with the same specified meteringMode from - // the current focus and metering action. - List<(MeteringPoint, int?)> newMeteringPointInfos = - <(MeteringPoint, int?)>[]; + List newMeteringPoints = []; if (currentFocusMeteringAction != null) { - newMeteringPointInfos = currentFocusMeteringAction!.meteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - // meteringPointInfo may technically include points without a - // mode specified, but this logic is safe because this plugin - // only uses points that explicitly have mode - // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. - meteringPointInfo.$2 != meteringMode) - .toList(); + switch (meteringMode) { + case MeteringMode.ae: + newMeteringPoints = List.from( + currentFocusMeteringAction!.meteringPointsAe, + ); + case MeteringMode.af: + newMeteringPoints = List.from( + currentFocusMeteringAction!.meteringPointsAf, + ); + case MeteringMode.awb: + newMeteringPoints = List.from( + currentFocusMeteringAction!.meteringPointsAwb, + ); + } } - newMeteringPointInfos.add((meteringPoint, meteringMode)); - currentFocusMeteringAction = proxy.createFocusMeteringAction( - newMeteringPointInfos, disableAutoCancel); + newMeteringPoints.add(meteringPoint); + + final FocusMeteringActionBuilder actionBuilder = + proxy.withModeFocusMeteringActionBuilder( + point: newMeteringPoints.first, + mode: meteringMode, + ); + unawaited(actionBuilder.disableAutoCancel()); + newMeteringPoints.skip(1).forEach(actionBuilder.addPoint); + currentFocusMeteringAction = await actionBuilder.build(); } - final FocusMeteringResult? result = + final FocusMeteringResult result = await cameraControl.startFocusAndMetering(currentFocusMeteringAction!); - return await result?.isFocusSuccessful() ?? false; + return result.isFocusSuccessful; } } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index 850735f9d1d..4996c437d42 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -1,6 +1,6 @@ import 'camerax_library2.g.dart' as camerax; -export 'camerax_library2.g.dart' hide LiveData; +export 'camerax_library2.g.dart' hide CameraInfo, LiveData, Observer; void setUpGenerics() { camerax.LiveData.pigeon_setUpMessageHandlers( @@ -14,10 +14,52 @@ void setUpGenerics() { } }, ); + camerax.CameraInfo.pigeon_setUpMessageHandlers(pigeon_newInstance: ( + int sensorRotationDegrees, + camerax.ExposureState exposureState, + ) { + return CameraInfo.detached( + sensorRotationDegrees: sensorRotationDegrees, + exposureState: exposureState, + ); + }); +} + +class CameraInfo extends camerax.CameraInfo { + CameraInfo.detached({ + required super.sensorRotationDegrees, + required super.exposureState, + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); + + @override + Future> getCameraState() async { + return (await super.getCameraState()) as LiveData; + } + + @override + Future> getZoomState() async { + return (await super.getZoomState()) as LiveData; + } + + @override + CameraInfo pigeon_copy() { + return CameraInfo.detached( + sensorRotationDegrees: sensorRotationDegrees, + exposureState: exposureState, + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } } class LiveData extends camerax.LiveData { - LiveData.detached({required super.type}) : super.pigeon_detached(); + LiveData.detached({ + required super.type, + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); static camerax.LiveDataSupportedType? asSupportedType(Type type) { switch (type) { @@ -39,6 +81,15 @@ class LiveData extends camerax.LiveData { Future getValue() async { return (await super.getValue()) as T?; } + + @override + LiveData pigeon_copy() { + return LiveData.detached( + type: type, + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } } class Observer extends camerax.Observer { @@ -54,6 +105,13 @@ class Observer extends camerax.Observer { }, ); + Observer.detached({ + required super.type, + required super.onChanged, + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + }) : super.pigeon_detached(); + static camerax.LiveDataSupportedType asSupportedType(Type type) { switch (type) { case camerax.CameraState(): @@ -64,4 +122,14 @@ class Observer extends camerax.Observer { throw UnsupportedError('Type `$type` is unsupported.'); } + + @override + Observer pigeon_copy() { + return Observer.detached( + type: type, + onChanged: onChanged, + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ); + } } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 60fa6667211..6d8e9e5ac56 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -467,6 +467,9 @@ class InteractiveMediaAdsProxy { this.lowerQualityOrHigherThanFallbackStrategy = FallbackStrategy.lowerQualityOrHigherThan, this.lowerQualityThanFallbackStrategy = FallbackStrategy.lowerQualityThan, + this.newFocusMeteringActionBuilder = FocusMeteringActionBuilder.new, + this.withModeFocusMeteringActionBuilder = + FocusMeteringActionBuilder.withMode, this.newCaptureRequestOptions = CaptureRequestOptions.new, this.fromCamera2CameraControl = Camera2CameraControl.from, this.createWithOnePreferredSizeResolutionFilter = @@ -547,7 +550,7 @@ class InteractiveMediaAdsProxy { /// Constructs [ImageCapture]. final ImageCapture Function({ int? targetRotation, - FlashMode? flashMode, + CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, }) newImageCapture; @@ -566,7 +569,7 @@ class InteractiveMediaAdsProxy { /// Constructs [AspectRatioStrategy]. final AspectRatioStrategy Function({ - required int preferredAspectRatio, + required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, }) newAspectRatioStrategy; @@ -611,6 +614,16 @@ class InteractiveMediaAdsProxy { final FallbackStrategy Function({required VideoQuality quality}) lowerQualityThanFallbackStrategy; + /// Constructs [FocusMeteringActionBuilder]. + final FocusMeteringActionBuilder Function({required MeteringPoint point}) + newFocusMeteringActionBuilder; + + /// Constructs [FocusMeteringActionBuilder]. + final FocusMeteringActionBuilder Function({ + required MeteringPoint point, + required MeteringMode mode, + }) withModeFocusMeteringActionBuilder; + /// Constructs [CaptureRequestOptions]. final CaptureRequestOptions Function( {required Map options}) @@ -703,6 +716,37 @@ class InteractiveMediaAdsProxy { } +/// Generally classifies the overall set of the camera device functionality. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. +enum InfoSupportedHardwareLevel { + /// This camera device is capable of YUV reprocessing and RAW data capture, in + /// addition to FULL-level capabilities. + level3, + /// This camera device is backed by an external camera connected to this + /// Android device. + external, + /// This camera device is capable of supporting advanced imaging applications. + full, + /// This camera device is running in backward compatibility mode. + legacy, + /// This camera device does not have enough capabilities to qualify as a FULL + /// device or better. + limited, +} + +/// The aspect ratio of the use case. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/AspectRatio. +enum AspectRatio { + /// 16:9 standard aspect ratio. + ratio16To9, + /// 4:3 standard aspect ratio. + ratio4To3, + /// The aspect ratio representing no preference for aspect ratio. + ratioDefault, +} + /// The states the camera can be in. /// /// See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. @@ -778,7 +822,7 @@ enum LensFacing { /// FlashModes for image capture. /// /// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). -enum FlashMode { +enum CameraXFlashMode { /// Auto flash. /// /// The flash will be used according to the camera system's determination when @@ -841,12 +885,12 @@ enum AspectRatioStrategyFallbackRule { enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. - disabled, + cameraDisabled, /// An error indicating that the camera device was closed due to a fatal /// error. - fatalError, + cameraFatalError, /// An error indicating that the camera device is already in use. - inUse, + cameraInUse, /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API /// level 28). @@ -898,35 +942,41 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is CameraStateType) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is FlashMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is CameraPermissionsErrorData) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); + writeValue(buffer, value.index); + } else if (value is CameraStateErrorCode) { + buffer.putUint8(139); + writeValue(buffer, value.index); + } else if (value is CameraPermissionsErrorData) { + buffer.putUint8(140); writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); @@ -938,32 +988,38 @@ class _PigeonCodec extends StandardMessageCodec { switch (type) { case 129: final int? value = readValue(buffer) as int?; - return value == null ? null : CameraStateType.values[value]; + return value == null ? null : InfoSupportedHardwareLevel.values[value]; case 130: final int? value = readValue(buffer) as int?; - return value == null ? null : LiveDataSupportedType.values[value]; + return value == null ? null : AspectRatio.values[value]; case 131: final int? value = readValue(buffer) as int?; - return value == null ? null : VideoQuality.values[value]; + return value == null ? null : CameraStateType.values[value]; case 132: final int? value = readValue(buffer) as int?; - return value == null ? null : MeteringMode.values[value]; + return value == null ? null : LiveDataSupportedType.values[value]; case 133: final int? value = readValue(buffer) as int?; - return value == null ? null : LensFacing.values[value]; + return value == null ? null : VideoQuality.values[value]; case 134: final int? value = readValue(buffer) as int?; - return value == null ? null : FlashMode.values[value]; + return value == null ? null : MeteringMode.values[value]; case 135: final int? value = readValue(buffer) as int?; - return value == null ? null : ResolutionStrategyFallbackRule.values[value]; + return value == null ? null : LensFacing.values[value]; case 136: final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + return value == null ? null : CameraXFlashMode.values[value]; case 137: final int? value = readValue(buffer) as int?; - return value == null ? null : CameraStateErrorCode.values[value]; + return value == null ? null : ResolutionStrategyFallbackRule.values[value]; case 138: + final int? value = readValue(buffer) as int?; + return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + case 139: + final int? value = readValue(buffer) as int?; + return value == null ? null : CameraStateErrorCode.values[value]; + case 140: return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); @@ -4093,7 +4149,7 @@ class ImageCapture extends UseCase { super.pigeon_binaryMessenger, super.pigeon_instanceManager, int? targetRotation, - FlashMode? flashMode, + CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, }) : super.pigeon_detached() { final int pigeonVar_instanceIdentifier = @@ -4194,7 +4250,7 @@ class ImageCapture extends UseCase { } /// Set the flash mode. - Future setFlashMode(FlashMode flashMode) async { + Future setFlashMode(CameraXFlashMode flashMode) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecImageCapture; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -4572,7 +4628,7 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { AspectRatioStrategy({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, - required int preferredAspectRatio, + required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, }) { final int pigeonVar_instanceIdentifier = @@ -6556,6 +6612,82 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { /// /// See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { + /// Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | + /// FLAG_AE | FLAG_AWB. + FocusMeteringActionBuilder({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required MeteringPoint point, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFocusMeteringActionBuilder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, point]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + + /// Creates a Builder from a `MeteringPoint` and `MeteringMode`. + FocusMeteringActionBuilder.withMode({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required MeteringPoint point, + required MeteringMode mode, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecFocusMeteringActionBuilder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier, point, mode]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } + /// Constructs [FocusMeteringActionBuilder] without creating the associated native object. /// /// This should only be used by subclasses created by this library or to @@ -7594,7 +7726,7 @@ class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { /// Generally classifies the overall set of the camera device functionality. /// - /// Value is Integer. + /// Value is `InfoSupportedHardwareLeve`. /// /// This key is available on all devices. static final CameraCharacteristicsKey infoSupportedHardwareLevel = diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index 2054ef78995..00d1098ad3b 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -15,8 +15,6 @@ class CameraXProxy { this.newCameraSize = CameraSize.new, this.newResolutionInfo = ResolutionInfo.new, this.newCameraIntegerRange = CameraIntegerRange.new, - this.newMeteringPoint = MeteringPoint.new, - this.withSizeMeteringPoint = MeteringPoint.withSize, this.newObserver = Observer.new, this.newCameraSelector = CameraSelector.new, this.newPreview = Preview.new, @@ -37,6 +35,9 @@ class CameraXProxy { this.lowerQualityOrHigherThanFallbackStrategy = FallbackStrategy.lowerQualityOrHigherThan, this.lowerQualityThanFallbackStrategy = FallbackStrategy.lowerQualityThan, + this.newFocusMeteringActionBuilder = FocusMeteringActionBuilder.new, + this.withModeFocusMeteringActionBuilder = + FocusMeteringActionBuilder.withMode, this.newCaptureRequestOptions = CaptureRequestOptions.new, this.fromCamera2CameraControl = Camera2CameraControl.from, this.createWithOnePreferredSizeResolutionFilter = @@ -77,19 +78,6 @@ class CameraXProxy { required int upper, }) newCameraIntegerRange; - /// Constructs [MeteringPoint]. - final MeteringPoint Function({ - required double x, - required double y, - }) newMeteringPoint; - - /// Constructs [MeteringPoint]. - final MeteringPoint Function({ - required double x, - required double y, - required double size, - }) withSizeMeteringPoint; - /// Constructs [Observer]. final Observer Function({ required void Function( @@ -130,7 +118,7 @@ class CameraXProxy { /// Constructs [ImageCapture]. final ImageCapture Function({ int? targetRotation, - FlashMode? flashMode, + CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, }) newImageCapture; @@ -149,7 +137,7 @@ class CameraXProxy { /// Constructs [AspectRatioStrategy]. final AspectRatioStrategy Function({ - required int preferredAspectRatio, + required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, }) newAspectRatioStrategy; @@ -194,6 +182,16 @@ class CameraXProxy { final FallbackStrategy Function({required VideoQuality quality}) lowerQualityThanFallbackStrategy; + /// Constructs [FocusMeteringActionBuilder]. + final FocusMeteringActionBuilder Function({required MeteringPoint point}) + newFocusMeteringActionBuilder; + + /// Constructs [FocusMeteringActionBuilder]. + final FocusMeteringActionBuilder Function({ + required MeteringPoint point, + required MeteringMode mode, + }) withModeFocusMeteringActionBuilder; + /// Constructs [CaptureRequestOptions]. final CaptureRequestOptions Function( {required Map options}) diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 69de37344f0..74b0857ff20 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -64,6 +64,43 @@ class CameraPermissionsErrorData { String description; } +/// Generally classifies the overall set of the camera device functionality. +/// +/// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. +enum InfoSupportedHardwareLevel { + /// This camera device is capable of YUV reprocessing and RAW data capture, in + /// addition to FULL-level capabilities. + level3, + + /// This camera device is backed by an external camera connected to this + /// Android device. + external, + + /// This camera device is capable of supporting advanced imaging applications. + full, + + /// This camera device is running in backward compatibility mode. + legacy, + + /// This camera device does not have enough capabilities to qualify as a FULL + /// device or better. + limited, +} + +/// The aspect ratio of the use case. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/AspectRatio. +enum AspectRatio { + /// 16:9 standard aspect ratio. + ratio16To9, + + /// 4:3 standard aspect ratio. + ratio4To3, + + /// The aspect ratio representing no preference for aspect ratio. + ratioDefault, +} + /// The states the camera can be in. /// /// See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. @@ -514,7 +551,7 @@ abstract class Recording { /// FlashModes for image capture. /// /// See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). -enum FlashMode { +enum CameraXFlashMode { /// Auto flash. /// /// The flash will be used according to the camera system's determination when @@ -549,12 +586,12 @@ enum FlashMode { abstract class ImageCapture extends UseCase { ImageCapture( int? targetRotation, - FlashMode? flashMode, + CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, ); /// Set the flash mode. - void setFlashMode(FlashMode flashMode); + void setFlashMode(CameraXFlashMode flashMode); /// Captures a new still image for in memory access. @async @@ -655,7 +692,7 @@ abstract class AspectRatioStrategy { /// Creates a new AspectRatioStrategy instance, configured with the specified /// preferred aspect ratio and fallback rule. AspectRatioStrategy( - int preferredAspectRatio, + AspectRatio preferredAspectRatio, AspectRatioStrategyFallbackRule fallbackRule, ); @@ -762,14 +799,14 @@ abstract class Analyzer { enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. - disabled, + cameraDisabled, /// An error indicating that the camera device was closed due to a fatal /// error. - fatalError, + cameraFatalError, /// An error indicating that the camera device is already in use. - inUse, + cameraInUse, /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API @@ -971,6 +1008,13 @@ abstract class CameraControl { ), ) abstract class FocusMeteringActionBuilder { + /// Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | + /// FLAG_AE | FLAG_AWB. + FocusMeteringActionBuilder(MeteringPoint point); + + /// Creates a Builder from a `MeteringPoint` and `MeteringMode`. + FocusMeteringActionBuilder.withMode(MeteringPoint point, MeteringMode mode); + /// Adds another MeteringPoint with default metering mode. void addPoint(MeteringPoint point); @@ -1116,7 +1160,7 @@ abstract class CameraCharacteristicsKey {} abstract class CameraCharacteristics { /// Generally classifies the overall set of the camera device functionality. /// - /// Value is Integer. + /// Value is `InfoSupportedHardwareLeve`. /// /// This key is available on all devices. @static diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index b86d55a8163..c8ab58f86cf 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -21,35 +21,41 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is CameraStateType) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is FlashMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is CameraPermissionsErrorData) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); + writeValue(buffer, value.index); + } else if (value is CameraStateErrorCode) { + buffer.putUint8(139); + writeValue(buffer, value.index); + } else if (value is CameraPermissionsErrorData) { + buffer.putUint8(140); writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); @@ -61,32 +67,38 @@ class _PigeonCodec extends StandardMessageCodec { switch (type) { case 129: final int? value = readValue(buffer) as int?; - return value == null ? null : CameraStateType.values[value]; + return value == null ? null : InfoSupportedHardwareLevel.values[value]; case 130: final int? value = readValue(buffer) as int?; - return value == null ? null : LiveDataSupportedType.values[value]; + return value == null ? null : AspectRatio.values[value]; case 131: final int? value = readValue(buffer) as int?; - return value == null ? null : VideoQuality.values[value]; + return value == null ? null : CameraStateType.values[value]; case 132: final int? value = readValue(buffer) as int?; - return value == null ? null : MeteringMode.values[value]; + return value == null ? null : LiveDataSupportedType.values[value]; case 133: final int? value = readValue(buffer) as int?; - return value == null ? null : LensFacing.values[value]; + return value == null ? null : VideoQuality.values[value]; case 134: final int? value = readValue(buffer) as int?; - return value == null ? null : FlashMode.values[value]; + return value == null ? null : MeteringMode.values[value]; case 135: final int? value = readValue(buffer) as int?; - return value == null ? null : ResolutionStrategyFallbackRule.values[value]; + return value == null ? null : LensFacing.values[value]; case 136: final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + return value == null ? null : CameraXFlashMode.values[value]; case 137: final int? value = readValue(buffer) as int?; - return value == null ? null : CameraStateErrorCode.values[value]; + return value == null ? null : ResolutionStrategyFallbackRule.values[value]; case 138: + final int? value = readValue(buffer) as int?; + return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + case 139: + final int? value = readValue(buffer) as int?; + return value == null ? null : CameraStateErrorCode.values[value]; + case 140: return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); From 65de5b96019c0a185a19ef803dac790f0547eb3b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 25 Dec 2024 22:02:20 -0500 Subject: [PATCH 010/148] finish platform implementation --- .../plugins/camerax/CameraXLibrary.g.kt | 572 +++++++++++- .../lib/src/android_camera_camerax.dart | 115 ++- .../lib/src/camerax_library.dart | 26 + .../lib/src/camerax_library2.g.dart | 846 ++++++++++++++---- .../lib/src/camerax_proxy2.dart | 150 ++-- .../pigeons/camerax_library.dart | 46 +- .../test/test_camerax_library.g.dart | 87 -- 7 files changed, 1452 insertions(+), 390 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 435d4628ef5..f481b20de11 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -457,6 +457,18 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary */ abstract fun getPigeonApiCamera(): PigeonApiCamera + /** + * An implementation of [PigeonApiSystemServicesManager] used to add a new Dart instance of + * `SystemServicesManager` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiSystemServicesManager(): PigeonApiSystemServicesManager + + /** + * An implementation of [PigeonApiDeviceOrientationManager] used to add a new Dart instance of + * `DeviceOrientationManager` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiDeviceOrientationManager(): PigeonApiDeviceOrientationManager + /** * An implementation of [PigeonApiPreview] used to add a new Dart instance of * `Preview` to the Dart `InstanceManager`. @@ -693,6 +705,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSelector()) PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, getPigeonApiProcessCameraProvider()) PigeonApiCamera.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera()) + PigeonApiSystemServicesManager.setUpMessageHandlers(binaryMessenger, getPigeonApiSystemServicesManager()) + PigeonApiDeviceOrientationManager.setUpMessageHandlers(binaryMessenger, getPigeonApiDeviceOrientationManager()) PigeonApiPreview.setUpMessageHandlers(binaryMessenger, getPigeonApiPreview()) PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoCapture()) PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, getPigeonApiRecorder()) @@ -731,6 +745,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, null) PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, null) PigeonApiCamera.setUpMessageHandlers(binaryMessenger, null) + PigeonApiSystemServicesManager.setUpMessageHandlers(binaryMessenger, null) + PigeonApiDeviceOrientationManager.setUpMessageHandlers(binaryMessenger, null) PigeonApiPreview.setUpMessageHandlers(binaryMessenger, null) PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, null) PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, null) @@ -810,6 +826,12 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar } else if (value is androidx.camera.core.Camera) { registrar.getPigeonApiCamera().pigeon_newInstance(value) { } + } + else if (value is SystemServicesManager) { + registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) { } + } + else if (value is DeviceOrientationManager) { + registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) { } } else if (value is androidx.camera.core.Preview) { registrar.getPigeonApiPreview().pigeon_newInstance(value) { } @@ -1257,7 +1279,11 @@ enum class CameraStateErrorCode(val raw: Int) { } } -/** Generated class from Pigeon that represents data sent in messages. */ +/** + * Data class containing information + * + * Generated class from Pigeon that represents data sent in messages. + */ data class CameraPermissionsErrorData ( val errorCode: String, val description: String @@ -1398,7 +1424,6 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { } } - /** * Immutable class for describing width and height dimensions in pixels. * @@ -3516,28 +3541,47 @@ public class CameraProxyApiTest { } */ -/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ -interface SystemServicesHostApi { - fun requestCameraPermissions(enableAudio: Boolean, callback: (Result) -> Unit) - fun getTempFilePath(prefix: String, suffix: String): String - fun isPreviewPreTransformed(): Boolean +/** Convenience class for accessing system resources. */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(): SystemServicesManager + + abstract fun requestCameraPermissions(pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit) + + abstract fun getTempFilePath(pigeon_instance: SystemServicesManager, prefix: String, suffix: String): String + + abstract fun isPreviewPreTransformed(pigeon_instance: SystemServicesManager): Boolean companion object { - /** The codec used by SystemServicesHostApi. */ - val codec: MessageCodec by lazy { - CameraXLibraryPigeonCodec() - } - /** Sets up an instance of `SystemServicesHostApi` to handle messages through the `binaryMessenger`. */ - @JvmOverloads - fun setUp(binaryMessenger: BinaryMessenger, api: SystemServicesHostApi?, messageChannelSuffix: String = "") { - val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiSystemServicesManager?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions$separatedMessageChannelSuffix", codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val enableAudioArg = args[0] as Boolean - api.requestCameraPermissions(enableAudioArg) { result: Result -> + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as SystemServicesManager + val enableAudioArg = args[1] as Boolean + api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -3552,14 +3596,15 @@ interface SystemServicesHostApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath$separatedMessageChannelSuffix", codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val prefixArg = args[0] as String - val suffixArg = args[1] as String + val pigeon_instanceArg = args[0] as SystemServicesManager + val prefixArg = args[1] as String + val suffixArg = args[2] as String val wrapped: List = try { - listOf(api.getTempFilePath(prefixArg, suffixArg)) + listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3570,11 +3615,13 @@ interface SystemServicesHostApi { } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.isPreviewPreTransformed$separatedMessageChannelSuffix", codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", codec) if (api != null) { - channel.setMessageHandler { _, reply -> + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as SystemServicesManager val wrapped: List = try { - listOf(api.isPreviewPreTransformed()) + listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3586,21 +3633,327 @@ interface SystemServicesHostApi { } } } + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: SystemServicesManager, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + throw IllegalStateException("Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.") + } + + fun onCameraError(pigeon_instanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_instanceArg, errorDescriptionArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + } -/** Generated class from Pigeon that represents Flutter messages that can be called from Kotlin. */ -class SystemServicesFlutterApi(private val binaryMessenger: BinaryMessenger, private val messageChannelSuffix: String = "") { + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link SystemServicesManager}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManager { + SystemServicesManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link SystemServicesManager} that passes arguments of callback methods to Dart. */ + static class SystemServicesManagerImpl extends SystemServicesManager { + private final SystemServicesManagerProxyApi api; + SystemServicesManagerImpl(@NonNull SystemServicesManagerProxyApi api) { + this.api = api; + } + @Override + public void onCameraError(@NonNull String errorDescription) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onCameraError(this, errorDescription, reply -> null)); + } + } + + @NonNull + @Override + public SystemServicesManager pigeon_defaultConstructor() { + return SystemServicesManagerImpl(); + } + + @Nullable + @Override + public CameraPermissionsErrorData? requestCameraPermissions(SystemServicesManager, pigeon_instance@NonNull Boolean enableAudio) { + return pigeon_instance.requestCameraPermissions(enableAudio); + } + + @NonNull + @Override + public String getTempFilePath(SystemServicesManager, pigeon_instance@NonNull String prefix, @NonNull String suffix) { + return pigeon_instance.getTempFilePath(prefix, suffix); + } + + @NonNull + @Override + public Boolean isPreviewPreTransformed(SystemServicesManager pigeon_instance) { + return pigeon_instance.isPreviewPreTransformed(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class SystemServicesManagerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + assertTrue(api.pigeon_defaultConstructor() instanceof SystemServicesManagerProxyApi.SystemServicesManager); + } + + @Test + public void requestCameraPermissions() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = mock(SystemServicesManager.class); + final Boolean enableAudio = true; + final CameraPermissionsErrorData value = -1; + when(instance.requestCameraPermissions(enableAudio)).thenReturn(value); + + assertEquals(value, api.requestCameraPermissions(instance, enableAudio)); + } + + @Test + public void getTempFilePath() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = mock(SystemServicesManager.class); + final String prefix = "myString"; + final String suffix = "myString"; + final String value = "myString"; + when(instance.getTempFilePath(prefix, suffix)).thenReturn(value); + + assertEquals(value, api.getTempFilePath(instance, prefix, suffix)); + } + + @Test + public void isPreviewPreTransformed() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = mock(SystemServicesManager.class); + final Boolean value = true; + when(instance.isPreviewPreTransformed()).thenReturn(value); + + assertEquals(value, api.isPreviewPreTransformed(instance )); + } + + @Test + public void onCameraError() { + final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final SystemServicesManagerImpl instance = new SystemServicesManagerImpl(mockApi); + final String errorDescription = "myString"; + instance.onCameraError(errorDescription); + + verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); + } + +} +*/ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(): DeviceOrientationManager + + abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager, isFrontFacing: Boolean, sensorOrientation: Long) + + abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) + + abstract fun getDefaultDisplayRotation(pigeon_instance: DeviceOrientationManager): Long + + abstract fun getUiOrientation(pigeon_instance: DeviceOrientationManager): String + companion object { - /** The codec used by SystemServicesFlutterApi. */ - val codec: MessageCodec by lazy { - CameraXLibraryPigeonCodec() + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDeviceOrientationManager?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_identifierArg = args[0] as Long + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as DeviceOrientationManager + val isFrontFacingArg = args[1] as Boolean + val sensorOrientationArg = args[2] as Long + val wrapped: List = try { + api.startListeningForDeviceOrientationChange(pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as DeviceOrientationManager + val wrapped: List = try { + api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as DeviceOrientationManager + val wrapped: List = try { + listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as DeviceOrientationManager + val wrapped: List = try { + listOf(api.getUiOrientation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } } } - fun onCameraError(errorDescriptionArg: String, callback: (Result) -> Unit) + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: DeviceOrientationManager, callback: (Result) -> Unit) { - val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" - val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesFlutterApi.onCameraError$separatedMessageChannelSuffix" + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + throw IllegalStateException("Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.") + } + + fun onDeviceOrientationChanged(pigeon_instanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(errorDescriptionArg)) { + channel.send(listOf(pigeon_instanceArg, orientationArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -3612,7 +3965,158 @@ class SystemServicesFlutterApi(private val binaryMessenger: BinaryMessenger, pri } } } + +} + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link DeviceOrientationManager}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class DeviceOrientationManagerProxyApi extends PigeonApiDeviceOrientationManager { + DeviceOrientationManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to Dart. */ + static class DeviceOrientationManagerImpl extends DeviceOrientationManager { + private final DeviceOrientationManagerProxyApi api; + DeviceOrientationManagerImpl(@NonNull DeviceOrientationManagerProxyApi api) { + this.api = api; + } + @Override + public void onDeviceOrientationChanged(@NonNull String orientation) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onDeviceOrientationChanged(this, orientation, reply -> null)); + } + } + + @NonNull + @Override + public DeviceOrientationManager pigeon_defaultConstructor() { + return DeviceOrientationManagerImpl(); + } + + @Override + public Void startListeningForDeviceOrientationChange(DeviceOrientationManager, pigeon_instance@NonNull Boolean isFrontFacing, @NonNull Long sensorOrientation) { + pigeon_instance.startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); + } + + @Override + public Void stopListeningForDeviceOrientationChange(DeviceOrientationManager pigeon_instance) { + pigeon_instance.stopListeningForDeviceOrientationChange(); + } + + @NonNull + @Override + public Long getDefaultDisplayRotation(DeviceOrientationManager pigeon_instance) { + return pigeon_instance.getDefaultDisplayRotation(); + } + + @NonNull + @Override + public String getUiOrientation(DeviceOrientationManager pigeon_instance) { + return pigeon_instance.getUiOrientation(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class DeviceOrientationManagerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + assertTrue(api.pigeon_defaultConstructor() instanceof DeviceOrientationManagerProxyApi.DeviceOrientationManager); + } + + @Test + public void startListeningForDeviceOrientationChange() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final Boolean isFrontFacing = true; + final Long sensorOrientation = 0; + api.startListeningForDeviceOrientationChange(instance, isFrontFacing, sensorOrientation); + + verify(instance).startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); + } + + @Test + public void stopListeningForDeviceOrientationChange() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + api.stopListeningForDeviceOrientationChange(instance ); + + verify(instance).stopListeningForDeviceOrientationChange(); + } + + @Test + public void getDefaultDisplayRotation() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final Long value = 0; + when(instance.getDefaultDisplayRotation()).thenReturn(value); + + assertEquals(value, api.getDefaultDisplayRotation(instance )); + } + + @Test + public void getUiOrientation() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final String value = "myString"; + when(instance.getUiOrientation()).thenReturn(value); + + assertEquals(value, api.getUiOrientation(instance )); + } + + @Test + public void onDeviceOrientationChanged() { + final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final DeviceOrientationManagerImpl instance = new DeviceOrientationManagerImpl(mockApi); + final String orientation = "myString"; + instance.onDeviceOrientationChanged(orientation); + + verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation), any()); + } + } +*/ /** Generated interface from Pigeon that represents a handler of messages from Flutter. */ interface DeviceOrientationManagerHostApi { fun startListeningForDeviceOrientationChange(isFrontFacing: Boolean, sensorOrientation: Long) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 8b6451e2585..034fb0dcfb5 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -10,7 +10,7 @@ import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart' show DeviceOrientation, PlatformException; import 'package:flutter/widgets.dart' - show RotatedBox, Size, Texture, Widget, visibleForTesting; + show RotatedBox, Texture, Widget, visibleForTesting; import 'package:stream_transform/stream_transform.dart'; import 'camerax_library.dart'; import 'camerax_proxy2.dart'; @@ -18,11 +18,31 @@ import 'camerax_proxy2.dart'; /// The Android implementation of [CameraPlatform] that uses the CameraX library. class AndroidCameraCameraX extends CameraPlatform { /// Constructs an [AndroidCameraCameraX]. - AndroidCameraCameraX(); + AndroidCameraCameraX() { + systemServicesManager = proxy.newSystemServicesManager( + onCameraError: (_, String errorDescription) { + cameraErrorStreamController.add(errorDescription); + }, + ); + + deviceOrientationManager = proxy.newDeviceOrientationManager( + onDeviceOrientationChanged: (_, String orientation) { + final DeviceOrientation deviceOrientation = + _deserializeDeviceOrientation( + orientation, + ); + deviceOrientationChangedStreamController.add( + DeviceOrientationChangedEvent(deviceOrientation), + ); + }, + ); + } /// Registers this class as the default instance of [CameraPlatform]. static void registerWith() { CameraPlatform.instance = AndroidCameraCameraX(); + PigeonInstanceManager.instance; + setUpGenerics(); } /// Proxy for creating `JavaObject`s and calling their methods that require @@ -75,11 +95,27 @@ class AndroidCameraCameraX extends CameraPlatform { @visibleForTesting String? videoOutputPath; + late final SystemServicesManager systemServicesManager; + + late final DeviceOrientationManager deviceOrientationManager; + /// Stream that emits an event when the corresponding video recording is finalized. static final StreamController videoRecordingEventStreamController = StreamController.broadcast(); + /// Stream that emits the errors caused by camera usage on the native side. + static final StreamController cameraErrorStreamController = + StreamController.broadcast(); + + /// Stream that emits the device orientation whenever it is changed. + /// + /// Values may start being added to the stream once + /// `startListeningForDeviceOrientationChange(...)` is called. + static final StreamController + deviceOrientationChangedStreamController = + StreamController.broadcast(); + /// Stream queue to pick up finalized viceo recording events in /// [stopVideoRecording]. final StreamQueue videoRecordingEventStreamQueue = @@ -317,7 +353,9 @@ class AndroidCameraCameraX extends CameraPlatform { MediaSettings? mediaSettings, ) async { // Must obtain proper permissions before attempting to access a camera. - await proxy.requestCameraPermissions(mediaSettings?.enableAudio ?? false); + await systemServicesManager.requestCameraPermissions( + mediaSettings?.enableAudio ?? false, + ); // Save CameraSelector that matches cameraDescription. final LensFacing cameraSelectorLensDirection = @@ -327,8 +365,10 @@ class AndroidCameraCameraX extends CameraPlatform { requireLensFacing: cameraSelectorLensDirection, ); // Start listening for device orientation changes preceding camera creation. - proxy.startListeningForDeviceOrientationChange( - cameraIsFrontFacing, cameraDescription.sensorOrientation); + unawaited(deviceOrientationManager.startListeningForDeviceOrientationChange( + cameraIsFrontFacing, + cameraDescription.sensorOrientation, + )); // Determine ResolutionSelector and QualitySelector based on // resolutionPreset for camera UseCases. final ResolutionSelector? presetResolutionSelector = @@ -377,16 +417,19 @@ class AndroidCameraCameraX extends CameraPlatform { // if necessary. final Camera2CameraInfo camera2CameraInfo = - await proxy.fromCamera2CameraInfo(cameraInfo: cameraInfo!); + proxy.fromCamera2CameraInfo(cameraInfo: cameraInfo!); await Future.wait(>[ - SystemServices.isPreviewPreTransformed() + systemServicesManager + .isPreviewPreTransformed() .then((bool value) => isPreviewPreTransformed = value), - proxy - .getSensorOrientation(camera2CameraInfo) - .then((int value) => sensorOrientation = value), - proxy - .getUiOrientation() - .then((DeviceOrientation value) => naturalOrientation ??= value), + camera2CameraInfo + .getCameraCharacteristic( + proxy.sensorOrientationCameraCharacteristics(), + ) + .then((Object? value) => sensorOrientation = value! as int), + deviceOrientationManager.getUiOrientation().then((Object? orientation) { + return _deserializeDeviceOrientation(orientation! as String); + }), ]); _subscriptionForDeviceOrientationChanges = onDeviceOrientationChanged() .listen((DeviceOrientationChangedEvent event) { @@ -480,10 +523,11 @@ class AndroidCameraCameraX extends CameraPlatform { Stream onCameraError(int cameraId) { return StreamGroup.mergeBroadcast< CameraErrorEvent>(>[ - SystemServices.cameraErrorStreamController.stream - .map((String errorDescription) { - return CameraErrorEvent(cameraId, errorDescription); - }), + cameraErrorStreamController.stream.map( + (String errorDescription) { + return CameraErrorEvent(cameraId, errorDescription); + }, + ), _cameraEvents(cameraId).whereType() ]); } @@ -800,8 +844,7 @@ class AndroidCameraCameraX extends CameraPlatform { /// The ui orientation changed. @override Stream onDeviceOrientationChanged() { - return DeviceOrientationManager - .deviceOrientationChangedStreamController.stream; + return deviceOrientationChangedStreamController.stream; } /// Pause the active preview on the current frame for the selected camera. @@ -928,8 +971,9 @@ class AndroidCameraCameraX extends CameraPlatform { // Set target rotation to default CameraX rotation only if capture // orientation not locked. if (!captureOrientationLocked && shouldSetDefaultRotation) { - await imageCapture! - .setTargetRotation(await proxy.getDefaultDisplayRotation()); + await imageCapture!.setTargetRotation( + await deviceOrientationManager.getDefaultDisplayRotation(), + ); } final String picturePath = await imageCapture!.takePicture(); @@ -1057,12 +1101,13 @@ class AndroidCameraCameraX extends CameraPlatform { // Set target rotation to default CameraX rotation only if capture // orientation not locked. if (!captureOrientationLocked && shouldSetDefaultRotation) { - await videoCapture! - .setTargetRotation(await proxy.getDefaultDisplayRotation()); + await videoCapture!.setTargetRotation( + await deviceOrientationManager.getDefaultDisplayRotation(), + ); } videoOutputPath = - await SystemServices.getTempFilePath(videoPrefix, '.temp'); + await systemServicesManager.getTempFilePath(videoPrefix, '.temp'); pendingRecording = await recorder!.prepareRecording(videoOutputPath!); recording = await pendingRecording!.start(_videoRecordingEventListener); @@ -1186,8 +1231,9 @@ class AndroidCameraCameraX extends CameraPlatform { // Set target rotation to default CameraX rotation only if capture // orientation not locked. if (!captureOrientationLocked && shouldSetDefaultRotation) { - await imageAnalysis! - .setTargetRotation(await proxy.getDefaultDisplayRotation()); + await imageAnalysis!.setTargetRotation( + await deviceOrientationManager.getDefaultDisplayRotation(), + ); } // Create and set Analyzer that can read image data for image streaming. @@ -1584,4 +1630,21 @@ class AndroidCameraCameraX extends CameraPlatform { await cameraControl.startFocusAndMetering(currentFocusMeteringAction!); return result.isFocusSuccessful; } + + static DeviceOrientation _deserializeDeviceOrientation(String orientation) { + switch (orientation) { + case 'LANDSCAPE_LEFT': + return DeviceOrientation.landscapeLeft; + case 'LANDSCAPE_RIGHT': + return DeviceOrientation.landscapeRight; + case 'PORTRAIT_DOWN': + return DeviceOrientation.portraitDown; + case 'PORTRAIT_UP': + return DeviceOrientation.portraitUp; + default: + throw ArgumentError( + '"$orientation" is not a valid DeviceOrientation value', + ); + } + } } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index 4996c437d42..c61f07e4506 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -25,6 +25,32 @@ void setUpGenerics() { }); } +// TODO: move rotation logic to dart +/// Handle onto the raw buffer managed by screen compositor. +/// +/// See https://developer.android.com/reference/android/view/Surface.html. +class Surface { + /// Rotation constant to signify the natural orientation. + /// + /// See https://developer.android.com/reference/android/view/Surface.html#ROTATION_0. + static const int rotation0 = 0; + + /// Rotation constant to signify a 90 degrees rotation. + /// + /// See https://developer.android.com/reference/android/view/Surface.html#ROTATION_90. + static const int rotation90 = 1; + + /// Rotation constant to signify a 180 degrees rotation. + /// + /// See https://developer.android.com/reference/android/view/Surface.html#ROTATION_180. + static const int rotation180 = 2; + + /// Rotation constant to signify a 270 degrees rotation. + /// + /// See https://developer.android.com/reference/android/view/Surface.html#ROTATION_270. + static const int rotation270 = 3; +} + class CameraInfo extends camerax.CameraInfo { CameraInfo.detached({ required super.sensorRotationDegrees, diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 6d8e9e5ac56..d7547f22d6f 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -8,7 +8,8 @@ import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/foundation.dart' + show ReadBuffer, WriteBuffer, immutable, protected; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; @@ -19,7 +20,8 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse( + {Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; } @@ -28,6 +30,7 @@ List wrapResponse({Object? result, PlatformException? error, bool empty } return [error.code, error.message, error.details]; } + /// An immutable object that serves as the base class for all ProxyApis and /// can provide functional copies of itself. /// @@ -110,9 +113,10 @@ class PigeonInstanceManager { // by calling instanceManager.getIdentifier() inside of `==` while this was a // HashMap). final Expando _identifiers = Expando(); - final Map> _weakInstances = - >{}; - final Map _strongInstances = {}; + final Map> + _weakInstances = >{}; + final Map _strongInstances = + {}; late final Finalizer _finalizer; int _nextIdentifier = 0; @@ -122,7 +126,8 @@ class PigeonInstanceManager { static PigeonInstanceManager _initInstance() { WidgetsFlutterBinding.ensureInitialized(); - final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); + final _PigeonInternalInstanceManagerApi api = + _PigeonInternalInstanceManagerApi(); // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. api.clear(); final PigeonInstanceManager instanceManager = PigeonInstanceManager( @@ -130,56 +135,109 @@ class PigeonInstanceManager { api.removeStrongReference(identifier); }, ); - _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); - CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventFinalize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPoint.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Observer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ProcessCameraProvider.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - UseCase.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers( + instanceManager: instanceManager); + CameraSize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraIntegerRange.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEvent.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventStart.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventFinalize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPoint.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Observer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ProcessCameraProvider.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + UseCase.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Preview.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoOutput.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recorder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventListener.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PendingRecording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - AspectRatioStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ExposureState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ZoomState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageAnalysis.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Analyzer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraStateStateError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - LiveData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PlaneProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - QualitySelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FallbackStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringActionBuilder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringAction.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringResult.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequest.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestOptions.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionFilter.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + SystemServicesManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DeviceOrientationManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Preview.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoOutput.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recorder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventListener.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PendingRecording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + AspectRatioStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ExposureState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ZoomState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageAnalysis.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Analyzer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraStateStateError.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + LiveData.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PlaneProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + QualitySelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FallbackStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringAction.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringResult.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequest.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestOptions.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionFilter.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristicsKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristics.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); return instanceManager; } @@ -243,15 +301,20 @@ class PigeonInstanceManager { /// /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. - T? getInstanceWithWeakReference(int identifier) { - final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; + T? getInstanceWithWeakReference( + int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = + _weakInstances[identifier]?.target; if (weakInstance == null) { - final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; + final PigeonInternalProxyApiBaseClass? strongInstance = + _strongInstances[identifier]; if (strongInstance != null) { - final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); + final PigeonInternalProxyApiBaseClass copy = + strongInstance.pigeon_copy(); _identifiers[copy] = identifier; - _weakInstances[identifier] = WeakReference(copy); + _weakInstances[identifier] = + WeakReference(copy); _finalizer.attach(copy, identifier, detach: copy); return copy as T; } @@ -275,17 +338,20 @@ class PigeonInstanceManager { /// added. /// /// Returns unique identifier of the [instance] added. - void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { + void addHostCreatedInstance( + PigeonInternalProxyApiBaseClass instance, int identifier) { _addInstanceWithIdentifier(instance, identifier); } - void _addInstanceWithIdentifier(PigeonInternalProxyApiBaseClass instance, int identifier) { + void _addInstanceWithIdentifier( + PigeonInternalProxyApiBaseClass instance, int identifier) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = WeakReference(instance); + _weakInstances[identifier] = + WeakReference(instance); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -409,27 +475,28 @@ class _PigeonInternalInstanceManagerApi { } class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { - const _PigeonInternalProxyApiBaseCodec(this.instanceManager); - final PigeonInstanceManager instanceManager; - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is PigeonInternalProxyApiBaseClass) { - buffer.putUint8(128); - writeValue(buffer, instanceManager.getIdentifier(value)); - } else { - super.writeValue(buffer, value); - } - } - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return instanceManager - .getInstanceWithWeakReference(readValue(buffer)! as int); - default: - return super.readValueOfType(type, buffer); - } - } + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } } /// Handles constructing objects and calling static methods for the Android @@ -449,6 +516,8 @@ class InteractiveMediaAdsProxy { this.newCameraIntegerRange = CameraIntegerRange.new, this.newObserver = Observer.new, this.newCameraSelector = CameraSelector.new, + this.newSystemServicesManager = SystemServicesManager.new, + this.newDeviceOrientationManager = DeviceOrientationManager.new, this.newPreview = Preview.new, this.withOutputVideoCapture = VideoCapture.withOutput, this.newRecorder = Recorder.new, @@ -523,6 +592,20 @@ class InteractiveMediaAdsProxy { final CameraSelector Function({LensFacing? requireLensFacing}) newCameraSelector; + /// Constructs [SystemServicesManager]. + final SystemServicesManager Function( + {required void Function( + SystemServicesManager, + String, + ) onCameraError}) newSystemServicesManager; + + /// Constructs [DeviceOrientationManager]. + final DeviceOrientationManager Function( + {required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged}) newDeviceOrientationManager; + /// Constructs [Preview]. final Preview Function({ int? targetRotation, @@ -715,7 +798,6 @@ class InteractiveMediaAdsProxy { CameraCharacteristics.sensorOrientation; } - /// Generally classifies the overall set of the camera device functionality. /// /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. @@ -723,13 +805,17 @@ enum InfoSupportedHardwareLevel { /// This camera device is capable of YUV reprocessing and RAW data capture, in /// addition to FULL-level capabilities. level3, + /// This camera device is backed by an external camera connected to this /// Android device. external, + /// This camera device is capable of supporting advanced imaging applications. full, + /// This camera device is running in backward compatibility mode. legacy, + /// This camera device does not have enough capabilities to qualify as a FULL /// device or better. limited, @@ -741,8 +827,10 @@ enum InfoSupportedHardwareLevel { enum AspectRatio { /// 16:9 standard aspect ratio. ratio16To9, + /// 4:3 standard aspect ratio. ratio4To3, + /// The aspect ratio representing no preference for aspect ratio. ratioDefault, } @@ -753,15 +841,20 @@ enum AspectRatio { enum CameraStateType { /// Represents a state where the camera device is closed. closed, + /// Represents a state where the camera device is currently closing. closing, + /// Represents a state where the camera device is open. open, + /// Represents a state where the camera device is currently opening. opening, + /// Represents a state where the camera is waiting for a signal to attempt to /// open the camera device. pendingOpen, + /// This value is not recognized by this wrapper. unknown, } @@ -781,14 +874,19 @@ enum LiveDataSupportedType { enum VideoQuality { /// Standard Definition (SD) 480p video quality. SD, + /// High Definition (HD) 720p video quality. HD, + /// Full High Definition (FHD) 1080p video quality. FHD, + /// Ultra High Definition (UHD) 2160p video quality. UHD, + /// The lowest video quality supported by the video frame producer. lowest, + /// The highest video quality supported by the video frame producer. highest, } @@ -797,9 +895,11 @@ enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. ae, + /// A flag used in metering mode indicating the AF (Auto Focus) region is /// enabled. af, + /// A flag used in metering mode indicating the AWB (Auto White Balance) /// region is enabled. awb, @@ -809,12 +909,15 @@ enum MeteringMode { enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, + /// A camera on the device facing the opposite direction as the device's /// screen. back, + /// An external camera that has no fixed facing relative to the device's /// screen. external, + /// A camera on the devices that its lens facing is resolved. unknown, } @@ -828,14 +931,17 @@ enum CameraXFlashMode { /// The flash will be used according to the camera system's determination when /// taking a picture. auto, + /// No flash. /// /// The flash will never be used when taking a picture. off, + /// Always flash. /// /// The flash will always be used when taking a picture. on, + /// Screen flash. /// /// Display screen brightness will be used as alternative to flash when taking @@ -851,15 +957,19 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to the /// closest higher resolution size. closestHigher, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest higher resolution size. closestHigherThenLower, + /// When the specified bound size is unavailable, CameraX falls back to the /// closest lower resolution size. closestLower, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. closestLowerThenHigher, + /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, @@ -874,6 +984,7 @@ enum AspectRatioStrategyFallbackRule { /// the closest field of view (FOV) of the camera sensor, from the remaining /// options. auto, + /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, @@ -886,28 +997,36 @@ enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. cameraDisabled, + /// An error indicating that the camera device was closed due to a fatal /// error. cameraFatalError, + /// An error indicating that the camera device is already in use. cameraInUse, + /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API /// level 28). doNotDisturbModeEnabled, + /// An error indicating that the limit number of open cameras has been /// reached, and more cameras cannot be opened until other instances are /// closed. maxCamerasInUse, + /// An error indicating that the camera device has encountered a recoverable /// error. otherRecoverableError, + /// An error indicating that configuring the camera has failed. streamConfig, + /// The value is not recognized by this wrapper. unknown, } +/// Data class containing information class CameraPermissionsErrorData { CameraPermissionsErrorData({ required this.errorCode, @@ -934,7 +1053,6 @@ class CameraPermissionsErrorData { } } - class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -942,40 +1060,40 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); - } else if (value is CameraPermissionsErrorData) { + } else if (value is CameraPermissionsErrorData) { buffer.putUint8(140); writeValue(buffer, value.encode()); } else { @@ -986,46 +1104,51 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null ? null : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null + ? null + : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null + ? null + : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; - case 140: + case 140: return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); } } } + /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. @@ -2735,29 +2858,146 @@ class Camera extends PigeonInternalProxyApiBaseClass { } } +/// Convenience class for accessing system resources. +class SystemServicesManager extends PigeonInternalProxyApiBaseClass { + SystemServicesManager({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.onCameraError, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecSystemServicesManager; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } -class SystemServicesHostApi { - /// Constructor for [SystemServicesHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - SystemServicesHostApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; - final BinaryMessenger? pigeonVar_binaryMessenger; + /// Constructs [SystemServicesManager] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + SystemServicesManager.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.onCameraError, + }); - static const MessageCodec pigeonChannelCodec = _PigeonCodec(); + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecSystemServicesManager = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); - final String pigeonVar_messageChannelSuffix; + /// Callback method. + /// + /// For the associated Native object to be automatically garbage collected, + /// it is required that the implementation of this `Function` doesn't have a + /// strong reference to the encapsulating class instance. When this `Function` + /// references a non-local variable, it is strongly recommended to access it + /// with a `WeakReference`: + /// + /// ```dart + /// final WeakReference weakMyVariable = WeakReference(myVariable); + /// final SystemServicesManager instance = SystemServicesManager( + /// onCameraError: (SystemServicesManager pigeon_instance, ...) { + /// print(weakMyVariable?.target); + /// }, + /// ); + /// ``` + /// + /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to + /// release the associated Native object manually. + final void Function( + SystemServicesManager pigeon_instance, + String errorDescription, + ) onCameraError; - Future requestCameraPermissions(bool enableAudio) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + void Function( + SystemServicesManager pigeon_instance, + String errorDescription, + )? onCameraError, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null.'); + final List args = (message as List?)!; + final SystemServicesManager? arg_pigeon_instance = + (args[0] as SystemServicesManager?); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null SystemServicesManager.'); + final String? arg_errorDescription = (args[1] as String?); + assert(arg_errorDescription != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null String.'); + try { + (onCameraError ?? arg_pigeon_instance!.onCameraError) + .call(arg_pigeon_instance!, arg_errorDescription!); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + Future requestCameraPermissions( + bool enableAudio) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecSystemServicesManager; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send([enableAudio]) as List?; + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, enableAudio]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2771,15 +3011,23 @@ class SystemServicesHostApi { } } - Future getTempFilePath(String prefix, String suffix) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + Future getTempFilePath( + String prefix, + String suffix, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecSystemServicesManager; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send([prefix, suffix]) as List?; + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, prefix, suffix]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2799,14 +3047,19 @@ class SystemServicesHostApi { } Future isPreviewPreTransformed() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.isPreviewPreTransformed$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecSystemServicesManager; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); final List? pigeonVar_replyList = - await pigeonVar_channel.send(null) as List?; + await pigeonVar_channel.send([this]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2824,65 +3077,301 @@ class SystemServicesHostApi { return (pigeonVar_replyList[0] as bool?)!; } } + + @override + SystemServicesManager pigeon_copy() { + return SystemServicesManager.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + onCameraError: onCameraError, + ); + } } -abstract class SystemServicesFlutterApi { - static const MessageCodec pigeonChannelCodec = _PigeonCodec(); +class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { + DeviceOrientationManager({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.onDeviceOrientationChanged, + }) { + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecDeviceOrientationManager; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + () async { + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([pigeonVar_instanceIdentifier]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + }(); + } - void onCameraError(String errorDescription); + /// Constructs [DeviceOrientationManager] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + DeviceOrientationManager.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.onDeviceOrientationChanged, + }); + + late final _PigeonInternalProxyApiBaseCodec + _pigeonVar_codecDeviceOrientationManager = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); - static void setUp(SystemServicesFlutterApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + /// Callback method. + /// + /// For the associated Native object to be automatically garbage collected, + /// it is required that the implementation of this `Function` doesn't have a + /// strong reference to the encapsulating class instance. When this `Function` + /// references a non-local variable, it is strongly recommended to access it + /// with a `WeakReference`: + /// + /// ```dart + /// final WeakReference weakMyVariable = WeakReference(myVariable); + /// final DeviceOrientationManager instance = DeviceOrientationManager( + /// onDeviceOrientationChanged: (DeviceOrientationManager pigeon_instance, ...) { + /// print(weakMyVariable?.target); + /// }, + /// ); + /// ``` + /// + /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to + /// release the associated Native object manually. + final void Function( + DeviceOrientationManager pigeon_instance, + String orientation, + ) onDeviceOrientationChanged; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + void Function( + DeviceOrientationManager pigeon_instance, + String orientation, + )? onDeviceOrientationChanged, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.SystemServicesFlutterApi.onCameraError$messageChannelSuffix', pigeonChannelCodec, + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged', + pigeonChannelCodec, binaryMessenger: binaryMessenger); - if (api == null) { + if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesFlutterApi.onCameraError was null.'); + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null.'); final List args = (message as List?)!; - final String? arg_errorDescription = (args[0] as String?); - assert(arg_errorDescription != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesFlutterApi.onCameraError was null, expected non-null String.'); + final DeviceOrientationManager? arg_pigeon_instance = + (args[0] as DeviceOrientationManager?); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null DeviceOrientationManager.'); + final String? arg_orientation = (args[1] as String?); + assert(arg_orientation != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null String.'); try { - api.onCameraError(arg_errorDescription!); + (onDeviceOrientationChanged ?? + arg_pigeon_instance!.onDeviceOrientationChanged) + .call(arg_pigeon_instance!, arg_orientation!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); } }); } } } + + Future startListeningForDeviceOrientationChange( + bool isFrontFacing, + int sensorOrientation, + ) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecDeviceOrientationManager; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, isFrontFacing, sensorOrientation]) + as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future stopListeningForDeviceOrientationChange() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecDeviceOrientationManager; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return; + } + } + + Future getDefaultDisplayRotation() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecDeviceOrientationManager; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as int?)!; + } + } + + Future getUiOrientation() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecDeviceOrientationManager; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as String?)!; + } + } + + @override + DeviceOrientationManager pigeon_copy() { + return DeviceOrientationManager.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + onDeviceOrientationChanged: onDeviceOrientationChanged, + ); + } } class DeviceOrientationManagerHostApi { /// Constructor for [DeviceOrientationManagerHostApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - DeviceOrientationManagerHostApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) + DeviceOrientationManagerHostApi( + {BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + pigeonVar_messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); final String pigeonVar_messageChannelSuffix; - Future startListeningForDeviceOrientationChange(bool isFrontFacing, int sensorOrientation) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + Future startListeningForDeviceOrientationChange( + bool isFrontFacing, int sensorOrientation) async { + final String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send([isFrontFacing, sensorOrientation]) as List?; + final List? pigeonVar_replyList = await pigeonVar_channel + .send([isFrontFacing, sensorOrientation]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2897,8 +3386,10 @@ class DeviceOrientationManagerHostApi { } Future stopListeningForDeviceOrientationChange() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + final String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, @@ -2919,8 +3410,10 @@ class DeviceOrientationManagerHostApi { } Future getDefaultDisplayRotation() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + final String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, @@ -2946,8 +3439,10 @@ class DeviceOrientationManagerHostApi { } Future getUiOrientation() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + final String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, @@ -2978,18 +3473,26 @@ abstract class DeviceOrientationManagerFlutterApi { void onDeviceOrientationChanged(String orientation); - static void setUp(DeviceOrientationManagerFlutterApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + static void setUp( + DeviceOrientationManagerFlutterApi? api, { + BinaryMessenger? binaryMessenger, + String messageChannelSuffix = '', + }) { + messageChannelSuffix = + messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged$messageChannelSuffix', pigeonChannelCodec, + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged$messageChannelSuffix', + pigeonChannelCodec, binaryMessenger: binaryMessenger); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); final List args = (message as List?)!; final String? arg_orientation = (args[0] as String?); assert(arg_orientation != null, @@ -2999,14 +3502,16 @@ abstract class DeviceOrientationManagerFlutterApi { return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); } }); } } } } + /// A use case that provides a camera preview stream for displaying on-screen. /// /// See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. @@ -8314,4 +8819,3 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { ); } } - diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index 00d1098ad3b..7007708fa73 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -17,6 +17,8 @@ class CameraXProxy { this.newCameraIntegerRange = CameraIntegerRange.new, this.newObserver = Observer.new, this.newCameraSelector = CameraSelector.new, + this.newSystemServicesManager = SystemServicesManager.new, + this.newDeviceOrientationManager = DeviceOrientationManager.new, this.newPreview = Preview.new, this.withOutputVideoCapture = VideoCapture.withOutput, this.newRecorder = Recorder.new, @@ -64,167 +66,181 @@ class CameraXProxy { /// Constructs [CameraSize]. final CameraSize Function({ - required int width, - required int height, + required int width, + required int height, }) newCameraSize; /// Constructs [ResolutionInfo]. final ResolutionInfo Function({required CameraSize resolution}) - newResolutionInfo; + newResolutionInfo; /// Constructs [CameraIntegerRange]. final CameraIntegerRange Function({ - required int lower, - required int upper, + required int lower, + required int upper, }) newCameraIntegerRange; /// Constructs [Observer]. final Observer Function({ - required void Function( + required void Function( Observer, Object, - ) onChanged, - required LiveDataSupportedType type, + ) onChanged, + required LiveDataSupportedType type, }) newObserver; /// Constructs [CameraSelector]. final CameraSelector Function({LensFacing? requireLensFacing}) - newCameraSelector; + newCameraSelector; + + /// Constructs [SystemServicesManager]. + final SystemServicesManager Function( + {required void Function( + SystemServicesManager, + String, + ) onCameraError}) newSystemServicesManager; + + /// Constructs [DeviceOrientationManager]. + final DeviceOrientationManager Function( + {required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged}) newDeviceOrientationManager; /// Constructs [Preview]. final Preview Function({ - int? targetRotation, - ResolutionSelector? resolutionSelector, + int? targetRotation, + ResolutionSelector? resolutionSelector, }) newPreview; /// Constructs [VideoCapture]. final VideoCapture Function({required VideoOutput videoOutput}) - withOutputVideoCapture; + withOutputVideoCapture; /// Constructs [Recorder]. final Recorder Function({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, }) newRecorder; /// Constructs [VideoRecordEventListener]. final VideoRecordEventListener Function( {required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent}) newVideoRecordEventListener; + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent}) newVideoRecordEventListener; /// Constructs [ImageCapture]. final ImageCapture Function({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, }) newImageCapture; /// Constructs [ResolutionStrategy]. final ResolutionStrategy Function({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, }) newResolutionStrategy; /// Constructs [ResolutionSelector]. final ResolutionSelector Function({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, }) newResolutionSelector; /// Constructs [AspectRatioStrategy]. final AspectRatioStrategy Function({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, }) newAspectRatioStrategy; /// Constructs [ImageAnalysis]. final ImageAnalysis Function({ - int? targetRotation, - ResolutionSelector? resolutionSelector, + int? targetRotation, + ResolutionSelector? resolutionSelector, }) newImageAnalysis; /// Constructs [Analyzer]. final Analyzer Function( {required void Function( - Analyzer, - ImageProxy, - ) analyze}) newAnalyzer; + Analyzer, + ImageProxy, + ) analyze}) newAnalyzer; /// Constructs [QualitySelector]. final QualitySelector Function({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, }) fromQualitySelector; /// Constructs [QualitySelector]. final QualitySelector Function({ - required List qualities, - FallbackStrategy? fallbackStrategy, + required List qualities, + FallbackStrategy? fallbackStrategy, }) fromOrderedListQualitySelector; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({required VideoQuality quality}) - higherQualityOrLowerThanFallbackStrategy; + higherQualityOrLowerThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({required VideoQuality quality}) - higherQualityThanFallbackStrategy; + higherQualityThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({required VideoQuality quality}) - lowerQualityOrHigherThanFallbackStrategy; + lowerQualityOrHigherThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({required VideoQuality quality}) - lowerQualityThanFallbackStrategy; + lowerQualityThanFallbackStrategy; /// Constructs [FocusMeteringActionBuilder]. final FocusMeteringActionBuilder Function({required MeteringPoint point}) - newFocusMeteringActionBuilder; + newFocusMeteringActionBuilder; /// Constructs [FocusMeteringActionBuilder]. final FocusMeteringActionBuilder Function({ - required MeteringPoint point, - required MeteringMode mode, + required MeteringPoint point, + required MeteringMode mode, }) withModeFocusMeteringActionBuilder; /// Constructs [CaptureRequestOptions]. final CaptureRequestOptions Function( - {required Map options}) - newCaptureRequestOptions; + {required Map options}) + newCaptureRequestOptions; /// Constructs [Camera2CameraControl]. final Camera2CameraControl Function({required CameraControl cameraControl}) - fromCamera2CameraControl; + fromCamera2CameraControl; /// Constructs [ResolutionFilter]. final ResolutionFilter Function({required CameraSize preferredSize}) - createWithOnePreferredSizeResolutionFilter; + createWithOnePreferredSizeResolutionFilter; /// Constructs [Camera2CameraInfo]. final Camera2CameraInfo Function({required CameraInfo cameraInfo}) - fromCamera2CameraInfo; + fromCamera2CameraInfo; /// Constructs [DisplayOrientedMeteringPointFactory]. final DisplayOrientedMeteringPointFactory Function({ - required CameraInfo cameraInfo, - required double width, - required double height, + required CameraInfo cameraInfo, + required double width, + required double height, }) newDisplayOrientedMeteringPointFactory; /// Calls to [ProcessCameraProvider.getInstance]. final Future Function() - getInstanceProcessCameraProvider; + getInstanceProcessCameraProvider; /// Calls to [QualitySelector.getResolution]. final Future Function( - CameraInfo, - VideoQuality, - ) getResolutionQualitySelector; + CameraInfo, + VideoQuality, + ) getResolutionQualitySelector; /// Calls to [CameraSelector.defaultBackCamera]. final CameraSelector Function() defaultBackCameraCameraSelector; @@ -234,26 +250,26 @@ class CameraXProxy { /// Calls to [ResolutionStrategy.highestAvailableStrategy]. final ResolutionStrategy Function() - highestAvailableStrategyResolutionStrategy; + highestAvailableStrategyResolutionStrategy; /// Calls to [AspectRatioStrategy.ratio_16_9FallbackAutoStrategy]. final AspectRatioStrategy Function() - ratio_16_9FallbackAutoStrategyAspectRatioStrategy; + ratio_16_9FallbackAutoStrategyAspectRatioStrategy; /// Calls to [AspectRatioStrategy.ratio_4_3FallbackAutoStrategy]. final AspectRatioStrategy Function() - ratio_4_3FallbackAutoStrategyAspectRatioStrategy; + ratio_4_3FallbackAutoStrategyAspectRatioStrategy; /// Calls to [CaptureRequest.controlAELock]. final CaptureRequestKey Function() controlAELockCaptureRequest; /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. final CameraCharacteristicsKey Function() - infoSupportedHardwareLevelCameraCharacteristics; + infoSupportedHardwareLevelCameraCharacteristics; /// Calls to [CameraCharacteristics.sensorOrientation]. final CameraCharacteristicsKey Function() - sensorOrientationCameraCharacteristics; + sensorOrientationCameraCharacteristics; static CameraSelector _defaultBackCameraCameraSelector() => CameraSelector.defaultBackCamera; @@ -265,19 +281,19 @@ class CameraXProxy { ResolutionStrategy.highestAvailableStrategy; static AspectRatioStrategy - _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; static AspectRatioStrategy - _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; static CaptureRequestKey _controlAELockCaptureRequest() => CaptureRequest.controlAELock; static CameraCharacteristicsKey - _infoSupportedHardwareLevelCameraCharacteristics() => - CameraCharacteristics.infoSupportedHardwareLevel; + _infoSupportedHardwareLevelCameraCharacteristics() => + CameraCharacteristics.infoSupportedHardwareLevel; static CameraCharacteristicsKey _sensorOrientationCameraCharacteristics() => CameraCharacteristics.sensorOrientation; diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 74b0857ff20..930b69556bd 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -54,6 +54,8 @@ abstract class ResolutionInfo { late CameraSize resolution; } +/// Data class containing information +@ProxyApi() class CameraPermissionsErrorData { CameraPermissionsErrorData({ required this.errorCode, @@ -384,8 +386,13 @@ abstract class Camera { CameraInfo getCameraInfo(); } -@HostApi(dartHostTestHandler: 'TestSystemServicesHostApi') -abstract class SystemServicesHostApi { +/// Convenience class for accessing system resources. +@ProxyApi() +abstract class SystemServicesManager { + SystemServicesManager(); + + late void Function(String errorDescription) onCameraError; + @async CameraPermissionsErrorData? requestCameraPermissions(bool enableAudio); @@ -394,9 +401,38 @@ abstract class SystemServicesHostApi { bool isPreviewPreTransformed(); } -@FlutterApi() -abstract class SystemServicesFlutterApi { - void onCameraError(String errorDescription); +// abstract class SystemServicesHostApi { +// @async +// CameraPermissionsErrorData? requestCameraPermissions(bool enableAudio); +// +// String getTempFilePath(String prefix, String suffix); +// +// bool isPreviewPreTransformed(); +// } +// +// @FlutterApi() +// abstract class SystemServicesFlutterApi { +// void onCameraError(String errorDescription); +// } + +/// Support class to help to determine the media orientation based on the +/// orientation of the device. +@ProxyApi() +abstract class DeviceOrientationManager { + DeviceOrientationManager(); + + late void Function(String orientation) onDeviceOrientationChanged; + + void startListeningForDeviceOrientationChange( + bool isFrontFacing, + int sensorOrientation, + ); + + void stopListeningForDeviceOrientationChange(); + + int getDefaultDisplayRotation(); + + String getUiOrientation(); } @HostApi(dartHostTestHandler: 'TestDeviceOrientationManagerHostApi') diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index c8ab58f86cf..10645e58d67 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -106,93 +106,6 @@ class _PigeonCodec extends StandardMessageCodec { } } -abstract class TestSystemServicesHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - - Future requestCameraPermissions(bool enableAudio); - - String getTempFilePath(String prefix, String suffix); - - bool isPreviewPreTransformed(); - - static void setUp(TestSystemServicesHostApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; - { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions was null.'); - final List args = (message as List?)!; - final bool? arg_enableAudio = (args[0] as bool?); - assert(arg_enableAudio != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.requestCameraPermissions was null, expected non-null bool.'); - try { - final CameraPermissionsErrorData? output = await api.requestCameraPermissions(arg_enableAudio!); - return [output]; - } on PlatformException catch (e) { - return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); - } - }); - } - } - { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath was null.'); - final List args = (message as List?)!; - final String? arg_prefix = (args[0] as String?); - assert(arg_prefix != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath was null, expected non-null String.'); - final String? arg_suffix = (args[1] as String?); - assert(arg_suffix != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.getTempFilePath was null, expected non-null String.'); - try { - final String output = api.getTempFilePath(arg_prefix!, arg_suffix!); - return [output]; - } on PlatformException catch (e) { - return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); - } - }); - } - } - { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.SystemServicesHostApi.isPreviewPreTransformed$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { - try { - final bool output = api.isPreviewPreTransformed(); - return [output]; - } on PlatformException catch (e) { - return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); - } - }); - } - } - } -} - abstract class TestDeviceOrientationManagerHostApi { static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); From ee8adb5b0b988a8a92951ddb843c1daa904c37a0 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 03:11:18 -0500 Subject: [PATCH 011/148] add missing java classes --- .../camerax/CameraPermissionsErrorData.java | 25 + .../camerax/CameraPermissionsManager.java | 2 +- .../plugins/camerax/CameraXLibrary.g.kt | 175 ++++-- .../camerax/SystemServicesManager.java | 71 +++ .../lib/src/camerax_library2.g.dart | 513 ++++++++---------- .../pigeons/camerax_library.dart | 42 +- .../test/test_camerax_library.g.dart | 5 - 7 files changed, 464 insertions(+), 369 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorData.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorData.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorData.java new file mode 100644 index 00000000000..e7d13fcd985 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorData.java @@ -0,0 +1,25 @@ +package io.flutter.plugins.camerax; + +import androidx.annotation.NonNull; + +public class CameraPermissionsErrorData { + @NonNull + private final String errorCode; + @NonNull + private final String description; + + CameraPermissionsErrorData(@NonNull String errorCode, @NonNull String description) { + this.errorCode = errorCode; + this.description = description; + } + + @NonNull + public String getErrorCode() { + return errorCode; + } + + @NonNull + public String getDescription() { + return description; + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java index 28093ec4371..6c719fa8d38 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java @@ -13,7 +13,7 @@ import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; -final class CameraPermissionsManager { +public final class CameraPermissionsManager { interface PermissionsRegistry { @SuppressWarnings("deprecation") void addListener( diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index f481b20de11..96290595850 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -3,7 +3,7 @@ // found in the LICENSE file. // Autogenerated from Pigeon (v22.7.0), do not edit directly. // See also: https://pub.dev/packages/pigeon -@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass", "UnsafeOptInUsageError") package io.flutter.plugins.camerax @@ -379,6 +379,12 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary */ abstract fun getPigeonApiResolutionInfo(): PigeonApiResolutionInfo + /** + * An implementation of [PigeonApiCameraPermissionsErrorData] used to add a new Dart instance of + * `CameraPermissionsErrorData` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraPermissionsErrorData(): PigeonApiCameraPermissionsErrorData + /** * An implementation of [PigeonApiCameraIntegerRange] used to add a new Dart instance of * `CameraIntegerRange` to the Dart `InstanceManager`. @@ -796,6 +802,9 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar } else if (value is androidx.camera.core.ResolutionInfo) { registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) { } + } + else if (value is CameraPermissionsErrorData) { + registrar.getPigeonApiCameraPermissionsErrorData().pigeon_newInstance(value) { } } else if (value is android.util.Range<*>) { registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) { } @@ -1278,31 +1287,6 @@ enum class CameraStateErrorCode(val raw: Int) { } } } - -/** - * Data class containing information - * - * Generated class from Pigeon that represents data sent in messages. - */ -data class CameraPermissionsErrorData ( - val errorCode: String, - val description: String -) - { - companion object { - fun fromList(pigeonVar_list: List): CameraPermissionsErrorData { - val errorCode = pigeonVar_list[0] as String - val description = pigeonVar_list[1] as String - return CameraPermissionsErrorData(errorCode, description) - } - } - fun toList(): List { - return listOf( - errorCode, - description, - ) - } -} private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { @@ -1361,11 +1345,6 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { CameraStateErrorCode.ofRaw(it.toInt()) } } - 140.toByte() -> { - return (readValue(buffer) as? List)?.let { - CameraPermissionsErrorData.fromList(it) - } - } else -> super.readValueOfType(type, buffer) } } @@ -1415,10 +1394,6 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { stream.write(139) writeValue(stream, value.raw) } - is CameraPermissionsErrorData -> { - stream.write(140) - writeValue(stream, value.toList()) - } else -> super.writeValue(stream, value) } } @@ -1747,6 +1722,130 @@ public class ResolutionInfoProxyApiTest { assertEquals(value, api.resolution(instance)); } +} +*/ +/** Data class containing information */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraPermissionsErrorData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun errorCode(pigeon_instance: CameraPermissionsErrorData): String + + abstract fun description(pigeon_instance: CameraPermissionsErrorData): String + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraPermissionsErrorData and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: CameraPermissionsErrorData, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + return + } + if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + Result.success(Unit) + return + } + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val errorCodeArg = errorCode(pigeon_instanceArg) + val descriptionArg = description(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, errorCodeArg, descriptionArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraPermissionsErrorData}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraPermissionsErrorDataProxyApi extends PigeonApiCameraPermissionsErrorData { + CameraPermissionsErrorDataProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public String errorCode(CameraPermissionsErrorData pigeon_instance) { + return pigeon_instance.getErrorCode(); + } + + @NonNull + @Override + public String description(CameraPermissionsErrorData pigeon_instance) { + return pigeon_instance.getDescription(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraPermissionsErrorDataProxyApiTest { + @Test + public void errorCode() { + final PigeonApiCameraPermissionsErrorData api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsErrorData(); + + final CameraPermissionsErrorData instance = mock(CameraPermissionsErrorData.class); + final String value = "myString"; + when(instance.getErrorCode()).thenReturn(value); + + assertEquals(value, api.errorCode(instance)); + } + + @Test + public void description() { + final PigeonApiCameraPermissionsErrorData api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsErrorData(); + + final CameraPermissionsErrorData instance = mock(CameraPermissionsErrorData.class); + final String value = "myString"; + when(instance.getDescription()).thenReturn(value); + + assertEquals(value, api.description(instance)); + } + } */ /** @@ -3771,7 +3870,7 @@ public class SystemServicesManagerProxyApiTest { final SystemServicesManager instance = mock(SystemServicesManager.class); final Boolean enableAudio = true; - final CameraPermissionsErrorData value = -1; + final CameraPermissionsErrorData value = mock(CameraPermissionsErrorData.class); when(instance.requestCameraPermissions(enableAudio)).thenReturn(value); assertEquals(value, api.requestCameraPermissions(instance, enableAudio)); @@ -3815,6 +3914,10 @@ public class SystemServicesManagerProxyApiTest { } */ +/** + * Support class to help to determine the media orientation based on the + * orientation of the device. + */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java new file mode 100644 index 00000000000..fe123d2a039 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java @@ -0,0 +1,71 @@ +package io.flutter.plugins.camerax; + +import android.app.Activity; +import android.content.Context; +import android.os.Build; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.io.File; +import java.io.IOException; + +public abstract class SystemServicesManager { + @NonNull + private final CameraPermissionsManager cameraPermissionsManager; + + interface PermissionsResultListener { + void onResult(@Nullable CameraPermissionsErrorData data); + } + + protected SystemServicesManager(@NonNull CameraPermissionsManager cameraPermissionsManager) { + this.cameraPermissionsManager = cameraPermissionsManager; + } + + abstract void onCameraError(@NonNull String description); + + @Nullable + abstract Context getContext(); + + @Nullable + abstract CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry(); + + public void requestCameraPermissions(@NonNull Boolean enableAudio, @NonNull PermissionsResultListener listener) { + if (getContext() == null || !(getContext() instanceof Activity)) { + throw new IllegalStateException("Activity must be set to request camera permissions."); + } + + cameraPermissionsManager.requestPermissions( + (Activity) getContext(), + getPermissionsRegistry(), + enableAudio, + (String errorCode, String description) -> { + if (errorCode == null) { + listener.onResult(null); + } else { + // If permissions are ongoing or denied, error data will be sent to be handled. + listener.onResult(new CameraPermissionsErrorData(errorCode, description)); + } + }); + } + + // TODO: throwing of cameraxerror should be handled by proxyapi impl + @NonNull + public String getTempFilePath(@NonNull String prefix, @NonNull String suffix) throws CameraXError { + if (getContext() == null) { + throw new IllegalStateException("Context must be set to create a temporary file."); + } + + try { + final File path = File.createTempFile(prefix, suffix, getContext().getCacheDir()); + return path.toString(); + } catch (IOException | SecurityException e) { + throw new CameraXError("getTempFilePath_failure", "SystemServicesHostApiImpl.getTempFilePath encountered an exception: " + e, null); + } + } + + @NonNull + public Boolean isPreviewPreTransformed() { + return Build.VERSION.SDK_INT < 29; + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index d7547f22d6f..054938745ad 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -8,8 +8,7 @@ import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; -import 'package:flutter/foundation.dart' - show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; @@ -20,8 +19,7 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse( - {Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; } @@ -30,7 +28,6 @@ List wrapResponse( } return [error.code, error.message, error.details]; } - /// An immutable object that serves as the base class for all ProxyApis and /// can provide functional copies of itself. /// @@ -113,10 +110,9 @@ class PigeonInstanceManager { // by calling instanceManager.getIdentifier() inside of `==` while this was a // HashMap). final Expando _identifiers = Expando(); - final Map> - _weakInstances = >{}; - final Map _strongInstances = - {}; + final Map> _weakInstances = + >{}; + final Map _strongInstances = {}; late final Finalizer _finalizer; int _nextIdentifier = 0; @@ -126,8 +122,7 @@ class PigeonInstanceManager { static PigeonInstanceManager _initInstance() { WidgetsFlutterBinding.ensureInitialized(); - final _PigeonInternalInstanceManagerApi api = - _PigeonInternalInstanceManagerApi(); + final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. api.clear(); final PigeonInstanceManager instanceManager = PigeonInstanceManager( @@ -135,109 +130,59 @@ class PigeonInstanceManager { api.removeStrongReference(identifier); }, ); - _PigeonInternalInstanceManagerApi.setUpMessageHandlers( - instanceManager: instanceManager); - CameraSize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraIntegerRange.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEvent.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEventStart.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEventFinalize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - MeteringPoint.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Observer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ProcessCameraProvider.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - UseCase.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); + CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraPermissionsErrorData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventFinalize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + MeteringPoint.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Observer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ProcessCameraProvider.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + UseCase.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - SystemServicesManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - DeviceOrientationManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Preview.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoOutput.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Recorder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEventListener.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - PendingRecording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Recording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ImageCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - AspectRatioStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ExposureState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ZoomState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ImageAnalysis.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Analyzer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraStateStateError.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - LiveData.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ImageProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - PlaneProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - QualitySelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FallbackStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FocusMeteringAction.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FocusMeteringResult.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CaptureRequest.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CaptureRequestKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CaptureRequestOptions.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Camera2CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionFilter.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraCharacteristicsKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraCharacteristics.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Camera2CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - MeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + SystemServicesManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + DeviceOrientationManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Preview.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoOutput.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Recorder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventListener.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + PendingRecording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Recording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + AspectRatioStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ExposureState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ZoomState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageAnalysis.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Analyzer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraStateStateError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + LiveData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + PlaneProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + QualitySelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FallbackStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringActionBuilder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringAction.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringResult.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequest.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequestKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequestOptions.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Camera2CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionFilter.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + MeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); return instanceManager; } @@ -301,20 +246,15 @@ class PigeonInstanceManager { /// /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. - T? getInstanceWithWeakReference( - int identifier) { - final PigeonInternalProxyApiBaseClass? weakInstance = - _weakInstances[identifier]?.target; + T? getInstanceWithWeakReference(int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; if (weakInstance == null) { - final PigeonInternalProxyApiBaseClass? strongInstance = - _strongInstances[identifier]; + final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; if (strongInstance != null) { - final PigeonInternalProxyApiBaseClass copy = - strongInstance.pigeon_copy(); + final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); _identifiers[copy] = identifier; - _weakInstances[identifier] = - WeakReference(copy); + _weakInstances[identifier] = WeakReference(copy); _finalizer.attach(copy, identifier, detach: copy); return copy as T; } @@ -338,20 +278,17 @@ class PigeonInstanceManager { /// added. /// /// Returns unique identifier of the [instance] added. - void addHostCreatedInstance( - PigeonInternalProxyApiBaseClass instance, int identifier) { + void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { _addInstanceWithIdentifier(instance, identifier); } - void _addInstanceWithIdentifier( - PigeonInternalProxyApiBaseClass instance, int identifier) { + void _addInstanceWithIdentifier(PigeonInternalProxyApiBaseClass instance, int identifier) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = - WeakReference(instance); + _weakInstances[identifier] = WeakReference(instance); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -475,28 +412,27 @@ class _PigeonInternalInstanceManagerApi { } class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { - const _PigeonInternalProxyApiBaseCodec(this.instanceManager); - final PigeonInstanceManager instanceManager; - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is PigeonInternalProxyApiBaseClass) { - buffer.putUint8(128); - writeValue(buffer, instanceManager.getIdentifier(value)); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return instanceManager - .getInstanceWithWeakReference(readValue(buffer)! as int); - default: - return super.readValueOfType(type, buffer); - } - } + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } } /// Handles constructing objects and calling static methods for the Android @@ -798,6 +734,7 @@ class InteractiveMediaAdsProxy { CameraCharacteristics.sensorOrientation; } + /// Generally classifies the overall set of the camera device functionality. /// /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. @@ -805,17 +742,13 @@ enum InfoSupportedHardwareLevel { /// This camera device is capable of YUV reprocessing and RAW data capture, in /// addition to FULL-level capabilities. level3, - /// This camera device is backed by an external camera connected to this /// Android device. external, - /// This camera device is capable of supporting advanced imaging applications. full, - /// This camera device is running in backward compatibility mode. legacy, - /// This camera device does not have enough capabilities to qualify as a FULL /// device or better. limited, @@ -827,10 +760,8 @@ enum InfoSupportedHardwareLevel { enum AspectRatio { /// 16:9 standard aspect ratio. ratio16To9, - /// 4:3 standard aspect ratio. ratio4To3, - /// The aspect ratio representing no preference for aspect ratio. ratioDefault, } @@ -841,20 +772,15 @@ enum AspectRatio { enum CameraStateType { /// Represents a state where the camera device is closed. closed, - /// Represents a state where the camera device is currently closing. closing, - /// Represents a state where the camera device is open. open, - /// Represents a state where the camera device is currently opening. opening, - /// Represents a state where the camera is waiting for a signal to attempt to /// open the camera device. pendingOpen, - /// This value is not recognized by this wrapper. unknown, } @@ -874,19 +800,14 @@ enum LiveDataSupportedType { enum VideoQuality { /// Standard Definition (SD) 480p video quality. SD, - /// High Definition (HD) 720p video quality. HD, - /// Full High Definition (FHD) 1080p video quality. FHD, - /// Ultra High Definition (UHD) 2160p video quality. UHD, - /// The lowest video quality supported by the video frame producer. lowest, - /// The highest video quality supported by the video frame producer. highest, } @@ -895,11 +816,9 @@ enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. ae, - /// A flag used in metering mode indicating the AF (Auto Focus) region is /// enabled. af, - /// A flag used in metering mode indicating the AWB (Auto White Balance) /// region is enabled. awb, @@ -909,15 +828,12 @@ enum MeteringMode { enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, - /// A camera on the device facing the opposite direction as the device's /// screen. back, - /// An external camera that has no fixed facing relative to the device's /// screen. external, - /// A camera on the devices that its lens facing is resolved. unknown, } @@ -931,17 +847,14 @@ enum CameraXFlashMode { /// The flash will be used according to the camera system's determination when /// taking a picture. auto, - /// No flash. /// /// The flash will never be used when taking a picture. off, - /// Always flash. /// /// The flash will always be used when taking a picture. on, - /// Screen flash. /// /// Display screen brightness will be used as alternative to flash when taking @@ -957,19 +870,15 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to the /// closest higher resolution size. closestHigher, - /// When the specified bound size is unavailable, CameraX falls back to select /// the closest higher resolution size. closestHigherThenLower, - /// When the specified bound size is unavailable, CameraX falls back to the /// closest lower resolution size. closestLower, - /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. closestLowerThenHigher, - /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, @@ -984,7 +893,6 @@ enum AspectRatioStrategyFallbackRule { /// the closest field of view (FOV) of the camera sensor, from the remaining /// options. auto, - /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, @@ -997,61 +905,28 @@ enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. cameraDisabled, - /// An error indicating that the camera device was closed due to a fatal /// error. cameraFatalError, - /// An error indicating that the camera device is already in use. cameraInUse, - /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API /// level 28). doNotDisturbModeEnabled, - /// An error indicating that the limit number of open cameras has been /// reached, and more cameras cannot be opened until other instances are /// closed. maxCamerasInUse, - /// An error indicating that the camera device has encountered a recoverable /// error. otherRecoverableError, - /// An error indicating that configuring the camera has failed. streamConfig, - /// The value is not recognized by this wrapper. unknown, } -/// Data class containing information -class CameraPermissionsErrorData { - CameraPermissionsErrorData({ - required this.errorCode, - required this.description, - }); - - String errorCode; - - String description; - - Object encode() { - return [ - errorCode, - description, - ]; - } - - static CameraPermissionsErrorData decode(Object result) { - result as List; - return CameraPermissionsErrorData( - errorCode: result[0]! as String, - description: result[1]! as String, - ); - } -} class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @@ -1060,42 +935,39 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); - } else if (value is CameraPermissionsErrorData) { - buffer.putUint8(140); - writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); } @@ -1104,51 +976,44 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null - ? null - : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null ? null : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null - ? null - : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; - case 140: - return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); } } } - /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. @@ -1403,6 +1268,95 @@ class ResolutionInfo extends PigeonInternalProxyApiBaseClass { } } +/// Data class containing information +class CameraPermissionsErrorData extends PigeonInternalProxyApiBaseClass { + /// Constructs [CameraPermissionsErrorData] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraPermissionsErrorData.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.errorCode, + required this.description, + }); + + final String errorCode; + + final String description; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraPermissionsErrorData Function( + String errorCode, + String description, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance was null, expected non-null int.'); + final String? arg_errorCode = (args[1] as String?); + assert(arg_errorCode != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance was null, expected non-null String.'); + final String? arg_description = (args[2] as String?); + assert(arg_description != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance was null, expected non-null String.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_errorCode!, arg_description!) ?? + CameraPermissionsErrorData.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + errorCode: arg_errorCode!, + description: arg_description!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CameraPermissionsErrorData pigeon_copy() { + return CameraPermissionsErrorData.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + errorCode: errorCode, + description: description, + ); + } +} + /// Immutable class for describing the range of two integer values. /// /// This is the equivalent to `android.util.Range`. @@ -3088,6 +3042,8 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { } } +/// Support class to help to determine the media orientation based on the +/// orientation of the device. class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { DeviceOrientationManager({ super.pigeon_binaryMessenger, @@ -3345,33 +3301,29 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { } } + class DeviceOrientationManagerHostApi { /// Constructor for [DeviceOrientationManagerHostApi]. The [binaryMessenger] named argument is /// available for dependency injection. If it is left null, the default /// BinaryMessenger will be used which routes to the host platform. - DeviceOrientationManagerHostApi( - {BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) + DeviceOrientationManagerHostApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = - messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; final BinaryMessenger? pigeonVar_binaryMessenger; static const MessageCodec pigeonChannelCodec = _PigeonCodec(); final String pigeonVar_messageChannelSuffix; - Future startListeningForDeviceOrientationChange( - bool isFrontFacing, int sensorOrientation) async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + Future startListeningForDeviceOrientationChange(bool isFrontFacing, int sensorOrientation) async { + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final List? pigeonVar_replyList = await pigeonVar_channel - .send([isFrontFacing, sensorOrientation]) as List?; + final List? pigeonVar_replyList = + await pigeonVar_channel.send([isFrontFacing, sensorOrientation]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -3386,10 +3338,8 @@ class DeviceOrientationManagerHostApi { } Future stopListeningForDeviceOrientationChange() async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, @@ -3410,10 +3360,8 @@ class DeviceOrientationManagerHostApi { } Future getDefaultDisplayRotation() async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, @@ -3439,10 +3387,8 @@ class DeviceOrientationManagerHostApi { } Future getUiOrientation() async { - final String pigeonVar_channelName = - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( + final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$pigeonVar_messageChannelSuffix'; + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( pigeonVar_channelName, pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, @@ -3473,26 +3419,18 @@ abstract class DeviceOrientationManagerFlutterApi { void onDeviceOrientationChanged(String orientation); - static void setUp( - DeviceOrientationManagerFlutterApi? api, { - BinaryMessenger? binaryMessenger, - String messageChannelSuffix = '', - }) { - messageChannelSuffix = - messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; + static void setUp(DeviceOrientationManagerFlutterApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { + messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged$messageChannelSuffix', - pigeonChannelCodec, + final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged$messageChannelSuffix', pigeonChannelCodec, binaryMessenger: binaryMessenger); if (api == null) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); final List args = (message as List?)!; final String? arg_orientation = (args[0] as String?); assert(arg_orientation != null, @@ -3502,16 +3440,14 @@ abstract class DeviceOrientationManagerFlutterApi { return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); - } catch (e) { - return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + } catch (e) { + return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); } }); } } } } - /// A use case that provides a camera preview stream for displaying on-screen. /// /// See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. @@ -8819,3 +8755,4 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { ); } } + diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 930b69556bd..d2f69b43109 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -56,14 +56,9 @@ abstract class ResolutionInfo { /// Data class containing information @ProxyApi() -class CameraPermissionsErrorData { - CameraPermissionsErrorData({ - required this.errorCode, - required this.description, - }); - - String errorCode; - String description; +abstract class CameraPermissionsErrorData { + late String errorCode; + late String description; } /// Generally classifies the overall set of the camera device functionality. @@ -401,20 +396,6 @@ abstract class SystemServicesManager { bool isPreviewPreTransformed(); } -// abstract class SystemServicesHostApi { -// @async -// CameraPermissionsErrorData? requestCameraPermissions(bool enableAudio); -// -// String getTempFilePath(String prefix, String suffix); -// -// bool isPreviewPreTransformed(); -// } -// -// @FlutterApi() -// abstract class SystemServicesFlutterApi { -// void onCameraError(String errorDescription); -// } - /// Support class to help to determine the media orientation based on the /// orientation of the device. @ProxyApi() @@ -435,23 +416,6 @@ abstract class DeviceOrientationManager { String getUiOrientation(); } -@HostApi(dartHostTestHandler: 'TestDeviceOrientationManagerHostApi') -abstract class DeviceOrientationManagerHostApi { - void startListeningForDeviceOrientationChange( - bool isFrontFacing, int sensorOrientation); - - void stopListeningForDeviceOrientationChange(); - - int getDefaultDisplayRotation(); - - String getUiOrientation(); -} - -@FlutterApi() -abstract class DeviceOrientationManagerFlutterApi { - void onDeviceOrientationChanged(String orientation); -} - /// A use case that provides a camera preview stream for displaying on-screen. /// /// See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index 10645e58d67..11d87a93688 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -54,9 +54,6 @@ class _PigeonCodec extends StandardMessageCodec { } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); - } else if (value is CameraPermissionsErrorData) { - buffer.putUint8(140); - writeValue(buffer, value.encode()); } else { super.writeValue(buffer, value); } @@ -98,8 +95,6 @@ class _PigeonCodec extends StandardMessageCodec { case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; - case 140: - return CameraPermissionsErrorData.decode(readValue(buffer)!); default: return super.readValueOfType(type, buffer); } From 2b553ef412b78ddcaf35720e393ae50a58dceec0 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 03:48:31 -0500 Subject: [PATCH 012/148] some of the classes --- .../camerax/CameraIntegerRangeProxyApi.java | 36 ++ .../CameraPermissionsErrorDataProxyApi.java | 32 ++ .../plugins/camerax/CameraSizeProxyApi.java | 35 ++ .../plugins/camerax/CameraXLibrary.g.kt | 183 +--------- .../camerax/MeteringPointProxyApi.java | 25 ++ .../plugins/camerax/ObserverProxyApi.java | 48 +++ .../plugins/camerax/ProxyApiRegistrar.java | 330 ++++++++++++++++++ .../camerax/ResolutionInfoProxyApi.java | 26 ++ .../lib/src/camerax_library.dart | 3 - .../lib/src/camerax_library2.g.dart | 212 +---------- .../lib/src/camerax_proxy2.dart | 149 ++++---- .../pigeons/camerax_library.dart | 5 - .../test/test_camerax_library.g.dart | 102 ------ 13 files changed, 612 insertions(+), 574 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorDataProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java new file mode 100644 index 00000000000..8994bdfaab3 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java @@ -0,0 +1,36 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.util.Range; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link android.util.Range}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraIntegerRangeProxyApi extends PigeonApiCameraIntegerRange { + CameraIntegerRangeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Range pigeon_defaultConstructor(long lower, long upper) { + return new Range<>((int) lower, (int) upper); + } + + @Override + public long lower(android.util.Range pigeon_instance) { + return (long) pigeon_instance.getLower(); + } + + @Override + public long upper(android.util.Range pigeon_instance) { + return (long) pigeon_instance.getUpper(); + } +} \ No newline at end of file diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorDataProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorDataProxyApi.java new file mode 100644 index 00000000000..d73ec1dee4f --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorDataProxyApi.java @@ -0,0 +1,32 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraPermissionsErrorData}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraPermissionsErrorDataProxyApi extends PigeonApiCameraPermissionsErrorData { + CameraPermissionsErrorDataProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public String errorCode(CameraPermissionsErrorData pigeon_instance) { + return pigeon_instance.getErrorCode(); + } + + @NonNull + @Override + public String description(CameraPermissionsErrorData pigeon_instance) { + return pigeon_instance.getDescription(); + } +} \ No newline at end of file diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java new file mode 100644 index 00000000000..88835579942 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java @@ -0,0 +1,35 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.util.Size; +import androidx.annotation.NonNull; + +/** + * ProxyApi implementation for {@link Size}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraSizeProxyApi extends PigeonApiCameraSize { + CameraSizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Size pigeon_defaultConstructor(long width, long height) { + return new Size((int) width, (int) height); + } + + @Override + public long width(@NonNull Size pigeon_instance) { + return pigeon_instance.getWidth(); + } + + @Override + public long height(Size pigeon_instance) { + return pigeon_instance.getHeight(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 96290595850..c1015eeea5c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -3,7 +3,7 @@ // found in the LICENSE file. // Autogenerated from Pigeon (v22.7.0), do not edit directly. // See also: https://pub.dev/packages/pigeon -@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass", "UnsafeOptInUsageError") +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") package io.flutter.plugins.camerax @@ -703,7 +703,6 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary fun setUp() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, instanceManager) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSize()) - PigeonApiResolutionInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionInfo()) PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraIntegerRange()) PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPoint()) PigeonApiObserver.setUpMessageHandlers(binaryMessenger, getPigeonApiObserver()) @@ -743,7 +742,6 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary fun tearDown() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, null) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, null) - PigeonApiResolutionInfo.setUpMessageHandlers(binaryMessenger, null) PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, null) PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, null) PigeonApiObserver.setUpMessageHandlers(binaryMessenger, null) @@ -1579,37 +1577,9 @@ public class CameraSizeProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolution: android.util.Size): androidx.camera.core.ResolutionInfo - /** Returns the output resolution used for the use case. */ abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size - companion object { - @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionInfo?) { - val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_defaultConstructor", codec) - if (api != null) { - channel.setMessageHandler { message, reply -> - val args = message as List - val pigeon_identifierArg = args[0] as Long - val resolutionArg = args[1] as android.util.Size - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } - reply.reply(wrapped) - } - } else { - channel.setMessageHandler(null) - } - } - } - } - @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit) @@ -1668,12 +1638,6 @@ class ResolutionInfoProxyApi extends PigeonApiResolutionInfo { super(pigeonRegistrar); } - @NonNull - @Override - public ResolutionInfo pigeon_defaultConstructor() { - return ResolutionInfo(); - } - @NonNull @Override public android.util.Size resolution(ResolutionInfo pigeon_instance) { @@ -1704,13 +1668,6 @@ import org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class ResolutionInfoProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); - - assertTrue(api.pigeon_defaultConstructor() instanceof ResolutionInfoProxyApi.ResolutionInfo); - } - @Test public void resolution() { final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); @@ -2445,7 +2402,7 @@ public class MeteringPointProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(type: LiveDataSupportedType): androidx.lifecycle.Observer<*> + abstract fun pigeon_defaultConstructor(): androidx.lifecycle.Observer<*> companion object { @Suppress("LocalVariableName") @@ -2457,9 +2414,8 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val typeArg = args[1] as LiveDataSupportedType val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(typeArg), pigeon_identifierArg) + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2557,16 +2513,6 @@ class ObserverProxyApi extends PigeonApiObserver { return ObserverImpl(); } - @NonNull - @Override - public LiveDataSupportedType type(Observer pigeon_instance) { - switch (pigeon_instance.type) { - case LiveDataSupportedType.CAMERA_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; - case LiveDataSupportedType.ZOOM_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.ZOOM_STATE; - default: return io.flutter.plugins.camerax.LiveDataSupportedType.UNKNOWN; - } - } - } */ @@ -2594,18 +2540,7 @@ public class ObserverProxyApiTest { public void pigeon_defaultConstructor() { final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); - assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.Observer); - } - - @Test - public void type() { - final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); - - final Observer instance = mock(Observer.class); - final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; - when(instance.getType()).thenReturn(value); - - assertEquals(value, api.type(instance)); + assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.ObserverImpl); } @Test @@ -4220,116 +4155,6 @@ public class DeviceOrientationManagerProxyApiTest { } */ -/** Generated interface from Pigeon that represents a handler of messages from Flutter. */ -interface DeviceOrientationManagerHostApi { - fun startListeningForDeviceOrientationChange(isFrontFacing: Boolean, sensorOrientation: Long) - fun stopListeningForDeviceOrientationChange() - fun getDefaultDisplayRotation(): Long - fun getUiOrientation(): String - - companion object { - /** The codec used by DeviceOrientationManagerHostApi. */ - val codec: MessageCodec by lazy { - CameraXLibraryPigeonCodec() - } - /** Sets up an instance of `DeviceOrientationManagerHostApi` to handle messages through the `binaryMessenger`. */ - @JvmOverloads - fun setUp(binaryMessenger: BinaryMessenger, api: DeviceOrientationManagerHostApi?, messageChannelSuffix: String = "") { - val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$separatedMessageChannelSuffix", codec) - if (api != null) { - channel.setMessageHandler { message, reply -> - val args = message as List - val isFrontFacingArg = args[0] as Boolean - val sensorOrientationArg = args[1] as Long - val wrapped: List = try { - api.startListeningForDeviceOrientationChange(isFrontFacingArg, sensorOrientationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } - reply.reply(wrapped) - } - } else { - channel.setMessageHandler(null) - } - } - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$separatedMessageChannelSuffix", codec) - if (api != null) { - channel.setMessageHandler { _, reply -> - val wrapped: List = try { - api.stopListeningForDeviceOrientationChange() - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } - reply.reply(wrapped) - } - } else { - channel.setMessageHandler(null) - } - } - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$separatedMessageChannelSuffix", codec) - if (api != null) { - channel.setMessageHandler { _, reply -> - val wrapped: List = try { - listOf(api.getDefaultDisplayRotation()) - } catch (exception: Throwable) { - wrapError(exception) - } - reply.reply(wrapped) - } - } else { - channel.setMessageHandler(null) - } - } - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$separatedMessageChannelSuffix", codec) - if (api != null) { - channel.setMessageHandler { _, reply -> - val wrapped: List = try { - listOf(api.getUiOrientation()) - } catch (exception: Throwable) { - wrapError(exception) - } - reply.reply(wrapped) - } - } else { - channel.setMessageHandler(null) - } - } - } - } -} -/** Generated class from Pigeon that represents Flutter messages that can be called from Kotlin. */ -class DeviceOrientationManagerFlutterApi(private val binaryMessenger: BinaryMessenger, private val messageChannelSuffix: String = "") { - companion object { - /** The codec used by DeviceOrientationManagerFlutterApi. */ - val codec: MessageCodec by lazy { - CameraXLibraryPigeonCodec() - } - } - fun onDeviceOrientationChanged(orientationArg: String, callback: (Result) -> Unit) -{ - val separatedMessageChannelSuffix = if (messageChannelSuffix.isNotEmpty()) ".$messageChannelSuffix" else "" - val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged$separatedMessageChannelSuffix" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(orientationArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } -} /** * A use case that provides a camera preview stream for displaying on-screen. * diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java new file mode 100644 index 00000000000..d3c5953caf3 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java @@ -0,0 +1,25 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.MeteringPoint; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link MeteringPoint}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class MeteringPointProxyApi extends PigeonApiMeteringPoint { + MeteringPointProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public double getSize(MeteringPoint pigeon_instance) { + return pigeon_instance.getSize(); + } +} \ No newline at end of file diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java new file mode 100644 index 00000000000..65f2db52997 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java @@ -0,0 +1,48 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState; +import androidx.camera.core.ZoomState; +import androidx.lifecycle.Observer; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Observer}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ObserverProxyApi extends PigeonApiObserver { + /** Implementation of {@link Observer} that passes arguments of callback methods to Dart. */ + static class ObserverImpl implements Observer { + private final ObserverProxyApi api; + + ObserverImpl(@NonNull ObserverProxyApi api) { + this.api = api; + } + + @Override + public void onChanged(T t) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onChanged(this, t, reply -> null)); + } + } + + ObserverProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public Observer pigeon_defaultConstructor() { + return new ObserverImpl<>(this); + } +} \ No newline at end of file diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java new file mode 100644 index 00000000000..d43b4cf0665 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -0,0 +1,330 @@ +package io.flutter.plugins.camerax; + +import android.app.Activity; +import android.content.Context; +import android.os.Build; +import android.os.Handler; +import android.os.Looper; +import android.util.Log; + +import androidx.annotation.ChecksSdkIntAtLeast; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import io.flutter.plugin.common.BinaryMessenger; + +public class ProxyApiRegistrar extends CameraXLibraryPigeonProxyApiRegistrar { + @NonNull + private Context context; + + public ProxyApiRegistrar(@NonNull BinaryMessenger binaryMessenger, @NonNull Context context) { + super(binaryMessenger); + this.context = context; + } + + // Interface for an injectable SDK version checker. + @ChecksSdkIntAtLeast(parameter = 0) + boolean sdkIsAtLeast(int version) { + return Build.VERSION.SDK_INT >= version; + } + + // Added to be overridden for tests. The test implementation calls `callback` immediately, instead + // of waiting for the main thread to run it. + void runOnMainThread(Runnable runnable) { + if (context instanceof Activity) { + ((Activity) context).runOnUiThread(runnable); + } else { + new Handler(Looper.getMainLooper()).post(runnable); + } + } + + // For logging exceptions received from Host -> Dart message calls. + void logError(String tag, Throwable exception) { + Log.e( + tag, + exception.getClass().getSimpleName() + + ", Message: " + + exception.getMessage() + + ", Stacktrace: " + + Log.getStackTraceString(exception)); + } + + @NonNull + public Context getContext() { + return context; + } + + public void setContext(@NonNull Context context) { + this.context = context; + } + + @NonNull + @Override + public PigeonApiCameraSize getPigeonApiCameraSize() { + return new CameraSizeProxyApi(this); + } + + @NonNull + @Override + public PigeonApiResolutionInfo getPigeonApiResolutionInfo() { + return new ResolutionInfoProxyApi(this); + } + + @NonNull + @Override + public PigeonApiCameraPermissionsErrorData getPigeonApiCameraPermissionsErrorData() { + return new CameraPermissionsErrorDataProxyApi(this); + } + + @NonNull + @Override + public PigeonApiCameraIntegerRange getPigeonApiCameraIntegerRange() { + return new CameraIntegerRangeProxyApi(this); + } + + @NonNull + @Override + public PigeonApiMeteringPoint getPigeonApiMeteringPoint() { + return new MeteringPointProxyApi(this); + } + + @NonNull + @Override + public PigeonApiObserver getPigeonApiObserver() { + return new ObserverProxyApi(this); + } + + @NonNull + @Override + public PigeonApiCameraInfo getPigeonApiCameraInfo() { + return null; + } + + @NonNull + @Override + public PigeonApiCameraSelector getPigeonApiCameraSelector() { + return null; + } + + @NonNull + @Override + public PigeonApiProcessCameraProvider getPigeonApiProcessCameraProvider() { + return null; + } + + @NonNull + @Override + public PigeonApiCamera getPigeonApiCamera() { + return null; + } + + @NonNull + @Override + public PigeonApiSystemServicesManager getPigeonApiSystemServicesManager() { + return null; + } + + @NonNull + @Override + public PigeonApiDeviceOrientationManager getPigeonApiDeviceOrientationManager() { + return null; + } + + @NonNull + @Override + public PigeonApiPreview getPigeonApiPreview() { + return null; + } + + @NonNull + @Override + public PigeonApiVideoCapture getPigeonApiVideoCapture() { + return null; + } + + @NonNull + @Override + public PigeonApiRecorder getPigeonApiRecorder() { + return null; + } + + @NonNull + @Override + public PigeonApiVideoRecordEventListener getPigeonApiVideoRecordEventListener() { + return null; + } + + @NonNull + @Override + public PigeonApiPendingRecording getPigeonApiPendingRecording() { + return null; + } + + @NonNull + @Override + public PigeonApiRecording getPigeonApiRecording() { + return null; + } + + @NonNull + @Override + public PigeonApiImageCapture getPigeonApiImageCapture() { + return null; + } + + @NonNull + @Override + public PigeonApiResolutionStrategy getPigeonApiResolutionStrategy() { + return null; + } + + @NonNull + @Override + public PigeonApiResolutionSelector getPigeonApiResolutionSelector() { + return null; + } + + @NonNull + @Override + public PigeonApiAspectRatioStrategy getPigeonApiAspectRatioStrategy() { + return null; + } + + @NonNull + @Override + public PigeonApiCameraState getPigeonApiCameraState() { + return null; + } + + @NonNull + @Override + public PigeonApiExposureState getPigeonApiExposureState() { + return null; + } + + @NonNull + @Override + public PigeonApiZoomState getPigeonApiZoomState() { + return null; + } + + @NonNull + @Override + public PigeonApiImageAnalysis getPigeonApiImageAnalysis() { + return null; + } + + @NonNull + @Override + public PigeonApiAnalyzer getPigeonApiAnalyzer() { + return null; + } + + @NonNull + @Override + public PigeonApiCameraStateStateError getPigeonApiCameraStateStateError() { + return null; + } + + @NonNull + @Override + public PigeonApiLiveData getPigeonApiLiveData() { + return null; + } + + @NonNull + @Override + public PigeonApiImageProxy getPigeonApiImageProxy() { + return null; + } + + @NonNull + @Override + public PigeonApiPlaneProxy getPigeonApiPlaneProxy() { + return null; + } + + @NonNull + @Override + public PigeonApiQualitySelector getPigeonApiQualitySelector() { + return null; + } + + @NonNull + @Override + public PigeonApiFallbackStrategy getPigeonApiFallbackStrategy() { + return null; + } + + @NonNull + @Override + public PigeonApiCameraControl getPigeonApiCameraControl() { + return null; + } + + @NonNull + @Override + public PigeonApiFocusMeteringActionBuilder getPigeonApiFocusMeteringActionBuilder() { + return null; + } + + @NonNull + @Override + public PigeonApiFocusMeteringAction getPigeonApiFocusMeteringAction() { + return null; + } + + @NonNull + @Override + public PigeonApiFocusMeteringResult getPigeonApiFocusMeteringResult() { + return null; + } + + @NonNull + @Override + public PigeonApiCaptureRequest getPigeonApiCaptureRequest() { + return null; + } + + @NonNull + @Override + public PigeonApiCaptureRequestOptions getPigeonApiCaptureRequestOptions() { + return null; + } + + @NonNull + @Override + public PigeonApiCamera2CameraControl getPigeonApiCamera2CameraControl() { + return null; + } + + @NonNull + @Override + public PigeonApiResolutionFilter getPigeonApiResolutionFilter() { + return null; + } + + @NonNull + @Override + public PigeonApiCameraCharacteristics getPigeonApiCameraCharacteristics() { + return null; + } + + @NonNull + @Override + public PigeonApiCamera2CameraInfo getPigeonApiCamera2CameraInfo() { + return null; + } + + @NonNull + @Override + public PigeonApiMeteringPointFactory getPigeonApiMeteringPointFactory() { + return null; + } + + @NonNull + @Override + public PigeonApiDisplayOrientedMeteringPointFactory getPigeonApiDisplayOrientedMeteringPointFactory() { + return null; + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java new file mode 100644 index 00000000000..978b235e425 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java @@ -0,0 +1,26 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ResolutionInfo; +import androidx.annotation.NonNull; + +/** + * ProxyApi implementation for {@link ResolutionInfo}. + * + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionInfoProxyApi extends PigeonApiResolutionInfo { + ResolutionInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public android.util.Size resolution(ResolutionInfo pigeon_instance) { + return pigeon_instance.getResolution(); + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index c61f07e4506..f4af4910bca 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -122,7 +122,6 @@ class Observer extends camerax.Observer { Observer({ required void Function(Observer instance, T value) onChanged, }) : super( - type: asSupportedType(T), onChanged: ( camerax.Observer instance, Object value, @@ -132,7 +131,6 @@ class Observer extends camerax.Observer { ); Observer.detached({ - required super.type, required super.onChanged, super.pigeon_binaryMessenger, super.pigeon_instanceManager, @@ -152,7 +150,6 @@ class Observer extends camerax.Observer { @override Observer pigeon_copy() { return Observer.detached( - type: type, onChanged: onChanged, pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 054938745ad..1bba0bab614 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -448,7 +448,6 @@ class InteractiveMediaAdsProxy { /// Constructs an [InteractiveMediaAdsProxy]. const InteractiveMediaAdsProxy({ this.newCameraSize = CameraSize.new, - this.newResolutionInfo = ResolutionInfo.new, this.newCameraIntegerRange = CameraIntegerRange.new, this.newObserver = Observer.new, this.newCameraSelector = CameraSelector.new, @@ -505,10 +504,6 @@ class InteractiveMediaAdsProxy { required int height, }) newCameraSize; - /// Constructs [ResolutionInfo]. - final ResolutionInfo Function({required CameraSize resolution}) - newResolutionInfo; - /// Constructs [CameraIntegerRange]. final CameraIntegerRange Function({ required int lower, @@ -516,13 +511,11 @@ class InteractiveMediaAdsProxy { }) newCameraIntegerRange; /// Constructs [Observer]. - final Observer Function({ - required void Function( - Observer, - Object, - ) onChanged, - required LiveDataSupportedType type, - }) newObserver; + final Observer Function( + {required void Function( + Observer, + Object, + ) onChanged}) newObserver; /// Constructs [CameraSelector]. final CameraSelector Function({LensFacing? requireLensFacing}) @@ -1152,42 +1145,6 @@ class CameraSize extends PigeonInternalProxyApiBaseClass { /// /// See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. class ResolutionInfo extends PigeonInternalProxyApiBaseClass { - ResolutionInfo({ - super.pigeon_binaryMessenger, - super.pigeon_instanceManager, - required this.resolution, - }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); - final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = - _pigeonVar_codecResolutionInfo; - final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; - () async { - const String pigeonVar_channelName = - 'dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_defaultConstructor'; - final BasicMessageChannel pigeonVar_channel = - BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final List? pigeonVar_replyList = await pigeonVar_channel - .send([pigeonVar_instanceIdentifier, resolution]) - as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } - }(); - } - /// Constructs [ResolutionInfo] without creating the associated native object. /// /// This should only be used by subclasses created by this library or to @@ -1199,9 +1156,6 @@ class ResolutionInfo extends PigeonInternalProxyApiBaseClass { required this.resolution, }); - late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecResolutionInfo = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); - /// Returns the output resolution used for the use case. final CameraSize resolution; @@ -1828,7 +1782,6 @@ class Observer extends PigeonInternalProxyApiBaseClass { Observer({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, - required this.type, required this.onChanged, }) { final int pigeonVar_instanceIdentifier = @@ -1846,8 +1799,7 @@ class Observer extends PigeonInternalProxyApiBaseClass { binaryMessenger: pigeonVar_binaryMessenger, ); final List? pigeonVar_replyList = await pigeonVar_channel - .send([pigeonVar_instanceIdentifier, type]) - as List?; + .send([pigeonVar_instanceIdentifier]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -1870,16 +1822,12 @@ class Observer extends PigeonInternalProxyApiBaseClass { Observer.pigeon_detached({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, - required this.type, required this.onChanged, }); late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecObserver = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); - /// The generic type used by this instance. - final LiveDataSupportedType type; - /// Called when the data is changed to value. /// /// For the associated Native object to be automatically garbage collected, @@ -1956,7 +1904,6 @@ class Observer extends PigeonInternalProxyApiBaseClass { return Observer.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, - type: type, onChanged: onChanged, ); } @@ -3301,153 +3248,6 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { } } - -class DeviceOrientationManagerHostApi { - /// Constructor for [DeviceOrientationManagerHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - DeviceOrientationManagerHostApi({BinaryMessenger? binaryMessenger, String messageChannelSuffix = ''}) - : pigeonVar_binaryMessenger = binaryMessenger, - pigeonVar_messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; - final BinaryMessenger? pigeonVar_binaryMessenger; - - static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - - final String pigeonVar_messageChannelSuffix; - - Future startListeningForDeviceOrientationChange(bool isFrontFacing, int sensorOrientation) async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send([isFrontFacing, sensorOrientation]) as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } - } - - Future stopListeningForDeviceOrientationChange() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send(null) as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else { - return; - } - } - - Future getDefaultDisplayRotation() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send(null) as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as int?)!; - } - } - - Future getUiOrientation() async { - final String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$pigeonVar_messageChannelSuffix'; - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send(null) as List?; - if (pigeonVar_replyList == null) { - throw _createConnectionError(pigeonVar_channelName); - } else if (pigeonVar_replyList.length > 1) { - throw PlatformException( - code: pigeonVar_replyList[0]! as String, - message: pigeonVar_replyList[1] as String?, - details: pigeonVar_replyList[2], - ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (pigeonVar_replyList[0] as String?)!; - } - } -} - -abstract class DeviceOrientationManagerFlutterApi { - static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - - void onDeviceOrientationChanged(String orientation); - - static void setUp(DeviceOrientationManagerFlutterApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; - { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); - if (api == null) { - pigeonVar_channel.setMessageHandler(null); - } else { - pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); - final List args = (message as List?)!; - final String? arg_orientation = (args[0] as String?); - assert(arg_orientation != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null, expected non-null String.'); - try { - api.onDeviceOrientationChanged(arg_orientation!); - return wrapResponse(empty: true); - } on PlatformException catch (e) { - return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); - } - }); - } - } - } -} /// A use case that provides a camera preview stream for displaying on-screen. /// /// See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index 7007708fa73..8f27bc38fd9 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -13,7 +13,6 @@ class CameraXProxy { /// Constructs an [CameraXProxy]. const CameraXProxy({ this.newCameraSize = CameraSize.new, - this.newResolutionInfo = ResolutionInfo.new, this.newCameraIntegerRange = CameraIntegerRange.new, this.newObserver = Observer.new, this.newCameraSelector = CameraSelector.new, @@ -66,181 +65,173 @@ class CameraXProxy { /// Constructs [CameraSize]. final CameraSize Function({ - required int width, - required int height, + required int width, + required int height, }) newCameraSize; - /// Constructs [ResolutionInfo]. - final ResolutionInfo Function({required CameraSize resolution}) - newResolutionInfo; - /// Constructs [CameraIntegerRange]. final CameraIntegerRange Function({ - required int lower, - required int upper, + required int lower, + required int upper, }) newCameraIntegerRange; /// Constructs [Observer]. final Observer Function({ - required void Function( - Observer, - Object, - ) onChanged, - required LiveDataSupportedType type, + required void Function(Observer, Object) onChanged, }) newObserver; /// Constructs [CameraSelector]. final CameraSelector Function({LensFacing? requireLensFacing}) - newCameraSelector; + newCameraSelector; /// Constructs [SystemServicesManager]. final SystemServicesManager Function( {required void Function( - SystemServicesManager, - String, - ) onCameraError}) newSystemServicesManager; + SystemServicesManager, + String, + ) onCameraError}) newSystemServicesManager; /// Constructs [DeviceOrientationManager]. final DeviceOrientationManager Function( {required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged}) newDeviceOrientationManager; + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged}) newDeviceOrientationManager; /// Constructs [Preview]. final Preview Function({ - int? targetRotation, - ResolutionSelector? resolutionSelector, + int? targetRotation, + ResolutionSelector? resolutionSelector, }) newPreview; /// Constructs [VideoCapture]. final VideoCapture Function({required VideoOutput videoOutput}) - withOutputVideoCapture; + withOutputVideoCapture; /// Constructs [Recorder]. final Recorder Function({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, }) newRecorder; /// Constructs [VideoRecordEventListener]. final VideoRecordEventListener Function( {required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent}) newVideoRecordEventListener; + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent}) newVideoRecordEventListener; /// Constructs [ImageCapture]. final ImageCapture Function({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, }) newImageCapture; /// Constructs [ResolutionStrategy]. final ResolutionStrategy Function({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, }) newResolutionStrategy; /// Constructs [ResolutionSelector]. final ResolutionSelector Function({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, }) newResolutionSelector; /// Constructs [AspectRatioStrategy]. final AspectRatioStrategy Function({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, }) newAspectRatioStrategy; /// Constructs [ImageAnalysis]. final ImageAnalysis Function({ - int? targetRotation, - ResolutionSelector? resolutionSelector, + int? targetRotation, + ResolutionSelector? resolutionSelector, }) newImageAnalysis; /// Constructs [Analyzer]. final Analyzer Function( {required void Function( - Analyzer, - ImageProxy, - ) analyze}) newAnalyzer; + Analyzer, + ImageProxy, + ) analyze}) newAnalyzer; /// Constructs [QualitySelector]. final QualitySelector Function({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, }) fromQualitySelector; /// Constructs [QualitySelector]. final QualitySelector Function({ - required List qualities, - FallbackStrategy? fallbackStrategy, + required List qualities, + FallbackStrategy? fallbackStrategy, }) fromOrderedListQualitySelector; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({required VideoQuality quality}) - higherQualityOrLowerThanFallbackStrategy; + higherQualityOrLowerThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({required VideoQuality quality}) - higherQualityThanFallbackStrategy; + higherQualityThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({required VideoQuality quality}) - lowerQualityOrHigherThanFallbackStrategy; + lowerQualityOrHigherThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({required VideoQuality quality}) - lowerQualityThanFallbackStrategy; + lowerQualityThanFallbackStrategy; /// Constructs [FocusMeteringActionBuilder]. final FocusMeteringActionBuilder Function({required MeteringPoint point}) - newFocusMeteringActionBuilder; + newFocusMeteringActionBuilder; /// Constructs [FocusMeteringActionBuilder]. final FocusMeteringActionBuilder Function({ - required MeteringPoint point, - required MeteringMode mode, + required MeteringPoint point, + required MeteringMode mode, }) withModeFocusMeteringActionBuilder; /// Constructs [CaptureRequestOptions]. final CaptureRequestOptions Function( - {required Map options}) - newCaptureRequestOptions; + {required Map options}) + newCaptureRequestOptions; /// Constructs [Camera2CameraControl]. final Camera2CameraControl Function({required CameraControl cameraControl}) - fromCamera2CameraControl; + fromCamera2CameraControl; /// Constructs [ResolutionFilter]. final ResolutionFilter Function({required CameraSize preferredSize}) - createWithOnePreferredSizeResolutionFilter; + createWithOnePreferredSizeResolutionFilter; /// Constructs [Camera2CameraInfo]. final Camera2CameraInfo Function({required CameraInfo cameraInfo}) - fromCamera2CameraInfo; + fromCamera2CameraInfo; /// Constructs [DisplayOrientedMeteringPointFactory]. final DisplayOrientedMeteringPointFactory Function({ - required CameraInfo cameraInfo, - required double width, - required double height, + required CameraInfo cameraInfo, + required double width, + required double height, }) newDisplayOrientedMeteringPointFactory; /// Calls to [ProcessCameraProvider.getInstance]. final Future Function() - getInstanceProcessCameraProvider; + getInstanceProcessCameraProvider; /// Calls to [QualitySelector.getResolution]. final Future Function( - CameraInfo, - VideoQuality, - ) getResolutionQualitySelector; + CameraInfo, + VideoQuality, + ) getResolutionQualitySelector; /// Calls to [CameraSelector.defaultBackCamera]. final CameraSelector Function() defaultBackCameraCameraSelector; @@ -250,26 +241,26 @@ class CameraXProxy { /// Calls to [ResolutionStrategy.highestAvailableStrategy]. final ResolutionStrategy Function() - highestAvailableStrategyResolutionStrategy; + highestAvailableStrategyResolutionStrategy; /// Calls to [AspectRatioStrategy.ratio_16_9FallbackAutoStrategy]. final AspectRatioStrategy Function() - ratio_16_9FallbackAutoStrategyAspectRatioStrategy; + ratio_16_9FallbackAutoStrategyAspectRatioStrategy; /// Calls to [AspectRatioStrategy.ratio_4_3FallbackAutoStrategy]. final AspectRatioStrategy Function() - ratio_4_3FallbackAutoStrategyAspectRatioStrategy; + ratio_4_3FallbackAutoStrategyAspectRatioStrategy; /// Calls to [CaptureRequest.controlAELock]. final CaptureRequestKey Function() controlAELockCaptureRequest; /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. final CameraCharacteristicsKey Function() - infoSupportedHardwareLevelCameraCharacteristics; + infoSupportedHardwareLevelCameraCharacteristics; /// Calls to [CameraCharacteristics.sensorOrientation]. final CameraCharacteristicsKey Function() - sensorOrientationCameraCharacteristics; + sensorOrientationCameraCharacteristics; static CameraSelector _defaultBackCameraCameraSelector() => CameraSelector.defaultBackCamera; @@ -281,19 +272,19 @@ class CameraXProxy { ResolutionStrategy.highestAvailableStrategy; static AspectRatioStrategy - _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; static AspectRatioStrategy - _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; static CaptureRequestKey _controlAELockCaptureRequest() => CaptureRequest.controlAELock; static CameraCharacteristicsKey - _infoSupportedHardwareLevelCameraCharacteristics() => - CameraCharacteristics.infoSupportedHardwareLevel; + _infoSupportedHardwareLevelCameraCharacteristics() => + CameraCharacteristics.infoSupportedHardwareLevel; static CameraCharacteristicsKey _sensorOrientationCameraCharacteristics() => CameraCharacteristics.sensorOrientation; diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index d2f69b43109..9b9a7da333a 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -48,8 +48,6 @@ abstract class CameraSize { ), ) abstract class ResolutionInfo { - ResolutionInfo(); - /// Returns the output resolution used for the use case. late CameraSize resolution; } @@ -246,9 +244,6 @@ enum MeteringMode { abstract class Observer { Observer(); - /// The generic type used by this instance. - late LiveDataSupportedType type; - /// Called when the data is changed to value. late void Function(Object value) onChanged; } diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index 11d87a93688..fad045fe1f0 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -100,105 +100,3 @@ class _PigeonCodec extends StandardMessageCodec { } } } - -abstract class TestDeviceOrientationManagerHostApi { - static TestDefaultBinaryMessengerBinding? get _testBinaryMessengerBinding => TestDefaultBinaryMessengerBinding.instance; - static const MessageCodec pigeonChannelCodec = _PigeonCodec(); - - void startListeningForDeviceOrientationChange(bool isFrontFacing, int sensorOrientation); - - void stopListeningForDeviceOrientationChange(); - - int getDefaultDisplayRotation(); - - String getUiOrientation(); - - static void setUp(TestDeviceOrientationManagerHostApi? api, {BinaryMessenger? binaryMessenger, String messageChannelSuffix = '',}) { - messageChannelSuffix = messageChannelSuffix.isNotEmpty ? '.$messageChannelSuffix' : ''; - { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null.'); - final List args = (message as List?)!; - final bool? arg_isFrontFacing = (args[0] as bool?); - assert(arg_isFrontFacing != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null, expected non-null bool.'); - final int? arg_sensorOrientation = (args[1] as int?); - assert(arg_sensorOrientation != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange was null, expected non-null int.'); - try { - api.startListeningForDeviceOrientationChange(arg_isFrontFacing!, arg_sensorOrientation!); - return wrapResponse(empty: true); - } on PlatformException catch (e) { - return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); - } - }); - } - } - { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { - try { - api.stopListeningForDeviceOrientationChange(); - return wrapResponse(empty: true); - } on PlatformException catch (e) { - return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); - } - }); - } - } - { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getDefaultDisplayRotation$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { - try { - final int output = api.getDefaultDisplayRotation(); - return [output]; - } on PlatformException catch (e) { - return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); - } - }); - } - } - { - final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManagerHostApi.getUiOrientation$messageChannelSuffix', pigeonChannelCodec, - binaryMessenger: binaryMessenger); - if (api == null) { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, null); - } else { - _testBinaryMessengerBinding!.defaultBinaryMessenger.setMockDecodedMessageHandler(pigeonVar_channel, (Object? message) async { - try { - final String output = api.getUiOrientation(); - return [output]; - } on PlatformException catch (e) { - return wrapResponse(error: e); - } catch (e) { - return wrapResponse(error: PlatformException(code: 'error', message: e.toString())); - } - }); - } - } - } -} From e4ab7bc9f0ef5e1ff7ab6b2a02b2b97f92074183 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 16:54:43 -0500 Subject: [PATCH 013/148] most of the api implementations --- .../plugins/camerax/AnalyzerProxyApi.java | 47 +++ .../camerax/AspectRatioStrategyProxyApi.java | 58 ++++ .../camerax/Camera2CameraControlProxyApi.java | 34 ++ .../camerax/Camera2CameraInfoProxyApi.java | 41 +++ .../CameraCharacteristicsKeyProxyApi.java | 21 ++ .../CameraCharacteristicsProxyApi.java | 34 ++ .../camerax/CameraControlProxyApi.java | 50 +++ .../plugins/camerax/CameraInfoProxyApi.java | 45 +++ .../camerax/CameraPermissionsErrorData.java | 25 -- ...rDataProxyApi.java => CameraProxyApi.java} | 20 +- .../camerax/CameraSelectorProxyApi.java | 65 ++++ .../plugins/camerax/CameraStateProxyApi.java | 46 +++ .../CameraStateStateErrorProxyApi.java | 35 +++ .../plugins/camerax/CameraXLibrary.g.kt | 291 ++++-------------- .../camerax/CaptureRequestKeyProxyApi.java | 21 ++ .../CaptureRequestOptionsProxyApi.java | 28 ++ .../camerax/CaptureRequestProxyApi.java | 28 ++ .../camerax/DeviceOrientationManager.java | 35 +-- .../DeviceOrientationManagerHostApiImpl.java | 2 +- .../DeviceOrientationManagerProxyApi.java | 72 +++++ ...yOrientedMeteringPointFactoryProxyApi.java | 28 ++ .../camerax/ExposureStateProxyApi.java | 32 ++ .../camerax/FallbackStrategyProxyApi.java | 45 +++ .../FocusMeteringActionBuilderProxyApi.java | 56 ++++ .../camerax/FocusMeteringActionProxyApi.java | 46 +++ .../camerax/FocusMeteringResultProxyApi.java | 27 ++ .../camerax/ImageAnalysisProxyApi.java | 62 ++++ .../plugins/camerax/ImageCaptureProxyApi.java | 123 ++++++++ .../plugins/camerax/ImageProxyProxyApi.java | 50 +++ .../plugins/camerax/LiveDataProxyApi.java | 83 +++++ .../camerax/MeteringPointFactoryProxyApi.java | 34 ++ .../camerax/PendingRecordingProxyApi.java | 36 +++ .../plugins/camerax/PlaneProxyProxyApi.java | 44 +++ .../plugins/camerax/PreviewProxyApi.java | 147 +++++++++ .../ProcessCameraProviderProxyApi.java | 89 ++++++ .../plugins/camerax/ProxyApiRegistrar.java | 111 +++++-- .../camerax/ProxyLifecycleProvider.java | 3 +- .../camerax/QualitySelectorProxyApi.java | 42 +++ .../plugins/camerax/RecorderProxyApi.java | 88 ++++++ .../plugins/camerax/RecordingProxyApi.java | 40 +++ .../camerax/ResolutionFilterProxyApi.java | 28 ++ .../camerax/ResolutionSelectorProxyApi.java | 39 +++ .../camerax/ResolutionStrategyProxyApi.java | 51 +++ .../flutter/plugins/camerax/ResultCompat.kt | 47 +++ .../camerax/SystemServicesManager.java | 38 +-- .../SystemServicesManagerProxyApi.java | 87 ++++++ .../plugins/camerax/UseCaseProxyApi.java | 21 ++ .../plugins/camerax/VideoCaptureProxyApi.java | 38 +++ .../plugins/camerax/VideoOutputProxyApi.java | 21 ++ .../VideoRecordEventFinalizeProxyApi.java | 21 ++ .../VideoRecordEventListenerProxyApi.java | 45 +++ .../camerax/VideoRecordEventProxyApi.java | 21 ++ .../VideoRecordEventStartProxyApi.java | 21 ++ .../plugins/camerax/ZoomStateProxyApi.java | 30 ++ .../lib/src/android_camera_camerax.dart | 5 +- .../lib/src/camerax_library2.g.dart | 117 +------ .../pigeons/camerax_library.dart | 26 +- 57 files changed, 2362 insertions(+), 478 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorData.java rename packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/{CameraPermissionsErrorDataProxyApi.java => CameraProxyApi.java} (53%) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java new file mode 100644 index 00000000000..01853c07ddc --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java @@ -0,0 +1,47 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageAnalysis.Analyzer; +import androidx.camera.core.ImageProxy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Analyzer}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class AnalyzerProxyApi extends PigeonApiAnalyzer { + AnalyzerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + /** Implementation of {@link Analyzer} that passes arguments of callback methods to Dart. */ + static class AnalyzerImpl implements Analyzer { + private final AnalyzerProxyApi api; + + AnalyzerImpl(@NonNull AnalyzerProxyApi api) { + this.api = api; + } + + @Override + public void analyze(@NonNull androidx.camera.core.ImageProxy image) { + api.getPigeonRegistrar().runOnMainThread(() -> api.analyze(this, image, reply -> null)); + } + } + + @NonNull + @Override + public Analyzer pigeon_defaultConstructor() { + return new AnalyzerImpl(this); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java new file mode 100644 index 00000000000..299597156ed --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java @@ -0,0 +1,58 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.AspectRatioStrategy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link AspectRatioStrategy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class AspectRatioStrategyProxyApi extends PigeonApiAspectRatioStrategy { + AspectRatioStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public AspectRatioStrategy pigeon_defaultConstructor(@NonNull AspectRatio preferredAspectRatio, @NonNull AspectRatioStrategyFallbackRule fallbackRule) { + int nativeAspectRatio = -2; + switch(preferredAspectRatio) { + case RATIO16TO9: + nativeAspectRatio = androidx.camera.core.AspectRatio.RATIO_16_9; + break; + case RATIO4TO3: + nativeAspectRatio = androidx.camera.core.AspectRatio.RATIO_4_3; + break; + case RATIO_DEFAULT: + nativeAspectRatio = androidx.camera.core.AspectRatio.RATIO_DEFAULT; + } + int nativeFallbackRule = -1; + switch (fallbackRule) { + case AUTO: + nativeFallbackRule = AspectRatioStrategy.FALLBACK_RULE_AUTO; + break; + case NONE: + nativeFallbackRule = AspectRatioStrategy.FALLBACK_RULE_NONE; + break; + } + return new AspectRatioStrategy(nativeAspectRatio, nativeFallbackRule); + } + + @NonNull + @Override + public AspectRatioStrategy ratio_16_9FallbackAutoStrategy() { + return AspectRatioStrategy.RATIO_16_9_FALLBACK_AUTO_STRATEGY; + } + + @NonNull + @Override + public AspectRatioStrategy ratio_4_3FallbackAutoStrategy() { + return AspectRatioStrategy.RATIO_4_3_FALLBACK_AUTO_STRATEGY; + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java new file mode 100644 index 00000000000..0a5d3b89618 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java @@ -0,0 +1,34 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.Camera2CameraControl; +import androidx.camera.core.CameraControl; +import androidx.camera.camera2.interop.CaptureRequestOptions; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Camera2CameraControl}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class Camera2CameraControlProxyApi extends PigeonApiCamera2CameraControl { + Camera2CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Camera2CameraControl from(@NonNull androidx.camera.core.CameraControl cameraControl) { + return Camera2CameraControl(cameraControl); + } + + @Override + public Void addCaptureRequestOptions(Camera2CameraControl, pigeon_instance@NonNull androidx.camera.camera2.interop.CaptureRequestOptions bundle) { + pigeon_instance.addCaptureRequestOptions(bundle); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java new file mode 100644 index 00000000000..135bd579e44 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java @@ -0,0 +1,41 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.Camera2CameraInfo; +import androidx.camera.core.CameraInfo; +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Camera2CameraInfo}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class Camera2CameraInfoProxyApi extends PigeonApiCamera2CameraInfo { + Camera2CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Camera2CameraInfo from(@NonNull androidx.camera.core.CameraInfo cameraInfo) { + return Camera2CameraInfo(cameraInfo); + } + + @NonNull + @Override + public String getCameraId(Camera2CameraInfo pigeon_instance) { + return pigeon_instance.getCameraId(); + } + + @Nullable + @Override + public Any? getCameraCharacteristic(Camera2CameraInfo, pigeon_instance@NonNull android.hardware.camera2.CameraCharacteristics.Key<*> key) { + return pigeon_instance.getCameraCharacteristic(key); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java new file mode 100644 index 00000000000..62a52f85b69 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraCharacteristicsKey}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraCharacteristicsKeyProxyApi extends PigeonApiCameraCharacteristicsKey { + CameraCharacteristicsKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java new file mode 100644 index 00000000000..2c10aea0dd3 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java @@ -0,0 +1,34 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraCharacteristics}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraCharacteristicsProxyApi extends PigeonApiCameraCharacteristics { + CameraCharacteristicsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public android.hardware.camera2.CameraCharacteristics.Key<*> infoSupportedHardwareLevel() { + return CameraCharacteristics.getInfoSupportedHardwareLevel(); + } + + @NonNull + @Override + public android.hardware.camera2.CameraCharacteristics.Key<*> sensorOrientation() { + return CameraCharacteristics.getSensorOrientation(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java new file mode 100644 index 00000000000..cc7d812a4f0 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java @@ -0,0 +1,50 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraControl; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.FocusMeteringResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraControl}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraControlProxyApi extends PigeonApiCameraControl { + CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public Void enableTorch(CameraControl, pigeon_instance@NonNull Boolean torch) { + pigeon_instance.enableTorch(torch); + } + + @Override + public Void setZoomRatio(CameraControl, pigeon_instance@NonNull Double ratio) { + pigeon_instance.setZoomRatio(ratio); + } + + @NonNull + @Override + public androidx.camera.core.FocusMeteringResult startFocusAndMetering(CameraControl, pigeon_instance@NonNull androidx.camera.core.FocusMeteringAction action) { + return pigeon_instance.startFocusAndMetering(action); + } + + @Override + public Void cancelFocusAndMetering(CameraControl pigeon_instance) { + pigeon_instance.cancelFocusAndMetering(); + } + + @NonNull + @Override + public Long setExposureCompensationIndex(CameraControl, pigeon_instance@NonNull Long index) { + return pigeon_instance.setExposureCompensationIndex(index); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java new file mode 100644 index 00000000000..c0b50558c3f --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java @@ -0,0 +1,45 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraInfo; +import androidx.camera.core.ExposureState; +import androidx.lifecycle.LiveData; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraInfo}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraInfoProxyApi extends PigeonApiCameraInfo { + CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public long sensorRotationDegrees(CameraInfo pigeon_instance) { + return pigeon_instance.getSensorRotationDegrees(); + } + + @NonNull + @Override + public ExposureState exposureState(CameraInfo pigeon_instance) { + return pigeon_instance.getExposureState(); + } + + @NonNull + @Override + public LiveDataProxyApi.LiveDataWrapper getCameraState(CameraInfo pigeon_instance) { + return new LiveDataProxyApi.LiveDataWrapper(pigeon_instance.getCameraState(), LiveDataSupportedType.CAMERA_STATE); + } + + @NonNull + @Override + public LiveDataProxyApi.LiveDataWrapper getZoomState(CameraInfo pigeon_instance) { + return new LiveDataProxyApi.LiveDataWrapper(pigeon_instance.getZoomState(), LiveDataSupportedType.ZOOM_STATE); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorData.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorData.java deleted file mode 100644 index e7d13fcd985..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorData.java +++ /dev/null @@ -1,25 +0,0 @@ -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; - -public class CameraPermissionsErrorData { - @NonNull - private final String errorCode; - @NonNull - private final String description; - - CameraPermissionsErrorData(@NonNull String errorCode, @NonNull String description) { - this.errorCode = errorCode; - this.description = description; - } - - @NonNull - public String getErrorCode() { - return errorCode; - } - - @NonNull - public String getDescription() { - return description; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorDataProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java similarity index 53% rename from packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorDataProxyApi.java rename to packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java index d73ec1dee4f..8bd40b5d647 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorDataProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java @@ -4,29 +4,31 @@ package io.flutter.plugins.camerax; - +import androidx.camera.core.Camera; +import androidx.camera.core.CameraControl; +import androidx.camera.core.CameraInfo; import androidx.annotation.NonNull; import androidx.annotation.Nullable; /** - * ProxyApi implementation for {@link CameraPermissionsErrorData}. + * ProxyApi implementation for {@link Camera}. * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ -class CameraPermissionsErrorDataProxyApi extends PigeonApiCameraPermissionsErrorData { - CameraPermissionsErrorDataProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { +class CameraProxyApi extends PigeonApiCamera { + CameraProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { super(pigeonRegistrar); } @NonNull @Override - public String errorCode(CameraPermissionsErrorData pigeon_instance) { - return pigeon_instance.getErrorCode(); + public CameraControl cameraControl(Camera pigeon_instance) { + return pigeon_instance.getCameraControl(); } @NonNull @Override - public String description(CameraPermissionsErrorData pigeon_instance) { - return pigeon_instance.getDescription(); + public CameraInfo getCameraInfo(Camera pigeon_instance) { + return pigeon_instance.getCameraInfo(); } -} \ No newline at end of file +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java new file mode 100644 index 00000000000..f5e8c70eac7 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java @@ -0,0 +1,65 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraSelector; +import androidx.camera.core.CameraInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.camera.core.ExperimentalLensFacing; + +import java.util.Collections; +import java.util.List; + +/** + * ProxyApi implementation for {@link CameraSelector}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraSelectorProxyApi extends PigeonApiCameraSelector { + CameraSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @ExperimentalLensFacing + @NonNull + @Override + public CameraSelector pigeon_defaultConstructor(@Nullable LensFacing requireLensFacing) { + final CameraSelector.Builder builder = new CameraSelector.Builder(); + if (requireLensFacing != null) { + switch(requireLensFacing) { + case FRONT: + builder.requireLensFacing(CameraSelector.LENS_FACING_FRONT); + case BACK: + builder.requireLensFacing(CameraSelector.LENS_FACING_BACK); + case EXTERNAL: + builder.requireLensFacing(CameraSelector.LENS_FACING_EXTERNAL); + case UNKNOWN: + builder.requireLensFacing(CameraSelector.LENS_FACING_FRONT); + } + } + return builder.build(); + } + + @NonNull + @Override + public androidx.camera.core.CameraSelector defaultBackCamera() { + return CameraSelector.DEFAULT_BACK_CAMERA; + } + + @NonNull + @Override + public androidx.camera.core.CameraSelector defaultFrontCamera() { + return CameraSelector.DEFAULT_FRONT_CAMERA; + } + + @NonNull + @Override + public List filter(@NonNull CameraSelector pigeon_instance, @NonNull List cameraInfos) { + // List is the same as List. + //noinspection unchecked + return pigeon_instance.filter((List) cameraInfos); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java new file mode 100644 index 00000000000..3f667aece29 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java @@ -0,0 +1,46 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState; +import androidx.camera.core.CameraState.StateError; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraState}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraStateProxyApi extends PigeonApiCameraState { + CameraStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraStateType type(CameraState pigeon_instance) { + switch (pigeon_instance.getType()) { + case PENDING_OPEN: + return CameraStateType.PENDING_OPEN; + case OPENING: + return CameraStateType.OPENING; + case OPEN: + return CameraStateType.OPEN; + case CLOSING: + return CameraStateType.CLOSING; + case CLOSED: + return CameraStateType.CLOSED; + default: + return CameraStateType.UNKNOWN; + } + } + + @Nullable + @Override + public StateError error(CameraState pigeon_instance) { + return pigeon_instance.getError(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java new file mode 100644 index 00000000000..4549831f645 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java @@ -0,0 +1,35 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraState.StateError}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraStateStateErrorProxyApi extends PigeonApiCameraStateStateError { + CameraStateStateErrorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraStateErrorCode code(CameraState.StateError pigeon_instance) { + switch (pigeon_instance.getCode()) { + case CameraState.ERROR_CAMERA_DISABLED: return CameraStateErrorCode.CAMERA_DISABLED; + case CameraState.ERROR_CAMERA_FATAL_ERROR: return CameraStateErrorCode.CAMERA_FATAL_ERROR; + case CameraState.ERROR_CAMERA_IN_USE: return CameraStateErrorCode.CAMERA_IN_USE; + case CameraState.ERROR_DO_NOT_DISTURB_MODE_ENABLED: return CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED; + case CameraState.ERROR_MAX_CAMERAS_IN_USE: return CameraStateErrorCode.MAX_CAMERAS_IN_USE; + case CameraState.ERROR_OTHER_RECOVERABLE_ERROR: return CameraStateErrorCode.OTHER_RECOVERABLE_ERROR; + case CameraState.ERROR_STREAM_CONFIG: return CameraStateErrorCode.STREAM_CONFIG; + default: return io.flutter.plugins.camerax.CameraStateErrorCode.UNKNOWN; + } + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index c1015eeea5c..a7e12ea02e5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -379,12 +379,6 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary */ abstract fun getPigeonApiResolutionInfo(): PigeonApiResolutionInfo - /** - * An implementation of [PigeonApiCameraPermissionsErrorData] used to add a new Dart instance of - * `CameraPermissionsErrorData` to the Dart `InstanceManager`. - */ - abstract fun getPigeonApiCameraPermissionsErrorData(): PigeonApiCameraPermissionsErrorData - /** * An implementation of [PigeonApiCameraIntegerRange] used to add a new Dart instance of * `CameraIntegerRange` to the Dart `InstanceManager`. @@ -800,9 +794,6 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar } else if (value is androidx.camera.core.ResolutionInfo) { registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) { } - } - else if (value is CameraPermissionsErrorData) { - registrar.getPigeonApiCameraPermissionsErrorData().pigeon_newInstance(value) { } } else if (value is android.util.Range<*>) { registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) { } @@ -894,7 +885,7 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar else if (value is androidx.camera.core.CameraState.StateError) { registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) { } } - else if (value is androidx.lifecycle.LiveData<*>) { + else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { registrar.getPigeonApiLiveData().pigeon_newInstance(value) { } } else if (value is androidx.camera.core.ImageProxy) { @@ -1109,7 +1100,11 @@ enum class MeteringMode(val raw: Int) { } } -/** Direction of lens of a camera. */ +/** + * Direction of lens of a camera. + * + * See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). + */ enum class LensFacing(val raw: Int) { /** A camera on the device facing the same direction as the device's screen. */ FRONT(0), @@ -1157,14 +1152,7 @@ enum class CameraXFlashMode(val raw: Int) { * * The flash will always be used when taking a picture. */ - ON(2), - /** - * Screen flash. - * - * Display screen brightness will be used as alternative to flash when taking - * a picture with front camera. - */ - SCREEN(3); + ON(2); companion object { fun ofRaw(raw: Int): CameraXFlashMode? { @@ -1488,7 +1476,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CameraSize}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -1499,7 +1486,7 @@ class CameraSizeProxyApi extends PigeonApiCameraSize { @NonNull @Override - public CameraSize pigeon_defaultConstructor() { + public CameraSize pigeon_defaultConstructor(@NonNull Long width, @NonNull Long height) { return CameraSize(); } @@ -1629,7 +1616,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ResolutionInfo}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -1679,130 +1665,6 @@ public class ResolutionInfoProxyApiTest { assertEquals(value, api.resolution(instance)); } -} -*/ -/** Data class containing information */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraPermissionsErrorData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun errorCode(pigeon_instance: CameraPermissionsErrorData): String - - abstract fun description(pigeon_instance: CameraPermissionsErrorData): String - - @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraPermissionsErrorData and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: CameraPermissionsErrorData, callback: (Result) -> Unit) -{ - if (pigeonRegistrar.ignoreCallsToDart) { - callback( - Result.failure( - CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val errorCodeArg = errorCode(pigeon_instanceArg) - val descriptionArg = description(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, errorCodeArg, descriptionArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraPermissionsErrorData}. - * - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraPermissionsErrorDataProxyApi extends PigeonApiCameraPermissionsErrorData { - CameraPermissionsErrorDataProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public String errorCode(CameraPermissionsErrorData pigeon_instance) { - return pigeon_instance.getErrorCode(); - } - - @NonNull - @Override - public String description(CameraPermissionsErrorData pigeon_instance) { - return pigeon_instance.getDescription(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - - -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraPermissionsErrorDataProxyApiTest { - @Test - public void errorCode() { - final PigeonApiCameraPermissionsErrorData api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsErrorData(); - - final CameraPermissionsErrorData instance = mock(CameraPermissionsErrorData.class); - final String value = "myString"; - when(instance.getErrorCode()).thenReturn(value); - - assertEquals(value, api.errorCode(instance)); - } - - @Test - public void description() { - final PigeonApiCameraPermissionsErrorData api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsErrorData(); - - final CameraPermissionsErrorData instance = mock(CameraPermissionsErrorData.class); - final String value = "myString"; - when(instance.getDescription()).thenReturn(value); - - assertEquals(value, api.description(instance)); - } - } */ /** @@ -1898,7 +1760,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CameraIntegerRange}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -1909,7 +1770,7 @@ class CameraIntegerRangeProxyApi extends PigeonApiCameraIntegerRange { @NonNull @Override - public CameraIntegerRange pigeon_defaultConstructor() { + public CameraIntegerRange pigeon_defaultConstructor(@NonNull Long lower, @NonNull Long upper) { return CameraIntegerRange(); } @@ -2033,7 +1894,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link VideoRecordEvent}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -2128,7 +1988,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link VideoRecordEventStart}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -2223,7 +2082,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link VideoRecordEventFinalize}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -2344,7 +2202,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link MeteringPoint}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -2487,7 +2344,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link Observer}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -2574,10 +2430,10 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo abstract fun exposureState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.camera.core.ExposureState /** A LiveData of the camera's state. */ - abstract fun getCameraState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.lifecycle.LiveData<*> + abstract fun getCameraState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper /** A LiveData of ZoomState. */ - abstract fun getZoomState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.lifecycle.LiveData<*> + abstract fun getZoomState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper companion object { @Suppress("LocalVariableName") @@ -2665,13 +2521,12 @@ package io.flutter.plugins.camerax; import androidx.camera.core.CameraInfo; import androidx.camera.core.ExposureState; -import androidx.lifecycle.LiveData<*>; +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; import androidx.annotation.NonNull; import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CameraInfo}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -2694,13 +2549,13 @@ class CameraInfoProxyApi extends PigeonApiCameraInfo { @NonNull @Override - public androidx.lifecycle.LiveData<*> getCameraState(CameraInfo pigeon_instance) { + public io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper getCameraState(CameraInfo pigeon_instance) { return pigeon_instance.getCameraState(); } @NonNull @Override - public androidx.lifecycle.LiveData<*> getZoomState(CameraInfo pigeon_instance) { + public io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper getZoomState(CameraInfo pigeon_instance) { return pigeon_instance.getZoomState(); } @@ -2716,7 +2571,7 @@ package io.flutter.plugins.camerax import androidx.camera.core.CameraInfo import androidx.camera.core.ExposureState -import androidx.lifecycle.LiveData<*> +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -2756,7 +2611,7 @@ public class CameraInfoProxyApiTest { final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); final CameraInfo instance = mock(CameraInfo.class); - final androidx.lifecycle.LiveData<*> value = mock(LiveData.class); + final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); when(instance.getCameraState()).thenReturn(value); assertEquals(value, api.getCameraState(instance )); @@ -2767,7 +2622,7 @@ public class CameraInfoProxyApiTest { final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); final CameraInfo instance = mock(CameraInfo.class); - final androidx.lifecycle.LiveData<*> value = mock(LiveData.class); + final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); when(instance.getZoomState()).thenReturn(value); assertEquals(value, api.getZoomState(instance )); @@ -2925,7 +2780,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CameraSelector}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -3018,7 +2872,7 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL abstract fun getAvailableCameraInfos(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider): List /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ - abstract fun bindToLifecycle(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelectorIdentifier: androidx.camera.core.CameraSelector, useCases: List): androidx.camera.core.Camera + abstract fun bindToLifecycle(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelector: androidx.camera.core.CameraSelector, useCases: List): androidx.camera.core.Camera /** Returns true if the `UseCase` is bound to a lifecycle. */ abstract fun isBound(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase): Boolean @@ -3077,10 +2931,10 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val cameraSelectorIdentifierArg = args[1] as androidx.camera.core.CameraSelector + val cameraSelectorArg = args[1] as androidx.camera.core.CameraSelector val useCasesArg = args[2] as List val wrapped: List = try { - listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorIdentifierArg, useCasesArg)) + listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3199,7 +3053,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ProcessCameraProvider}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -3222,8 +3075,8 @@ class ProcessCameraProviderProxyApi extends PigeonApiProcessCameraProvider { @NonNull @Override - public androidx.camera.core.Camera bindToLifecycle(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.CameraSelector cameraSelectorIdentifier, @NonNull List useCases) { - return pigeon_instance.bindToLifecycle(cameraSelectorIdentifier, useCases); + public androidx.camera.core.Camera bindToLifecycle(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.CameraSelector cameraSelector, @NonNull List useCases) { + return pigeon_instance.bindToLifecycle(cameraSelector, useCases); } @NonNull @@ -3285,12 +3138,12 @@ public class ProcessCameraProviderProxyApiTest { final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final androidx.camera.core.CameraSelector cameraSelectorIdentifier = mock(CameraSelector.class); + final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); final List useCases = Arrays.asList(mock(UseCase.class)); final androidx.camera.core.Camera value = mock(Camera.class); - when(instance.bindToLifecycle(cameraSelectorIdentifier, useCases)).thenReturn(value); + when(instance.bindToLifecycle(cameraSelector, useCases)).thenReturn(value); - assertEquals(value, api.bindToLifecycle(instance, cameraSelectorIdentifier, useCases)); + assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); } @Test @@ -3382,7 +3235,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link UseCase}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -3505,7 +3357,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link Camera}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -3580,7 +3431,7 @@ public class CameraProxyApiTest { abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(): SystemServicesManager - abstract fun requestCameraPermissions(pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit) + abstract fun requestCameraPermissions(pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit) abstract fun getTempFilePath(pigeon_instance: SystemServicesManager, prefix: String, suffix: String): String @@ -3615,13 +3466,12 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val enableAudioArg = args[1] as Boolean - api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> + api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) } else { - val data = result.getOrNull() - reply.reply(wrapResult(data)) + reply.reply(wrapResult(null)) } } } @@ -3725,7 +3575,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link SystemServicesManager}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -3751,10 +3600,9 @@ class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManager { return SystemServicesManagerImpl(); } - @Nullable @Override - public CameraPermissionsErrorData? requestCameraPermissions(SystemServicesManager, pigeon_instance@NonNull Boolean enableAudio) { - return pigeon_instance.requestCameraPermissions(enableAudio); + public Void requestCameraPermissions(SystemServicesManager, pigeon_instance@NonNull Boolean enableAudio) { + pigeon_instance.requestCameraPermissions(enableAudio); } @NonNull @@ -3805,10 +3653,9 @@ public class SystemServicesManagerProxyApiTest { final SystemServicesManager instance = mock(SystemServicesManager.class); final Boolean enableAudio = true; - final CameraPermissionsErrorData value = mock(CameraPermissionsErrorData.class); - when(instance.requestCameraPermissions(enableAudio)).thenReturn(value); + api.requestCameraPermissions(instance, enableAudio); - assertEquals(value, api.requestCameraPermissions(instance, enableAudio)); + verify(instance).requestCameraPermissions(enableAudio); } @Test @@ -4019,7 +3866,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link DeviceOrientationManager}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -4174,7 +4020,7 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr * 3. Returns the texture id of the `TextureEntry` that provided the * `SurfaceProducer`. */ - abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview): Long + abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager): Long /** * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was @@ -4218,8 +4064,9 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val systemServicesManagerArg = args[1] as SystemServicesManager val wrapped: List = try { - listOf(api.setSurfaceProvider(pigeon_instanceArg)) + listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4342,7 +4189,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link Preview}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -4359,8 +4205,8 @@ class PreviewProxyApi extends PigeonApiPreview { @NonNull @Override - public Long setSurfaceProvider(Preview pigeon_instance) { - return pigeon_instance.setSurfaceProvider(); + public Long setSurfaceProvider(Preview, pigeon_instance@NonNull SystemServicesManager systemServicesManager) { + return pigeon_instance.setSurfaceProvider(systemServicesManager); } @Override @@ -4416,10 +4262,11 @@ public class PreviewProxyApiTest { final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); final Preview instance = mock(Preview.class); + final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); final Long value = 0; - when(instance.setSurfaceProvider()).thenReturn(value); + when(instance.setSurfaceProvider(systemServicesManager)).thenReturn(value); - assertEquals(value, api.setSurfaceProvider(instance )); + assertEquals(value, api.setSurfaceProvider(instance, systemServicesManager)); } @Test @@ -4589,7 +4436,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link VideoCapture}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -4724,7 +4570,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link VideoOutput}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -4913,7 +4758,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link Recorder}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -5101,7 +4945,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link VideoRecordEventListener}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -5254,7 +5097,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link PendingRecording}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -5456,7 +5298,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link Recording}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -5709,7 +5550,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ImageCapture}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -5911,7 +5751,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ResolutionStrategy}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -6053,7 +5892,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ResolutionSelector}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -6239,7 +6077,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link AspectRatioStrategy}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -6361,7 +6198,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CameraState}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -6503,7 +6339,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ExposureState}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -6634,7 +6469,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ZoomState}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -6860,7 +6694,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ImageAnalysis}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -7049,7 +6882,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link Analyzer}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -7178,7 +7010,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CameraStateStateError}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -7242,24 +7073,27 @@ public class CameraStateStateErrorProxyApiTest { * LiveData is a data holder class that can be observed within a given * lifecycle. * + * This is a wrapper around the native class to better support the generic + * type. Java has type erasure; + * * See https://developer.android.com/reference/androidx/lifecycle/LiveData. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The generic type used by this instance. */ - abstract fun type(pigeon_instance: androidx.lifecycle.LiveData<*>): LiveDataSupportedType + abstract fun type(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): LiveDataSupportedType /** * Adds the given observer to the observers list within the lifespan of the * given owner. */ - abstract fun observe(pigeon_instance: androidx.lifecycle.LiveData<*>, observer: androidx.lifecycle.Observer<*>) + abstract fun observe(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, observer: androidx.lifecycle.Observer<*>) /** Removes all observers that are tied to the given `LifecycleOwner`. */ - abstract fun removeObservers(pigeon_instance: androidx.lifecycle.LiveData<*>) + abstract fun removeObservers(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) /** Returns the current value. */ - abstract fun getValue(pigeon_instance: androidx.lifecycle.LiveData<*>): Any? + abstract fun getValue(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): Any? companion object { @Suppress("LocalVariableName") @@ -7270,7 +7104,7 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.lifecycle.LiveData<*> + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val observerArg = args[1] as androidx.lifecycle.Observer<*> val wrapped: List = try { api.observe(pigeon_instanceArg, observerArg) @@ -7289,7 +7123,7 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.lifecycle.LiveData<*> + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val wrapped: List = try { api.removeObservers(pigeon_instanceArg) listOf(null) @@ -7307,7 +7141,7 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.lifecycle.LiveData<*> + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val wrapped: List = try { listOf(api.getValue(pigeon_instanceArg)) } catch (exception: Throwable) { @@ -7324,7 +7158,7 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.lifecycle.LiveData<*>, callback: (Result) -> Unit) + fun pigeon_newInstance(pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, callback: (Result) -> Unit) { if (pigeonRegistrar.ignoreCallsToDart) { callback( @@ -7364,14 +7198,13 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP package io.flutter.plugins.camerax; -import androidx.lifecycle.LiveData<*>; +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; import androidx.lifecycle.Observer<*>; import androidx.annotation.NonNull; import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link LiveData}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -7416,7 +7249,7 @@ class LiveDataProxyApi extends PigeonApiLiveData { package io.flutter.plugins.camerax -import androidx.lifecycle.LiveData<*> +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper import androidx.lifecycle.Observer<*> import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -7590,7 +7423,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ImageProxy}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -7775,7 +7607,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link PlaneProxy}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -7992,7 +7823,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link QualitySelector}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -8224,7 +8054,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link FallbackStrategy}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -8494,7 +8323,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CameraControl}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -8810,7 +8638,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link FocusMeteringActionBuilder}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -9008,7 +8835,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link FocusMeteringAction}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -9169,7 +8995,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link FocusMeteringResult}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -9311,7 +9136,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CaptureRequest}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -9407,7 +9231,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CaptureRequestKey}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -9524,7 +9347,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CaptureRequestOptions}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -9684,7 +9506,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link Camera2CameraControl}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -9833,7 +9654,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ResolutionFilter}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -9936,7 +9756,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CameraCharacteristicsKey}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -10087,7 +9906,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link CameraCharacteristics}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -10260,7 +10078,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link Camera2CameraInfo}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -10451,7 +10268,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link MeteringPointFactory}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -10624,7 +10440,6 @@ import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link DisplayOrientedMeteringPointFactory}. - * * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java new file mode 100644 index 00000000000..55fe15829c7 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequestKey}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestKeyProxyApi extends PigeonApiCaptureRequestKey { + CaptureRequestKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java new file mode 100644 index 00000000000..81e6927ea99 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.CaptureRequestOptions; +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequestOptions}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { + CaptureRequestOptionsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map, Any?> options) { + return CaptureRequestOptions(options); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java new file mode 100644 index 00000000000..8a4b265c263 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CaptureRequest; +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequest}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestProxyApi extends PigeonApiCaptureRequest { + CaptureRequestProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public android.hardware.camera2.CaptureRequest.Key<*> controlAELock() { + return CaptureRequest.getControlAELock(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java index a8ad257a2bc..5706e4fda20 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java @@ -21,33 +21,25 @@ /** * Support class to help to determine the media orientation based on the orientation of the device. */ -public class DeviceOrientationManager { - +public abstract class DeviceOrientationManager { interface DeviceOrientationChangeCallback { - void onChange(DeviceOrientation newOrientation); + void onChange(@NonNull DeviceOrientationManager manager, @NonNull DeviceOrientation newOrientation); } private static final IntentFilter orientationIntentFilter = new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED); - private final Activity activity; - private final boolean isFrontFacing; - private final int sensorOrientation; private final DeviceOrientationChangeCallback deviceOrientationChangeCallback; private PlatformChannel.DeviceOrientation lastOrientation; private BroadcastReceiver broadcastReceiver; - DeviceOrientationManager( - @NonNull Activity activity, - boolean isFrontFacing, - int sensorOrientation, - DeviceOrientationChangeCallback callback) { - this.activity = activity; - this.isFrontFacing = isFrontFacing; - this.sensorOrientation = sensorOrientation; + DeviceOrientationManager(DeviceOrientationChangeCallback callback) { this.deviceOrientationChangeCallback = callback; } + @NonNull + abstract Context getContext(); + /** * Starts listening to the device's sensors or UI for orientation updates. * @@ -70,8 +62,8 @@ public void onReceive(Context context, Intent intent) { handleUIOrientationChange(); } }; - activity.registerReceiver(broadcastReceiver, orientationIntentFilter); - broadcastReceiver.onReceive(activity, null); + getContext().registerReceiver(broadcastReceiver, orientationIntentFilter); + broadcastReceiver.onReceive(getContext(), null); } /** Stops listening for orientation updates. */ @@ -79,7 +71,7 @@ public void stop() { if (broadcastReceiver == null) { return; } - activity.unregisterReceiver(broadcastReceiver); + getContext().unregisterReceiver(broadcastReceiver); broadcastReceiver = null; } @@ -92,7 +84,7 @@ public void stop() { @VisibleForTesting void handleUIOrientationChange() { PlatformChannel.DeviceOrientation orientation = getUIOrientation(); - handleOrientationChange(orientation, lastOrientation, deviceOrientationChangeCallback); + handleOrientationChange(this, orientation, lastOrientation, deviceOrientationChangeCallback); lastOrientation = orientation; } @@ -105,11 +97,12 @@ void handleUIOrientationChange() { */ @VisibleForTesting static void handleOrientationChange( + DeviceOrientationManager manager, DeviceOrientation newOrientation, DeviceOrientation previousOrientation, DeviceOrientationChangeCallback callback) { if (!newOrientation.equals(previousOrientation)) { - callback.onChange(newOrientation); + callback.onChange(manager, newOrientation); } } @@ -126,7 +119,7 @@ static void handleOrientationChange( @NonNull PlatformChannel.DeviceOrientation getUIOrientation() { final int rotation = getDefaultRotation(); - final int orientation = activity.getResources().getConfiguration().orientation; + final int orientation = getContext().getResources().getConfiguration().orientation; switch (orientation) { case Configuration.ORIENTATION_PORTRAIT: @@ -174,6 +167,6 @@ int getDefaultRotation() { @SuppressWarnings("deprecation") @VisibleForTesting Display getDisplay() { - return ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + return ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerHostApiImpl.java index 363bc39b278..6c3efd7fb1d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerHostApiImpl.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerHostApiImpl.java @@ -58,7 +58,7 @@ public void startListeningForDeviceOrientationChange( activity, isFrontFacing, sensorOrientation.intValue(), - (DeviceOrientation newOrientation) -> { + (DeviceOrientationManager manager, DeviceOrientation newOrientation) -> { deviceOrientationManagerFlutterApiImpl.sendDeviceOrientationChangedEvent( serializeDeviceOrientation(newOrientation), reply -> {}); }); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java new file mode 100644 index 00000000000..1c82d16603a --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java @@ -0,0 +1,72 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import io.flutter.embedding.engine.systemchannels.PlatformChannel; + +/** + * ProxyApi implementation for {@link DeviceOrientationManager}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class DeviceOrientationManagerProxyApi extends PigeonApiDeviceOrientationManager { + DeviceOrientationManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + /** Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to Dart. */ + static class DeviceOrientationManagerImpl extends DeviceOrientationManager { + private final DeviceOrientationManagerProxyApi api; + + DeviceOrientationManagerImpl(@NonNull DeviceOrientationManagerProxyApi api) { + super((manager, newOrientation) -> api.getPigeonRegistrar().runOnMainThread(() -> api.onDeviceOrientationChanged(manager, newOrientation.toString(), reply -> null))); + this.api = api; + } + + @NonNull + @Override + Context getContext() { + return api.getPigeonRegistrar().getContext(); + } + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public DeviceOrientationManager pigeon_defaultConstructor() { + return new DeviceOrientationManagerImpl(this); + } + + @Override + public void startListeningForDeviceOrientationChange(DeviceOrientationManager pigeon_instance, boolean isFrontFacing, long sensorOrientation) { + pigeon_instance.start(); + } + + @Override + public void stopListeningForDeviceOrientationChange(DeviceOrientationManager pigeon_instance) { + pigeon_instance.stop(); + } + + @Override + public long getDefaultDisplayRotation(DeviceOrientationManager pigeon_instance) { + return pigeon_instance.getDefaultRotation(); + } + + @NonNull + @Override + public String getUiOrientation(DeviceOrientationManager pigeon_instance) { + return pigeon_instance.getUIOrientation().toString(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java new file mode 100644 index 00000000000..4f4901ddad5 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.DisplayOrientedMeteringPointFactory; +import androidx.camera.core.CameraInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link DisplayOrientedMeteringPointFactory}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class DisplayOrientedMeteringPointFactoryProxyApi extends PigeonApiDisplayOrientedMeteringPointFactory { + DisplayOrientedMeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public DisplayOrientedMeteringPointFactory pigeon_defaultConstructor(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull Double width, @NonNull Double height) { + return DisplayOrientedMeteringPointFactory(cameraInfo, width, height); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java new file mode 100644 index 00000000000..e2c33d794d0 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java @@ -0,0 +1,32 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ExposureState; +import android.util.Range; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ExposureState}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ExposureStateProxyApi extends PigeonApiExposureState { + ExposureStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Range exposureCompensationRange(ExposureState pigeon_instance) { + return pigeon_instance.getExposureCompensationRange(); + } + + @Override + public double exposureCompensationStep(ExposureState pigeon_instance) { + return pigeon_instance.getExposureCompensationStep().doubleValue(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java new file mode 100644 index 00000000000..fb85bb74f5b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java @@ -0,0 +1,45 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.FallbackStrategy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FallbackStrategy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FallbackStrategyProxyApi extends PigeonApiFallbackStrategy { + FallbackStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public FallbackStrategy higherQualityOrLowerThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + + @NonNull + @Override + public FallbackStrategy higherQualityThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + + @NonNull + @Override + public FallbackStrategy lowerQualityOrHigherThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + + @NonNull + @Override + public FallbackStrategy lowerQualityThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java new file mode 100644 index 00000000000..31c637b190d --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java @@ -0,0 +1,56 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringAction.Builder; +import androidx.camera.core.MeteringPoint; +import androidx.camera.core.FocusMeteringAction; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FocusMeteringActionBuilder}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FocusMeteringActionBuilderProxyApi extends PigeonApiFocusMeteringActionBuilder { + FocusMeteringActionBuilderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public FocusMeteringActionBuilder pigeon_defaultConstructor(@NonNull androidx.camera.core.MeteringPoint point) { + return FocusMeteringActionBuilder(point); + } + + @NonNull + @Override + public FocusMeteringActionBuilder withMode(@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { + return FocusMeteringActionBuilder(point, mode); + } + + @Override + public Void addPoint(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point) { + pigeon_instance.addPoint(point); + } + + @Override + public Void addPointWithMode(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point, @NonNull List modes) { + pigeon_instance.addPointWithMode(point, modes); + } + + @Override + public Void disableAutoCancel(FocusMeteringActionBuilder pigeon_instance) { + pigeon_instance.disableAutoCancel(); + } + + @NonNull + @Override + public androidx.camera.core.FocusMeteringAction build(FocusMeteringActionBuilder pigeon_instance) { + return pigeon_instance.build(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java new file mode 100644 index 00000000000..42b4b4ea9ca --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java @@ -0,0 +1,46 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.MeteringPoint; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FocusMeteringAction}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FocusMeteringActionProxyApi extends PigeonApiFocusMeteringAction { + FocusMeteringActionProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public List meteringPointsAe(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getMeteringPointsAe(); + } + + @NonNull + @Override + public List meteringPointsAf(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getMeteringPointsAf(); + } + + @NonNull + @Override + public List meteringPointsAwb(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getMeteringPointsAwb(); + } + + @NonNull + @Override + public Boolean isAutoCancelEnabled(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getIsAutoCancelEnabled(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java new file mode 100644 index 00000000000..c78e85e0b3d --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java @@ -0,0 +1,27 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FocusMeteringResult}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FocusMeteringResultProxyApi extends PigeonApiFocusMeteringResult { + FocusMeteringResultProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Boolean isFocusSuccessful(FocusMeteringResult pigeon_instance) { + return pigeon_instance.getIsFocusSuccessful(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java new file mode 100644 index 00000000000..e02d161870e --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java @@ -0,0 +1,62 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageAnalysis; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.ImageAnalysis.Analyzer; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; + +/** + * ProxyApi implementation for {@link ImageAnalysis}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { + private long clearFinalizedWeakReferencesIntervalDefaultValue; + static final long CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL_FOR_IMAGE_ANALYSIS = 1000; + + ImageAnalysisProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public ImageAnalysis pigeon_defaultConstructor(@Nullable Long targetRotation, @Nullable ResolutionSelector resolutionSelector) { + final ImageAnalysis.Builder builder = new ImageAnalysis.Builder(); + if (targetRotation != null) { + builder.setTargetRotation(targetRotation.intValue()); + } + if (resolutionSelector != null) { + builder.setResolutionSelector(resolutionSelector); + } + return builder.build(); + } + + @Override + public void setAnalyzer(ImageAnalysis pigeon_instance, @NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) { + getPigeonRegistrar().getInstanceManager().setClearFinalizedWeakReferencesInterval(CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL_FOR_IMAGE_ANALYSIS); + pigeon_instance.setAnalyzer(ContextCompat.getMainExecutor(getPigeonRegistrar().getContext()), analyzer); + } + + @Override + public void clearAnalyzer(ImageAnalysis pigeon_instance) { + pigeon_instance.clearAnalyzer(); + getPigeonRegistrar().getInstanceManager().setClearFinalizedWeakReferencesInterval(getPigeonRegistrar().getDefaultClearFinalizedWeakReferencesInterval()); + } + + @Override + public void setTargetRotation(ImageAnalysis pigeon_instance, long rotation) { + pigeon_instance.setTargetRotation((int) rotation); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java new file mode 100644 index 00000000000..60672b31971 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java @@ -0,0 +1,123 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageCapture; +import androidx.camera.core.ImageCaptureException; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.io.File; +import java.io.IOException; +import java.util.concurrent.Executors; + +import kotlin.Result; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; + +/** + * ProxyApi implementation for {@link ImageCapture}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ImageCaptureProxyApi extends PigeonApiImageCapture { + static final String TEMPORARY_FILE_NAME = "CAP"; + static final String JPG_FILE_TYPE = ".jpg"; + + ImageCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public ImageCapture pigeon_defaultConstructor(@Nullable Long targetRotation, @Nullable CameraXFlashMode flashMode, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector resolutionSelector) { + final ImageCapture.Builder builder = new ImageCapture.Builder(); + if (targetRotation != null) { + builder.setTargetRotation(targetRotation.intValue()); + } + if (flashMode != null) { + // This sets the requested flash mode, but may fail silently. + switch(flashMode) { + case AUTO: + builder.setFlashMode(ImageCapture.FLASH_MODE_AUTO); + case OFF: + builder.setFlashMode(ImageCapture.FLASH_MODE_OFF); + case ON: + builder.setFlashMode(ImageCapture.FLASH_MODE_ON); + } + } + if (resolutionSelector != null) { + builder.setResolutionSelector(resolutionSelector); + } + return builder.build(); + } + + @Override + public void setFlashMode(@NonNull ImageCapture pigeon_instance, @NonNull CameraXFlashMode flashMode) { + int nativeFlashMode = -1; + switch(flashMode) { + case AUTO: + nativeFlashMode = ImageCapture.FLASH_MODE_AUTO; + break; + case OFF: + nativeFlashMode = ImageCapture.FLASH_MODE_OFF; + break; + case ON: + nativeFlashMode = ImageCapture.FLASH_MODE_ON; + } + pigeon_instance.setFlashMode(nativeFlashMode); + } + + + @Override + public void takePicture(@NonNull ImageCapture pigeon_instance, @NonNull Function1, Unit> callback) { + final File outputDir = getPigeonRegistrar().getContext().getCacheDir(); + File temporaryCaptureFile; + try { + temporaryCaptureFile = File.createTempFile(TEMPORARY_FILE_NAME, JPG_FILE_TYPE, outputDir); + } catch (IOException | SecurityException e) { + ResultCompat.failure(e, callback); + return; + } + + final ImageCapture.OutputFileOptions outputFileOptions = + createImageCaptureOutputFileOptions(temporaryCaptureFile); + final ImageCapture.OnImageSavedCallback onImageSavedCallback = + createOnImageSavedCallback(temporaryCaptureFile, callback); + + pigeon_instance.takePicture(outputFileOptions, Executors.newSingleThreadExecutor(), onImageSavedCallback); + } + + @Override + public void setTargetRotation(ImageCapture pigeon_instance, long rotation) { + pigeon_instance.setTargetRotation((int) rotation); + } + + ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { + return new ImageCapture.OutputFileOptions.Builder(file).build(); + } + + @NonNull ImageCapture.OnImageSavedCallback createOnImageSavedCallback( + @NonNull File file, @NonNull Function1, Unit> callback) { + return new ImageCapture.OnImageSavedCallback() { + @Override + public void onImageSaved(@NonNull ImageCapture.OutputFileResults outputFileResults) { + ResultCompat.success(file.getAbsolutePath(), callback); + } + + @Override + public void onError(@NonNull ImageCaptureException exception) { + ResultCompat.failure(exception, callback); + } + }; + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java new file mode 100644 index 00000000000..e407247b266 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java @@ -0,0 +1,50 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageProxy; +import androidx.camera.core.ImageProxy.PlaneProxy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.util.Arrays; +import java.util.List; + +/** + * ProxyApi implementation for {@link ImageProxy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ImageProxyProxyApi extends PigeonApiImageProxy { + ImageProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public long format(ImageProxy pigeon_instance) { + return pigeon_instance.getFormat(); + } + + @Override + public long width(ImageProxy pigeon_instance) { + return pigeon_instance.getWidth(); + } + + @Override + public long height(ImageProxy pigeon_instance) { + return pigeon_instance.getHeight(); + } + + @NonNull + @Override + public List getPlanes(ImageProxy pigeon_instance) { + return Arrays.asList(pigeon_instance.getPlanes()); + } + + @Override + public void close(ImageProxy pigeon_instance) { + pigeon_instance.close(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java new file mode 100644 index 00000000000..0100a5b5ed8 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java @@ -0,0 +1,83 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState; +import androidx.camera.core.ZoomState; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.Observer; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link LiveData}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +public class LiveDataProxyApi extends PigeonApiLiveData { + public static class LiveDataWrapper { + private final LiveData liveData; + private final LiveDataSupportedType genericType; + + LiveDataWrapper(LiveData liveData, LiveDataSupportedType genericType) { + this.liveData = liveData; + this.genericType = genericType; + } + + public LiveData getLiveData() { + return liveData; + } + + public LiveDataSupportedType getGenericType() { + return genericType; + } + } + + LiveDataProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public LiveDataSupportedType type(@NonNull LiveDataWrapper pigeon_instance) { + return pigeon_instance.getGenericType(); + } + + @Override + public void observe(@NonNull LiveDataWrapper pigeon_instance, @NonNull Observer observer) { + final LifecycleOwner lifecycleOwner = getPigeonRegistrar().getLifecycleOwner(); + if (lifecycleOwner == null) { + throw new IllegalStateException("LifecycleOwner must be set to observe a LiveData instance."); + } + + //noinspection unchecked + final LiveData castedLiveData = (LiveData) pigeon_instance.getLiveData(); + //noinspection unchecked + castedLiveData.observe(lifecycleOwner, (Observer) observer); + } + + @Override + public void removeObservers(@NonNull LiveDataWrapper pigeon_instance) { + if (getPigeonRegistrar().getLifecycleOwner() == null) { + throw new IllegalStateException("LifecycleOwner must be set to remove LiveData observers."); + } + + pigeon_instance.getLiveData().removeObservers(getPigeonRegistrar().getLifecycleOwner()); + } + + @Nullable + @Override + public Object getValue(@NonNull LiveDataWrapper pigeon_instance) { + return pigeon_instance.getLiveData().getValue(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java new file mode 100644 index 00000000000..a3a6d616c69 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java @@ -0,0 +1,34 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.MeteringPointFactory; +import androidx.camera.core.MeteringPoint; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link MeteringPointFactory}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class MeteringPointFactoryProxyApi extends PigeonApiMeteringPointFactory { + MeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public androidx.camera.core.MeteringPoint createPoint(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y) { + return pigeon_instance.createPoint(x, y); + } + + @NonNull + @Override + public androidx.camera.core.MeteringPoint createPointWithSize(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y, @NonNull Double size) { + return pigeon_instance.createPointWithSize(x, y, size); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java new file mode 100644 index 00000000000..1f13d194873 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java @@ -0,0 +1,36 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.PendingRecording; +import androidx.camera.video.Recording; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.camera.video.VideoRecordEvent; +import androidx.core.content.ContextCompat; +import androidx.core.util.Consumer; + +/** + * ProxyApi implementation for {@link PendingRecording}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class PendingRecordingProxyApi extends PigeonApiPendingRecording { + PendingRecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public Recording start(PendingRecording pigeon_instance, @NonNull VideoRecordEventListener listener) { + return pigeon_instance.start(ContextCompat.getMainExecutor(getPigeonRegistrar().getContext()), listener::onEvent); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java new file mode 100644 index 00000000000..2a38965c4ba --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java @@ -0,0 +1,44 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageProxy.PlaneProxy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.nio.ByteBuffer; + +/** + * ProxyApi implementation for {@link PlaneProxy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class PlaneProxyProxyApi extends PigeonApiPlaneProxy { + PlaneProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public byte[] buffer(PlaneProxy pigeon_instance) { + final ByteBuffer buffer = pigeon_instance.getBuffer(); + + byte[] bytes = new byte[buffer.remaining()]; + buffer.get(bytes, 0, bytes.length); + + return bytes; + } + + @Override + public long pixelStride(PlaneProxy pigeon_instance) { + return pigeon_instance.getPixelStride(); + } + + @Override + public long rowStride(PlaneProxy pigeon_instance) { + return pigeon_instance.getRowStride(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java new file mode 100644 index 00000000000..878c683c03e --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -0,0 +1,147 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.view.Surface; + +import androidx.camera.core.Preview; +import androidx.camera.core.SurfaceRequest; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.ResolutionInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.Executors; + +import io.flutter.view.TextureRegistry; + +/** + * ProxyApi implementation for {@link Preview}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class PreviewProxyApi extends PigeonApiPreview { + // Stores the SurfaceProducer when it is used as a SurfaceProvider for a Preview. + private final Map surfaceProducers = new HashMap<>(); + + PreviewProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public Preview pigeon_defaultConstructor(@Nullable Long targetRotation, @Nullable ResolutionSelector resolutionSelector) { + final Preview.Builder builder = new Preview.Builder(); + if (targetRotation != null) { + builder.setTargetRotation(targetRotation.intValue()); + } + if (resolutionSelector != null) { + builder.setResolutionSelector(resolutionSelector); + } + return builder.build(); + } + + @Override + public long setSurfaceProvider(@NonNull Preview pigeon_instance, @NonNull SystemServicesManager systemServicesManager) { + final TextureRegistry.SurfaceProducer surfaceProducer = getPigeonRegistrar().getTextureRegistry().createSurfaceProducer(); + final Preview.SurfaceProvider surfaceProvider = createSurfaceProvider(surfaceProducer, systemServicesManager); + + pigeon_instance.setSurfaceProvider(surfaceProvider); + surfaceProducers.put(pigeon_instance, surfaceProducer); + + return surfaceProducer.id(); + } + + @Override + public void releaseSurfaceProvider(@NonNull Preview pigeon_instance) { + final TextureRegistry.SurfaceProducer surfaceProducer = surfaceProducers.remove(pigeon_instance); + if (surfaceProducer != null) { + surfaceProducer.release(); + } + } + + @Nullable + @Override + public androidx.camera.core.ResolutionInfo getResolutionInfo(Preview pigeon_instance) { + return pigeon_instance.getResolutionInfo(); + } + + @Override + public void setTargetRotation(Preview pigeon_instance, long rotation) { + pigeon_instance.setTargetRotation((int) rotation); + } + + @NonNull Preview.SurfaceProvider createSurfaceProvider( + @NonNull TextureRegistry.SurfaceProducer surfaceProducer, @NonNull SystemServicesManager systemServicesManager) { + return request -> { + // Set callback for surfaceProducer to invalidate Surfaces that it produces when they + // get destroyed. + surfaceProducer.setCallback( + new TextureRegistry.SurfaceProducer.Callback() { + @Override + // TODO(matanlurey): Replace with onSurfaceAvailable once available on stable; + // https://github.com/flutter/flutter/issues/155131. + @SuppressWarnings({"deprecation", "removal"}) + public void onSurfaceCreated() { + // Do nothing. The Preview.SurfaceProvider will handle this whenever a new + // Surface is needed. + } + + @Override + public void onSurfaceDestroyed() { + // Invalidate the SurfaceRequest so that CameraX knows to to make a new request + // for a surface. + request.invalidate(); + } + }); + + // Provide surface. + surfaceProducer.setSize( + request.getResolution().getWidth(), request.getResolution().getHeight()); + Surface flutterSurface = surfaceProducer.getSurface(); + request.provideSurface( + flutterSurface, + Executors.newSingleThreadExecutor(), + (result) -> { + // See + // https://developer.android.com/reference/androidx/camera/core/SurfaceRequest.Result + // for documentation. + // Always attempt a release. + flutterSurface.release(); + int resultCode = result.getResultCode(); + switch (resultCode) { + case SurfaceRequest.Result.RESULT_REQUEST_CANCELLED: + case SurfaceRequest.Result.RESULT_WILL_NOT_PROVIDE_SURFACE: + case SurfaceRequest.Result.RESULT_SURFACE_ALREADY_PROVIDED: + case SurfaceRequest.Result.RESULT_SURFACE_USED_SUCCESSFULLY: + // Only need to release, do nothing. + break; + case SurfaceRequest.Result.RESULT_INVALID_SURFACE: // Intentional fall through. + default: + systemServicesManager.onCameraError(getProvideSurfaceErrorDescription(resultCode)); + } + }); + }; + } + + /** + * Returns an error description for each {@link SurfaceRequest.Result} that represents an error + * with providing a surface. + */ + String getProvideSurfaceErrorDescription(int resultCode) { + if (resultCode == SurfaceRequest.Result.RESULT_INVALID_SURFACE) { + return resultCode + ": Provided surface could not be used by the camera."; + } + return resultCode + ": Attempt to provide a surface resulted with unrecognizable code."; + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java new file mode 100644 index 00000000000..fe24a7d3ec6 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java @@ -0,0 +1,89 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.lifecycle.ProcessCameraProvider; +import androidx.camera.core.UseCase; +import androidx.camera.core.CameraSelector; +import androidx.camera.core.CameraInfo; +import androidx.camera.core.Camera; +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; +import androidx.lifecycle.LifecycleOwner; + +import com.google.common.util.concurrent.ListenableFuture; + +import java.util.List; + +import kotlin.Result; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; + +/** + * ProxyApi implementation for {@link ProcessCameraProvider}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ProcessCameraProviderProxyApi extends PigeonApiProcessCameraProvider { + ProcessCameraProviderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @Override + public void getInstance(@NonNull Function1, Unit> callback) { + final ListenableFuture processCameraProviderFuture = + ProcessCameraProvider.getInstance(getPigeonRegistrar().getContext()); + + processCameraProviderFuture.addListener( + () -> { + try { + // Camera provider is now guaranteed to be available. + ResultCompat.success(processCameraProviderFuture.get(), callback); + } catch (Exception e) { + ResultCompat.failure(e, callback); + } + }, + ContextCompat.getMainExecutor(getPigeonRegistrar().getContext())); + } + + @NonNull + @Override + public List getAvailableCameraInfos(ProcessCameraProvider pigeon_instance) { + return pigeon_instance.getAvailableCameraInfos(); + } + + @NonNull + @Override + public Camera bindToLifecycle(@NonNull ProcessCameraProvider pigeon_instance, @NonNull CameraSelector cameraSelector, @NonNull List useCases) { + final LifecycleOwner lifecycleOwner = getPigeonRegistrar().getLifecycleOwner(); + if (lifecycleOwner != null) { + return pigeon_instance.bindToLifecycle(lifecycleOwner, cameraSelector, useCases.toArray(new UseCase[0])); + } + + throw new IllegalStateException( + "LifecycleOwner must be set to get ProcessCameraProvider instance."); + } + + @Override + public boolean isBound(ProcessCameraProvider pigeon_instance, @NonNull UseCase useCase) { + return pigeon_instance.isBound(useCase); + } + + @Override + public void unbind(ProcessCameraProvider pigeon_instance, @NonNull List useCases) { + pigeon_instance.unbind(useCases.toArray(new UseCase[0])); + } + + @Override + public void unbindAll(ProcessCameraProvider pigeon_instance) { + pigeon_instance.unbindAll(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index d43b4cf0665..2394a4aac07 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -10,16 +10,31 @@ import androidx.annotation.ChecksSdkIntAtLeast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.lifecycle.LifecycleOwner; import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.view.TextureRegistry; public class ProxyApiRegistrar extends CameraXLibraryPigeonProxyApiRegistrar { + @NonNull + private final CameraPermissionsManager cameraPermissionsManager = new CameraPermissionsManager(); + + @NonNull + private final TextureRegistry textureRegistry; + + private final long defaultClearFinalizedWeakReferencesInterval; + @NonNull private Context context; - public ProxyApiRegistrar(@NonNull BinaryMessenger binaryMessenger, @NonNull Context context) { + @Nullable + private CameraPermissionsManager.PermissionsRegistry permissionsRegistry; + + public ProxyApiRegistrar(@NonNull BinaryMessenger binaryMessenger, @NonNull Context context, @NonNull TextureRegistry textureRegistry) { super(binaryMessenger); this.context = context; + this.textureRegistry = textureRegistry; + defaultClearFinalizedWeakReferencesInterval = getInstanceManager().getClearFinalizedWeakReferencesInterval(); } // Interface for an injectable SDK version checker. @@ -30,7 +45,7 @@ boolean sdkIsAtLeast(int version) { // Added to be overridden for tests. The test implementation calls `callback` immediately, instead // of waiting for the main thread to run it. - void runOnMainThread(Runnable runnable) { + void runOnMainThread(@NonNull Runnable runnable) { if (context instanceof Activity) { ((Activity) context).runOnUiThread(runnable); } else { @@ -39,7 +54,7 @@ void runOnMainThread(Runnable runnable) { } // For logging exceptions received from Host -> Dart message calls. - void logError(String tag, Throwable exception) { + void logError(@NonNull String tag, @NonNull Throwable exception) { Log.e( tag, exception.getClass().getSimpleName() @@ -58,6 +73,40 @@ public void setContext(@NonNull Context context) { this.context = context; } + @Nullable + public LifecycleOwner getLifecycleOwner() { + if (context instanceof LifecycleOwner) { + return (LifecycleOwner) context; + } else if (context instanceof Activity) { + return new ProxyLifecycleProvider((Activity) context); + } + + return null; + } + + @NonNull + public CameraPermissionsManager getCameraPermissionsManager() { + return cameraPermissionsManager; + } + + void setPermissionsRegistry(@Nullable CameraPermissionsManager.PermissionsRegistry permissionsRegistry) { + this.permissionsRegistry = permissionsRegistry; + } + + @Nullable + CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry() { + return permissionsRegistry; + } + + @NonNull + TextureRegistry getTextureRegistry() { + return textureRegistry; + } + + long getDefaultClearFinalizedWeakReferencesInterval() { + return defaultClearFinalizedWeakReferencesInterval; + } + @NonNull @Override public PigeonApiCameraSize getPigeonApiCameraSize() { @@ -70,12 +119,6 @@ public PigeonApiResolutionInfo getPigeonApiResolutionInfo() { return new ResolutionInfoProxyApi(this); } - @NonNull - @Override - public PigeonApiCameraPermissionsErrorData getPigeonApiCameraPermissionsErrorData() { - return new CameraPermissionsErrorDataProxyApi(this); - } - @NonNull @Override public PigeonApiCameraIntegerRange getPigeonApiCameraIntegerRange() { @@ -97,151 +140,151 @@ public PigeonApiObserver getPigeonApiObserver() { @NonNull @Override public PigeonApiCameraInfo getPigeonApiCameraInfo() { - return null; + return new CameraInfoProxyApi(this); } @NonNull @Override public PigeonApiCameraSelector getPigeonApiCameraSelector() { - return null; + return new CameraSelectorProxyApi(this); } @NonNull @Override public PigeonApiProcessCameraProvider getPigeonApiProcessCameraProvider() { - return null; + return new ProcessCameraProviderProxyApi(this); } @NonNull @Override public PigeonApiCamera getPigeonApiCamera() { - return null; + return new CameraProxyApi(this); } @NonNull @Override public PigeonApiSystemServicesManager getPigeonApiSystemServicesManager() { - return null; + return new SystemServicesManagerProxyApi(this); } @NonNull @Override public PigeonApiDeviceOrientationManager getPigeonApiDeviceOrientationManager() { - return null; + return new DeviceOrientationManagerProxyApi(this); } @NonNull @Override public PigeonApiPreview getPigeonApiPreview() { - return null; + return new PreviewProxyApi(this); } @NonNull @Override public PigeonApiVideoCapture getPigeonApiVideoCapture() { - return null; + return new VideoCaptureProxyApi(this); } @NonNull @Override public PigeonApiRecorder getPigeonApiRecorder() { - return null; + return new RecorderProxyApi(this); } @NonNull @Override public PigeonApiVideoRecordEventListener getPigeonApiVideoRecordEventListener() { - return null; + return new VideoRecordEventListenerProxyApi(this); } @NonNull @Override public PigeonApiPendingRecording getPigeonApiPendingRecording() { - return null; + return new PendingRecordingProxyApi(this); } @NonNull @Override public PigeonApiRecording getPigeonApiRecording() { - return null; + return new RecordingProxyApi(this); } @NonNull @Override public PigeonApiImageCapture getPigeonApiImageCapture() { - return null; + return new ImageCaptureProxyApi(this); } @NonNull @Override public PigeonApiResolutionStrategy getPigeonApiResolutionStrategy() { - return null; + return new ResolutionStrategyProxyApi(this); } @NonNull @Override public PigeonApiResolutionSelector getPigeonApiResolutionSelector() { - return null; + return new ResolutionSelectorProxyApi(this); } @NonNull @Override public PigeonApiAspectRatioStrategy getPigeonApiAspectRatioStrategy() { - return null; + return new AspectRatioStrategyProxyApi(this); } @NonNull @Override public PigeonApiCameraState getPigeonApiCameraState() { - return null; + return new CameraStateProxyApi(this); } @NonNull @Override public PigeonApiExposureState getPigeonApiExposureState() { - return null; + return new ExposureStateProxyApi(this); } @NonNull @Override public PigeonApiZoomState getPigeonApiZoomState() { - return null; + return new ZoomStateProxyApi(this); } @NonNull @Override public PigeonApiImageAnalysis getPigeonApiImageAnalysis() { - return null; + return new ImageAnalysisProxyApi(this); } @NonNull @Override public PigeonApiAnalyzer getPigeonApiAnalyzer() { - return null; + return new AnalyzerProxyApi(this); } @NonNull @Override public PigeonApiCameraStateStateError getPigeonApiCameraStateStateError() { - return null; + return new CameraStateStateErrorProxyApi(this); } @NonNull @Override public PigeonApiLiveData getPigeonApiLiveData() { - return null; + return new LiveDataProxyApi(this); } @NonNull @Override public PigeonApiImageProxy getPigeonApiImageProxy() { - return null; + return new ImageProxyProxyApi(this); } @NonNull @Override public PigeonApiPlaneProxy getPigeonApiPlaneProxy() { - return null; + return new PlaneProxyProxyApi(this); } @NonNull diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyLifecycleProvider.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyLifecycleProvider.java index d80d7b32357..87d26cf7565 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyLifecycleProvider.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyLifecycleProvider.java @@ -8,6 +8,7 @@ import android.app.Application.ActivityLifecycleCallbacks; import android.os.Bundle; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.Lifecycle; import androidx.lifecycle.Lifecycle.Event; @@ -31,7 +32,7 @@ public class ProxyLifecycleProvider implements ActivityLifecycleCallbacks, Lifec } @Override - public void onActivityCreated(@NonNull Activity activity, @NonNull Bundle savedInstanceState) { + public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) { if (activity.hashCode() != registrarActivityHashCode) { return; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java new file mode 100644 index 00000000000..7c28840d057 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java @@ -0,0 +1,42 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.QualitySelector; +import androidx.camera.video.FallbackStrategy; +import androidx.camera.core.CameraInfo; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link QualitySelector}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class QualitySelectorProxyApi extends PigeonApiQualitySelector { + QualitySelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public QualitySelector from(@NonNull VideoQuality quality, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { + return QualitySelector(quality, fallbackStrategy); + } + + @NonNull + @Override + public QualitySelector fromOrderedList(@NonNull List qualities, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { + return QualitySelector(qualities, fallbackStrategy); + } + + @Nullable + @Override + public android.util.Size? getResolution(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull VideoQuality quality) { + return QualitySelector.getResolution(cameraInfo, quality); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java new file mode 100644 index 00000000000..822bb9c0f96 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java @@ -0,0 +1,88 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.Manifest; +import android.content.pm.PackageManager; + +import androidx.annotation.VisibleForTesting; +import androidx.camera.video.FileOutputOptions; +import androidx.camera.video.Recorder; +import androidx.camera.video.QualitySelector; +import androidx.camera.video.PendingRecording; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; + +import java.io.File; +import java.util.Objects; + +/** + * ProxyApi implementation for {@link Recorder}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class RecorderProxyApi extends PigeonApiRecorder { + RecorderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public Recorder pigeon_defaultConstructor(@Nullable Long aspectRatio, @Nullable Long targetVideoEncodingBitRate, @Nullable androidx.camera.video.QualitySelector qualitySelector) { + final Recorder.Builder builder = new Recorder.Builder(); + if (aspectRatio != null) { + builder.setAspectRatio(aspectRatio.intValue()); + } + if (targetVideoEncodingBitRate != null) { + builder.setTargetVideoEncodingBitRate(targetVideoEncodingBitRate.intValue()); + } + if (qualitySelector != null) { + builder.setQualitySelector(qualitySelector); + } + return builder.build(); + } + + @Override + public long getAspectRatio(Recorder pigeon_instance) { + return pigeon_instance.getAspectRatio(); + } + + @Override + public long getTargetVideoEncodingBitRate(Recorder pigeon_instance) { + return pigeon_instance.getTargetVideoEncodingBitRate(); + } + + @NonNull + @Override + public PendingRecording prepareRecording(Recorder pigeon_instance, @NonNull String path) { + final File temporaryCaptureFile = openTempFile(path); + final FileOutputOptions fileOutputOptions = + new FileOutputOptions.Builder(temporaryCaptureFile).build(); + + final PendingRecording pendingRecording = pigeon_instance.prepareRecording(getPigeonRegistrar().getContext(), fileOutputOptions); + if (ContextCompat.checkSelfPermission(getPigeonRegistrar().getContext(), Manifest.permission.RECORD_AUDIO) + == PackageManager.PERMISSION_GRANTED) { + pendingRecording.withAudioEnabled(); + } + + return pendingRecording; + } + + @NonNull + File openTempFile(@NonNull String path) throws RuntimeException { + try { + return new File(path); + } catch (NullPointerException | SecurityException e) { + throw new RuntimeException(e); + } + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java new file mode 100644 index 00000000000..eaca690e852 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java @@ -0,0 +1,40 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.Recording; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Recording}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class RecordingProxyApi extends PigeonApiRecording { + RecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public void close(Recording pigeon_instance) { + pigeon_instance.close(); + } + + @Override + public void pause(Recording pigeon_instance) { + pigeon_instance.pause(); + } + + @Override + public void resume(Recording pigeon_instance) { + pigeon_instance.resume(); + } + + @Override + public void stop(Recording pigeon_instance) { + pigeon_instance.stop(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java new file mode 100644 index 00000000000..1a01d7270ff --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionFilter; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionFilter}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionFilterProxyApi extends PigeonApiResolutionFilter { + ResolutionFilterProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionFilter createWithOnePreferredSize(@NonNull android.util.Size preferredSize) { + return ResolutionFilter(preferredSize); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java new file mode 100644 index 00000000000..415ad173d7e --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java @@ -0,0 +1,39 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.resolutionselector.AspectRatioStrategy; +import androidx.camera.core.resolutionselector.ResolutionStrategy; +import androidx.camera.core.resolutionselector.ResolutionFilter; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionSelector}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { + ResolutionSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionSelector pigeon_defaultConstructor(@Nullable AspectRatioStrategy aspectRatioStrategy, @Nullable ResolutionStrategy resolutionStrategy, @Nullable ResolutionFilter resolutionFilter) { + final ResolutionSelector.Builder builder = new ResolutionSelector.Builder(); + if (aspectRatioStrategy != null) { + builder.setAspectRatioStrategy(aspectRatioStrategy); + } + if (resolutionStrategy != null) { + builder.setResolutionStrategy(resolutionStrategy); + } + if (resolutionFilter != null) { + builder.setResolutionFilter(resolutionFilter); + } + return builder.build(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java new file mode 100644 index 00000000000..c19e909ab17 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java @@ -0,0 +1,51 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionStrategy; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionStrategy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionStrategyProxyApi extends PigeonApiResolutionStrategy { + ResolutionStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionStrategy pigeon_defaultConstructor(@NonNull android.util.Size boundSize, @NonNull ResolutionStrategyFallbackRule fallbackRule) { + int nativeFallbackRule = -1; + switch (fallbackRule) { + case CLOSEST_HIGHER: + nativeFallbackRule = ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER; + break; + case CLOSEST_HIGHER_THEN_LOWER: + nativeFallbackRule = ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER; + break; + case CLOSEST_LOWER: + nativeFallbackRule = ResolutionStrategy.FALLBACK_RULE_CLOSEST_LOWER; + break; + case CLOSEST_LOWER_THEN_HIGHER: + nativeFallbackRule = ResolutionStrategy.FALLBACK_RULE_CLOSEST_LOWER_THEN_HIGHER; + break; + case NONE: + nativeFallbackRule = ResolutionStrategy.FALLBACK_RULE_NONE; + break; + } + return new ResolutionStrategy(boundSize, nativeFallbackRule); + } + + @NonNull + @Override + public ResolutionStrategy highestAvailableStrategy() { + return ResolutionStrategy.HIGHEST_AVAILABLE_STRATEGY; + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt new file mode 100644 index 00000000000..a4274fe8407 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt @@ -0,0 +1,47 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +/** + * ResultCompat. + * + * It is intended to solve the problem of being unable to obtain [kotlin.Result] in Java. + * + * [kotlin.Result] has a weird quirk when it is passed to Java where it seems to wrap itself. + */ +@Suppress("UNCHECKED_CAST") +class ResultCompat(val result: Result) { + private val value: T? = result.getOrNull() + private val exception = result.exceptionOrNull() + val isSuccess = result.isSuccess + val isFailure = result.isFailure + + companion object { + @JvmStatic + fun success(value: T, callback: Any) { + val castedCallback: (Result) -> Unit = callback as (Result) -> Unit + castedCallback(Result.success(value)) + } + + @JvmStatic + fun failure(exception: Throwable, callback: Any) { + val castedCallback: (Result) -> Unit = callback as (Result) -> Unit + castedCallback(Result.failure(exception)) + } + + @JvmStatic + fun asCompatCallback(result: (ResultCompat) -> Unit): (Result) -> Unit { + return { result(ResultCompat(it)) } + } + } + + fun getOrNull(): T? { + return value + } + + fun exceptionOrNull(): Throwable? { + return exception + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java index fe123d2a039..1ec26e0121d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java @@ -14,8 +14,8 @@ public abstract class SystemServicesManager { @NonNull private final CameraPermissionsManager cameraPermissionsManager; - interface PermissionsResultListener { - void onResult(@Nullable CameraPermissionsErrorData data); + public interface PermissionsResultListener { + void onResult(boolean isSuccessful); } protected SystemServicesManager(@NonNull CameraPermissionsManager cameraPermissionsManager) { @@ -24,44 +24,28 @@ protected SystemServicesManager(@NonNull CameraPermissionsManager cameraPermissi abstract void onCameraError(@NonNull String description); - @Nullable + @NonNull abstract Context getContext(); @Nullable abstract CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry(); public void requestCameraPermissions(@NonNull Boolean enableAudio, @NonNull PermissionsResultListener listener) { - if (getContext() == null || !(getContext() instanceof Activity)) { - throw new IllegalStateException("Activity must be set to request camera permissions."); + if (getContext() instanceof Activity) { + cameraPermissionsManager.requestPermissions( + (Activity) getContext(), + getPermissionsRegistry(), + enableAudio, + (String errorCode, String description) -> listener.onResult(errorCode == null)); } - cameraPermissionsManager.requestPermissions( - (Activity) getContext(), - getPermissionsRegistry(), - enableAudio, - (String errorCode, String description) -> { - if (errorCode == null) { - listener.onResult(null); - } else { - // If permissions are ongoing or denied, error data will be sent to be handled. - listener.onResult(new CameraPermissionsErrorData(errorCode, description)); - } - }); + throw new IllegalStateException("Activity must be set to request camera permissions."); } - // TODO: throwing of cameraxerror should be handled by proxyapi impl @NonNull - public String getTempFilePath(@NonNull String prefix, @NonNull String suffix) throws CameraXError { - if (getContext() == null) { - throw new IllegalStateException("Context must be set to create a temporary file."); - } - - try { + public String getTempFilePath(@NonNull String prefix, @NonNull String suffix) throws IOException { final File path = File.createTempFile(prefix, suffix, getContext().getCacheDir()); return path.toString(); - } catch (IOException | SecurityException e) { - throw new CameraXError("getTempFilePath_failure", "SystemServicesHostApiImpl.getTempFilePath encountered an exception: " + e, null); - } } @NonNull diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java new file mode 100644 index 00000000000..166002be941 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java @@ -0,0 +1,87 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.io.IOException; + +import kotlin.Result; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; + +/** + * ProxyApi implementation for {@link SystemServicesManager}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManager { + /** Implementation of {@link SystemServicesManager} that passes arguments of callback methods to Dart. */ + static class SystemServicesManagerImpl extends SystemServicesManager { + private final SystemServicesManagerProxyApi api; + + SystemServicesManagerImpl(@NonNull SystemServicesManagerProxyApi api) { + super(api.getPigeonRegistrar().getCameraPermissionsManager()); + this.api = api; + } + @Override + public void onCameraError(@NonNull String errorDescription) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onCameraError(this, errorDescription, reply -> null)); + } + + @NonNull + @Override + Context getContext() { + return api.getPigeonRegistrar().getContext(); + } + + @Nullable + @Override + CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry() { + return api.getPigeonRegistrar().getPermissionsRegistry(); + } + } + + SystemServicesManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public SystemServicesManager pigeon_defaultConstructor() { + return new SystemServicesManagerImpl(this); + } + + @Override + public void requestCameraPermissions(@NonNull SystemServicesManager pigeon_instance, boolean enableAudio, @NonNull Function1, Unit> callback) { + pigeon_instance.requestCameraPermissions(enableAudio, isSuccessful -> ResultCompat.success(null, callback)); + } + + @NonNull + @Override + public String getTempFilePath(@NonNull SystemServicesManager pigeon_instance, @NonNull String prefix, @NonNull String suffix) { + try { + return pigeon_instance.getTempFilePath(prefix, suffix); + } catch (IOException e) { + throw new CameraXError("getTempFilePath_failure", "SystemServicesHostApiImpl.getTempFilePath encountered an exception: " + e, null); + } + } + + @Override + public boolean isPreviewPreTransformed(SystemServicesManager pigeon_instance) { + return pigeon_instance.isPreviewPreTransformed(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java new file mode 100644 index 00000000000..4ed06895b5b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.UseCase; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link UseCase}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class UseCaseProxyApi extends PigeonApiUseCase { + UseCaseProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java new file mode 100644 index 00000000000..ab290fcc6c2 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java @@ -0,0 +1,38 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoCapture; +import androidx.camera.video.VideoOutput; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoCapture}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoCaptureProxyApi extends PigeonApiVideoCapture { + VideoCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public VideoCapture withOutput(@NonNull VideoOutput videoOutput) { + return VideoCapture.withOutput(videoOutput); + } + + @NonNull + @Override + public VideoOutput getOutput(VideoCapture pigeon_instance) { + return pigeon_instance.getOutput(); + } + + @Override + public void setTargetRotation(VideoCapture pigeon_instance, long rotation) { + pigeon_instance.setTargetRotation((int) rotation); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java new file mode 100644 index 00000000000..422ac5538f5 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoOutput; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoOutput}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoOutputProxyApi extends PigeonApiVideoOutput { + VideoOutputProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java new file mode 100644 index 00000000000..90385335609 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent.Finalize; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventFinalize}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventFinalizeProxyApi extends PigeonApiVideoRecordEventFinalize { + VideoRecordEventFinalizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java new file mode 100644 index 00000000000..1ce62752f65 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java @@ -0,0 +1,45 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventListener}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventListenerProxyApi extends PigeonApiVideoRecordEventListener { + VideoRecordEventListenerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link VideoRecordEventListener} that passes arguments of callback methods to Dart. */ + static class VideoRecordEventListenerImpl implements VideoRecordEventListener { + private final VideoRecordEventListenerProxyApi api; + + VideoRecordEventListenerImpl(@NonNull VideoRecordEventListenerProxyApi api) { + this.api = api; + } + + @Override + public void onEvent(@NonNull VideoRecordEvent event) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onEvent(this, event, reply -> null)); + } + } + + @NonNull + @Override + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); + } + + @NonNull + @Override + public VideoRecordEventListener pigeon_defaultConstructor() { + return new VideoRecordEventListenerImpl(this); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java new file mode 100644 index 00000000000..2c6bafa9068 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEvent}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventProxyApi extends PigeonApiVideoRecordEvent { + VideoRecordEventProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java new file mode 100644 index 00000000000..ab18d1e2b55 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent.Start; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventStart}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventStartProxyApi extends PigeonApiVideoRecordEventStart { + VideoRecordEventStartProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java new file mode 100644 index 00000000000..7b10c2efad7 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java @@ -0,0 +1,30 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ZoomState; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ZoomState}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ZoomStateProxyApi extends PigeonApiZoomState { + ZoomStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public double minZoomRatio(ZoomState pigeon_instance) { + return pigeon_instance.getMinZoomRatio(); + } + + @Override + public double maxZoomRatio(ZoomState pigeon_instance) { + return pigeon_instance.getMaxZoomRatio(); + } +} diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 034fb0dcfb5..cd1a1215d1d 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -352,6 +352,7 @@ class AndroidCameraCameraX extends CameraPlatform { CameraDescription cameraDescription, MediaSettings? mediaSettings, ) async { + // TODO(bparrishMines): Failure to get permissions isn't actually handled. // Must obtain proper permissions before attempting to access a camera. await systemServicesManager.requestCameraPermissions( mediaSettings?.enableAudio ?? false, @@ -385,7 +386,9 @@ class AndroidCameraCameraX extends CameraPlatform { resolutionSelector: presetResolutionSelector, /* use CameraX default target rotation */ targetRotation: null, ); - final int flutterSurfaceTextureId = await preview!.setSurfaceProvider(); + final int flutterSurfaceTextureId = await preview!.setSurfaceProvider( + systemServicesManager, + ); // Configure ImageCapture instance. imageCapture = proxy.newImageCapture( diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 1bba0bab614..9b230336ffe 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -133,7 +133,6 @@ class PigeonInstanceManager { _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraPermissionsErrorData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); @@ -818,6 +817,8 @@ enum MeteringMode { } /// Direction of lens of a camera. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, @@ -848,11 +849,6 @@ enum CameraXFlashMode { /// /// The flash will always be used when taking a picture. on, - /// Screen flash. - /// - /// Display screen brightness will be used as alternative to flash when taking - /// a picture with front camera. - screen, } /// Fallback rule for choosing an alternate size when the specified bound size @@ -1222,95 +1218,6 @@ class ResolutionInfo extends PigeonInternalProxyApiBaseClass { } } -/// Data class containing information -class CameraPermissionsErrorData extends PigeonInternalProxyApiBaseClass { - /// Constructs [CameraPermissionsErrorData] without creating the associated native object. - /// - /// This should only be used by subclasses created by this library or to - /// create copies for an [PigeonInstanceManager]. - @protected - CameraPermissionsErrorData.pigeon_detached({ - super.pigeon_binaryMessenger, - super.pigeon_instanceManager, - required this.errorCode, - required this.description, - }); - - final String errorCode; - - final String description; - - static void pigeon_setUpMessageHandlers({ - bool pigeon_clearHandlers = false, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - CameraPermissionsErrorData Function( - String errorCode, - String description, - )? pigeon_newInstance, - }) { - final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = - _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); - final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; - { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); - if (pigeon_clearHandlers) { - pigeonVar_channel.setMessageHandler(null); - } else { - pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance was null.'); - final List args = (message as List?)!; - final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance was null, expected non-null int.'); - final String? arg_errorCode = (args[1] as String?); - assert(arg_errorCode != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance was null, expected non-null String.'); - final String? arg_description = (args[2] as String?); - assert(arg_description != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsErrorData.pigeon_newInstance was null, expected non-null String.'); - try { - (pigeon_instanceManager ?? PigeonInstanceManager.instance) - .addHostCreatedInstance( - pigeon_newInstance?.call(arg_errorCode!, arg_description!) ?? - CameraPermissionsErrorData.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - errorCode: arg_errorCode!, - description: arg_description!, - ), - arg_pigeon_instanceIdentifier!, - ); - return wrapResponse(empty: true); - } on PlatformException catch (e) { - return wrapResponse(error: e); - } catch (e) { - return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); - } - }); - } - } - } - - @override - CameraPermissionsErrorData pigeon_copy() { - return CameraPermissionsErrorData.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - errorCode: errorCode, - description: description, - ); - } -} - /// Immutable class for describing the range of two integer values. /// /// This is the equivalent to `android.util.Range`. @@ -2434,7 +2341,7 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { /// Binds the collection of `UseCase` to a `LifecycleOwner`. Future bindToLifecycle( - CameraSelector cameraSelectorIdentifier, + CameraSelector cameraSelector, List useCases, ) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = @@ -2449,8 +2356,7 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { binaryMessenger: pigeonVar_binaryMessenger, ); final List? pigeonVar_replyList = await pigeonVar_channel - .send([this, cameraSelectorIdentifier, useCases]) - as List?; + .send([this, cameraSelector, useCases]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -2884,8 +2790,7 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { } } - Future requestCameraPermissions( - bool enableAudio) async { + Future requestCameraPermissions(bool enableAudio) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecSystemServicesManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2908,7 +2813,7 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { details: pigeonVar_replyList[2], ); } else { - return (pigeonVar_replyList[0] as CameraPermissionsErrorData?); + return; } } @@ -3362,7 +3267,8 @@ class Preview extends UseCase { /// 2. Sets this method with the created `SurfaceProvider`. /// 3. Returns the texture id of the `TextureEntry` that provided the /// `SurfaceProducer`. - Future setSurfaceProvider() async { + Future setSurfaceProvider( + SystemServicesManager systemServicesManager) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecPreview; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3374,8 +3280,8 @@ class Preview extends UseCase { pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final List? pigeonVar_replyList = - await pigeonVar_channel.send([this]) as List?; + final List? pigeonVar_replyList = await pigeonVar_channel + .send([this, systemServicesManager]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { @@ -5759,6 +5665,9 @@ class CameraStateStateError extends PigeonInternalProxyApiBaseClass { /// LiveData is a data holder class that can be observed within a given /// lifecycle. /// +/// This is a wrapper around the native class to better support the generic +/// type. Java has type erasure; +/// /// See https://developer.android.com/reference/androidx/lifecycle/LiveData. class LiveData extends PigeonInternalProxyApiBaseClass { /// Constructs [LiveData] without creating the associated native object. diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 9b9a7da333a..88409894c58 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -52,13 +52,6 @@ abstract class ResolutionInfo { late CameraSize resolution; } -/// Data class containing information -@ProxyApi() -abstract class CameraPermissionsErrorData { - late String errorCode; - late String description; -} - /// Generally classifies the overall set of the camera device functionality. /// /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. @@ -272,6 +265,8 @@ abstract class CameraInfo { } /// Direction of lens of a camera. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, @@ -333,7 +328,7 @@ abstract class ProcessCameraProvider { /// Binds the collection of `UseCase` to a `LifecycleOwner`. Camera bindToLifecycle( - CameraSelector cameraSelectorIdentifier, + CameraSelector cameraSelector, List useCases, ); @@ -384,7 +379,7 @@ abstract class SystemServicesManager { late void Function(String errorDescription) onCameraError; @async - CameraPermissionsErrorData? requestCameraPermissions(bool enableAudio); + void requestCameraPermissions(bool enableAudio); String getTempFilePath(String prefix, String suffix); @@ -430,7 +425,7 @@ abstract class Preview extends UseCase { /// 2. Sets this method with the created `SurfaceProvider`. /// 3. Returns the texture id of the `TextureEntry` that provided the /// `SurfaceProducer`. - int setSurfaceProvider(); + int setSurfaceProvider(SystemServicesManager systemServicesManager); /// Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was /// created. @@ -562,12 +557,6 @@ enum CameraXFlashMode { /// /// The flash will always be used when taking a picture. on, - - /// Screen flash. - /// - /// Display screen brightness will be used as alternative to flash when taking - /// a picture with front camera. - screen, } /// A use case for taking a picture. @@ -840,10 +829,13 @@ abstract class CameraStateStateError { /// LiveData is a data holder class that can be observed within a given /// lifecycle. /// +/// This is a wrapper around the native class to better support the generic +/// type. Java has type erasure; +/// /// See https://developer.android.com/reference/androidx/lifecycle/LiveData. @ProxyApi( kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'androidx.lifecycle.LiveData<*>', + fullClassName: 'io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper', ), ) abstract class LiveData { From 2d85644bfa018872612eee05a9c1e4f377491984 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 18:33:22 -0500 Subject: [PATCH 014/148] finish java api implementations --- .../camerax/Camera2CameraControlProxyApi.java | 39 +++++- .../camerax/Camera2CameraInfoProxyApi.java | 14 +- .../CameraCharacteristicsKeyProxyApi.java | 21 --- .../CameraCharacteristicsProxyApi.java | 10 +- .../camerax/CameraControlProxyApi.java | 123 ++++++++++++++++-- .../plugins/camerax/CameraXLibrary.g.kt | 37 +++--- .../CaptureRequestOptionsProxyApi.java | 27 +++- .../camerax/CaptureRequestProxyApi.java | 7 +- ...yOrientedMeteringPointFactoryProxyApi.java | 17 ++- .../camerax/FallbackStrategyProxyApi.java | 28 +++- .../FocusMeteringActionBuilderProxyApi.java | 35 +++-- .../camerax/FocusMeteringActionProxyApi.java | 10 +- .../camerax/FocusMeteringResultProxyApi.java | 6 +- .../camerax/MeteringPointFactoryProxyApi.java | 9 +- .../plugins/camerax/ProxyApiRegistrar.java | 50 +++++-- .../camerax/QualitySelectorProxyApi.java | 48 ++++++- .../camerax/ResolutionFilterProxyApi.java | 20 ++- .../lib/src/android_camera_camerax.dart | 4 +- .../lib/src/camerax_library2.g.dart | 25 ++-- .../pigeons/camerax_library.dart | 9 +- 20 files changed, 394 insertions(+), 145 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java index 0a5d3b89618..bdcd993ce86 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java @@ -4,17 +4,29 @@ package io.flutter.plugins.camerax; +import androidx.annotation.OptIn; import androidx.camera.camera2.interop.Camera2CameraControl; +import androidx.camera.camera2.interop.ExperimentalCamera2Interop; import androidx.camera.core.CameraControl; import androidx.camera.camera2.interop.CaptureRequestOptions; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; + +import kotlin.Result; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; /** * ProxyApi implementation for {@link Camera2CameraControl}. * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ +@OptIn(markerClass = ExperimentalCamera2Interop.class) class Camera2CameraControlProxyApi extends PigeonApiCamera2CameraControl { Camera2CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { super(pigeonRegistrar); @@ -22,13 +34,32 @@ class Camera2CameraControlProxyApi extends PigeonApiCamera2CameraControl { @NonNull @Override - public Camera2CameraControl from(@NonNull androidx.camera.core.CameraControl cameraControl) { - return Camera2CameraControl(cameraControl); + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); } + @NonNull @Override - public Void addCaptureRequestOptions(Camera2CameraControl, pigeon_instance@NonNull androidx.camera.camera2.interop.CaptureRequestOptions bundle) { - pigeon_instance.addCaptureRequestOptions(bundle); + public Camera2CameraControl from(@NonNull CameraControl cameraControl) { + return Camera2CameraControl.from(cameraControl); } + @Override + public void addCaptureRequestOptions(@NonNull Camera2CameraControl pigeon_instance, @NonNull CaptureRequestOptions bundle, @NonNull Function1, Unit> callback) { + final ListenableFuture addCaptureRequestOptionsFuture = + pigeon_instance.addCaptureRequestOptions(bundle); + + Futures.addCallback( + addCaptureRequestOptionsFuture, + new FutureCallback<>() { + public void onSuccess(Void voidResult) { + ResultCompat.success(null, callback); + } + + public void onFailure(@NonNull Throwable t) { + ResultCompat.failure(t, callback); + } + }, + ContextCompat.getMainExecutor(getPigeonRegistrar().getContext())); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java index 135bd579e44..5b449aeaca6 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java @@ -4,9 +4,13 @@ package io.flutter.plugins.camerax; +import androidx.annotation.OptIn; import androidx.camera.camera2.interop.Camera2CameraInfo; +import androidx.camera.camera2.interop.ExperimentalCamera2Interop; import androidx.camera.core.CameraInfo; -import android.hardware.camera2.CameraCharacteristics.Key<*>; + +import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraCharacteristics.Key; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -15,6 +19,7 @@ * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ +@OptIn(markerClass = ExperimentalCamera2Interop.class) class Camera2CameraInfoProxyApi extends PigeonApiCamera2CameraInfo { Camera2CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { super(pigeonRegistrar); @@ -22,8 +27,8 @@ class Camera2CameraInfoProxyApi extends PigeonApiCamera2CameraInfo { @NonNull @Override - public Camera2CameraInfo from(@NonNull androidx.camera.core.CameraInfo cameraInfo) { - return Camera2CameraInfo(cameraInfo); + public Camera2CameraInfo from(@NonNull CameraInfo cameraInfo) { + return Camera2CameraInfo.from(cameraInfo); } @NonNull @@ -34,8 +39,7 @@ public String getCameraId(Camera2CameraInfo pigeon_instance) { @Nullable @Override - public Any? getCameraCharacteristic(Camera2CameraInfo, pigeon_instance@NonNull android.hardware.camera2.CameraCharacteristics.Key<*> key) { + public Object getCameraCharacteristic(Camera2CameraInfo pigeon_instance, @NonNull CameraCharacteristics.Key key) { return pigeon_instance.getCameraCharacteristic(key); } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java deleted file mode 100644 index 62a52f85b69..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CameraCharacteristics.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraCharacteristicsKey}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraCharacteristicsKeyProxyApi extends PigeonApiCameraCharacteristicsKey { - CameraCharacteristicsKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java index 2c10aea0dd3..9e8dc53bf09 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java @@ -5,7 +5,7 @@ package io.flutter.plugins.camerax; import android.hardware.camera2.CameraCharacteristics; -import android.hardware.camera2.CameraCharacteristics.Key<*>; +import android.hardware.camera2.CameraCharacteristics.Key; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -21,14 +21,14 @@ class CameraCharacteristicsProxyApi extends PigeonApiCameraCharacteristics { @NonNull @Override - public android.hardware.camera2.CameraCharacteristics.Key<*> infoSupportedHardwareLevel() { - return CameraCharacteristics.getInfoSupportedHardwareLevel(); + public CameraCharacteristics.Key infoSupportedHardwareLevel() { + return CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL; } @NonNull @Override - public android.hardware.camera2.CameraCharacteristics.Key<*> sensorOrientation() { - return CameraCharacteristics.getSensorOrientation(); + public android.hardware.camera2.CameraCharacteristics.Key sensorOrientation() { + return CameraCharacteristics.SENSOR_ORIENTATION; } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java index cc7d812a4f0..0b862f24285 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java @@ -9,6 +9,15 @@ import androidx.camera.core.FocusMeteringResult; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; + +import kotlin.Result; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; /** * ProxyApi implementation for {@link CameraControl}. @@ -20,31 +29,121 @@ class CameraControlProxyApi extends PigeonApiCameraControl { super(pigeonRegistrar); } + @NonNull @Override - public Void enableTorch(CameraControl, pigeon_instance@NonNull Boolean torch) { - pigeon_instance.enableTorch(torch); + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); } @Override - public Void setZoomRatio(CameraControl, pigeon_instance@NonNull Double ratio) { - pigeon_instance.setZoomRatio(ratio); + public void enableTorch(@NonNull CameraControl pigeon_instance, boolean torch, @NonNull Function1, Unit> callback) { + final ListenableFuture enableTorchFuture = pigeon_instance.enableTorch(torch); + + Futures.addCallback( + enableTorchFuture, + new FutureCallback<>() { + public void onSuccess(Void voidResult) { + ResultCompat.success(null, callback); + } + + public void onFailure(@NonNull Throwable t) { + ResultCompat.failure(t, callback); + } + }, + ContextCompat.getMainExecutor(getPigeonRegistrar().getContext())); } - @NonNull @Override - public androidx.camera.core.FocusMeteringResult startFocusAndMetering(CameraControl, pigeon_instance@NonNull androidx.camera.core.FocusMeteringAction action) { - return pigeon_instance.startFocusAndMetering(action); + public void setZoomRatio(@NonNull CameraControl pigeon_instance, double ratio, @NonNull Function1, Unit> callback) { + float ratioAsFloat = (float) ratio; + final ListenableFuture setZoomRatioFuture = pigeon_instance.setZoomRatio(ratioAsFloat); + + Futures.addCallback( + setZoomRatioFuture, + new FutureCallback<>() { + public void onSuccess(Void voidResult) { + ResultCompat.success(null, callback); + } + + public void onFailure(@NonNull Throwable t) { + if (t instanceof CameraControl.OperationCanceledException) { + // Operation was canceled due to camera being closed or a new request was submitted, which + // is not actionable and should not block a new value from potentially being submitted. + ResultCompat.success(null, callback); + return; + } + + ResultCompat.failure(t, callback); + } + }, + ContextCompat.getMainExecutor(getPigeonRegistrar().getContext())); } @Override - public Void cancelFocusAndMetering(CameraControl pigeon_instance) { - pigeon_instance.cancelFocusAndMetering(); + public void startFocusAndMetering(@NonNull CameraControl pigeon_instance, @NonNull FocusMeteringAction action, @NonNull Function1, Unit> callback) { + ListenableFuture focusMeteringResultFuture = + pigeon_instance.startFocusAndMetering(action); + + Futures.addCallback( + focusMeteringResultFuture, + new FutureCallback<>() { + public void onSuccess(FocusMeteringResult focusMeteringResult) { + ResultCompat.success(focusMeteringResult, callback); + } + + public void onFailure(@NonNull Throwable t) { + if (t instanceof CameraControl.OperationCanceledException) { + // Operation was canceled due to camera being closed or a new request was submitted, which + // is not actionable and should not block a new value from potentially being submitted. + ResultCompat.success(null, callback); + return; + } + ResultCompat.failure(t, callback); + } + }, + ContextCompat.getMainExecutor(getPigeonRegistrar().getContext())); } - @NonNull @Override - public Long setExposureCompensationIndex(CameraControl, pigeon_instance@NonNull Long index) { - return pigeon_instance.setExposureCompensationIndex(index); + public void cancelFocusAndMetering(@NonNull CameraControl pigeon_instance, @NonNull Function1, Unit> callback) { + final ListenableFuture cancelFocusAndMeteringFuture = pigeon_instance.cancelFocusAndMetering(); + + Futures.addCallback( + cancelFocusAndMeteringFuture, + new FutureCallback<>() { + public void onSuccess(Void voidResult) { + ResultCompat.success(null, callback); + } + + public void onFailure(@NonNull Throwable t) { + ResultCompat.failure(t, callback); + } + }, + ContextCompat.getMainExecutor(getPigeonRegistrar().getContext())); } + @Override + public void setExposureCompensationIndex(@NonNull CameraControl pigeon_instance, long index, @NonNull Function1, Unit> callback) { + final ListenableFuture setExposureCompensationIndexFuture = + pigeon_instance.setExposureCompensationIndex((int) index); + + Futures.addCallback( + setExposureCompensationIndexFuture, + new FutureCallback<>() { + public void onSuccess(Integer integerResult) { + ResultCompat.success(integerResult.longValue(), callback); + } + + public void onFailure(@NonNull Throwable t) { + if (t instanceof CameraControl.OperationCanceledException) { + // Operation was canceled due to camera being closed or a new request was submitted, which + // is not actionable and should not block a new value from potentially being submitted. + ResultCompat.success(null, callback); + return; + } + ResultCompat.failure(t, callback); + } + }, + ContextCompat.getMainExecutor(getPigeonRegistrar().getContext())); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index a7e12ea02e5..f7e1bd8f29b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -1076,6 +1076,11 @@ enum class VideoQuality(val raw: Int) { } } +/** + * A flag used for indicating metering mode regions. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). + */ enum class MeteringMode(val raw: Int) { /** * A flag used in metering mode indicating the AE (Auto Exposure) region is @@ -8158,13 +8163,13 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi * Starts a focus and metering action configured by the * `FocusMeteringAction`. */ - abstract fun startFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) + abstract fun startFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ abstract fun cancelFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, callback: (Result) -> Unit) /** Set the exposure compensation value for the camera. */ - abstract fun setExposureCompensationIndex(pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit) + abstract fun setExposureCompensationIndex(pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit) companion object { @Suppress("LocalVariableName") @@ -8217,7 +8222,7 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val actionArg = args[1] as androidx.camera.core.FocusMeteringAction - api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> + api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -8257,7 +8262,7 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val indexArg = args[1] as Long - api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result -> + api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -8341,9 +8346,9 @@ class CameraControlProxyApi extends PigeonApiCameraControl { pigeon_instance.setZoomRatio(ratio); } - @NonNull + @Nullable @Override - public androidx.camera.core.FocusMeteringResult startFocusAndMetering(CameraControl, pigeon_instance@NonNull androidx.camera.core.FocusMeteringAction action) { + public androidx.camera.core.FocusMeteringResult? startFocusAndMetering(CameraControl, pigeon_instance@NonNull androidx.camera.core.FocusMeteringAction action) { return pigeon_instance.startFocusAndMetering(action); } @@ -8352,9 +8357,9 @@ class CameraControlProxyApi extends PigeonApiCameraControl { pigeon_instance.cancelFocusAndMetering(); } - @NonNull + @Nullable @Override - public Long setExposureCompensationIndex(CameraControl, pigeon_instance@NonNull Long index) { + public Long? setExposureCompensationIndex(CameraControl, pigeon_instance@NonNull Long index) { return pigeon_instance.setExposureCompensationIndex(index); } @@ -8461,7 +8466,7 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam abstract fun addPoint(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint) /** Adds another MeteringPoint with specified meteringMode. */ - abstract fun addPointWithMode(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, modes: List) + abstract fun addPointWithMode(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, mode: MeteringMode) /** Disables the auto-cancel. */ abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) @@ -8538,9 +8543,9 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint - val modesArg = args[2] as List + val modeArg = args[2] as MeteringMode val wrapped: List = try { - api.addPointWithMode(pigeon_instanceArg, pointArg, modesArg) + api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -8664,8 +8669,8 @@ class FocusMeteringActionBuilderProxyApi extends PigeonApiFocusMeteringActionBui } @Override - public Void addPointWithMode(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point, @NonNull List modes) { - pigeon_instance.addPointWithMode(point, modes); + public Void addPointWithMode(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { + pigeon_instance.addPointWithMode(point, mode); } @Override @@ -8735,10 +8740,10 @@ public class FocusMeteringActionBuilderProxyApiTest { final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); - final List modes = Arrays.asList(io.flutter.plugins.camerax.MeteringMode.AE); - api.addPointWithMode(instance, point, modes); + final MeteringMode mode = io.flutter.plugins.camerax.MeteringMode.AE; + api.addPointWithMode(instance, point, mode); - verify(instance).addPointWithMode(point, modes); + verify(instance).addPointWithMode(point, mode); } @Test diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java index 81e6927ea99..024e3c5b2e5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -5,9 +5,14 @@ package io.flutter.plugins.camerax; import androidx.camera.camera2.interop.CaptureRequestOptions; -import android.hardware.camera2.CaptureRequest.Key<*>; + +import android.hardware.camera2.CaptureRequest; +import android.hardware.camera2.CaptureRequest.Key; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.camera.camera2.interop.ExperimentalCamera2Interop; + +import java.util.Map; /** * ProxyApi implementation for {@link CaptureRequestOptions}. @@ -19,10 +24,24 @@ class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { super(pigeonRegistrar); } + @ExperimentalCamera2Interop @NonNull @Override - public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map, Any?> options) { - return CaptureRequestOptions(options); - } + public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map, ?> options) { + final CaptureRequestOptions.Builder builder = new CaptureRequestOptions.Builder(); + + for (final Map.Entry, ?> option : options.entrySet()) { + Object optionValue = option.getValue(); + if (optionValue == null) { + builder.clearCaptureRequestOption(option.getKey()); + continue; + } + + //noinspection unchecked + builder.setCaptureRequestOption((CaptureRequest.Key) option.getKey(), option.getValue()); + } + + return builder.build(); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java index 8a4b265c263..3f8f6dc91d2 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java @@ -5,7 +5,7 @@ package io.flutter.plugins.camerax; import android.hardware.camera2.CaptureRequest; -import android.hardware.camera2.CaptureRequest.Key<*>; +import android.hardware.camera2.CaptureRequest.Key; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -21,8 +21,7 @@ class CaptureRequestProxyApi extends PigeonApiCaptureRequest { @NonNull @Override - public android.hardware.camera2.CaptureRequest.Key<*> controlAELock() { - return CaptureRequest.getControlAELock(); + public android.hardware.camera2.CaptureRequest.Key controlAELock() { + return CaptureRequest.CONTROL_AE_LOCK; } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java index 4f4901ddad5..f00c7ee0bc4 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java @@ -4,6 +4,8 @@ package io.flutter.plugins.camerax; +import android.view.Display; + import androidx.camera.core.DisplayOrientedMeteringPointFactory; import androidx.camera.core.CameraInfo; import androidx.annotation.NonNull; @@ -21,8 +23,19 @@ class DisplayOrientedMeteringPointFactoryProxyApi extends PigeonApiDisplayOrient @NonNull @Override - public DisplayOrientedMeteringPointFactory pigeon_defaultConstructor(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull Double width, @NonNull Double height) { - return DisplayOrientedMeteringPointFactory(cameraInfo, width, height); + public ProxyApiRegistrar getPigeonRegistrar() { + return (ProxyApiRegistrar) super.getPigeonRegistrar(); } + @NonNull + @Override + public DisplayOrientedMeteringPointFactory pigeon_defaultConstructor(@NonNull CameraInfo cameraInfo, double width, double height) { + final Display display = getPigeonRegistrar().getDisplay(); + + if (display != null) { + return new DisplayOrientedMeteringPointFactory(display, cameraInfo, (float) width, (float) height); + } + + throw new IllegalStateException("A Display could not be retrieved."); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java index fb85bb74f5b..9c062067e2d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java @@ -7,6 +7,7 @@ import androidx.camera.video.FallbackStrategy; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.camera.video.Quality; /** * ProxyApi implementation for {@link FallbackStrategy}. @@ -21,25 +22,44 @@ class FallbackStrategyProxyApi extends PigeonApiFallbackStrategy { @NonNull @Override public FallbackStrategy higherQualityOrLowerThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); + return FallbackStrategy.higherQualityOrLowerThan(getNativeQuality(quality)); } @NonNull @Override public FallbackStrategy higherQualityThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); + return FallbackStrategy.higherQualityThan(getNativeQuality(quality)); } @NonNull @Override public FallbackStrategy lowerQualityOrHigherThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); + return FallbackStrategy.lowerQualityOrHigherThan(getNativeQuality(quality)); } @NonNull @Override public FallbackStrategy lowerQualityThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); + return FallbackStrategy.lowerQualityThan(getNativeQuality(quality)); } + Quality getNativeQuality(VideoQuality quality) { + switch (quality) { + case SD: + return Quality.SD; + case HD: + return Quality.HD; + case FHD: + return Quality.FHD; + case UHD: + return Quality.UHD; + case LOWEST: + return Quality.LOWEST; + case HIGHEST: + return Quality.HIGHEST; + } + + throw new IllegalArgumentException( + "VideoQuality " + quality + " is unhandled by FallbackStrategyProxyApi."); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java index 31c637b190d..1be522b831d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java @@ -10,8 +10,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import java.util.List; + /** - * ProxyApi implementation for {@link FocusMeteringActionBuilder}. + * ProxyApi implementation for {@link FocusMeteringAction.Builder}. * This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ @@ -22,35 +24,48 @@ class FocusMeteringActionBuilderProxyApi extends PigeonApiFocusMeteringActionBui @NonNull @Override - public FocusMeteringActionBuilder pigeon_defaultConstructor(@NonNull androidx.camera.core.MeteringPoint point) { - return FocusMeteringActionBuilder(point); + public FocusMeteringAction.Builder pigeon_defaultConstructor(@NonNull MeteringPoint point) { + return new FocusMeteringAction.Builder(point); } @NonNull @Override - public FocusMeteringActionBuilder withMode(@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { - return FocusMeteringActionBuilder(point, mode); + public FocusMeteringAction.Builder withMode(@NonNull MeteringPoint point, @NonNull MeteringMode mode) { + return new FocusMeteringAction.Builder(point, getNativeMeteringMode(mode)); } @Override - public Void addPoint(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point) { + public void addPoint(FocusMeteringAction.Builder pigeon_instance, @NonNull MeteringPoint point) { pigeon_instance.addPoint(point); } @Override - public Void addPointWithMode(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point, @NonNull List modes) { - pigeon_instance.addPointWithMode(point, modes); + public void addPointWithMode(FocusMeteringAction. Builder pigeon_instance, @NonNull MeteringPoint point, @NonNull MeteringMode mode) { + pigeon_instance.addPoint(point, getNativeMeteringMode(mode)); } @Override - public Void disableAutoCancel(FocusMeteringActionBuilder pigeon_instance) { + public void disableAutoCancel(FocusMeteringAction.Builder pigeon_instance) { pigeon_instance.disableAutoCancel(); } @NonNull @Override - public androidx.camera.core.FocusMeteringAction build(FocusMeteringActionBuilder pigeon_instance) { + public androidx.camera.core.FocusMeteringAction build(FocusMeteringAction.Builder pigeon_instance) { return pigeon_instance.build(); } + int getNativeMeteringMode(@NonNull MeteringMode mode) { + switch(mode) { + case AE: + return FocusMeteringAction.FLAG_AE; + case AF: + return FocusMeteringAction.FLAG_AF; + case AWB: + return FocusMeteringAction.FLAG_AWB; + } + + throw new IllegalArgumentException( + "MeteringMode " + mode + " is unhandled by FocusMeteringActionBuilderProxyApi."); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java index 42b4b4ea9ca..a7133aaf215 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java @@ -9,6 +9,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import java.util.List; + /** * ProxyApi implementation for {@link FocusMeteringAction}. * This class may handle instantiating native object instances that are attached to a Dart @@ -21,7 +23,7 @@ class FocusMeteringActionProxyApi extends PigeonApiFocusMeteringAction { @NonNull @Override - public List meteringPointsAe(FocusMeteringAction pigeon_instance) { + public List meteringPointsAe(FocusMeteringAction pigeon_instance) { return pigeon_instance.getMeteringPointsAe(); } @@ -37,10 +39,8 @@ public List meteringPointsAwb(FocusMeteringA return pigeon_instance.getMeteringPointsAwb(); } - @NonNull @Override - public Boolean isAutoCancelEnabled(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getIsAutoCancelEnabled(); + public boolean isAutoCancelEnabled(FocusMeteringAction pigeon_instance) { + return pigeon_instance.isAutoCancelEnabled(); } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java index c78e85e0b3d..56155aa29fc 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java @@ -18,10 +18,8 @@ class FocusMeteringResultProxyApi extends PigeonApiFocusMeteringResult { super(pigeonRegistrar); } - @NonNull @Override - public Boolean isFocusSuccessful(FocusMeteringResult pigeon_instance) { - return pigeon_instance.getIsFocusSuccessful(); + public boolean isFocusSuccessful(FocusMeteringResult pigeon_instance) { + return pigeon_instance.isFocusSuccessful(); } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java index a3a6d616c69..8bd0b53aed8 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java @@ -21,14 +21,13 @@ class MeteringPointFactoryProxyApi extends PigeonApiMeteringPointFactory { @NonNull @Override - public androidx.camera.core.MeteringPoint createPoint(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y) { - return pigeon_instance.createPoint(x, y); + public MeteringPoint createPoint(MeteringPointFactory pigeon_instance, double x, double y) { + return pigeon_instance.createPoint((float) x, (float) y); } @NonNull @Override - public androidx.camera.core.MeteringPoint createPointWithSize(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y, @NonNull Double size) { - return pigeon_instance.createPointWithSize(x, y, size); + public MeteringPoint createPointWithSize(MeteringPointFactory pigeon_instance, double x, double y, double size) { + return pigeon_instance.createPoint((float) x, (float) y, (float) size); } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index 2394a4aac07..ad15fa373e2 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -6,6 +6,8 @@ import android.os.Handler; import android.os.Looper; import android.util.Log; +import android.view.Display; +import android.view.WindowManager; import androidx.annotation.ChecksSdkIntAtLeast; import androidx.annotation.NonNull; @@ -69,6 +71,15 @@ public Context getContext() { return context; } + @Nullable + public Activity getActivity() { + if (context instanceof Activity) { + return (Activity) context; + } + + return null; + } + public void setContext(@NonNull Context context) { this.context = context; } @@ -107,6 +118,17 @@ long getDefaultClearFinalizedWeakReferencesInterval() { return defaultClearFinalizedWeakReferencesInterval; } + @Nullable + Display getDisplay() { + if (sdkIsAtLeast(Build.VERSION_CODES.R)) { + return getContext().getDisplay(); + } else { + //noinspection deprecation + return ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)) + .getDefaultDisplay(); + } + } + @NonNull @Override public PigeonApiCameraSize getPigeonApiCameraSize() { @@ -290,84 +312,84 @@ public PigeonApiPlaneProxy getPigeonApiPlaneProxy() { @NonNull @Override public PigeonApiQualitySelector getPigeonApiQualitySelector() { - return null; + return new QualitySelectorProxyApi(this); } @NonNull @Override public PigeonApiFallbackStrategy getPigeonApiFallbackStrategy() { - return null; + return new FallbackStrategyProxyApi(this); } @NonNull @Override public PigeonApiCameraControl getPigeonApiCameraControl() { - return null; + return new CameraControlProxyApi(this); } @NonNull @Override public PigeonApiFocusMeteringActionBuilder getPigeonApiFocusMeteringActionBuilder() { - return null; + return new FocusMeteringActionBuilderProxyApi(this); } @NonNull @Override public PigeonApiFocusMeteringAction getPigeonApiFocusMeteringAction() { - return null; + return new FocusMeteringActionProxyApi(this); } @NonNull @Override public PigeonApiFocusMeteringResult getPigeonApiFocusMeteringResult() { - return null; + return new FocusMeteringResultProxyApi(this); } @NonNull @Override public PigeonApiCaptureRequest getPigeonApiCaptureRequest() { - return null; + return new CaptureRequestProxyApi(this); } @NonNull @Override public PigeonApiCaptureRequestOptions getPigeonApiCaptureRequestOptions() { - return null; + return new CaptureRequestOptionsProxyApi(this); } @NonNull @Override public PigeonApiCamera2CameraControl getPigeonApiCamera2CameraControl() { - return null; + return new Camera2CameraControlProxyApi(this); } @NonNull @Override public PigeonApiResolutionFilter getPigeonApiResolutionFilter() { - return null; + return new ResolutionFilterProxyApi(this); } @NonNull @Override public PigeonApiCameraCharacteristics getPigeonApiCameraCharacteristics() { - return null; + return new CameraCharacteristicsProxyApi(this); } @NonNull @Override public PigeonApiCamera2CameraInfo getPigeonApiCamera2CameraInfo() { - return null; + return new Camera2CameraInfoProxyApi(this); } @NonNull @Override public PigeonApiMeteringPointFactory getPigeonApiMeteringPointFactory() { - return null; + return new MeteringPointFactoryProxyApi(this); } @NonNull @Override public PigeonApiDisplayOrientedMeteringPointFactory getPigeonApiDisplayOrientedMeteringPointFactory() { - return null; + return new DisplayOrientedMeteringPointFactoryProxyApi(this); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java index 7c28840d057..36d1e2f3b9c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java @@ -4,6 +4,7 @@ package io.flutter.plugins.camerax; +import androidx.camera.video.Quality; import androidx.camera.video.QualitySelector; import androidx.camera.video.FallbackStrategy; import androidx.camera.core.CameraInfo; @@ -11,6 +12,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import java.util.ArrayList; +import java.util.List; + /** * ProxyApi implementation for {@link QualitySelector}. * This class may handle instantiating native object instances that are attached to a Dart @@ -23,20 +27,52 @@ class QualitySelectorProxyApi extends PigeonApiQualitySelector { @NonNull @Override - public QualitySelector from(@NonNull VideoQuality quality, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { - return QualitySelector(quality, fallbackStrategy); + public QualitySelector from(@NonNull VideoQuality quality, @Nullable FallbackStrategy fallbackStrategy) { + if (fallbackStrategy == null) { + return QualitySelector.from(getNativeQuality(quality)); + } + + return QualitySelector.from(getNativeQuality(quality), fallbackStrategy); } @NonNull @Override - public QualitySelector fromOrderedList(@NonNull List qualities, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { - return QualitySelector(qualities, fallbackStrategy); + public QualitySelector fromOrderedList(@NonNull List qualities, @Nullable FallbackStrategy fallbackStrategy) { + final List nativeQualities = new ArrayList<>(); + for (final VideoQuality quality : qualities) { + nativeQualities.add(getNativeQuality(quality)); + } + + if (fallbackStrategy == null) { + return QualitySelector.fromOrderedList(nativeQualities); + } + + return QualitySelector.fromOrderedList(nativeQualities, fallbackStrategy); } @Nullable @Override - public android.util.Size? getResolution(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull VideoQuality quality) { - return QualitySelector.getResolution(cameraInfo, quality); + public Size getResolution(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull VideoQuality quality) { + return QualitySelector.getResolution(cameraInfo, getNativeQuality(quality)); } + Quality getNativeQuality(VideoQuality quality) { + switch (quality) { + case SD: + return Quality.SD; + case HD: + return Quality.HD; + case FHD: + return Quality.FHD; + case UHD: + return Quality.UHD; + case LOWEST: + return Quality.LOWEST; + case HIGHEST: + return Quality.HIGHEST; + } + + throw new IllegalArgumentException( + "VideoQuality " + quality + " is unhandled by QualitySelectorProxyApi."); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java index 1a01d7270ff..a800d4a0c1b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java @@ -9,6 +9,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import java.util.List; + /** * ProxyApi implementation for {@link ResolutionFilter}. * This class may handle instantiating native object instances that are attached to a Dart @@ -21,8 +23,20 @@ class ResolutionFilterProxyApi extends PigeonApiResolutionFilter { @NonNull @Override - public ResolutionFilter createWithOnePreferredSize(@NonNull android.util.Size preferredSize) { - return ResolutionFilter(preferredSize); - } + public ResolutionFilter createWithOnePreferredSize(@NonNull Size preferredSize) { + return new ResolutionFilter() { + @Override + @NonNull + public List filter(@NonNull List supportedSizes, int rotationDegrees) { + int preferredSizeIndex = supportedSizes.indexOf(preferredSize); + if (preferredSizeIndex > -1) { + supportedSizes.remove(preferredSizeIndex); + supportedSizes.add(0, preferredSize); + } + + return supportedSizes; + } + }; + } } diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index cd1a1215d1d..7e954e5833c 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -1629,9 +1629,9 @@ class AndroidCameraCameraX extends CameraPlatform { currentFocusMeteringAction = await actionBuilder.build(); } - final FocusMeteringResult result = + final FocusMeteringResult? result = await cameraControl.startFocusAndMetering(currentFocusMeteringAction!); - return result.isFocusSuccessful; + return result?.isFocusSuccessful ?? false; } static DeviceOrientation _deserializeDeviceOrientation(String orientation) { diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 9b230336ffe..0c9f774e246 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -804,6 +804,9 @@ enum VideoQuality { highest, } +/// A flag used for indicating metering mode regions. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. @@ -6655,7 +6658,7 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { /// Starts a focus and metering action configured by the /// `FocusMeteringAction`. - Future startFocusAndMetering( + Future startFocusAndMetering( FocusMeteringAction action) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraControl; @@ -6678,13 +6681,8 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { message: pigeonVar_replyList[1] as String?, details: pigeonVar_replyList[2], ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); } else { - return (pigeonVar_replyList[0] as FocusMeteringResult?)!; + return (pigeonVar_replyList[0] as FocusMeteringResult?); } } @@ -6717,7 +6715,7 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { } /// Set the exposure compensation value for the camera. - Future setExposureCompensationIndex(int index) async { + Future setExposureCompensationIndex(int index) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraControl; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6739,13 +6737,8 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { message: pigeonVar_replyList[1] as String?, details: pigeonVar_replyList[2], ); - } else if (pigeonVar_replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); } else { - return (pigeonVar_replyList[0] as int?)!; + return (pigeonVar_replyList[0] as int?); } } @@ -6932,7 +6925,7 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { /// Adds another MeteringPoint with specified meteringMode. Future addPointWithMode( MeteringPoint point, - List modes, + MeteringMode mode, ) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFocusMeteringActionBuilder; @@ -6946,7 +6939,7 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { binaryMessenger: pigeonVar_binaryMessenger, ); final List? pigeonVar_replyList = await pigeonVar_channel - .send([this, point, modes]) as List?; + .send([this, point, mode]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); } else if (pigeonVar_replyList.length > 1) { diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 88409894c58..f7daccd2570 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -212,6 +212,9 @@ abstract class MeteringPoint { double getSize(); } +/// A flag used for indicating metering mode regions. +/// +/// See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. @@ -975,7 +978,7 @@ abstract class CameraControl { /// Starts a focus and metering action configured by the /// `FocusMeteringAction`. @async - FocusMeteringResult startFocusAndMetering(FocusMeteringAction action); + FocusMeteringResult? startFocusAndMetering(FocusMeteringAction action); /// Cancels current FocusMeteringAction and clears AF/AE/AWB regions. @async @@ -983,7 +986,7 @@ abstract class CameraControl { /// Set the exposure compensation value for the camera. @async - int setExposureCompensationIndex(int index); + int? setExposureCompensationIndex(int index); } /// The builder used to create the `FocusMeteringAction`. @@ -1006,7 +1009,7 @@ abstract class FocusMeteringActionBuilder { void addPoint(MeteringPoint point); /// Adds another MeteringPoint with specified meteringMode. - void addPointWithMode(MeteringPoint point, List modes); + void addPointWithMode(MeteringPoint point, MeteringMode mode); /// Disables the auto-cancel. void disableAutoCancel(); From 52e41452a7532ceebc9fb2bb41ff1c9943beda70 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 22:32:41 -0500 Subject: [PATCH 015/148] remove other implementations --- .../camerax/AnalyzerFlutterApiImpl.java | 74 ----- .../plugins/camerax/AnalyzerHostApiImpl.java | 119 -------- .../AspectRatioStrategyHostApiImpl.java | 65 ---- .../Camera2CameraControlHostApiImpl.java | 142 --------- .../Camera2CameraInfoFlutterApiImpl.java | 30 -- .../camerax/Camera2CameraInfoHostApiImpl.java | 123 -------- .../camerax/CameraControlFlutterApiImpl.java | 29 -- .../camerax/CameraControlHostApiImpl.java | 284 ----------------- .../plugins/camerax/CameraFlutterApiImpl.java | 24 -- .../plugins/camerax/CameraHostApiImpl.java | 61 ---- .../camerax/CameraInfoFlutterApiImpl.java | 29 -- .../camerax/CameraInfoHostApiImpl.java | 95 ------ .../camerax/CameraSelectorFlutterApiImpl.java | 24 -- .../camerax/CameraSelectorHostApiImpl.java | 63 ---- .../CameraStateErrorFlutterApiWrapper.java | 57 ---- .../plugins/camerax/CameraXLibrary.g.kt | 2 +- .../flutter/plugins/camerax/CameraXProxy.java | 9 - .../CaptureRequestOptionsHostApiImpl.java | 118 ------- .../camerax/DeviceOrientationManager.java | 1 - ...eviceOrientationManagerFlutterApiImpl.java | 20 -- .../DeviceOrientationManagerHostApiImpl.java | 117 ------- .../camerax/ExposureStateFlutterApiImpl.java | 49 --- .../camerax/FallbackStrategyHostApiImpl.java | 80 ----- .../FocusMeteringActionHostApiImpl.java | 124 -------- .../FocusMeteringResultFlutterApiImpl.java | 55 ---- .../FocusMeteringResultHostApiImpl.java | 65 ---- .../camerax/ImageAnalysisHostApiImpl.java | 114 ------- .../camerax/ImageCaptureHostApiImpl.java | 143 --------- .../camerax/ImageProxyFlutterApiImpl.java | 67 ---- .../camerax/ImageProxyHostApiImpl.java | 82 ----- .../plugins/camerax/InstanceManager.java | 287 ------------------ .../camerax/JavaObjectHostApiImpl.java | 33 -- .../camerax/LiveDataFlutterApiWrapper.java | 61 ---- .../plugins/camerax/LiveDataHostApiImpl.java | 115 ------- .../camerax/MeteringPointHostApiImpl.java | 137 --------- .../camerax/ObserverFlutterApiWrapper.java | 112 ------- .../plugins/camerax/ObserverHostApiImpl.java | 102 ------- .../PendingRecordingFlutterApiImpl.java | 37 --- .../camerax/PendingRecordingHostApiImpl.java | 107 ------- .../camerax/PlaneProxyFlutterApiImpl.java | 67 ---- .../plugins/camerax/PreviewHostApiImpl.java | 186 ------------ .../ProcessCameraProviderFlutterApiImpl.java | 24 -- .../ProcessCameraProviderHostApiImpl.java | 176 ----------- .../camerax/QualitySelectorHostApiImpl.java | 141 --------- .../camerax/RecorderFlutterApiImpl.java | 29 -- .../plugins/camerax/RecorderHostApiImpl.java | 129 -------- .../camerax/RecordingFlutterApiImpl.java | 24 -- .../plugins/camerax/RecordingHostApiImpl.java | 50 --- .../camerax/ResolutionFilterHostApiImpl.java | 94 ------ .../ResolutionSelectorHostApiImpl.java | 96 ------ .../ResolutionStrategyHostApiImpl.java | 81 ----- .../camerax/SystemServicesFlutterApiImpl.java | 19 -- .../plugins/camerax/UseCaseProxyApi.java | 21 -- .../camerax/VideoCaptureFlutterApiImpl.java | 25 -- .../camerax/VideoCaptureHostApiImpl.java | 65 ---- .../plugins/camerax/VideoOutputProxyApi.java | 21 -- .../VideoRecordEventFinalizeProxyApi.java | 21 -- .../camerax/VideoRecordEventProxyApi.java | 21 -- .../VideoRecordEventStartProxyApi.java | 21 -- .../camerax/ZoomStateFlutterApiImpl.java | 38 --- .../plugins/camerax/ZoomStateProxyApi.java | 1 - .../cameraxexample/InstanceManagerTest.java | 2 +- .../lib/src/android_camera_camerax.dart | 3 + 63 files changed, 5 insertions(+), 4606 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateErrorFlutterApiWrapper.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/InstanceManager.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/JavaObjectHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataFlutterApiWrapper.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverFlutterApiWrapper.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureFlutterApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateFlutterApiImpl.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerFlutterApiImpl.java deleted file mode 100644 index 7bdb8626469..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerFlutterApiImpl.java +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.ImageProxy; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.AnalyzerFlutterApi; -import java.util.Objects; - -/** - * Flutter API implementation for {@link ImageAnalysis.Analyzer}. - * - *

This class may handle adding native instances that are attached to a Dart instance or passing - * arguments of callbacks methods to a Dart instance. - */ -public class AnalyzerFlutterApiImpl { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private AnalyzerFlutterApi api; - - /** - * Constructs a {@link AnalyzerFlutterApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public AnalyzerFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - api = new AnalyzerFlutterApi(binaryMessenger); - } - - /** - * Stores the {@link ImageAnalysis.Analyzer} instance and notifies Dart to create and store a new - * {@code Analyzer} instance that is attached to this one. If {@code instance} has already been - * added, this method does nothing. - */ - public void create( - @NonNull ImageAnalysis.Analyzer instance, @NonNull AnalyzerFlutterApi.Reply callback) { - if (!instanceManager.containsInstance(instance)) { - api.create(instanceManager.addHostCreatedInstance(instance), callback); - } - } - - /** - * Sends a message to Dart to call {@code Analyzer.analyze} on the Dart object representing - * `instance`. - */ - public void analyze( - @NonNull ImageAnalysis.Analyzer analyzerInstance, - @NonNull ImageProxy imageProxyInstance, - @NonNull AnalyzerFlutterApi.Reply callback) { - api.analyze( - Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(analyzerInstance)), - Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(imageProxyInstance)), - callback); - } - - /** - * Sets the Flutter API used to send messages to Dart. - * - *

This is only visible for testing. - */ - @VisibleForTesting - void setApi(@NonNull AnalyzerFlutterApi api) { - this.api = api; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerHostApiImpl.java deleted file mode 100644 index fa788a244f9..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerHostApiImpl.java +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.ImageProxy; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.AnalyzerHostApi; - -/** - * Host API implementation for {@link ImageAnalysis.Analyzer}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class AnalyzerHostApiImpl implements AnalyzerHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private final AnalyzerProxy proxy; - - /** Proxy for constructor of {@link ImageAnalysis.Analyzer}. */ - @VisibleForTesting - public static class AnalyzerProxy { - - /** Creates an instance of {@link AnalyzerImpl}. */ - @NonNull - public AnalyzerImpl create( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - return new AnalyzerImpl(binaryMessenger, instanceManager); - } - } - - /** - * Implementation of {@link ImageAnalysis.Analyzer} that passes arguments of callback methods to - * Dart. - */ - public static class AnalyzerImpl implements ImageAnalysis.Analyzer { - private BinaryMessenger binaryMessenger; - private InstanceManager instanceManager; - private AnalyzerFlutterApiImpl api; - - @VisibleForTesting @NonNull public ImageProxyFlutterApiImpl imageProxyApi; - - /** - * Constructs an instance of {@link ImageAnalysis.Analyzer} that passes arguments of callbacks - * methods to Dart. - */ - public AnalyzerImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(); - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - api = new AnalyzerFlutterApiImpl(binaryMessenger, instanceManager); - imageProxyApi = new ImageProxyFlutterApiImpl(binaryMessenger, instanceManager); - } - - @Override - public void analyze(@NonNull ImageProxy imageProxy) { - Long imageFormat = Long.valueOf(imageProxy.getFormat()); - Long imageHeight = Long.valueOf(imageProxy.getHeight()); - Long imageWidth = Long.valueOf(imageProxy.getWidth()); - imageProxyApi.create(imageProxy, imageFormat, imageHeight, imageWidth, reply -> {}); - - api.analyze(this, imageProxy, reply -> {}); - } - - /** - * Flutter API used to send messages back to Dart. - * - *

This is only visible for testing. - */ - @VisibleForTesting - void setApi(@NonNull AnalyzerFlutterApiImpl api) { - this.api = api; - } - } - - /** - * Constructs a {@link AnalyzerHostApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public AnalyzerHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this(binaryMessenger, instanceManager, new AnalyzerProxy()); - } - - /** - * Constructs a {@link AnalyzerHostApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor of {@link ImageAnalysis.Analyzer} - */ - @VisibleForTesting - AnalyzerHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull AnalyzerProxy proxy) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - /** - * Creates an {@link AnalyzerProxy} that represents an {@link ImageAnalysis.Analyzer} instance - * with the specified identifier. - */ - @Override - public void create(@NonNull Long identifier) { - instanceManager.addDartCreatedInstance( - proxy.create(binaryMessenger, instanceManager), identifier); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyHostApiImpl.java deleted file mode 100644 index 7775ffe598d..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyHostApiImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.AspectRatioStrategyHostApi; - -/** - * Host API implementation for {@link AspectRatioStrategy}. - * - *

This class handles instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class AspectRatioStrategyHostApiImpl implements AspectRatioStrategyHostApi { - private final InstanceManager instanceManager; - private final AspectRatioStrategyProxy proxy; - - /** Proxy for constructor of {@link AspectRatioStrategy}. */ - @VisibleForTesting - public static class AspectRatioStrategyProxy { - /** Creates an instance of {@link AspectRatioStrategy}. */ - @NonNull - public AspectRatioStrategy create( - @NonNull Long preferredAspectRatio, @NonNull Long fallbackRule) { - return new AspectRatioStrategy(preferredAspectRatio.intValue(), fallbackRule.intValue()); - } - } - - /** - * Constructs an {@link AspectRatioStrategyHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public AspectRatioStrategyHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new AspectRatioStrategyProxy()); - } - - /** - * Constructs an {@link AspectRatioStrategyHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor of {@link AspectRatioStrategy} - */ - @VisibleForTesting - AspectRatioStrategyHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull AspectRatioStrategyProxy proxy) { - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - /** - * Creates an {@link AspectRatioStrategy} instance with the preferred aspect ratio and fallback - * rule specified. - */ - @Override - public void create( - @NonNull Long identifier, @NonNull Long preferredAspectRatio, @NonNull Long fallbackRule) { - instanceManager.addDartCreatedInstance( - proxy.create(preferredAspectRatio, fallbackRule), identifier); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlHostApiImpl.java deleted file mode 100644 index 300310d6c9d..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlHostApiImpl.java +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.content.Context; -import androidx.annotation.NonNull; -import androidx.annotation.OptIn; -import androidx.annotation.VisibleForTesting; -import androidx.camera.camera2.interop.Camera2CameraControl; -import androidx.camera.camera2.interop.CaptureRequestOptions; -import androidx.camera.camera2.interop.ExperimentalCamera2Interop; -import androidx.camera.core.CameraControl; -import androidx.core.content.ContextCompat; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.Camera2CameraControlHostApi; -import java.util.Objects; - -/** - * Host API implementation for {@link Camera2CameraControl}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class Camera2CameraControlHostApiImpl implements Camera2CameraControlHostApi { - private final InstanceManager instanceManager; - private final Camera2CameraControlProxy proxy; - - /** Proxy for constructor and methods of {@link Camera2CameraControl}. */ - @VisibleForTesting - public static class Camera2CameraControlProxy { - Context context; - - /** - * Creates an instance of {@link Camera2CameraControl} derived from specified {@link - * CameraControl} instance. - */ - @OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class) - public @NonNull Camera2CameraControl create(@NonNull CameraControl cameraControl) { - return Camera2CameraControl.from(cameraControl); - } - - /** - * Adds a {@link CaptureRequestOptions} to update the capture session with the options it - * contains. - */ - @OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class) - public void addCaptureRequestOptions( - @NonNull Camera2CameraControl camera2CameraControl, - @NonNull CaptureRequestOptions bundle, - @NonNull GeneratedCameraXLibrary.Result result) { - if (context == null) { - throw new IllegalStateException("Context must be set to add capture request options."); - } - - ListenableFuture addCaptureRequestOptionsFuture = - camera2CameraControl.addCaptureRequestOptions(bundle); - - Futures.addCallback( - addCaptureRequestOptionsFuture, - new FutureCallback() { - public void onSuccess(Void voidResult) { - result.success(null); - } - - public void onFailure(Throwable t) { - result.error(t); - } - }, - ContextCompat.getMainExecutor(context)); - } - } - - /** - * Constructs a {@link Camera2CameraControlHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param context {@link Context} used to retrieve {@code Executor} - */ - public Camera2CameraControlHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull Context context) { - this(instanceManager, new Camera2CameraControlProxy(), context); - } - - /** - * Constructs a {@link Camera2CameraControlHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor and methods of {@link Camera2CameraControl} - * @param context {@link Context} used to retrieve {@code Executor} - */ - @VisibleForTesting - Camera2CameraControlHostApiImpl( - @NonNull InstanceManager instanceManager, - @NonNull Camera2CameraControlProxy proxy, - @NonNull Context context) { - this.instanceManager = instanceManager; - this.proxy = proxy; - proxy.context = context; - } - - /** - * Sets the context that the {@code Camera2CameraControl} will use to listen for the result of - * setting capture request options. - * - *

If using the camera plugin in an add-to-app context, ensure that this is called anytime that - * the context changes. - */ - public void setContext(@NonNull Context context) { - this.proxy.context = context; - } - - @Override - public void create(@NonNull Long identifier, @NonNull Long cameraControlIdentifier) { - instanceManager.addDartCreatedInstance( - proxy.create(Objects.requireNonNull(instanceManager.getInstance(cameraControlIdentifier))), - identifier); - } - - @Override - public void addCaptureRequestOptions( - @NonNull Long identifier, - @NonNull Long captureRequestOptionsIdentifier, - @NonNull GeneratedCameraXLibrary.Result result) { - proxy.addCaptureRequestOptions( - getCamera2CameraControlInstance(identifier), - Objects.requireNonNull(instanceManager.getInstance(captureRequestOptionsIdentifier)), - result); - } - - /** - * Retrieves the {@link Camera2CameraControl} instance associated with the specified {@code - * identifier}. - */ - @OptIn(markerClass = ExperimentalCamera2Interop.class) - private Camera2CameraControl getCamera2CameraControlInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoFlutterApiImpl.java deleted file mode 100644 index 58769ab400f..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoFlutterApiImpl.java +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.OptIn; -import androidx.camera.camera2.interop.Camera2CameraInfo; -import androidx.camera.camera2.interop.ExperimentalCamera2Interop; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.Camera2CameraInfoFlutterApi; - -public class Camera2CameraInfoFlutterApiImpl extends Camera2CameraInfoFlutterApi { - private final InstanceManager instanceManager; - - public Camera2CameraInfoFlutterApiImpl( - @Nullable BinaryMessenger binaryMessenger, @Nullable InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - @OptIn(markerClass = ExperimentalCamera2Interop.class) - void create(@NonNull Camera2CameraInfo camera2CameraInfo, @Nullable Reply reply) { - if (!instanceManager.containsInstance(camera2CameraInfo)) { - create(instanceManager.addHostCreatedInstance(camera2CameraInfo), reply); - } - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoHostApiImpl.java deleted file mode 100644 index 983e9e0c674..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoHostApiImpl.java +++ /dev/null @@ -1,123 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.content.Context; -import android.hardware.camera2.CameraCharacteristics; -import androidx.annotation.NonNull; -import androidx.annotation.OptIn; -import androidx.annotation.VisibleForTesting; -import androidx.camera.camera2.interop.Camera2CameraInfo; -import androidx.camera.camera2.interop.ExperimentalCamera2Interop; -import androidx.camera.core.CameraInfo; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.Camera2CameraInfoHostApi; -import java.util.Objects; - -/** - * Host API implementation for {@link Camera2CameraInfo}. - * - *

This class handles instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class Camera2CameraInfoHostApiImpl implements Camera2CameraInfoHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private final Camera2CameraInfoProxy proxy; - - /** Proxy for methods of {@link Camera2CameraInfo}. */ - @VisibleForTesting - @OptIn(markerClass = ExperimentalCamera2Interop.class) - public static class Camera2CameraInfoProxy { - - @NonNull - public Camera2CameraInfo createFrom(@NonNull CameraInfo cameraInfo) { - return Camera2CameraInfo.from(cameraInfo); - } - - @NonNull - public Integer getSupportedHardwareLevel(@NonNull Camera2CameraInfo camera2CameraInfo) { - return camera2CameraInfo.getCameraCharacteristic( - CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL); - } - - @NonNull - public String getCameraId(@NonNull Camera2CameraInfo camera2CameraInfo) { - return camera2CameraInfo.getCameraId(); - } - - @NonNull - public Long getSensorOrientation(@NonNull Camera2CameraInfo camera2CameraInfo) { - return Long.valueOf( - camera2CameraInfo.getCameraCharacteristic(CameraCharacteristics.SENSOR_ORIENTATION)); - } - } - - /** - * Constructs an {@link Camera2CameraInfoHostApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param context {@link Context} used to retrieve {@code Executor} - */ - public Camera2CameraInfoHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this(binaryMessenger, instanceManager, new Camera2CameraInfoProxy()); - } - - /** - * Constructs an {@link Camera2CameraInfoHostApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for methods of {@link Camera2CameraInfo} - */ - @VisibleForTesting - Camera2CameraInfoHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull Camera2CameraInfoProxy proxy) { - this.instanceManager = instanceManager; - this.binaryMessenger = binaryMessenger; - this.proxy = proxy; - } - - @OptIn(markerClass = ExperimentalCamera2Interop.class) - @Override - @NonNull - public Long createFrom(@NonNull Long cameraInfoIdentifier) { - final CameraInfo cameraInfo = - Objects.requireNonNull(instanceManager.getInstance(cameraInfoIdentifier)); - final Camera2CameraInfo camera2CameraInfo = proxy.createFrom(cameraInfo); - final Camera2CameraInfoFlutterApiImpl flutterApi = - new Camera2CameraInfoFlutterApiImpl(binaryMessenger, instanceManager); - - flutterApi.create(camera2CameraInfo, reply -> {}); - return instanceManager.getIdentifierForStrongReference(camera2CameraInfo); - } - - @Override - @NonNull - public Long getSupportedHardwareLevel(@NonNull Long identifier) { - return Long.valueOf(proxy.getSupportedHardwareLevel(getCamera2CameraInfoInstance(identifier))); - } - - @Override - @NonNull - public String getCameraId(@NonNull Long identifier) { - return proxy.getCameraId(getCamera2CameraInfoInstance(identifier)); - } - - @Override - @NonNull - public Long getSensorOrientation(@NonNull Long identifier) { - return proxy.getSensorOrientation(getCamera2CameraInfoInstance(identifier)); - } - - @OptIn(markerClass = ExperimentalCamera2Interop.class) - private Camera2CameraInfo getCamera2CameraInfoInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlFlutterApiImpl.java deleted file mode 100644 index 1b616180ec7..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlFlutterApiImpl.java +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.core.CameraControl; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraControlFlutterApi; - -public class CameraControlFlutterApiImpl extends CameraControlFlutterApi { - private final @NonNull InstanceManager instanceManager; - - public CameraControlFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - /** - * Creates a {@link CameraControl} instance in Dart. {@code reply} is not used so it can be empty. - */ - void create(CameraControl cameraControl, Reply reply) { - if (!instanceManager.containsInstance(cameraControl)) { - create(instanceManager.addHostCreatedInstance(cameraControl), reply); - } - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java deleted file mode 100644 index ba4318a8927..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlHostApiImpl.java +++ /dev/null @@ -1,284 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.content.Context; -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.CameraControl; -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.FocusMeteringResult; -import androidx.core.content.ContextCompat; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraControlHostApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.Result; -import java.util.Objects; - -/** - * Host API implementation for {@link CameraControl}. - * - *

This class handles instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class CameraControlHostApiImpl implements CameraControlHostApi { - private final InstanceManager instanceManager; - private final CameraControlProxy proxy; - - /** Proxy for methods of {@link CameraControl}. */ - @VisibleForTesting - public static class CameraControlProxy { - Context context; - BinaryMessenger binaryMessenger; - InstanceManager instanceManager; - - /** Enables or disables the torch of the specified {@link CameraControl} instance. */ - @NonNull - public void enableTorch( - @NonNull CameraControl cameraControl, - @NonNull Boolean torch, - @NonNull GeneratedCameraXLibrary.Result result) { - if (context == null) { - throw new IllegalStateException("Context must be set to enable the torch."); - } - - ListenableFuture enableTorchFuture = cameraControl.enableTorch(torch); - - Futures.addCallback( - enableTorchFuture, - new FutureCallback() { - public void onSuccess(Void voidResult) { - result.success(null); - } - - public void onFailure(Throwable t) { - result.error(t); - } - }, - ContextCompat.getMainExecutor(context)); - } - - /** Sets the zoom ratio of the specified {@link CameraControl} instance. */ - @NonNull - public void setZoomRatio( - @NonNull CameraControl cameraControl, - @NonNull Double ratio, - @NonNull GeneratedCameraXLibrary.Result result) { - if (context == null) { - throw new IllegalStateException("Context must be set to set zoom ratio."); - } - - float ratioAsFloat = ratio.floatValue(); - ListenableFuture setZoomRatioFuture = cameraControl.setZoomRatio(ratioAsFloat); - - Futures.addCallback( - setZoomRatioFuture, - new FutureCallback() { - public void onSuccess(Void voidResult) { - result.success(null); - } - - public void onFailure(Throwable t) { - if (t instanceof CameraControl.OperationCanceledException) { - // Operation was canceled due to camera being closed or a new request was submitted, which - // is not actionable and should not block a new value from potentially being submitted. - result.success(null); - return; - } - result.error(t); - } - }, - ContextCompat.getMainExecutor(context)); - } - - /** - * Starts a focus and metering action configured by the {@code FocusMeteringAction}. - * - *

Will trigger an auto focus action and enable auto focus/auto exposure/auto white balance - * metering regions. - * - *

Will send a {@link GeneratedCameraXLibrary.Result} with a null result if operation was - * canceled. - */ - public void startFocusAndMetering( - @NonNull CameraControl cameraControl, - @NonNull FocusMeteringAction focusMeteringAction, - @NonNull GeneratedCameraXLibrary.Result result) { - if (context == null) { - throw new IllegalStateException("Context must be set to set zoom ratio."); - } - - ListenableFuture focusMeteringResultFuture = - cameraControl.startFocusAndMetering(focusMeteringAction); - - Futures.addCallback( - focusMeteringResultFuture, - new FutureCallback() { - public void onSuccess(FocusMeteringResult focusMeteringResult) { - final FocusMeteringResultFlutterApiImpl flutterApi = - new FocusMeteringResultFlutterApiImpl(binaryMessenger, instanceManager); - flutterApi.create(focusMeteringResult, reply -> {}); - result.success(instanceManager.getIdentifierForStrongReference(focusMeteringResult)); - } - - public void onFailure(Throwable t) { - if (t instanceof CameraControl.OperationCanceledException) { - // Operation was canceled due to camera being closed or a new request was submitted, which - // is not actionable and should not block a new value from potentially being submitted. - result.success(null); - return; - } - result.error(t); - } - }, - ContextCompat.getMainExecutor(context)); - } - - /** - * Cancels current {@code FocusMeteringAction} and clears auto focus/auto exposure/auto white - * balance regions. - */ - public void cancelFocusAndMetering( - @NonNull CameraControl cameraControl, @NonNull Result result) { - ListenableFuture cancelFocusAndMeteringFuture = cameraControl.cancelFocusAndMetering(); - - Futures.addCallback( - cancelFocusAndMeteringFuture, - new FutureCallback() { - public void onSuccess(Void voidResult) { - result.success(null); - } - - public void onFailure(Throwable t) { - result.error(t); - } - }, - ContextCompat.getMainExecutor(context)); - } - - /** - * Sets the exposure compensation index for the specified {@link CameraControl} instance and - * returns the new target exposure value. - * - *

The exposure compensation value set on the camera must be within the range of {@code - * ExposureState#getExposureCompensationRange()} for the current {@code ExposureState} for the - * call to succeed. - * - *

Will send a {@link GeneratedCameraXLibrary.Result} with a null result if operation was - * canceled. - */ - public void setExposureCompensationIndex( - @NonNull CameraControl cameraControl, @NonNull Long index, @NonNull Result result) { - ListenableFuture setExposureCompensationIndexFuture = - cameraControl.setExposureCompensationIndex(index.intValue()); - - Futures.addCallback( - setExposureCompensationIndexFuture, - new FutureCallback() { - public void onSuccess(Integer integerResult) { - result.success(integerResult.longValue()); - } - - public void onFailure(Throwable t) { - if (t instanceof CameraControl.OperationCanceledException) { - // Operation was canceled due to camera being closed or a new request was submitted, which - // is not actionable and should not block a new value from potentially being submitted. - result.success(null); - return; - } - result.error(t); - } - }, - ContextCompat.getMainExecutor(context)); - } - } - - /** - * Constructs an {@link CameraControlHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param context {@link Context} used to retrieve {@code Executor} - */ - public CameraControlHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull Context context) { - this(binaryMessenger, instanceManager, new CameraControlProxy(), context); - } - - /** - * Constructs an {@link CameraControlHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for methods of {@link CameraControl} - * @param context {@link Context} used to retrieve {@code Executor} - */ - @VisibleForTesting - CameraControlHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull CameraControlProxy proxy, - @NonNull Context context) { - this.instanceManager = instanceManager; - this.proxy = proxy; - proxy.context = context; - // proxy.startFocusAndMetering needs to access these to create a FocusMeteringResult when it becomes available: - proxy.instanceManager = instanceManager; - proxy.binaryMessenger = binaryMessenger; - } - - /** - * Sets the context that the {@code CameraControl} will use to enable/disable torch mode and set - * the zoom ratio. - * - *

If using the camera plugin in an add-to-app context, ensure that this is called anytime that - * the context changes. - */ - public void setContext(@NonNull Context context) { - this.proxy.context = context; - } - - @Override - public void enableTorch( - @NonNull Long identifier, - @NonNull Boolean torch, - @NonNull GeneratedCameraXLibrary.Result result) { - proxy.enableTorch(getCameraControlInstance(identifier), torch, result); - } - - @Override - public void setZoomRatio( - @NonNull Long identifier, - @NonNull Double ratio, - @NonNull GeneratedCameraXLibrary.Result result) { - proxy.setZoomRatio(getCameraControlInstance(identifier), ratio, result); - } - - @Override - public void startFocusAndMetering( - @NonNull Long identifier, @NonNull Long focusMeteringActionId, @NonNull Result result) { - proxy.startFocusAndMetering( - getCameraControlInstance(identifier), - Objects.requireNonNull(instanceManager.getInstance(focusMeteringActionId)), - result); - } - - @Override - public void cancelFocusAndMetering(@NonNull Long identifier, @NonNull Result result) { - proxy.cancelFocusAndMetering(getCameraControlInstance(identifier), result); - } - - @Override - public void setExposureCompensationIndex( - @NonNull Long identifier, @NonNull Long index, @NonNull Result result) { - proxy.setExposureCompensationIndex(getCameraControlInstance(identifier), index, result); - } - - private CameraControl getCameraControlInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraFlutterApiImpl.java deleted file mode 100644 index cfc40be1819..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraFlutterApiImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.core.Camera; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraFlutterApi; - -public class CameraFlutterApiImpl extends CameraFlutterApi { - private final @NonNull InstanceManager instanceManager; - - public CameraFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - void create(Camera camera, Reply reply) { - create(instanceManager.addHostCreatedInstance(camera), reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraHostApiImpl.java deleted file mode 100644 index 603cc62edf8..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraHostApiImpl.java +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.core.Camera; -import androidx.camera.core.CameraControl; -import androidx.camera.core.CameraInfo; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraHostApi; -import java.util.Objects; - -public class CameraHostApiImpl implements CameraHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - - public CameraHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - } - - /** - * Retrieves the {@link CameraInfo} instance that contains information about the {@link Camera} - * instance with the specified identifier. - */ - @Override - @NonNull - public Long getCameraInfo(@NonNull Long identifier) { - Camera camera = getCameraInstance(identifier); - CameraInfo cameraInfo = camera.getCameraInfo(); - - CameraInfoFlutterApiImpl cameraInfoFlutterApiImpl = - new CameraInfoFlutterApiImpl(binaryMessenger, instanceManager); - cameraInfoFlutterApiImpl.create(cameraInfo, reply -> {}); - return instanceManager.getIdentifierForStrongReference(cameraInfo); - } - - /** - * Retrieves the {@link CameraControl} instance that provides access to asynchronous operations - * like zoom and focus & metering on the {@link Camera} instance with the specified identifier. - */ - @Override - @NonNull - public Long getCameraControl(@NonNull Long identifier) { - Camera camera = getCameraInstance(identifier); - CameraControl cameraControl = camera.getCameraControl(); - - CameraControlFlutterApiImpl cameraControlFlutterApiImpl = - new CameraControlFlutterApiImpl(binaryMessenger, instanceManager); - cameraControlFlutterApiImpl.create(cameraControl, reply -> {}); - return instanceManager.getIdentifierForStrongReference(cameraControl); - } - - /** Retrieives the {@link Camera} instance associated with the specified {@code identifier}. */ - private Camera getCameraInstance(@NonNull Long identifier) { - return (Camera) Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java deleted file mode 100644 index 8b0e1ff6b3e..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoFlutterApiImpl.java +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.core.CameraInfo; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraInfoFlutterApi; - -public class CameraInfoFlutterApiImpl extends CameraInfoFlutterApi { - private final @NonNull InstanceManager instanceManager; - - public CameraInfoFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - /** - * Creates a {@link CameraInfo} instance in Dart. {@code reply} is not used so it can be empty. - */ - void create(CameraInfo cameraInfo, Reply reply) { - if (!instanceManager.containsInstance(cameraInfo)) { - create(instanceManager.addHostCreatedInstance(cameraInfo), reply); - } - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java deleted file mode 100644 index 83eb359cdb5..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoHostApiImpl.java +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.CameraInfo; -import androidx.camera.core.CameraState; -import androidx.camera.core.ExposureState; -import androidx.camera.core.ZoomState; -import androidx.lifecycle.LiveData; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraInfoHostApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedType; -import java.util.Objects; - -public class CameraInfoHostApiImpl implements CameraInfoHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - - @VisibleForTesting public @NonNull LiveDataFlutterApiWrapper liveDataFlutterApiWrapper; - - public CameraInfoHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.liveDataFlutterApiWrapper = - new LiveDataFlutterApiWrapper(binaryMessenger, instanceManager); - } - - /** - * Retrieves the sensor rotation degrees of the {@link androidx.camera.core.Camera} that is - * represented by the {@link CameraInfo} with the specified identifier. - */ - @Override - @NonNull - public Long getSensorRotationDegrees(@NonNull Long identifier) { - CameraInfo cameraInfo = - (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(identifier)); - return Long.valueOf(cameraInfo.getSensorRotationDegrees()); - } - - /** - * Retrieves the {@link LiveData} of the {@link CameraState} that is tied to the {@link - * androidx.camera.core.Camera} that is represented by the {@link CameraInfo} with the specified - * identifier. - */ - @Override - @NonNull - public Long getCameraState(@NonNull Long identifier) { - CameraInfo cameraInfo = - (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(identifier)); - LiveData liveCameraState = cameraInfo.getCameraState(); - liveDataFlutterApiWrapper.create( - liveCameraState, LiveDataSupportedType.CAMERA_STATE, reply -> {}); - return instanceManager.getIdentifierForStrongReference(liveCameraState); - } - - /** - * Retrieves the {@link ExposureState} of the {@link CameraInfo} with the specified identifier. - */ - @Override - @NonNull - public Long getExposureState(@NonNull Long identifier) { - CameraInfo cameraInfo = - (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(identifier)); - ExposureState exposureState = cameraInfo.getExposureState(); - - ExposureStateFlutterApiImpl exposureStateFlutterApiImpl = - new ExposureStateFlutterApiImpl(binaryMessenger, instanceManager); - exposureStateFlutterApiImpl.create(exposureState, result -> {}); - - return instanceManager.getIdentifierForStrongReference(exposureState); - } - - /** - * Retrieves the {@link LiveData} of the {@link ZoomState} of the {@link CameraInfo} with the - * specified identifier. - */ - @NonNull - @Override - public Long getZoomState(@NonNull Long identifier) { - CameraInfo cameraInfo = - (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(identifier)); - LiveData zoomState = cameraInfo.getZoomState(); - - LiveDataFlutterApiWrapper liveDataFlutterApiWrapper = - new LiveDataFlutterApiWrapper(binaryMessenger, instanceManager); - liveDataFlutterApiWrapper.create(zoomState, LiveDataSupportedType.ZOOM_STATE, reply -> {}); - - return instanceManager.getIdentifierForStrongReference(zoomState); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorFlutterApiImpl.java deleted file mode 100644 index a0b30fa2541..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorFlutterApiImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.core.CameraSelector; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraSelectorFlutterApi; - -public class CameraSelectorFlutterApiImpl extends CameraSelectorFlutterApi { - private final InstanceManager instanceManager; - - public CameraSelectorFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - void create(CameraSelector cameraSelector, Long lensFacing, Reply reply) { - create(instanceManager.addHostCreatedInstance(cameraSelector), lensFacing, reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorHostApiImpl.java deleted file mode 100644 index bbd747342de..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorHostApiImpl.java +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.CameraInfo; -import androidx.camera.core.CameraSelector; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraSelectorHostApi; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -public class CameraSelectorHostApiImpl implements CameraSelectorHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - - @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); - - public CameraSelectorHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - } - - @Override - public void create(@NonNull Long identifier, @Nullable Long lensFacing) { - CameraSelector.Builder cameraSelectorBuilder = cameraXProxy.createCameraSelectorBuilder(); - if (lensFacing != null) { - cameraSelectorBuilder = cameraSelectorBuilder.requireLensFacing(lensFacing.intValue()); - } - instanceManager.addDartCreatedInstance(cameraSelectorBuilder.build(), identifier); - } - - @Override - public @NonNull List filter(@NonNull Long identifier, @NonNull List cameraInfoIds) { - CameraSelector cameraSelector = - (CameraSelector) Objects.requireNonNull(instanceManager.getInstance(identifier)); - List cameraInfosForFilter = new ArrayList<>(); - - for (Number cameraInfoAsNumber : cameraInfoIds) { - Long cameraInfoId = cameraInfoAsNumber.longValue(); - - CameraInfo cameraInfo = - (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(cameraInfoId)); - cameraInfosForFilter.add(cameraInfo); - } - - List filteredCameraInfos = cameraSelector.filter(cameraInfosForFilter); - List filteredCameraInfosIds = new ArrayList<>(); - - for (CameraInfo cameraInfo : filteredCameraInfos) { - Long filteredCameraInfoId = instanceManager.getIdentifierForStrongReference(cameraInfo); - filteredCameraInfosIds.add(filteredCameraInfoId); - } - - return filteredCameraInfosIds; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateErrorFlutterApiWrapper.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateErrorFlutterApiWrapper.java deleted file mode 100644 index f4c8d6ee4af..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateErrorFlutterApiWrapper.java +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.CameraState; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateErrorFlutterApi; - -/** - * Flutter API implementation for {@link CameraStateError}. - * - *

This class may handle adding native instances that are attached to a Dart instance or passing - * arguments of callbacks methods to a Dart instance. - */ -public class CameraStateErrorFlutterApiWrapper { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private CameraStateErrorFlutterApi cameraStateErrorFlutterApi; - - /** - * Constructs a {@link CameraStateErrorFlutterApiWrapper}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public CameraStateErrorFlutterApiWrapper( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - cameraStateErrorFlutterApi = new CameraStateErrorFlutterApi(binaryMessenger); - } - - /** - * Stores the {@link CameraStateError} instance and notifies Dart to create and store a new {@link - * CameraStateError} instance that is attached to this one. If {@code instance} has already been - * added, this method does nothing. - */ - public void create( - @NonNull CameraState.StateError instance, - @NonNull Long code, - @NonNull CameraStateErrorFlutterApi.Reply callback) { - if (!instanceManager.containsInstance(instance)) { - cameraStateErrorFlutterApi.create( - instanceManager.addHostCreatedInstance(instance), code, callback); - } - } - - /** Sets the Flutter API used to send messages to Dart. */ - @VisibleForTesting - void setApi(@NonNull CameraStateErrorFlutterApi api) { - this.cameraStateErrorFlutterApi = api; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index f7e1bd8f29b..1c4d068f36b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -50,7 +50,7 @@ class CameraXError ( val code: String, override val message: String? = null, val details: Any? = null -) : Throwable() +) : RuntimeException() /** * Maintains instances used to communicate with the corresponding objects in Dart. * diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java index e749940200a..c7e9dfec5fd 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java @@ -35,15 +35,6 @@ public class CameraXProxy { return new CameraPermissionsManager(); } - /** Creates an instance of the {@link DeviceOrientationManager}. */ - public @NonNull DeviceOrientationManager createDeviceOrientationManager( - @NonNull Activity activity, - @NonNull Boolean isFrontFacing, - int sensorOrientation, - @NonNull DeviceOrientationManager.DeviceOrientationChangeCallback callback) { - return new DeviceOrientationManager(activity, isFrontFacing, sensorOrientation, callback); - } - /** Creates a builder for an instance of the {@link Preview} use case. */ public @NonNull Preview.Builder createPreviewBuilder() { return new Preview.Builder(); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsHostApiImpl.java deleted file mode 100644 index f76dd5422e7..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsHostApiImpl.java +++ /dev/null @@ -1,118 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CaptureRequest; -import androidx.annotation.NonNull; -import androidx.annotation.OptIn; -import androidx.annotation.VisibleForTesting; -import androidx.camera.camera2.interop.CaptureRequestOptions; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CaptureRequestKeySupportedType; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CaptureRequestOptionsHostApi; -import java.util.HashMap; -import java.util.Map; - -/** - * Host API implementation for {@link CaptureRequestOptions}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class CaptureRequestOptionsHostApiImpl implements CaptureRequestOptionsHostApi { - private final InstanceManager instanceManager; - private final CaptureRequestOptionsProxy proxy; - - /** Proxy for constructor of {@link CaptureRequestOptions}. */ - @VisibleForTesting - public static class CaptureRequestOptionsProxy { - /** Creates an instance of {@link CaptureRequestOptions}. */ - // Suppression is safe because the type shared between the key and value pairs that - // represent capture request options is checked on the Dart side. - @SuppressWarnings("unchecked") - @OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class) - public @NonNull CaptureRequestOptions create( - @NonNull Map options) { - CaptureRequestOptions.Builder builder = getCaptureRequestOptionsBuilder(); - - for (Map.Entry option : options.entrySet()) { - CaptureRequestKeySupportedType optionKeyType = option.getKey(); - CaptureRequest.Key optionKey = getCaptureRequestKey(optionKeyType); - Object optionValue = option.getValue(); - - if (optionValue == null) { - builder.clearCaptureRequestOption(optionKey); - continue; - } - - switch (optionKeyType) { - case CONTROL_AE_LOCK: - builder.setCaptureRequestOption( - (CaptureRequest.Key) optionKey, (Boolean) optionValue); - break; - default: - throw new IllegalArgumentException( - "The capture request key " - + optionKeyType.toString() - + "is not currently supported by the plugin."); - } - } - - return builder.build(); - } - - private CaptureRequest.Key getCaptureRequestKey( - CaptureRequestKeySupportedType type) { - CaptureRequest.Key key; - switch (type) { - case CONTROL_AE_LOCK: - key = CaptureRequest.CONTROL_AE_LOCK; - break; - default: - throw new IllegalArgumentException( - "The capture request key is not currently supported by the plugin."); - } - return key; - } - - @VisibleForTesting - @OptIn(markerClass = androidx.camera.camera2.interop.ExperimentalCamera2Interop.class) - public @NonNull CaptureRequestOptions.Builder getCaptureRequestOptionsBuilder() { - return new CaptureRequestOptions.Builder(); - } - } - - /** - * Constructs a {@link CaptureRequestOptionsHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public CaptureRequestOptionsHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new CaptureRequestOptionsProxy()); - } - - /** - * Constructs a {@link CaptureRequestOptionsHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor of {@link CaptureRequestOptions} - */ - @VisibleForTesting - CaptureRequestOptionsHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull CaptureRequestOptionsProxy proxy) { - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - @Override - public void create(@NonNull Long identifier, @NonNull Map options) { - Map decodedOptions = - new HashMap(); - for (Map.Entry option : options.entrySet()) { - Integer index = ((Number) option.getKey()).intValue(); - decodedOptions.put(CaptureRequestKeySupportedType.values()[index], option.getValue()); - } - instanceManager.addDartCreatedInstance(proxy.create(decodedOptions), identifier); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java index 5706e4fda20..f326219c94f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java @@ -4,7 +4,6 @@ package io.flutter.plugins.camerax; -import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerFlutterApiImpl.java deleted file mode 100644 index e3e514cfd78..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerFlutterApiImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.DeviceOrientationManagerFlutterApi; - -public class DeviceOrientationManagerFlutterApiImpl extends DeviceOrientationManagerFlutterApi { - public DeviceOrientationManagerFlutterApiImpl(@NonNull BinaryMessenger binaryMessenger) { - super(binaryMessenger); - } - - public void sendDeviceOrientationChangedEvent( - @NonNull String orientation, @NonNull Reply reply) { - super.onDeviceOrientationChanged(orientation, reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerHostApiImpl.java deleted file mode 100644 index 6c3efd7fb1d..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerHostApiImpl.java +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.app.Activity; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.DeviceOrientationManagerHostApi; - -public class DeviceOrientationManagerHostApiImpl implements DeviceOrientationManagerHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - - @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); - @VisibleForTesting public @Nullable DeviceOrientationManager deviceOrientationManager; - - @VisibleForTesting - public @NonNull DeviceOrientationManagerFlutterApiImpl deviceOrientationManagerFlutterApiImpl; - - private Activity activity; - private PermissionsRegistry permissionsRegistry; - - public DeviceOrientationManagerHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.deviceOrientationManagerFlutterApiImpl = - new DeviceOrientationManagerFlutterApiImpl(binaryMessenger); - } - - public void setActivity(@NonNull Activity activity) { - this.activity = activity; - } - - /** - * Starts listening for device orientation changes using an instance of a {@link - * DeviceOrientationManager}. - * - *

Whenever a change in device orientation is detected by the {@code DeviceOrientationManager}, - * the {@link SystemServicesFlutterApi} will be used to notify the Dart side. - */ - @Override - public void startListeningForDeviceOrientationChange( - @NonNull Boolean isFrontFacing, @NonNull Long sensorOrientation) { - if (activity == null) { - throw new IllegalStateException( - "Activity must be set to start listening for device orientation changes."); - } - - deviceOrientationManager = - cameraXProxy.createDeviceOrientationManager( - activity, - isFrontFacing, - sensorOrientation.intValue(), - (DeviceOrientationManager manager, DeviceOrientation newOrientation) -> { - deviceOrientationManagerFlutterApiImpl.sendDeviceOrientationChangedEvent( - serializeDeviceOrientation(newOrientation), reply -> {}); - }); - deviceOrientationManager.start(); - } - - /** Serializes {@code DeviceOrientation} into a String that the Dart side is able to recognize. */ - String serializeDeviceOrientation(DeviceOrientation orientation) { - return orientation.toString(); - } - - /** - * Tells the {@code deviceOrientationManager} to stop listening for orientation updates. - * - *

Has no effect if the {@code deviceOrientationManager} was never created to listen for device - * orientation updates. - */ - @Override - public void stopListeningForDeviceOrientationChange() { - if (deviceOrientationManager != null) { - deviceOrientationManager.stop(); - } - } - - /** - * Gets default capture rotation for CameraX {@code UseCase}s. - * - *

The default capture rotation for CameraX is the rotation of default {@code Display} at the - * time that a {@code UseCase} is bound, but the default {@code Display} does not change in this - * plugin, so this value is {@code Display}-agnostic. - * - *

See - * https://developer.android.com/reference/androidx/camera/core/ImageCapture#setTargetRotation(int) - * for instance for more information on how this default value is used. - */ - @Override - @NonNull - public Long getDefaultDisplayRotation() { - int defaultRotation; - try { - defaultRotation = deviceOrientationManager.getDefaultRotation(); - } catch (NullPointerException e) { - throw new IllegalStateException( - "startListeningForDeviceOrientationChange must first be called to subscribe to device orientation changes in order to retrieve default rotation."); - } - - return Long.valueOf(defaultRotation); - } - - /** Gets current UI orientation based on the current device orientation and rotation. */ - @Override - @NonNull - public String getUiOrientation() { - return serializeDeviceOrientation(deviceOrientationManager.getUIOrientation()); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateFlutterApiImpl.java deleted file mode 100644 index 1f31f603a8a..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateFlutterApiImpl.java +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Range; -import androidx.annotation.NonNull; -import androidx.camera.core.ExposureState; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ExposureCompensationRange; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ExposureStateFlutterApi; - -public class ExposureStateFlutterApiImpl extends ExposureStateFlutterApi { - private final InstanceManager instanceManager; - - public ExposureStateFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - /** - * Creates a {@link ExposureState} on the Dart side with its exposure compensation range that can - * be used to set the exposure compensation index and its exposure compensation step, the smallest - * step by which the exposure compensation can be changed. - */ - void create(@NonNull ExposureState exposureState, @NonNull Reply reply) { - if (instanceManager.containsInstance(exposureState)) { - return; - } - - final Range exposureCompensationRangeFromState = - exposureState.getExposureCompensationRange(); - ExposureCompensationRange exposureCompensationRange = - new ExposureCompensationRange.Builder() - .setMinCompensation(exposureCompensationRangeFromState.getLower().longValue()) - .setMaxCompensation(exposureCompensationRangeFromState.getUpper().longValue()) - .build(); - final Double exposureCompensationStep = - exposureState.getExposureCompensationStep().doubleValue(); - - create( - instanceManager.addHostCreatedInstance(exposureState), - exposureCompensationRange, - exposureCompensationStep, - reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyHostApiImpl.java deleted file mode 100644 index ae67ed711ca..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyHostApiImpl.java +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.video.FallbackStrategy; -import androidx.camera.video.Quality; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FallbackStrategyHostApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoResolutionFallbackRule; - -/** - * Host API implementation for {@link FallbackStrategy}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class FallbackStrategyHostApiImpl implements FallbackStrategyHostApi { - private final InstanceManager instanceManager; - - private final FallbackStrategyProxy proxy; - - /** Proxy for constructor of {@link FallbackStrategy}. */ - @VisibleForTesting - public static class FallbackStrategyProxy { - /** Creates an instance of {@link FallbackStrategy}. */ - public @NonNull FallbackStrategy create( - @NonNull VideoQuality videoQuality, @NonNull VideoResolutionFallbackRule fallbackRule) { - Quality quality = QualitySelectorHostApiImpl.getQualityFromVideoQuality(videoQuality); - - switch (fallbackRule) { - case HIGHER_QUALITY_OR_LOWER_THAN: - return FallbackStrategy.higherQualityOrLowerThan(quality); - case HIGHER_QUALITY_THAN: - return FallbackStrategy.higherQualityThan(quality); - case LOWER_QUALITY_OR_HIGHER_THAN: - return FallbackStrategy.lowerQualityOrHigherThan(quality); - case LOWER_QUALITY_THAN: - return FallbackStrategy.lowerQualityThan(quality); - } - throw new IllegalArgumentException( - "Specified fallback rule " + fallbackRule + " unrecognized."); - } - } - - /** - * Constructs a {@link FallbackStrategyHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public FallbackStrategyHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new FallbackStrategyProxy()); - } - - /** - * Constructs a {@link FallbackStrategyHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor of {@link FallbackStrategy} - */ - FallbackStrategyHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull FallbackStrategyProxy proxy) { - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - /** - * Creates a {@link FallbackStrategy} instance with the video quality and fallback rule specified. - */ - @Override - public void create( - @NonNull Long identifier, - @NonNull VideoQuality videoQuality, - @NonNull VideoResolutionFallbackRule fallbackRule) { - instanceManager.addDartCreatedInstance(proxy.create(videoQuality, fallbackRule), identifier); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java deleted file mode 100644 index dcda333c2e9..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionHostApiImpl.java +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.MeteringPoint; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringActionHostApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointInfo; -import java.util.ArrayList; -import java.util.List; - -/** - * Host API implementation for {@link FocusMeteringAction}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class FocusMeteringActionHostApiImpl implements FocusMeteringActionHostApi { - private final InstanceManager instanceManager; - - private final FocusMeteringActionProxy proxy; - - /** Proxy for constructor of {@link FocusMeteringAction}. */ - @VisibleForTesting - public static class FocusMeteringActionProxy { - /** Creates an instance of {@link FocusMeteringAction}. */ - public @NonNull FocusMeteringAction create( - @NonNull List meteringPoints, - @NonNull List meteringPointModes, - @Nullable Boolean disableAutoCancel) { - if (meteringPoints.size() >= 1 && meteringPoints.size() != meteringPointModes.size()) { - throw new IllegalArgumentException( - "One metering point must be specified and the number of specified metering points must match the number of specified metering point modes."); - } - - FocusMeteringAction.Builder focusMeteringActionBuilder; - - // Create builder to potentially add more MeteringPoints to. - MeteringPoint firstMeteringPoint = meteringPoints.get(0); - Integer firstMeteringPointMode = meteringPointModes.get(0); - if (firstMeteringPointMode == null) { - focusMeteringActionBuilder = getFocusMeteringActionBuilder(firstMeteringPoint); - } else { - focusMeteringActionBuilder = - getFocusMeteringActionBuilder(firstMeteringPoint, firstMeteringPointMode); - } - - // Add any additional metering points in order as specified by input lists. - for (int i = 1; i < meteringPoints.size(); i++) { - MeteringPoint meteringPoint = meteringPoints.get(i); - Integer meteringMode = meteringPointModes.get(i); - - if (meteringMode == null) { - focusMeteringActionBuilder.addPoint(meteringPoint); - } else { - focusMeteringActionBuilder.addPoint(meteringPoint, meteringMode); - } - } - - if (disableAutoCancel != null && disableAutoCancel == true) { - focusMeteringActionBuilder.disableAutoCancel(); - } - - return focusMeteringActionBuilder.build(); - } - - @VisibleForTesting - @NonNull - public FocusMeteringAction.Builder getFocusMeteringActionBuilder( - @NonNull MeteringPoint meteringPoint) { - return new FocusMeteringAction.Builder(meteringPoint); - } - - @VisibleForTesting - @NonNull - public FocusMeteringAction.Builder getFocusMeteringActionBuilder( - @NonNull MeteringPoint meteringPoint, int meteringMode) { - return new FocusMeteringAction.Builder(meteringPoint, meteringMode); - } - } - - /** - * Constructs a {@link FocusMeteringActionHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public FocusMeteringActionHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new FocusMeteringActionProxy()); - } - - /** - * Constructs a {@link FocusMeteringActionHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor of {@link FocusMeteringAction} - */ - FocusMeteringActionHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull FocusMeteringActionProxy proxy) { - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - @Override - public void create( - @NonNull Long identifier, - @NonNull List meteringPointInfos, - @Nullable Boolean disableAutoCancel) { - final List meteringPoints = new ArrayList(); - final List meteringPointModes = new ArrayList(); - for (MeteringPointInfo meteringPointInfo : meteringPointInfos) { - meteringPoints.add(instanceManager.getInstance(meteringPointInfo.getMeteringPointId())); - Long meteringPointMode = meteringPointInfo.getMeteringMode(); - meteringPointModes.add(meteringPointMode == null ? null : meteringPointMode.intValue()); - } - - instanceManager.addDartCreatedInstance( - proxy.create(meteringPoints, meteringPointModes, disableAutoCancel), identifier); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java deleted file mode 100644 index 3c0ed4c4482..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultFlutterApiImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.FocusMeteringResult; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi.Reply; - -/** - * Flutter API implementation for {@link FocusMeteringResult}. - * - *

This class may handle adding native instances that are attached to a Dart instance or passing - * arguments of callbacks methods to a Dart instance. - */ -public class FocusMeteringResultFlutterApiImpl { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private FocusMeteringResultFlutterApi focusMeteringResultFlutterApi; - - /** - * Constructs a {@link FocusMeteringResultFlutterApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public FocusMeteringResultFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - focusMeteringResultFlutterApi = new FocusMeteringResultFlutterApi(binaryMessenger); - } - - /** - * Stores the {@link FocusMeteringResult} instance and notifies Dart to create and store a new - * {@link FocusMeteringResult} instance that is attached to this one. If {@code instance} has - * already been added, this method does nothing. - */ - public void create(@NonNull FocusMeteringResult instance, @NonNull Reply callback) { - if (!instanceManager.containsInstance(instance)) { - focusMeteringResultFlutterApi.create( - instanceManager.addHostCreatedInstance(instance), callback); - } - } - - /** Sets the Flutter API used to send messages to Dart. */ - @VisibleForTesting - void setApi(@NonNull FocusMeteringResultFlutterApi api) { - this.focusMeteringResultFlutterApi = api; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java deleted file mode 100644 index de464034760..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultHostApiImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.FocusMeteringResult; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultHostApi; - -/** - * Host API implementation for {@link FocusMeteringResult}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class FocusMeteringResultHostApiImpl implements FocusMeteringResultHostApi { - private final InstanceManager instanceManager; - - private final FocusMeteringResultProxy proxy; - - /** Proxy for methods of {@link FocusMeteringResult}. */ - @VisibleForTesting - public static class FocusMeteringResultProxy { - - /** - * Returns whether or not auto focus was successful. - * - *

If the current camera does not support auto focus, it will return true. If auto focus is - * not requested, it will return false. - */ - @NonNull - public Boolean isFocusSuccessful(@NonNull FocusMeteringResult focusMeteringResult) { - return focusMeteringResult.isFocusSuccessful(); - } - } - - /** - * Constructs a {@link FocusMeteringResultHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public FocusMeteringResultHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new FocusMeteringResultProxy()); - } - - /** - * Constructs a {@link FocusMeteringResultHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for methods of {@link FocusMeteringResult} - */ - FocusMeteringResultHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull FocusMeteringResultProxy proxy) { - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - @Override - @NonNull - public Boolean isFocusSuccessful(@NonNull Long identifier) { - return proxy.isFocusSuccessful(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisHostApiImpl.java deleted file mode 100644 index 8774adc9def..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisHostApiImpl.java +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.content.Context; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.core.content.ContextCompat; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ImageAnalysisHostApi; -import java.util.Objects; - -public class ImageAnalysisHostApiImpl implements ImageAnalysisHostApi { - - private InstanceManager instanceManager; - private BinaryMessenger binaryMessenger; - @Nullable private Context context; - - @VisibleForTesting @NonNull public CameraXProxy cameraXProxy = new CameraXProxy(); - - public ImageAnalysisHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull Context context) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.context = context; - } - - /** - * Sets the context that will be used to run an {@link ImageAnalysis.Analyzer} on the main thread. - */ - public void setContext(@NonNull Context context) { - this.context = context; - } - - /** Creates an {@link ImageAnalysis} instance with the target resolution if specified. */ - @Override - public void create( - @NonNull Long identifier, @Nullable Long rotation, @Nullable Long resolutionSelectorId) { - ImageAnalysis.Builder imageAnalysisBuilder = cameraXProxy.createImageAnalysisBuilder(); - - if (rotation != null) { - imageAnalysisBuilder.setTargetRotation(rotation.intValue()); - } - if (resolutionSelectorId != null) { - ResolutionSelector resolutionSelector = - Objects.requireNonNull(instanceManager.getInstance(resolutionSelectorId)); - imageAnalysisBuilder.setResolutionSelector(resolutionSelector); - } - - ImageAnalysis imageAnalysis = imageAnalysisBuilder.build(); - instanceManager.addDartCreatedInstance(imageAnalysis, identifier); - } - - /** - * Sets {@link ImageAnalysis.Analyzer} instance with specified {@code analyzerIdentifier} on the - * {@link ImageAnalysis} instance with the specified {@code identifier} to receive and analyze - * images. - */ - @Override - public void setAnalyzer(@NonNull Long identifier, @NonNull Long analyzerIdentifier) { - if (context == null) { - throw new IllegalStateException("Context must be set to set an Analyzer."); - } - - // Shorten time interval used to define how often the instanceManager removes garbage - // collected weak references to native Android objects that it manages in order to - // account for the increased memory usage that comes from analyzing images with an - // ImageAnalysis.Analyzer. - instanceManager.setClearFinalizedWeakReferencesInterval( - InstanceManager.CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL_FOR_IMAGE_ANALYSIS); - instanceManager.releaseAllFinalizedInstances(); - - getImageAnalysisInstance(identifier) - .setAnalyzer( - ContextCompat.getMainExecutor(context), - Objects.requireNonNull(instanceManager.getInstance(analyzerIdentifier))); - } - - /** Clears any analyzer previously set on the specified {@link ImageAnalysis} instance. */ - @Override - public void clearAnalyzer(@NonNull Long identifier) { - ImageAnalysis imageAnalysis = - (ImageAnalysis) Objects.requireNonNull(instanceManager.getInstance(identifier)); - imageAnalysis.clearAnalyzer(); - - // Restore the default time interval used to define how often the instanceManager - // removes garbage collected weak references to native Android objects that it - // manages since analyzing images with an ImageAnalysis.Analyzer, which involves - // increased memory usage, is finished. - instanceManager.setClearFinalizedWeakReferencesInterval( - InstanceManager.DEFAULT_CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL); - } - - /** Dynamically sets the target rotation of the {@link ImageAnalysis}. */ - @Override - public void setTargetRotation(@NonNull Long identifier, @NonNull Long rotation) { - ImageAnalysis imageAnalysis = getImageAnalysisInstance(identifier); - imageAnalysis.setTargetRotation(rotation.intValue()); - } - - /** - * Retrieives the {@link ImageAnalysis} instance associated with the specified {@code identifier}. - */ - private ImageAnalysis getImageAnalysisInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureHostApiImpl.java deleted file mode 100644 index 8e2e6f7291a..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureHostApiImpl.java +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.content.Context; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.ImageCapture; -import androidx.camera.core.ImageCaptureException; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ImageCaptureHostApi; -import java.io.File; -import java.io.IOException; -import java.util.Objects; -import java.util.concurrent.Executors; - -public class ImageCaptureHostApiImpl implements ImageCaptureHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - - @Nullable private Context context; - private SystemServicesFlutterApiImpl systemServicesFlutterApiImpl; - - public static final String TEMPORARY_FILE_NAME = "CAP"; - public static final String JPG_FILE_TYPE = ".jpg"; - - @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); - - public ImageCaptureHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull Context context) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.context = context; - } - - /** - * Sets the context that the {@link ImageCapture} will use to find a location to save a captured - * image. - */ - public void setContext(@NonNull Context context) { - this.context = context; - } - - /** - * Creates an {@link ImageCapture} with the requested flash mode and target resolution if - * specified. - */ - @Override - public void create( - @NonNull Long identifier, - @Nullable Long rotation, - @Nullable Long flashMode, - @Nullable Long resolutionSelectorId) { - ImageCapture.Builder imageCaptureBuilder = cameraXProxy.createImageCaptureBuilder(); - - if (rotation != null) { - imageCaptureBuilder.setTargetRotation(rotation.intValue()); - } - if (flashMode != null) { - // This sets the requested flash mode, but may fail silently. - imageCaptureBuilder.setFlashMode(flashMode.intValue()); - } - if (resolutionSelectorId != null) { - ResolutionSelector resolutionSelector = - Objects.requireNonNull(instanceManager.getInstance(resolutionSelectorId)); - imageCaptureBuilder.setResolutionSelector(resolutionSelector); - } - - ImageCapture imageCapture = imageCaptureBuilder.build(); - instanceManager.addDartCreatedInstance(imageCapture, identifier); - } - - /** Sets the flash mode of the {@link ImageCapture} instance with the specified identifier. */ - @Override - public void setFlashMode(@NonNull Long identifier, @NonNull Long flashMode) { - ImageCapture imageCapture = getImageCaptureInstance(identifier); - imageCapture.setFlashMode(flashMode.intValue()); - } - - /** Captures a still image and uses the result to return its absolute path in memory. */ - @Override - public void takePicture( - @NonNull Long identifier, @NonNull GeneratedCameraXLibrary.Result result) { - if (context == null) { - throw new IllegalStateException("Context must be set to take picture."); - } - - ImageCapture imageCapture = getImageCaptureInstance(identifier); - final File outputDir = context.getCacheDir(); - File temporaryCaptureFile; - try { - temporaryCaptureFile = File.createTempFile(TEMPORARY_FILE_NAME, JPG_FILE_TYPE, outputDir); - } catch (IOException | SecurityException e) { - result.error(e); - return; - } - - ImageCapture.OutputFileOptions outputFileOptions = - cameraXProxy.createImageCaptureOutputFileOptions(temporaryCaptureFile); - ImageCapture.OnImageSavedCallback onImageSavedCallback = - createOnImageSavedCallback(temporaryCaptureFile, result); - - imageCapture.takePicture( - outputFileOptions, Executors.newSingleThreadExecutor(), onImageSavedCallback); - } - - /** Creates a callback used when saving a captured image. */ - @VisibleForTesting - public @NonNull ImageCapture.OnImageSavedCallback createOnImageSavedCallback( - @NonNull File file, @NonNull GeneratedCameraXLibrary.Result result) { - return new ImageCapture.OnImageSavedCallback() { - @Override - public void onImageSaved(@NonNull ImageCapture.OutputFileResults outputFileResults) { - result.success(file.getAbsolutePath()); - } - - @Override - public void onError(@NonNull ImageCaptureException exception) { - result.error(exception); - } - }; - } - - /** Dynamically sets the target rotation of the {@link ImageCapture}. */ - @Override - public void setTargetRotation(@NonNull Long identifier, @NonNull Long rotation) { - ImageCapture imageCapture = getImageCaptureInstance(identifier); - imageCapture.setTargetRotation(rotation.intValue()); - } - - /** - * Retrieves the {@link ImageCapture} instance associated with the specified {@code identifier}. - */ - private ImageCapture getImageCaptureInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyFlutterApiImpl.java deleted file mode 100644 index 0ad569973fd..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyFlutterApiImpl.java +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.ImageProxy; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ImageProxyFlutterApi; - -/** - * Flutter API implementation for {@link ImageProxy}. - * - *

This class may handle adding native instances that are attached to a Dart instance or passing - * arguments of callbacks methods to a Dart instance. - */ -public class ImageProxyFlutterApiImpl { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private ImageProxyFlutterApi api; - - /** - * Constructs a {@link ImageProxyFlutterApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public ImageProxyFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - api = new ImageProxyFlutterApi(binaryMessenger); - } - - /** - * Stores the {@link ImageProxy} instance and notifies Dart to create and store a new {@link - * ImageProxy} instance that is attached to this one. If {@code instance} has already been added, - * this method does nothing. - */ - public void create( - @NonNull ImageProxy instance, - @NonNull Long imageFormat, - @NonNull Long imageHeight, - @NonNull Long imageWidth, - @NonNull ImageProxyFlutterApi.Reply callback) { - if (!instanceManager.containsInstance(instance)) { - api.create( - instanceManager.addHostCreatedInstance(instance), - imageFormat, - imageHeight, - imageWidth, - callback); - } - } - - /** - * Sets the Flutter API used to send messages to Dart. - * - *

This is only visible for testing. - */ - @VisibleForTesting - void setApi(@NonNull ImageProxyFlutterApi api) { - this.api = api; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyHostApiImpl.java deleted file mode 100644 index ad34c6ed8d0..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyHostApiImpl.java +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.ImageProxy; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ImageProxyHostApi; -import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * Host API implementation for {@link ImageProxy}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class ImageProxyHostApiImpl implements ImageProxyHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - - @VisibleForTesting @NonNull public CameraXProxy cameraXProxy = new CameraXProxy(); - - @VisibleForTesting @NonNull public PlaneProxyFlutterApiImpl planeProxyFlutterApiImpl; - - /** - * Constructs a {@link ImageProxyHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public ImageProxyHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - planeProxyFlutterApiImpl = new PlaneProxyFlutterApiImpl(binaryMessenger, instanceManager); - } - - /** - * Returns the array of identifiers for planes of the {@link ImageProxy} instance with the - * specified identifier. - */ - @Override - @NonNull - public List getPlanes(@NonNull Long identifier) { - ImageProxy.PlaneProxy[] planes = getImageProxyInstance(identifier).getPlanes(); - List planeIdentifiers = new ArrayList(); - - for (ImageProxy.PlaneProxy plane : planes) { - ByteBuffer byteBuffer = plane.getBuffer(); - byte[] bytes = cameraXProxy.getBytesFromBuffer(byteBuffer.remaining()); - byteBuffer.get(bytes, 0, bytes.length); - Long pixelStride = Long.valueOf(plane.getPixelStride()); - Long rowStride = Long.valueOf(plane.getRowStride()); - - planeProxyFlutterApiImpl.create(plane, bytes, pixelStride, rowStride, reply -> {}); - planeIdentifiers.add(instanceManager.getIdentifierForStrongReference(plane)); - } - - return planeIdentifiers; - } - - /** - * Closes the {@link androidx.camera.core.Image} instance associated with the {@link ImageProxy} - * instance with the specified identifier. - */ - @Override - public void close(@NonNull Long identifier) { - getImageProxyInstance(identifier).close(); - } - - /** - * Retrieives the {@link ImageProxy} instance associated with the specified {@code identifier}. - */ - private ImageProxy getImageProxyInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/InstanceManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/InstanceManager.java deleted file mode 100644 index a8a25daa1fa..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/InstanceManager.java +++ /dev/null @@ -1,287 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.os.Handler; -import android.os.Looper; -import android.util.Log; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import java.lang.ref.ReferenceQueue; -import java.lang.ref.WeakReference; -import java.util.HashMap; -import java.util.WeakHashMap; - -/** - * Maintains instances used to communicate with the corresponding objects in Dart. - * - *

Objects stored in this container are represented by an object in Dart that is also stored in - * an InstanceManager with the same identifier. - * - *

When an instance is added with an identifier, either can be used to retrieve the other. - * - *

Added instances are added as a weak reference and a strong reference. When the strong - * reference is removed with `{@link #remove(long)}` and the weak reference is deallocated, the - * `finalizationListener` is made with the instance's identifier. However, if the strong reference - * is removed and then the identifier is retrieved with the intention to pass the identifier to Dart - * (e.g. calling {@link #getIdentifierForStrongReference(Object)}), the strong reference to the - * instance is recreated. The strong reference will then need to be removed manually again. - */ -@SuppressWarnings("unchecked") -public class InstanceManager { - // Identifiers are locked to a specific range to avoid collisions with objects - // created simultaneously from Dart. - // Host uses identifiers >= 2^16 and Dart is expected to use values n where, - // 0 <= n < 2^16. - private static final long MIN_HOST_CREATED_IDENTIFIER = 65536; - private static final String TAG = "InstanceManager"; - - /** - * The default time interval used to define how often this instance removes garbage collected weak - * references to native Android objects that this instance manages. - */ - public static final long DEFAULT_CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL = 3000; - - /** - * The time interval used to define how often this instance removes garbage collected weak - * references to native Android objects that this instance manages, specifically when an {@code - * ImageAnalysis.Analyzer} is set on an {@code ImageAnalysis} instance to support image streaming. - * - *

Streaming images with an {@code ImageAnalysis.Analyzer} involves increased memory usage, so - * this interval, which is lower than the default {@link - * DEFAULT_CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL} interval, accommodates this fact. - */ - public static final long CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL_FOR_IMAGE_ANALYSIS = 1000; - - /** Interface for listening when a weak reference of an instance is removed from the manager. */ - public interface FinalizationListener { - void onFinalize(long identifier); - } - - private final WeakHashMap identifiers = new WeakHashMap<>(); - private final HashMap> weakInstances = new HashMap<>(); - private final HashMap strongInstances = new HashMap<>(); - - private final ReferenceQueue referenceQueue = new ReferenceQueue<>(); - private final HashMap, Long> weakReferencesToIdentifiers = new HashMap<>(); - - private final Handler handler = new Handler(Looper.getMainLooper()); - - private final FinalizationListener finalizationListener; - - private long nextIdentifier = MIN_HOST_CREATED_IDENTIFIER; - private boolean hasFinalizationListenerStopped = false; - - private long clearFinalizedWeakReferencesInterval = - DEFAULT_CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL; - - /** - * Instantiate a new manager. - * - *

When the manager is no longer needed, {@link #stopFinalizationListener()} must be called. - * - * @param finalizationListener the listener for garbage collected weak references. - * @return a new `InstanceManager`. - */ - @NonNull - public static InstanceManager create(@NonNull FinalizationListener finalizationListener) { - return new InstanceManager(finalizationListener); - } - - private InstanceManager(FinalizationListener finalizationListener) { - this.finalizationListener = finalizationListener; - handler.postDelayed(this::releaseAllFinalizedInstances, clearFinalizedWeakReferencesInterval); - } - - /** - * Removes `identifier` and its associated strongly referenced instance, if present, from the - * manager. - * - * @param identifier the identifier paired to an instance. - * @param the expected return type. - * @return the removed instance if the manager contains the given identifier, otherwise `null` if - * the manager doesn't contain the value. - */ - @Nullable - public T remove(long identifier) { - logWarningIfFinalizationListenerHasStopped(); - return (T) strongInstances.remove(identifier); - } - - /** - * Retrieves the identifier paired with an instance. - * - *

If the manager contains a strong reference to `instance`, it will return the identifier - * associated with `instance`. If the manager contains only a weak reference to `instance`, a new - * strong reference to `instance` will be added and will need to be removed again with {@link - * #remove(long)}. - * - *

If this method returns a nonnull identifier, this method also expects the Dart - * `InstanceManager` to have, or recreate, a weak reference to the Dart instance the identifier is - * associated with. - * - * @param instance an instance that may be stored in the manager. - * @return the identifier associated with `instance` if the manager contains the value, otherwise - * `null` if the manager doesn't contain the value. - */ - @Nullable - public Long getIdentifierForStrongReference(@Nullable Object instance) { - logWarningIfFinalizationListenerHasStopped(); - - final Long identifier = identifiers.get(instance); - if (identifier != null) { - strongInstances.put(identifier, instance); - } - return identifier; - } - - /** - * Adds a new instance that was instantiated from Dart. - * - *

The same instance can be added multiple times, but each identifier must be unique. This - * allows two objects that are equivalent (e.g. the `equals` method returns true and their - * hashcodes are equal) to both be added. - * - * @param instance the instance to be stored. - * @param identifier the identifier to be paired with instance. This value must be >= 0 and - * unique. - */ - public void addDartCreatedInstance(@NonNull Object instance, long identifier) { - logWarningIfFinalizationListenerHasStopped(); - addInstance(instance, identifier); - } - - /** - * Adds a new instance that was instantiated from the host platform. - * - * @param instance the instance to be stored. This must be unique to all other added instances. - * @return the unique identifier (>= 0) stored with instance. - */ - public long addHostCreatedInstance(@NonNull Object instance) { - logWarningIfFinalizationListenerHasStopped(); - - if (containsInstance(instance)) { - throw new IllegalArgumentException( - "Instance of " + instance.getClass() + " has already been added."); - } - final long identifier = nextIdentifier++; - addInstance(instance, identifier); - return identifier; - } - - /** - * Retrieves the instance associated with identifier. - * - * @param identifier the identifier associated with an instance. - * @param the expected return type. - * @return the instance associated with `identifier` if the manager contains the value, otherwise - * `null` if the manager doesn't contain the value. - */ - @Nullable - public T getInstance(long identifier) { - logWarningIfFinalizationListenerHasStopped(); - - final WeakReference instance = (WeakReference) weakInstances.get(identifier); - if (instance != null) { - return instance.get(); - } - return null; - } - - /** - * Returns whether this manager contains the given `instance`. - * - * @param instance the instance whose presence in this manager is to be tested. - * @return whether this manager contains the given `instance`. - */ - public boolean containsInstance(@Nullable Object instance) { - logWarningIfFinalizationListenerHasStopped(); - return identifiers.containsKey(instance); - } - - /** - * Stop the periodic run of the {@link FinalizationListener} for instances that have been garbage - * collected. - * - *

The InstanceManager can continue to be used, but the {@link FinalizationListener} will no - * longer be called and methods will log a warning. - */ - public void stopFinalizationListener() { - handler.removeCallbacks(this::releaseAllFinalizedInstances); - hasFinalizationListenerStopped = true; - } - - /** - * Removes all of the instances from this manager. - * - *

The manager will be empty after this call returns. - */ - public void clear() { - identifiers.clear(); - weakInstances.clear(); - strongInstances.clear(); - weakReferencesToIdentifiers.clear(); - } - - /** - * Whether the {@link FinalizationListener} is still being called for instances that are garbage - * collected. - * - *

See {@link #stopFinalizationListener()}. - */ - public boolean hasFinalizationListenerStopped() { - return hasFinalizationListenerStopped; - } - - /** - * Modifies the time interval used to define how often this instance removes garbage collected - * weak references to native Android objects that this instance was managing. - */ - public void setClearFinalizedWeakReferencesInterval(long interval) { - clearFinalizedWeakReferencesInterval = interval; - } - - /** - * Releases garbage collected weak references to native Android objects that this instance was - * managing. - */ - public void releaseAllFinalizedInstances() { - if (hasFinalizationListenerStopped()) { - return; - } - - WeakReference reference; - while ((reference = (WeakReference) referenceQueue.poll()) != null) { - final Long identifier = weakReferencesToIdentifiers.remove(reference); - if (identifier != null) { - weakInstances.remove(identifier); - strongInstances.remove(identifier); - finalizationListener.onFinalize(identifier); - } - } - handler.postDelayed(this::releaseAllFinalizedInstances, clearFinalizedWeakReferencesInterval); - } - - private void addInstance(Object instance, long identifier) { - if (identifier < 0) { - throw new IllegalArgumentException(String.format("Identifier must be >= 0: %d", identifier)); - } - if (weakInstances.containsKey(identifier)) { - throw new IllegalArgumentException( - String.format("Identifier has already been added: %d", identifier)); - } - final WeakReference weakReference = new WeakReference<>(instance, referenceQueue); - identifiers.put(instance, identifier); - weakInstances.put(identifier, weakReference); - weakReferencesToIdentifiers.put(weakReference, identifier); - strongInstances.put(identifier, instance); - } - - private void logWarningIfFinalizationListenerHasStopped() { - if (hasFinalizationListenerStopped()) { - Log.w(TAG, "The manager was used after calls to the FinalizationListener have been stopped."); - } - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/JavaObjectHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/JavaObjectHostApiImpl.java deleted file mode 100644 index 538d4542cf4..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/JavaObjectHostApiImpl.java +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.JavaObjectHostApi; - -/** - * A pigeon Host API implementation that handles creating {@link Object}s and invoking its static - * and instance methods. - * - *

{@link Object} instances created by {@link JavaObjectHostApiImpl} are used to intercommunicate - * with a paired Dart object. - */ -public class JavaObjectHostApiImpl implements JavaObjectHostApi { - private final InstanceManager instanceManager; - - /** - * Constructs a {@link JavaObjectHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with Dart objects - */ - public JavaObjectHostApiImpl(@NonNull InstanceManager instanceManager) { - this.instanceManager = instanceManager; - } - - @Override - public void dispose(@NonNull Long identifier) { - instanceManager.remove(identifier); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataFlutterApiWrapper.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataFlutterApiWrapper.java deleted file mode 100644 index 35af27ce6cc..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataFlutterApiWrapper.java +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.lifecycle.LiveData; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataFlutterApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedType; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedTypeData; - -/** - * Flutter API implementation for {@link LiveData}. - * - *

This class may handle adding native instances that are attached to a Dart instance or passing - * arguments of callbacks methods to a Dart instance. - */ -public class LiveDataFlutterApiWrapper { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private LiveDataFlutterApi liveDataFlutterApi; - - /** - * Constructs a {@link LiveDataFlutterApiWrapper}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public LiveDataFlutterApiWrapper( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - liveDataFlutterApi = new LiveDataFlutterApi(binaryMessenger); - } - - /** - * Stores the {@link LiveData} instance and notifies Dart to create and store a new {@link - * LiveData} instance that is attached to this one. If {@code instance} has already been added, - * this method does nothing. - */ - public void create( - @NonNull LiveData instance, - @NonNull LiveDataSupportedType type, - @NonNull LiveDataFlutterApi.Reply callback) { - if (!instanceManager.containsInstance(instance)) { - liveDataFlutterApi.create( - instanceManager.addHostCreatedInstance(instance), - new LiveDataSupportedTypeData.Builder().setValue(type).build(), - callback); - } - } - - /** Sets the Flutter API used to send messages to Dart. */ - @VisibleForTesting - void setApi(@NonNull LiveDataFlutterApi api) { - this.liveDataFlutterApi = api; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataHostApiImpl.java deleted file mode 100644 index 3f7ec5125ec..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataHostApiImpl.java +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.camera.core.CameraState; -import androidx.camera.core.ZoomState; -import androidx.lifecycle.LifecycleOwner; -import androidx.lifecycle.LiveData; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataHostApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedType; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedTypeData; -import java.util.Objects; - -/** - * Host API implementation for {@link LiveData}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class LiveDataHostApiImpl implements LiveDataHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - @Nullable private LifecycleOwner lifecycleOwner; - - /** - * Constructs a {@link LiveDataHostApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public LiveDataHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - } - - /** Sets {@link LifecycleOwner} used to observe the camera state if so requested. */ - public void setLifecycleOwner(@Nullable LifecycleOwner lifecycleOwner) { - this.lifecycleOwner = lifecycleOwner; - } - - /** - * Adds an {@link Observer} with the specified identifier to the observers list of this instance - * within the lifespan of the {@link lifecycleOwner}. - */ - @Override - @SuppressWarnings("unchecked") - public void observe(@NonNull Long identifier, @NonNull Long observerIdentifier) { - if (lifecycleOwner == null) { - throw new IllegalStateException("LifecycleOwner must be set to observe a LiveData instance."); - } - - getLiveDataInstance(identifier) - .observe( - lifecycleOwner, - Objects.requireNonNull(instanceManager.getInstance(observerIdentifier))); - } - - /** Removes all observers of this instance that are tied to the {@link lifecycleOwner}. */ - @Override - public void removeObservers(@NonNull Long identifier) { - if (lifecycleOwner == null) { - throw new IllegalStateException("LifecycleOwner must be set to remove LiveData observers."); - } - - getLiveDataInstance(identifier).removeObservers(lifecycleOwner); - } - - @Override - @Nullable - public Long getValue(@NonNull Long identifier, @NonNull LiveDataSupportedTypeData type) { - Object value = getLiveDataInstance(identifier).getValue(); - if (value == null) { - return null; - } - - LiveDataSupportedType valueType = type.getValue(); - switch (valueType) { - case CAMERA_STATE: - return createCameraState((CameraState) value); - case ZOOM_STATE: - return createZoomState((ZoomState) value); - default: - throw new IllegalArgumentException( - "The type of LiveData whose value was requested is not supported."); - } - } - - /** Creates a {@link CameraState} on the Dart side and returns its identifier. */ - private Long createCameraState(CameraState cameraState) { - new CameraStateFlutterApiWrapper(binaryMessenger, instanceManager) - .create( - cameraState, - CameraStateFlutterApiWrapper.getCameraStateType(cameraState.getType()), - cameraState.getError(), - reply -> {}); - return instanceManager.getIdentifierForStrongReference(cameraState); - } - - /** Creates a {@link ZoomState} on the Dart side and returns its identifiers. */ - private Long createZoomState(ZoomState zoomState) { - new ZoomStateFlutterApiImpl(binaryMessenger, instanceManager).create(zoomState, reply -> {}); - return instanceManager.getIdentifierForStrongReference(zoomState); - } - - /** Retrieves the {@link LiveData} instance that has the specified identifier. */ - private LiveData getLiveDataInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java deleted file mode 100644 index a8775ebb227..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointHostApiImpl.java +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.app.Activity; -import android.content.Context; -import android.os.Build; -import android.view.Display; -import android.view.WindowManager; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.CameraInfo; -import androidx.camera.core.DisplayOrientedMeteringPointFactory; -import androidx.camera.core.MeteringPoint; -import androidx.camera.core.MeteringPointFactory; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointHostApi; -import java.util.Objects; - -/** - * Host API implementation for {@link MeteringPoint}. - * - *

This class handles instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class MeteringPointHostApiImpl implements MeteringPointHostApi { - private final InstanceManager instanceManager; - private final MeteringPointProxy proxy; - - /** Proxy for constructor and static methods of {@link MeteringPoint}. */ - @VisibleForTesting - public static class MeteringPointProxy { - Activity activity; - - /** - * Creates a surface oriented {@link MeteringPoint} with the specified x, y, and size. - * - *

A {@link DisplayOrientedMeteringPointFactory} is used to construct the {@link - * MeteringPoint} because this factory handles the transformation of specified coordinates based - * on camera information and the device orientation automatically. - */ - @NonNull - public MeteringPoint create( - @NonNull Double x, - @NonNull Double y, - @Nullable Double size, - @NonNull CameraInfo cameraInfo) { - Display display = null; - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - display = activity.getDisplay(); - } else { - display = getDefaultDisplayForAndroidVersionBelowR(activity); - } - - DisplayOrientedMeteringPointFactory factory = - getDisplayOrientedMeteringPointFactory(display, cameraInfo, 1f, 1f); - - if (size == null) { - return factory.createPoint(x.floatValue(), y.floatValue()); - } else { - return factory.createPoint(x.floatValue(), y.floatValue(), size.floatValue()); - } - } - - @NonNull - @SuppressWarnings("deprecation") - private Display getDefaultDisplayForAndroidVersionBelowR(@NonNull Activity activity) { - return ((WindowManager) activity.getSystemService(Context.WINDOW_SERVICE)) - .getDefaultDisplay(); - } - - @VisibleForTesting - @NonNull - public DisplayOrientedMeteringPointFactory getDisplayOrientedMeteringPointFactory( - @NonNull Display display, @NonNull CameraInfo cameraInfo, float width, float height) { - return new DisplayOrientedMeteringPointFactory(display, cameraInfo, width, height); - } - - /** - * Returns the default point size of the {@link MeteringPoint} width and height, which is a - * normalized percentage of the sensor width/height. - */ - public float getDefaultPointSize() { - return MeteringPointFactory.getDefaultPointSize(); - } - } - /** - * Constructs a {@link MeteringPointHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public MeteringPointHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new MeteringPointProxy()); - } - - /** - * Constructs a {@link MeteringPointHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor and static methods of {@link MeteringPoint} - */ - @VisibleForTesting - MeteringPointHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull MeteringPointProxy proxy) { - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - public void setActivity(@NonNull Activity activity) { - this.proxy.activity = activity; - } - - @Override - public void create( - @NonNull Long identifier, - @NonNull Double x, - @NonNull Double y, - @Nullable Double size, - @NonNull Long cameraInfoId) { - MeteringPoint meteringPoint = - proxy.create( - x, - y, - size, - (CameraInfo) Objects.requireNonNull(instanceManager.getInstance(cameraInfoId))); - instanceManager.addDartCreatedInstance(meteringPoint, identifier); - } - - @Override - @NonNull - public Double getDefaultPointSize() { - return (double) proxy.getDefaultPointSize(); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverFlutterApiWrapper.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverFlutterApiWrapper.java deleted file mode 100644 index f514ddbf86d..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverFlutterApiWrapper.java +++ /dev/null @@ -1,112 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Log; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.CameraState; -import androidx.camera.core.ZoomState; -import androidx.lifecycle.Observer; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ObserverFlutterApi; -import java.util.Objects; - -/** - * Flutter API implementation for {@link Observer}. - * - *

This class may handle adding native instances that are attached to a Dart instance or passing - * arguments of callbacks methods to a Dart instance. - */ -public class ObserverFlutterApiWrapper { - - private static final String TAG = "ObserverFlutterApi"; - - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private ObserverFlutterApi observerFlutterApi; - - @VisibleForTesting @Nullable public CameraStateFlutterApiWrapper cameraStateFlutterApiWrapper; - @VisibleForTesting @Nullable public ZoomStateFlutterApiImpl zoomStateFlutterApiImpl; - - /** - * Constructs a {@link ObserverFlutterApiWrapper}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public ObserverFlutterApiWrapper( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - observerFlutterApi = new ObserverFlutterApi(binaryMessenger); - } - - /** - * Sends a message to Dart to call {@link Observer.onChanged} on the Dart object representing - * {@code instance}. - */ - public void onChanged( - @NonNull Observer instance, - @NonNull T value, - @NonNull ObserverFlutterApi.Reply callback) { - - // Cast value to type of data that is being observed and create it on the Dart side - // if supported by this plugin. - // - // The supported types can be found in GeneratedCameraXLibrary.java as the - // LiveDataSupportedType enum. To add a new type, please follow the instructions - // found in pigeons/camerax_library.dart in the documentation for LiveDataSupportedType. - if (value instanceof CameraState) { - createCameraState((CameraState) value); - } else if (value instanceof ZoomState) { - createZoomState((ZoomState) value); - } else { - throw new UnsupportedOperationException( - "The type of value that was observed is not handled by this plugin."); - } - - Long observerIdentifier = instanceManager.getIdentifierForStrongReference(instance); - if (observerIdentifier == null) { - Log.e( - TAG, - "The Observer that received a callback has been garbage collected. Please create a new instance to receive any further data changes."); - return; - } - - observerFlutterApi.onChanged( - Objects.requireNonNull(observerIdentifier), - instanceManager.getIdentifierForStrongReference(value), - callback); - } - - /** Creates a {@link CameraState} on the Dart side. */ - private void createCameraState(CameraState cameraState) { - if (cameraStateFlutterApiWrapper == null) { - cameraStateFlutterApiWrapper = - new CameraStateFlutterApiWrapper(binaryMessenger, instanceManager); - } - cameraStateFlutterApiWrapper.create( - cameraState, - CameraStateFlutterApiWrapper.getCameraStateType(cameraState.getType()), - cameraState.getError(), - reply -> {}); - } - - /** Creates a {@link ZoomState} on the Dart side. */ - private void createZoomState(ZoomState zoomState) { - if (zoomStateFlutterApiImpl == null) { - zoomStateFlutterApiImpl = new ZoomStateFlutterApiImpl(binaryMessenger, instanceManager); - } - zoomStateFlutterApiImpl.create(zoomState, reply -> {}); - } - - /** Sets the Flutter API used to send messages to Dart. */ - @VisibleForTesting - void setApi(@NonNull ObserverFlutterApi api) { - this.observerFlutterApi = api; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverHostApiImpl.java deleted file mode 100644 index 46ffe6c4b8e..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverHostApiImpl.java +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.lifecycle.Observer; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ObserverHostApi; -import java.util.Objects; - -/** - * Host API implementation for {@link Observer}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class ObserverHostApiImpl implements ObserverHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private final ObserverProxy observerProxy; - - /** Proxy for constructor of {@link Observer}. */ - @VisibleForTesting - public static class ObserverProxy { - - /** Creates an instance of {@link Observer}. */ - @NonNull - public ObserverImpl create( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - return new ObserverImpl(binaryMessenger, instanceManager); - } - } - - /** Implementation of {@link Observer} that passes arguments of callback methods to Dart. */ - public static class ObserverImpl implements Observer { - private ObserverFlutterApiWrapper observerFlutterApiWrapper; - - /** - * Constructs an instance of {@link Observer} that passes arguments of callbacks methods to - * Dart. - */ - public ObserverImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(); - observerFlutterApiWrapper = new ObserverFlutterApiWrapper(binaryMessenger, instanceManager); - } - - /** Method called when the data in observance is changed to {@code value}. */ - @Override - public void onChanged(T value) { - observerFlutterApiWrapper.onChanged(this, value, reply -> {}); - } - - /** Flutter API used to send messages back to Dart. */ - @VisibleForTesting - void setApi(@NonNull ObserverFlutterApiWrapper api) { - this.observerFlutterApiWrapper = api; - } - } - - /** - * Constructs a {@link ObserverHostApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public ObserverHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this(binaryMessenger, instanceManager, new ObserverProxy()); - } - - /** - * Constructs a {@link ObserverHostApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor of {@link Observer} - */ - @VisibleForTesting - ObserverHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull ObserverProxy observerProxy) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.observerProxy = observerProxy; - } - - /** Creates an {@link Observer} instance with the specified observer. */ - @Override - public void create(@NonNull Long identifier) { - instanceManager.addDartCreatedInstance( - observerProxy.create(binaryMessenger, instanceManager), identifier); - } - - private Observer getObserverInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingFlutterApiImpl.java deleted file mode 100644 index b3c46769ad9..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingFlutterApiImpl.java +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.camera.video.PendingRecording; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.PendingRecordingFlutterApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoRecordEvent; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoRecordEventData; - -public class PendingRecordingFlutterApiImpl extends PendingRecordingFlutterApi { - private final InstanceManager instanceManager; - - public PendingRecordingFlutterApiImpl( - @Nullable BinaryMessenger binaryMessenger, @Nullable InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - void create(@NonNull PendingRecording pendingRecording, @Nullable Reply reply) { - create(instanceManager.addHostCreatedInstance(pendingRecording), reply); - } - - void sendVideoRecordingFinalizedEvent(@NonNull Reply reply) { - super.onVideoRecordingEvent( - new VideoRecordEventData.Builder().setValue(VideoRecordEvent.FINALIZE).build(), reply); - } - - void sendVideoRecordingStartedEvent(@NonNull Reply reply) { - super.onVideoRecordingEvent( - new VideoRecordEventData.Builder().setValue(VideoRecordEvent.START).build(), reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingHostApiImpl.java deleted file mode 100644 index 93aa39c56be..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingHostApiImpl.java +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.content.Context; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.video.PendingRecording; -import androidx.camera.video.Recording; -import androidx.camera.video.VideoRecordEvent; -import androidx.core.content.ContextCompat; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.PendingRecordingHostApi; -import java.util.Objects; -import java.util.concurrent.Executor; - -public class PendingRecordingHostApiImpl implements PendingRecordingHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - @Nullable private Context context; - - @VisibleForTesting @NonNull public CameraXProxy cameraXProxy = new CameraXProxy(); - - @VisibleForTesting PendingRecordingFlutterApiImpl pendingRecordingFlutterApi; - - @VisibleForTesting SystemServicesFlutterApiImpl systemServicesFlutterApi; - - @VisibleForTesting RecordingFlutterApiImpl recordingFlutterApi; - - public PendingRecordingHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @Nullable Context context) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.context = context; - systemServicesFlutterApi = cameraXProxy.createSystemServicesFlutterApiImpl(binaryMessenger); - recordingFlutterApi = new RecordingFlutterApiImpl(binaryMessenger, instanceManager); - pendingRecordingFlutterApi = - new PendingRecordingFlutterApiImpl(binaryMessenger, instanceManager); - } - - /** Sets the context, which is used to get the {@link Executor} needed to start the recording. */ - public void setContext(@Nullable Context context) { - this.context = context; - } - - /** - * Starts the given {@link PendingRecording}, creating a new {@link Recording}. The recording is - * then added to the instance manager and we return the corresponding identifier. - * - * @param identifier An identifier corresponding to a PendingRecording. - */ - @NonNull - @Override - public Long start(@NonNull Long identifier) { - PendingRecording pendingRecording = getPendingRecordingFromInstanceId(identifier); - Recording recording = - pendingRecording.start(this.getExecutor(), event -> handleVideoRecordEvent(event)); - recordingFlutterApi.create(recording, reply -> {}); - return Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(recording)); - } - - @Nullable - @VisibleForTesting - public Executor getExecutor() { - if (context == null) { - throw new IllegalStateException("Context must be set to get an executor to start recording."); - } - - return ContextCompat.getMainExecutor(context); - } - - /** - * Handles {@link VideoRecordEvent}s that come in during video recording. Sends any errors - * encountered using {@link SystemServicesFlutterApiImpl}. - * - *

Currently only sends {@link VideoRecordEvent.Start} and {@link VideoRecordEvent.Finalize} - * events to the Dart side. - */ - @VisibleForTesting - public void handleVideoRecordEvent(@NonNull VideoRecordEvent event) { - if (event instanceof VideoRecordEvent.Start) { - pendingRecordingFlutterApi.sendVideoRecordingStartedEvent(reply -> {}); - } else if (event instanceof VideoRecordEvent.Finalize) { - pendingRecordingFlutterApi.sendVideoRecordingFinalizedEvent(reply -> {}); - VideoRecordEvent.Finalize castedEvent = (VideoRecordEvent.Finalize) event; - if (castedEvent.hasError()) { - String cameraErrorMessage; - if (castedEvent.getCause() != null) { - cameraErrorMessage = castedEvent.getCause().toString(); - } else { - cameraErrorMessage = - "Error code " + castedEvent.getError() + ": An error occurred while recording video."; - } - systemServicesFlutterApi.sendCameraError(cameraErrorMessage, reply -> {}); - } - } - } - - private PendingRecording getPendingRecordingFromInstanceId(Long instanceId) { - return (PendingRecording) Objects.requireNonNull(instanceManager.getInstance(instanceId)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyFlutterApiImpl.java deleted file mode 100644 index 713e40321bd..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyFlutterApiImpl.java +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.ImageProxy; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.PlaneProxyFlutterApi; - -/** - * Flutter API implementation for {@link ImageProxy.PlaneProxy}. - * - *

This class may handle adding native instances that are attached to a Dart instance or passing - * arguments of callbacks methods to a Dart instance. - */ -public class PlaneProxyFlutterApiImpl { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private PlaneProxyFlutterApi api; - - /** - * Constructs a {@link PlaneProxyFlutterApiImpl}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public PlaneProxyFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - api = new PlaneProxyFlutterApi(binaryMessenger); - } - - /** - * Stores the {@link ImageProxy.PlaneProxy} instance and notifies Dart to create and store a new - * {@link ImageProxy.PlaneProxy} instance that is attached to this one. If {@code instance} has - * already been added, this method does nothing. - */ - public void create( - @NonNull ImageProxy.PlaneProxy instance, - @NonNull byte[] bytes, - @NonNull Long pixelStride, - @NonNull Long rowStride, - @NonNull PlaneProxyFlutterApi.Reply callback) { - if (!instanceManager.containsInstance(instance)) { - api.create( - instanceManager.addHostCreatedInstance(instance), - bytes, - pixelStride, - rowStride, - callback); - } - } - - /** - * Sets the Flutter API used to send messages to Dart. - * - *

This is only visible for testing. - */ - @VisibleForTesting - void setApi(@NonNull PlaneProxyFlutterApi api) { - this.api = api; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java deleted file mode 100644 index e9b7b0d89ac..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java +++ /dev/null @@ -1,186 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Size; -import android.view.Surface; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.Preview; -import androidx.camera.core.SurfaceRequest; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.PreviewHostApi; -import io.flutter.view.TextureRegistry; -import java.util.Objects; -import java.util.concurrent.Executors; - -public class PreviewHostApiImpl implements PreviewHostApi { - final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private final TextureRegistry textureRegistry; - - @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); - @VisibleForTesting public @Nullable TextureRegistry.SurfaceProducer flutterSurfaceProducer; - - public PreviewHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull TextureRegistry textureRegistry) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.textureRegistry = textureRegistry; - } - - /** Creates a {@link Preview} with the target rotation and resolution if specified. */ - @Override - public void create( - @NonNull Long identifier, @Nullable Long rotation, @Nullable Long resolutionSelectorId) { - Preview.Builder previewBuilder = cameraXProxy.createPreviewBuilder(); - - if (rotation != null) { - previewBuilder.setTargetRotation(rotation.intValue()); - } - if (resolutionSelectorId != null) { - ResolutionSelector resolutionSelector = - Objects.requireNonNull(instanceManager.getInstance(resolutionSelectorId)); - previewBuilder.setResolutionSelector(resolutionSelector); - } - - Preview preview = previewBuilder.build(); - instanceManager.addDartCreatedInstance(preview, identifier); - } - - /** - * Sets the {@link Preview.SurfaceProvider} that will be used to provide a {@code Surface} backed - * by a Flutter {@link TextureRegistry.SurfaceTextureEntry} used to build the {@link Preview}. - */ - @Override - public @NonNull Long setSurfaceProvider(@NonNull Long identifier) { - Preview preview = getPreviewInstance(identifier); - flutterSurfaceProducer = textureRegistry.createSurfaceProducer(); - Preview.SurfaceProvider surfaceProvider = createSurfaceProvider(flutterSurfaceProducer); - preview.setSurfaceProvider(surfaceProvider); - - return flutterSurfaceProducer.id(); - } - - /** - * Creates a {@link Preview.SurfaceProvider} that specifies how to provide a {@link Surface} to a - * {@code Preview} that is backed by a Flutter {@link TextureRegistry.SurfaceTextureEntry}. - */ - @VisibleForTesting - public @NonNull Preview.SurfaceProvider createSurfaceProvider( - @NonNull TextureRegistry.SurfaceProducer surfaceProducer) { - return new Preview.SurfaceProvider() { - @Override - public void onSurfaceRequested(@NonNull SurfaceRequest request) { - // Set callback for surfaceProducer to invalidate Surfaces that it produces when they - // get destroyed. - surfaceProducer.setCallback( - new TextureRegistry.SurfaceProducer.Callback() { - @Override - // TODO(matanlurey): Replace with onSurfaceAvailable once available on stable; - // https://github.com/flutter/flutter/issues/155131. - @SuppressWarnings({"deprecation", "removal"}) - public void onSurfaceCreated() { - // Do nothing. The Preview.SurfaceProvider will handle this whenever a new - // Surface is needed. - } - - @Override - public void onSurfaceDestroyed() { - // Invalidate the SurfaceRequest so that CameraX knows to to make a new request - // for a surface. - request.invalidate(); - } - }); - - // Provide surface. - surfaceProducer.setSize( - request.getResolution().getWidth(), request.getResolution().getHeight()); - Surface flutterSurface = surfaceProducer.getSurface(); - request.provideSurface( - flutterSurface, - Executors.newSingleThreadExecutor(), - (result) -> { - // See - // https://developer.android.com/reference/androidx/camera/core/SurfaceRequest.Result - // for documentation. - // Always attempt a release. - flutterSurface.release(); - int resultCode = result.getResultCode(); - switch (resultCode) { - case SurfaceRequest.Result.RESULT_REQUEST_CANCELLED: - case SurfaceRequest.Result.RESULT_WILL_NOT_PROVIDE_SURFACE: - case SurfaceRequest.Result.RESULT_SURFACE_ALREADY_PROVIDED: - case SurfaceRequest.Result.RESULT_SURFACE_USED_SUCCESSFULLY: - // Only need to release, do nothing. - break; - case SurfaceRequest.Result.RESULT_INVALID_SURFACE: // Intentional fall through. - default: - // Release and send error. - SystemServicesFlutterApiImpl systemServicesFlutterApi = - cameraXProxy.createSystemServicesFlutterApiImpl(binaryMessenger); - systemServicesFlutterApi.sendCameraError( - getProvideSurfaceErrorDescription(resultCode), reply -> {}); - break; - } - }); - } - }; - } - - /** - * Returns an error description for each {@link SurfaceRequest.Result} that represents an error - * with providing a surface. - */ - String getProvideSurfaceErrorDescription(int resultCode) { - switch (resultCode) { - case SurfaceRequest.Result.RESULT_INVALID_SURFACE: - return resultCode + ": Provided surface could not be used by the camera."; - default: - return resultCode + ": Attempt to provide a surface resulted with unrecognizable code."; - } - } - - /** - * Releases the Flutter {@link TextureRegistry.SurfaceTextureEntry} if used to provide a surface - * for a {@link Preview}. - */ - @Override - public void releaseFlutterSurfaceTexture() { - if (flutterSurfaceProducer != null) { - flutterSurfaceProducer.release(); - } - } - - /** Returns the resolution information for the specified {@link Preview}. */ - @Override - public @NonNull GeneratedCameraXLibrary.ResolutionInfo getResolutionInfo( - @NonNull Long identifier) { - Preview preview = getPreviewInstance(identifier); - Size resolution = preview.getResolutionInfo().getResolution(); - - GeneratedCameraXLibrary.ResolutionInfo.Builder resolutionInfo = - new GeneratedCameraXLibrary.ResolutionInfo.Builder() - .setWidth(Long.valueOf(resolution.getWidth())) - .setHeight(Long.valueOf(resolution.getHeight())); - return resolutionInfo.build(); - } - - /** Dynamically sets the target rotation of the {@link Preview}. */ - @Override - public void setTargetRotation(@NonNull Long identifier, @NonNull Long rotation) { - Preview preview = getPreviewInstance(identifier); - preview.setTargetRotation(rotation.intValue()); - } - - /** Retrieves the {@link Preview} instance associated with the specified {@code identifier}. */ - private Preview getPreviewInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java deleted file mode 100644 index 35e2bc0ec73..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderFlutterApiImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.lifecycle.ProcessCameraProvider; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ProcessCameraProviderFlutterApi; - -public class ProcessCameraProviderFlutterApiImpl extends ProcessCameraProviderFlutterApi { - public ProcessCameraProviderFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - private final InstanceManager instanceManager; - - void create(ProcessCameraProvider processCameraProvider, Reply reply) { - create(instanceManager.addHostCreatedInstance(processCameraProvider), reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java deleted file mode 100644 index 0e22e1aa5a5..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderHostApiImpl.java +++ /dev/null @@ -1,176 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.content.Context; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.camera.core.Camera; -import androidx.camera.core.CameraInfo; -import androidx.camera.core.CameraSelector; -import androidx.camera.core.UseCase; -import androidx.camera.lifecycle.ProcessCameraProvider; -import androidx.core.content.ContextCompat; -import androidx.lifecycle.LifecycleOwner; -import com.google.common.util.concurrent.ListenableFuture; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ProcessCameraProviderHostApi; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -public class ProcessCameraProviderHostApiImpl implements ProcessCameraProviderHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - - @Nullable private Context context; - @Nullable private LifecycleOwner lifecycleOwner; - - public ProcessCameraProviderHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull Context context) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.context = context; - } - - public void setLifecycleOwner(@Nullable LifecycleOwner lifecycleOwner) { - this.lifecycleOwner = lifecycleOwner; - } - - /** - * Sets the context that the {@code ProcessCameraProvider} will use to attach the lifecycle of the - * camera to. - * - *

If using the camera plugin in an add-to-app context, ensure that a new instance of the - * {@code ProcessCameraProvider} is fetched via {@code #getInstance} anytime the context changes. - */ - public void setContext(@NonNull Context context) { - this.context = context; - } - - /** - * Returns the instance of the {@code ProcessCameraProvider} to manage the lifecycle of the camera - * for the current {@code Context}. - */ - @Override - public void getInstance(@NonNull GeneratedCameraXLibrary.Result result) { - if (context == null) { - throw new IllegalStateException("Context must be set to get ProcessCameraProvider instance."); - } - - ListenableFuture processCameraProviderFuture = - ProcessCameraProvider.getInstance(context); - - processCameraProviderFuture.addListener( - () -> { - try { - // Camera provider is now guaranteed to be available. - ProcessCameraProvider processCameraProvider = processCameraProviderFuture.get(); - - final ProcessCameraProviderFlutterApiImpl flutterApi = - new ProcessCameraProviderFlutterApiImpl(binaryMessenger, instanceManager); - if (!instanceManager.containsInstance(processCameraProvider)) { - flutterApi.create(processCameraProvider, reply -> {}); - } - result.success(instanceManager.getIdentifierForStrongReference(processCameraProvider)); - } catch (Exception e) { - result.error(e); - } - }, - ContextCompat.getMainExecutor(context)); - } - - /** Returns cameras available to the {@code ProcessCameraProvider}. */ - @NonNull - @Override - public List getAvailableCameraInfos(@NonNull Long identifier) { - ProcessCameraProvider processCameraProvider = - (ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier)); - - List availableCameras = processCameraProvider.getAvailableCameraInfos(); - List availableCamerasIds = new ArrayList<>(); - final CameraInfoFlutterApiImpl cameraInfoFlutterApi = - new CameraInfoFlutterApiImpl(binaryMessenger, instanceManager); - - for (CameraInfo cameraInfo : availableCameras) { - if (!instanceManager.containsInstance(cameraInfo)) { - cameraInfoFlutterApi.create(cameraInfo, result -> {}); - } - availableCamerasIds.add(instanceManager.getIdentifierForStrongReference(cameraInfo)); - } - return availableCamerasIds; - } - - /** - * Binds specified {@code UseCase}s to the lifecycle of the {@code LifecycleOwner} that - * corresponds to this instance and returns the instance of the {@code Camera} whose lifecycle - * that {@code LifecycleOwner} reflects. - */ - @Override - public @NonNull Long bindToLifecycle( - @NonNull Long identifier, - @NonNull Long cameraSelectorIdentifier, - @NonNull List useCaseIds) { - if (lifecycleOwner == null) { - throw new IllegalStateException( - "LifecycleOwner must be set to get ProcessCameraProvider instance."); - } - - ProcessCameraProvider processCameraProvider = - (ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier)); - CameraSelector cameraSelector = - (CameraSelector) - Objects.requireNonNull(instanceManager.getInstance(cameraSelectorIdentifier)); - UseCase[] useCases = new UseCase[useCaseIds.size()]; - for (int i = 0; i < useCaseIds.size(); i++) { - useCases[i] = - (UseCase) - Objects.requireNonNull( - instanceManager.getInstance(((Number) useCaseIds.get(i)).longValue())); - } - - Camera camera = processCameraProvider.bindToLifecycle(lifecycleOwner, cameraSelector, useCases); - - final CameraFlutterApiImpl cameraFlutterApi = - new CameraFlutterApiImpl(binaryMessenger, instanceManager); - if (!instanceManager.containsInstance(camera)) { - cameraFlutterApi.create(camera, result -> {}); - } - - return Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(camera)); - } - - @Override - public @NonNull Boolean isBound(@NonNull Long identifier, @NonNull Long useCaseIdentifier) { - ProcessCameraProvider processCameraProvider = - (ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier)); - UseCase useCase = - (UseCase) Objects.requireNonNull(instanceManager.getInstance(useCaseIdentifier)); - return processCameraProvider.isBound(useCase); - } - - @Override - public void unbind(@NonNull Long identifier, @NonNull List useCaseIds) { - ProcessCameraProvider processCameraProvider = - (ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier)); - UseCase[] useCases = new UseCase[useCaseIds.size()]; - for (int i = 0; i < useCaseIds.size(); i++) { - useCases[i] = - (UseCase) - Objects.requireNonNull( - instanceManager.getInstance(((Number) useCaseIds.get(i)).longValue())); - } - processCameraProvider.unbind(useCases); - } - - @Override - public void unbindAll(@NonNull Long identifier) { - ProcessCameraProvider processCameraProvider = - (ProcessCameraProvider) Objects.requireNonNull(instanceManager.getInstance(identifier)); - processCameraProvider.unbindAll(); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java deleted file mode 100644 index 87a00e62934..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorHostApiImpl.java +++ /dev/null @@ -1,141 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.video.FallbackStrategy; -import androidx.camera.video.Quality; -import androidx.camera.video.QualitySelector; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.QualitySelectorHostApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQualityData; -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * Host API implementation for {@link QualitySelector}. - * - *

This class may handle instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class QualitySelectorHostApiImpl implements QualitySelectorHostApi { - private final InstanceManager instanceManager; - - private final QualitySelectorProxy proxy; - - /** Proxy for constructor of {@link QualitySelector}. */ - @VisibleForTesting - public static class QualitySelectorProxy { - /** Creates an instance of {@link QualitySelector}. */ - public @NonNull QualitySelector create( - @NonNull List videoQualityDataList, - @Nullable FallbackStrategy fallbackStrategy) { - // Convert each index of VideoQuality to Quality. - List qualityList = new ArrayList(); - for (VideoQualityData videoQualityData : videoQualityDataList) { - qualityList.add(getQualityFromVideoQuality(videoQualityData.getQuality())); - } - - boolean fallbackStrategySpecified = fallbackStrategy != null; - if (qualityList.size() == 0) { - throw new IllegalArgumentException( - "List of at least one Quality must be supplied to create QualitySelector."); - } else if (qualityList.size() == 1) { - Quality quality = qualityList.get(0); - return fallbackStrategySpecified - ? QualitySelector.from(quality, fallbackStrategy) - : QualitySelector.from(quality); - } - - return fallbackStrategySpecified - ? QualitySelector.fromOrderedList(qualityList, fallbackStrategy) - : QualitySelector.fromOrderedList(qualityList); - } - } - - /** - * Constructs a {@link QualitySelectorHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public QualitySelectorHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new QualitySelectorProxy()); - } - - /** - * Constructs a {@link QualitySelectorHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor of {@link QualitySelector} - */ - QualitySelectorHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull QualitySelectorProxy proxy) { - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - /** - * Creates a {@link QualitySelector} instance with the quality list and {@link FallbackStrategy} - * with the identifier specified. - */ - @Override - public void create( - @NonNull Long identifier, - @NonNull List videoQualityDataList, - @Nullable Long fallbackStrategyIdentifier) { - instanceManager.addDartCreatedInstance( - proxy.create( - videoQualityDataList, - fallbackStrategyIdentifier == null - ? null - : Objects.requireNonNull(instanceManager.getInstance(fallbackStrategyIdentifier))), - identifier); - } - - /** - * Retrieves the corresponding resolution from the input quality for the camera represented by the - * {@link CameraInfo} represented by the identifier specified. - */ - @Override - public @NonNull ResolutionInfo getResolution( - @NonNull Long cameraInfoIdentifier, @NonNull VideoQuality quality) { - final Size result = - QualitySelector.getResolution( - Objects.requireNonNull(instanceManager.getInstance(cameraInfoIdentifier)), - getQualityFromVideoQuality(quality)); - return new ResolutionInfo.Builder() - .setWidth(Long.valueOf(result.getWidth())) - .setHeight(Long.valueOf(result.getHeight())) - .build(); - } - - /** - * Converts the specified {@link VideoQuality to a {@link Quality} that is understood - * by CameraX. - */ - public static @NonNull Quality getQualityFromVideoQuality(@NonNull VideoQuality videoQuality) { - switch (videoQuality) { - case SD: - return Quality.SD; - case HD: - return Quality.HD; - case FHD: - return Quality.FHD; - case UHD: - return Quality.UHD; - case LOWEST: - return Quality.LOWEST; - case HIGHEST: - return Quality.HIGHEST; - } - throw new IllegalArgumentException( - "VideoQuality " + videoQuality + " is unhandled by QualitySelectorHostApiImpl."); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderFlutterApiImpl.java deleted file mode 100644 index 5258996ca65..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderFlutterApiImpl.java +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.camera.video.Recorder; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.RecorderFlutterApi; - -public class RecorderFlutterApiImpl extends RecorderFlutterApi { - private final InstanceManager instanceManager; - - public RecorderFlutterApiImpl( - @Nullable BinaryMessenger binaryMessenger, @Nullable InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - void create( - @NonNull Recorder recorder, - @Nullable Long aspectRatio, - @Nullable Long bitRate, - @Nullable Reply reply) { - create(instanceManager.addHostCreatedInstance(recorder), aspectRatio, bitRate, reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderHostApiImpl.java deleted file mode 100644 index 74b301e6c0b..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderHostApiImpl.java +++ /dev/null @@ -1,129 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.Manifest; -import android.content.Context; -import android.content.pm.PackageManager; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.video.FileOutputOptions; -import androidx.camera.video.PendingRecording; -import androidx.camera.video.Recorder; -import androidx.core.content.ContextCompat; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.RecorderHostApi; -import java.io.File; -import java.util.Objects; -import java.util.concurrent.Executor; - -public class RecorderHostApiImpl implements RecorderHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - @Nullable private Context context; - - @NonNull @VisibleForTesting public CameraXProxy cameraXProxy = new CameraXProxy(); - - @NonNull @VisibleForTesting public PendingRecordingFlutterApiImpl pendingRecordingFlutterApi; - - public RecorderHostApiImpl( - @Nullable BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @Nullable Context context) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.context = context; - this.pendingRecordingFlutterApi = - new PendingRecordingFlutterApiImpl(binaryMessenger, instanceManager); - } - - @Override - public void create( - @NonNull Long instanceId, - @Nullable Long aspectRatio, - @Nullable Long bitRate, - @Nullable Long qualitySelector) { - if (context == null) { - throw new IllegalStateException("Context must be set to create Recorder instance."); - } - - Recorder.Builder recorderBuilder = cameraXProxy.createRecorderBuilder(); - if (aspectRatio != null) { - recorderBuilder.setAspectRatio(aspectRatio.intValue()); - } - if (bitRate != null) { - recorderBuilder.setTargetVideoEncodingBitRate(bitRate.intValue()); - } - if (qualitySelector != null) { - recorderBuilder.setQualitySelector( - Objects.requireNonNull(instanceManager.getInstance(qualitySelector))); - } - Recorder recorder = recorderBuilder.setExecutor(ContextCompat.getMainExecutor(context)).build(); - instanceManager.addDartCreatedInstance(recorder, instanceId); - } - - /** Sets the context, which is used to get the {@link Executor} passed to the Recorder builder. */ - public void setContext(@Nullable Context context) { - this.context = context; - } - - /** Gets the aspect ratio of the given {@link Recorder}. */ - @NonNull - @Override - public Long getAspectRatio(@NonNull Long identifier) { - Recorder recorder = getRecorderFromInstanceId(identifier); - return Long.valueOf(recorder.getAspectRatio()); - } - - /** Gets the target video encoding bitrate of the given {@link Recorder}. */ - @NonNull - @Override - public Long getTargetVideoEncodingBitRate(@NonNull Long identifier) { - Recorder recorder = getRecorderFromInstanceId(identifier); - return Long.valueOf(recorder.getTargetVideoEncodingBitRate()); - } - - /** - * Uses the provided {@link Recorder} to prepare a recording that will be saved to a file at the - * provided path. - */ - @NonNull - @Override - public Long prepareRecording(@NonNull Long identifier, @NonNull String path) { - if (context == null) { - throw new IllegalStateException("Context must be set to prepare recording."); - } - - Recorder recorder = getRecorderFromInstanceId(identifier); - File temporaryCaptureFile = openTempFile(path); - FileOutputOptions fileOutputOptions = - new FileOutputOptions.Builder(temporaryCaptureFile).build(); - PendingRecording pendingRecording = recorder.prepareRecording(context, fileOutputOptions); - if (ContextCompat.checkSelfPermission(context, Manifest.permission.RECORD_AUDIO) - == PackageManager.PERMISSION_GRANTED) { - pendingRecording.withAudioEnabled(); - } - pendingRecordingFlutterApi.create(pendingRecording, reply -> {}); - return Objects.requireNonNull( - instanceManager.getIdentifierForStrongReference(pendingRecording)); - } - - @Nullable - @VisibleForTesting - public File openTempFile(@NonNull String path) { - File file = null; - try { - file = new File(path); - } catch (NullPointerException | SecurityException e) { - throw new RuntimeException(e); - } - return file; - } - - private Recorder getRecorderFromInstanceId(Long instanceId) { - return (Recorder) Objects.requireNonNull(instanceManager.getInstance(instanceId)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingFlutterApiImpl.java deleted file mode 100644 index 8fe7082f95c..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingFlutterApiImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.video.Recording; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.RecordingFlutterApi; - -public class RecordingFlutterApiImpl extends RecordingFlutterApi { - private final InstanceManager instanceManager; - - public RecordingFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - void create(@NonNull Recording recording, Reply reply) { - create(instanceManager.addHostCreatedInstance(recording), reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingHostApiImpl.java deleted file mode 100644 index 9288464da86..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingHostApiImpl.java +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.video.Recording; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.RecordingHostApi; -import java.util.Objects; - -public class RecordingHostApiImpl implements RecordingHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - - public RecordingHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - } - - @Override - public void close(@NonNull Long identifier) { - Recording recording = getRecordingFromInstanceId(identifier); - recording.close(); - } - - @Override - public void pause(@NonNull Long identifier) { - Recording recording = getRecordingFromInstanceId(identifier); - recording.pause(); - } - - @Override - public void resume(@NonNull Long identifier) { - Recording recording = getRecordingFromInstanceId(identifier); - recording.resume(); - } - - @Override - public void stop(@NonNull Long identifier) { - Recording recording = getRecordingFromInstanceId(identifier); - recording.stop(); - } - - private Recording getRecordingFromInstanceId(Long instanceId) { - return (Recording) Objects.requireNonNull(instanceManager.getInstance(instanceId)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterHostApiImpl.java deleted file mode 100644 index b2c3c9e6912..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterHostApiImpl.java +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.resolutionselector.ResolutionFilter; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionFilterHostApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -import java.util.List; - -/** - * Host API implementation for {@link ResolutionFilter}. - * - *

This class handles instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class ResolutionFilterHostApiImpl implements ResolutionFilterHostApi { - private final InstanceManager instanceManager; - private final ResolutionFilterFactory resolutionFilterFactory; - - /** - * Proxy for constructing {@link ResolutionFilter}s with particular attributes, as detailed by - * documentation below. - */ - @VisibleForTesting - public static class ResolutionFilterFactory { - /** - * Creates an instance of {@link ResolutionFilter} that moves the {@code preferredSize} to the - * front of the list of supported resolutions so that it can be prioritized by CameraX. - * - *

If the preferred {@code Size} is not found, then this creates a {@link ResolutionFilter} - * that leaves the priority of supported resolutions unadjusted. - */ - @NonNull - public ResolutionFilter createWithOnePreferredSize(@NonNull Size preferredSize) { - return new ResolutionFilter() { - @Override - @NonNull - public List filter(@NonNull List supportedSizes, int rotationDegrees) { - int preferredSizeIndex = supportedSizes.indexOf(preferredSize); - - if (preferredSizeIndex > -1) { - supportedSizes.remove(preferredSizeIndex); - supportedSizes.add(0, preferredSize); - } - - return supportedSizes; - } - }; - } - } - - /** - * Constructs a {@link ResolutionFilterHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public ResolutionFilterHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new ResolutionFilterFactory()); - } - - /** - * Constructs a {@link ResolutionFilterHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param resolutionFilterFactory proxy for constructing different kinds of {@link - * ResolutionFilter}s - */ - @VisibleForTesting - ResolutionFilterHostApiImpl( - @NonNull InstanceManager instanceManager, - @NonNull ResolutionFilterFactory resolutionFilterFactory) { - this.instanceManager = instanceManager; - this.resolutionFilterFactory = resolutionFilterFactory; - } - - /** - * Creates a {@link ResolutionFilter} that prioritizes the specified {@code preferredResolution} - * over all other resolutions. - */ - @Override - public void createWithOnePreferredSize( - @NonNull Long identifier, @NonNull ResolutionInfo preferredResolution) { - Size preferredSize = - new Size( - preferredResolution.getWidth().intValue(), preferredResolution.getHeight().intValue()); - instanceManager.addDartCreatedInstance( - resolutionFilterFactory.createWithOnePreferredSize(preferredSize), identifier); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorHostApiImpl.java deleted file mode 100644 index 0a5fe750d16..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorHostApiImpl.java +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import androidx.camera.core.resolutionselector.ResolutionFilter; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionSelectorHostApi; -import java.util.Objects; - -/** - * Host API implementation for {@link ResolutionSelector}. - * - *

This class handles instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class ResolutionSelectorHostApiImpl implements ResolutionSelectorHostApi { - private final InstanceManager instanceManager; - private final ResolutionSelectorProxy proxy; - - /** Proxy for constructor of {@link ResolutionSelector}. */ - @VisibleForTesting - public static class ResolutionSelectorProxy { - /** Creates an instance of {@link ResolutionSelector}. */ - @NonNull - public ResolutionSelector create( - @Nullable ResolutionStrategy resolutionStrategy, - @Nullable AspectRatioStrategy aspectRatioStrategy, - @Nullable ResolutionFilter resolutionFilter) { - final ResolutionSelector.Builder builder = new ResolutionSelector.Builder(); - if (resolutionStrategy != null) { - builder.setResolutionStrategy(resolutionStrategy); - } - if (aspectRatioStrategy != null) { - builder.setAspectRatioStrategy(aspectRatioStrategy); - } - if (resolutionFilter != null) { - builder.setResolutionFilter(resolutionFilter); - } - return builder.build(); - } - } - - /** - * Constructs a {@link ResolutionSelectorHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public ResolutionSelectorHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new ResolutionSelectorProxy()); - } - - /** - * Constructs a {@link ResolutionSelectorHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor of {@link ResolutionSelector} - */ - @VisibleForTesting - ResolutionSelectorHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull ResolutionSelectorProxy proxy) { - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - /** - * Creates a {@link ResolutionSelector} instance with the {@link ResolutionStrategy}, {@link - * ResolutionFilter}, and {@link AspectRatio} that have the identifiers specified if provided. - */ - @Override - public void create( - @NonNull Long identifier, - @Nullable Long resolutionStrategyIdentifier, - @Nullable Long resolutionFilterIdentifier, - @Nullable Long aspectRatioStrategyIdentifier) { - instanceManager.addDartCreatedInstance( - proxy.create( - resolutionStrategyIdentifier == null - ? null - : Objects.requireNonNull(instanceManager.getInstance(resolutionStrategyIdentifier)), - aspectRatioStrategyIdentifier == null - ? null - : Objects.requireNonNull( - instanceManager.getInstance(aspectRatioStrategyIdentifier)), - resolutionFilterIdentifier == null - ? null - : Objects.requireNonNull(instanceManager.getInstance(resolutionFilterIdentifier))), - identifier); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyHostApiImpl.java deleted file mode 100644 index 5c93fe6bd23..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyHostApiImpl.java +++ /dev/null @@ -1,81 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionStrategyHostApi; - -/** - * Host API implementation for {@link ResolutionStrategy}. - * - *

This class handles instantiating and adding native object instances that are attached to a - * Dart instance or handle method calls on the associated native class or an instance of the class. - */ -public class ResolutionStrategyHostApiImpl implements ResolutionStrategyHostApi { - private final InstanceManager instanceManager; - private final ResolutionStrategyProxy proxy; - - /** Proxy for constructor of {@link ResolutionStrategy}. */ - @VisibleForTesting - public static class ResolutionStrategyProxy { - - /** Creates an instance of {@link ResolutionStrategy}. */ - @NonNull - public ResolutionStrategy create(@NonNull Size boundSize, @NonNull Long fallbackRule) { - return new ResolutionStrategy(boundSize, fallbackRule.intValue()); - } - } - - /** - * Constructs a {@link ResolutionStrategyHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public ResolutionStrategyHostApiImpl(@NonNull InstanceManager instanceManager) { - this(instanceManager, new ResolutionStrategyProxy()); - } - - /** - * Constructs a {@link ResolutionStrategyHostApiImpl}. - * - * @param instanceManager maintains instances stored to communicate with attached Dart objects - * @param proxy proxy for constructor of {@link ResolutionStrategy} - */ - @VisibleForTesting - ResolutionStrategyHostApiImpl( - @NonNull InstanceManager instanceManager, @NonNull ResolutionStrategyProxy proxy) { - this.instanceManager = instanceManager; - this.proxy = proxy; - } - - /** - * Creates a {@link ResolutionStrategy} instance with the {@link - * GeneratedCameraXLibrary.ResolutionInfo} bound size and {@code fallbackRule} if specified. - */ - @Override - public void create( - @NonNull Long identifier, - @Nullable GeneratedCameraXLibrary.ResolutionInfo boundSize, - @Nullable Long fallbackRule) { - ResolutionStrategy resolutionStrategy; - if (boundSize == null && fallbackRule == null) { - // Strategy that chooses the highest available resolution does not have a bound size or fallback rule. - resolutionStrategy = ResolutionStrategy.HIGHEST_AVAILABLE_STRATEGY; - } else if (boundSize == null) { - throw new IllegalArgumentException( - "A bound size must be specified if a non-null fallback rule is specified to create a valid ResolutionStrategy."); - } else { - resolutionStrategy = - proxy.create( - new Size(boundSize.getWidth().intValue(), boundSize.getHeight().intValue()), - fallbackRule); - } - instanceManager.addDartCreatedInstance(resolutionStrategy, identifier); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesFlutterApiImpl.java deleted file mode 100644 index 2cb4ea1b227..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesFlutterApiImpl.java +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.SystemServicesFlutterApi; - -public class SystemServicesFlutterApiImpl extends SystemServicesFlutterApi { - public SystemServicesFlutterApiImpl(@NonNull BinaryMessenger binaryMessenger) { - super(binaryMessenger); - } - - public void sendCameraError(@NonNull String errorDescription, @NonNull Reply reply) { - super.onCameraError(errorDescription, reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java deleted file mode 100644 index 4ed06895b5b..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.UseCase; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link UseCase}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class UseCaseProxyApi extends PigeonApiUseCase { - UseCaseProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureFlutterApiImpl.java deleted file mode 100644 index 3e316fa5774..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureFlutterApiImpl.java +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.video.Recorder; -import androidx.camera.video.VideoCapture; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoCaptureFlutterApi; - -public class VideoCaptureFlutterApiImpl extends VideoCaptureFlutterApi { - public VideoCaptureFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - private final InstanceManager instanceManager; - - void create(@NonNull VideoCapture videoCapture, Reply reply) { - create(instanceManager.addHostCreatedInstance(videoCapture), reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureHostApiImpl.java deleted file mode 100644 index 1c849ee0937..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureHostApiImpl.java +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.VisibleForTesting; -import androidx.camera.video.Recorder; -import androidx.camera.video.VideoCapture; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoCaptureHostApi; -import java.util.Objects; - -public class VideoCaptureHostApiImpl implements VideoCaptureHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - - public VideoCaptureHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - } - - @Override - @NonNull - public Long withOutput(@NonNull Long videoOutputId) { - Recorder recorder = - (Recorder) Objects.requireNonNull(instanceManager.getInstance(videoOutputId)); - VideoCapture videoCapture = VideoCapture.withOutput(recorder); - final VideoCaptureFlutterApiImpl videoCaptureFlutterApi = - getVideoCaptureFlutterApiImpl(binaryMessenger, instanceManager); - videoCaptureFlutterApi.create(videoCapture, result -> {}); - return Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(videoCapture)); - } - - @Override - @NonNull - public Long getOutput(@NonNull Long identifier) { - VideoCapture videoCapture = getVideoCaptureInstance(identifier); - Recorder recorder = videoCapture.getOutput(); - return Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(recorder)); - } - - @VisibleForTesting - @NonNull - public VideoCaptureFlutterApiImpl getVideoCaptureFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - return new VideoCaptureFlutterApiImpl(binaryMessenger, instanceManager); - } - - /** Dynamically sets the target rotation of the {@link VideoCapture}. */ - @Override - public void setTargetRotation(@NonNull Long identifier, @NonNull Long rotation) { - VideoCapture videoCapture = getVideoCaptureInstance(identifier); - videoCapture.setTargetRotation(rotation.intValue()); - } - - /** - * Retrieves the {@link VideoCapture} instance associated with the specified {@code identifier}. - */ - private VideoCapture getVideoCaptureInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java deleted file mode 100644 index 422ac5538f5..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoOutput; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoOutput}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoOutputProxyApi extends PigeonApiVideoOutput { - VideoOutputProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java deleted file mode 100644 index 90385335609..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent.Finalize; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEventFinalize}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventFinalizeProxyApi extends PigeonApiVideoRecordEventFinalize { - VideoRecordEventFinalizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java deleted file mode 100644 index 2c6bafa9068..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEvent}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventProxyApi extends PigeonApiVideoRecordEvent { - VideoRecordEventProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java deleted file mode 100644 index ab18d1e2b55..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent.Start; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEventStart}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventStartProxyApi extends PigeonApiVideoRecordEventStart { - VideoRecordEventStartProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateFlutterApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateFlutterApiImpl.java deleted file mode 100644 index 4f5abdd6d18..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateFlutterApiImpl.java +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.core.ZoomState; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ZoomStateFlutterApi; - -public class ZoomStateFlutterApiImpl extends ZoomStateFlutterApi { - private final InstanceManager instanceManager; - - public ZoomStateFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - super(binaryMessenger); - this.instanceManager = instanceManager; - } - - /** - * Creates a {@link ZoomState} on the Dart side with its minimum zoom ratio and maximum zoom - * ratio. - */ - void create(@NonNull ZoomState zoomState, @NonNull Reply reply) { - if (instanceManager.containsInstance(zoomState)) { - return; - } - - final Float minZoomRatio = zoomState.getMinZoomRatio(); - final Float maxZoomRatio = zoomState.getMaxZoomRatio(); - create( - instanceManager.addHostCreatedInstance(zoomState), - minZoomRatio.doubleValue(), - maxZoomRatio.doubleValue(), - reply); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java index 7b10c2efad7..4a6b3350aa3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java @@ -6,7 +6,6 @@ import androidx.camera.core.ZoomState; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; /** * ProxyApi implementation for {@link ZoomState}. diff --git a/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java b/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java index fe15629b6d7..d2eb0079006 100644 --- a/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java +++ b/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java @@ -9,7 +9,7 @@ import static org.junit.Assert.assertNull; import androidx.test.ext.junit.runners.AndroidJUnit4; -import io.flutter.plugins.camerax.InstanceManager; + import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 7e954e5833c..95ce2abe7a5 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -1590,12 +1590,15 @@ class AndroidCameraCameraX extends CameraPlatform { currentFocusMeteringAction = null; return true; } + // Create builder to potentially add more MeteringPoints to. final FocusMeteringActionBuilder actionBuilder = proxy.withModeFocusMeteringActionBuilder( point: newMeteringPoints.first, mode: meteringMode, ); unawaited(actionBuilder.disableAutoCancel()); + + // Add any additional metering points in order as specified by input lists. newMeteringPoints.skip(1).forEach(actionBuilder.addPoint); currentFocusMeteringAction = await actionBuilder.build(); } else { From 4f05e1d3d0087f29e877d96014be2ffd669bdb86 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 22:47:43 -0500 Subject: [PATCH 016/148] more java cleanup --- .../camerax/CameraAndroidCameraxPlugin.java | 236 ++---------------- .../camerax/CameraStateFlutterApiWrapper.java | 102 -------- .../flutter/plugins/camerax/CameraXProxy.java | 15 -- .../camerax/CaptureRequestKeyProxyApi.java | 21 -- .../camerax/SystemServicesHostApiImpl.java | 121 --------- 5 files changed, 27 insertions(+), 468 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateFlutterApiWrapper.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesHostApiImpl.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java index 42e5df0f32c..b4933b15847 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java @@ -18,27 +18,9 @@ /** Platform implementation of the camera_plugin implemented with the CameraX library. */ public final class CameraAndroidCameraxPlugin implements FlutterPlugin, ActivityAware { - private InstanceManager instanceManager; private FlutterPluginBinding pluginBinding; - @VisibleForTesting @Nullable public PendingRecordingHostApiImpl pendingRecordingHostApiImpl; - @VisibleForTesting @Nullable public RecorderHostApiImpl recorderHostApiImpl; - @VisibleForTesting @Nullable public VideoCaptureHostApiImpl videoCaptureHostApiImpl; - @VisibleForTesting @Nullable public ImageAnalysisHostApiImpl imageAnalysisHostApiImpl; - @VisibleForTesting @Nullable public ImageCaptureHostApiImpl imageCaptureHostApiImpl; - @VisibleForTesting @Nullable public CameraControlHostApiImpl cameraControlHostApiImpl; - @VisibleForTesting @Nullable public SystemServicesHostApiImpl systemServicesHostApiImpl; - @VisibleForTesting @Nullable public MeteringPointHostApiImpl meteringPointHostApiImpl; - - @VisibleForTesting @Nullable - public Camera2CameraControlHostApiImpl camera2CameraControlHostApiImpl; - - @VisibleForTesting - public @Nullable DeviceOrientationManagerHostApiImpl deviceOrientationManagerHostApiImpl; - - @VisibleForTesting - public @Nullable ProcessCameraProviderHostApiImpl processCameraProviderHostApiImpl; - - @VisibleForTesting public @Nullable LiveDataHostApiImpl liveDataHostApiImpl; + @Nullable + private ProxyApiRegistrar proxyApiRegistrar; /** * Initialize this within the {@code #configureFlutterEngine} of a Flutter activity or fragment. @@ -47,108 +29,21 @@ public final class CameraAndroidCameraxPlugin implements FlutterPlugin, Activity */ public CameraAndroidCameraxPlugin() {} - @VisibleForTesting - public void setUp( - @NonNull BinaryMessenger binaryMessenger, - @NonNull Context context, - @NonNull TextureRegistry textureRegistry) { - // Set up instance manager. - instanceManager = - InstanceManager.create( - identifier -> { - new GeneratedCameraXLibrary.JavaObjectFlutterApi(binaryMessenger) - .dispose(identifier, reply -> {}); - }); - - // Set up Host APIs. - GeneratedCameraXLibrary.InstanceManagerHostApi.setup( - binaryMessenger, () -> instanceManager.clear()); - GeneratedCameraXLibrary.CameraHostApi.setup( - binaryMessenger, new CameraHostApiImpl(binaryMessenger, instanceManager)); - GeneratedCameraXLibrary.CameraInfoHostApi.setup( - binaryMessenger, new CameraInfoHostApiImpl(binaryMessenger, instanceManager)); - GeneratedCameraXLibrary.CameraSelectorHostApi.setup( - binaryMessenger, new CameraSelectorHostApiImpl(binaryMessenger, instanceManager)); - GeneratedCameraXLibrary.JavaObjectHostApi.setup( - binaryMessenger, new JavaObjectHostApiImpl(instanceManager)); - processCameraProviderHostApiImpl = - new ProcessCameraProviderHostApiImpl(binaryMessenger, instanceManager, context); - GeneratedCameraXLibrary.ProcessCameraProviderHostApi.setup( - binaryMessenger, processCameraProviderHostApiImpl); - systemServicesHostApiImpl = - new SystemServicesHostApiImpl(binaryMessenger, instanceManager, context); - GeneratedCameraXLibrary.SystemServicesHostApi.setup(binaryMessenger, systemServicesHostApiImpl); - deviceOrientationManagerHostApiImpl = - new DeviceOrientationManagerHostApiImpl(binaryMessenger, instanceManager); - GeneratedCameraXLibrary.DeviceOrientationManagerHostApi.setup( - binaryMessenger, deviceOrientationManagerHostApiImpl); - GeneratedCameraXLibrary.PreviewHostApi.setup( - binaryMessenger, new PreviewHostApiImpl(binaryMessenger, instanceManager, textureRegistry)); - imageCaptureHostApiImpl = - new ImageCaptureHostApiImpl(binaryMessenger, instanceManager, context); - GeneratedCameraXLibrary.ImageCaptureHostApi.setup(binaryMessenger, imageCaptureHostApiImpl); - GeneratedCameraXLibrary.CameraHostApi.setup( - binaryMessenger, new CameraHostApiImpl(binaryMessenger, instanceManager)); - liveDataHostApiImpl = new LiveDataHostApiImpl(binaryMessenger, instanceManager); - GeneratedCameraXLibrary.LiveDataHostApi.setup(binaryMessenger, liveDataHostApiImpl); - GeneratedCameraXLibrary.ObserverHostApi.setup( - binaryMessenger, new ObserverHostApiImpl(binaryMessenger, instanceManager)); - imageAnalysisHostApiImpl = - new ImageAnalysisHostApiImpl(binaryMessenger, instanceManager, context); - GeneratedCameraXLibrary.ImageAnalysisHostApi.setup(binaryMessenger, imageAnalysisHostApiImpl); - GeneratedCameraXLibrary.AnalyzerHostApi.setup( - binaryMessenger, new AnalyzerHostApiImpl(binaryMessenger, instanceManager)); - GeneratedCameraXLibrary.ImageProxyHostApi.setup( - binaryMessenger, new ImageProxyHostApiImpl(binaryMessenger, instanceManager)); - GeneratedCameraXLibrary.RecordingHostApi.setup( - binaryMessenger, new RecordingHostApiImpl(binaryMessenger, instanceManager)); - recorderHostApiImpl = new RecorderHostApiImpl(binaryMessenger, instanceManager, context); - GeneratedCameraXLibrary.RecorderHostApi.setup(binaryMessenger, recorderHostApiImpl); - pendingRecordingHostApiImpl = - new PendingRecordingHostApiImpl(binaryMessenger, instanceManager, context); - GeneratedCameraXLibrary.PendingRecordingHostApi.setup( - binaryMessenger, pendingRecordingHostApiImpl); - videoCaptureHostApiImpl = new VideoCaptureHostApiImpl(binaryMessenger, instanceManager); - GeneratedCameraXLibrary.VideoCaptureHostApi.setup(binaryMessenger, videoCaptureHostApiImpl); - GeneratedCameraXLibrary.ResolutionSelectorHostApi.setup( - binaryMessenger, new ResolutionSelectorHostApiImpl(instanceManager)); - GeneratedCameraXLibrary.ResolutionStrategyHostApi.setup( - binaryMessenger, new ResolutionStrategyHostApiImpl(instanceManager)); - GeneratedCameraXLibrary.AspectRatioStrategyHostApi.setup( - binaryMessenger, new AspectRatioStrategyHostApiImpl(instanceManager)); - GeneratedCameraXLibrary.FallbackStrategyHostApi.setup( - binaryMessenger, new FallbackStrategyHostApiImpl(instanceManager)); - GeneratedCameraXLibrary.QualitySelectorHostApi.setup( - binaryMessenger, new QualitySelectorHostApiImpl(instanceManager)); - cameraControlHostApiImpl = - new CameraControlHostApiImpl(binaryMessenger, instanceManager, context); - GeneratedCameraXLibrary.CameraControlHostApi.setup(binaryMessenger, cameraControlHostApiImpl); - camera2CameraControlHostApiImpl = new Camera2CameraControlHostApiImpl(instanceManager, context); - GeneratedCameraXLibrary.Camera2CameraControlHostApi.setup( - binaryMessenger, camera2CameraControlHostApiImpl); - GeneratedCameraXLibrary.CaptureRequestOptionsHostApi.setup( - binaryMessenger, new CaptureRequestOptionsHostApiImpl(instanceManager)); - GeneratedCameraXLibrary.FocusMeteringActionHostApi.setup( - binaryMessenger, new FocusMeteringActionHostApiImpl(instanceManager)); - GeneratedCameraXLibrary.FocusMeteringResultHostApi.setup( - binaryMessenger, new FocusMeteringResultHostApiImpl(instanceManager)); - meteringPointHostApiImpl = new MeteringPointHostApiImpl(instanceManager); - GeneratedCameraXLibrary.MeteringPointHostApi.setup(binaryMessenger, meteringPointHostApiImpl); - GeneratedCameraXLibrary.ResolutionFilterHostApi.setup( - binaryMessenger, new ResolutionFilterHostApiImpl(instanceManager)); - GeneratedCameraXLibrary.Camera2CameraInfoHostApi.setup( - binaryMessenger, new Camera2CameraInfoHostApiImpl(binaryMessenger, instanceManager)); - } - @Override - public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) { - pluginBinding = flutterPluginBinding; + public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { + pluginBinding = binding; + + proxyApiRegistrar = new ProxyApiRegistrar(binding.getBinaryMessenger(), binding.getApplicationContext(), binding.getTextureRegistry()); + proxyApiRegistrar.setUp(); } @Override public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { - if (instanceManager != null) { - instanceManager.stopFinalizationListener(); + if (proxyApiRegistrar != null) { + proxyApiRegistrar.setIgnoreCallsToDart(false); + proxyApiRegistrar.tearDown(); + proxyApiRegistrar.getInstanceManager().stopFinalizationListener(); + proxyApiRegistrar = null; } } @@ -156,112 +51,35 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { @Override public void onAttachedToActivity(@NonNull ActivityPluginBinding activityPluginBinding) { - Activity activity = activityPluginBinding.getActivity(); - - // Set up Host API implementations based on the context that `activity` provides. - setUp(pluginBinding.getBinaryMessenger(), activity, pluginBinding.getTextureRegistry()); - - // Set any needed references to `activity` itself. - updateLifecycleOwner(activity); - updateActivity(activity); - - // Set permissions registry reference. - systemServicesHostApiImpl.setPermissionsRegistry( - activityPluginBinding::addRequestPermissionsResultListener); + if (proxyApiRegistrar != null) { + proxyApiRegistrar.setContext(activityPluginBinding.getActivity()); + proxyApiRegistrar.setPermissionsRegistry(activityPluginBinding::addRequestPermissionsResultListener); + } } @Override public void onDetachedFromActivityForConfigChanges() { - // Clear any references to previously attached `ActivityPluginBinding`/`Activity`. - updateContext(pluginBinding.getApplicationContext()); - updateLifecycleOwner(null); - updateActivity(null); - systemServicesHostApiImpl.setPermissionsRegistry(null); + if (proxyApiRegistrar != null) { + proxyApiRegistrar.setContext(pluginBinding.getApplicationContext()); + proxyApiRegistrar.setPermissionsRegistry(null); + } } @Override public void onReattachedToActivityForConfigChanges( @NonNull ActivityPluginBinding activityPluginBinding) { - Activity activity = activityPluginBinding.getActivity(); - - // Set any needed references to `activity` itself or its context. - updateContext(activity); - updateLifecycleOwner(activity); - updateActivity(activity); - - // Set permissions registry reference. - systemServicesHostApiImpl.setPermissionsRegistry( - activityPluginBinding::addRequestPermissionsResultListener); + if (proxyApiRegistrar != null) { + proxyApiRegistrar.setContext(activityPluginBinding.getActivity()); + proxyApiRegistrar.setPermissionsRegistry(activityPluginBinding::addRequestPermissionsResultListener); + } } @Override public void onDetachedFromActivity() { // Clear any references to previously attached `ActivityPluginBinding`/`Activity`. - updateContext(pluginBinding.getApplicationContext()); - updateLifecycleOwner(null); - updateActivity(null); - systemServicesHostApiImpl.setPermissionsRegistry(null); - } - - /** - * Updates context that is used to fetch the corresponding instance of a {@code - * ProcessCameraProvider} to each of the relevant camera controls. - */ - public void updateContext(@NonNull Context context) { - if (processCameraProviderHostApiImpl != null) { - processCameraProviderHostApiImpl.setContext(context); - } - if (recorderHostApiImpl != null) { - recorderHostApiImpl.setContext(context); - } - if (pendingRecordingHostApiImpl != null) { - pendingRecordingHostApiImpl.setContext(context); - } - if (systemServicesHostApiImpl != null) { - systemServicesHostApiImpl.setContext(context); - } - if (imageCaptureHostApiImpl != null) { - imageCaptureHostApiImpl.setContext(context); - } - if (imageAnalysisHostApiImpl != null) { - imageAnalysisHostApiImpl.setContext(context); - } - if (cameraControlHostApiImpl != null) { - cameraControlHostApiImpl.setContext(context); - } - if (camera2CameraControlHostApiImpl != null) { - camera2CameraControlHostApiImpl.setContext(context); - } - } - - /** Sets {@code LifecycleOwner} that is used to control the lifecycle of the camera by CameraX. */ - public void updateLifecycleOwner(@Nullable Activity activity) { - if (activity == null) { - processCameraProviderHostApiImpl.setLifecycleOwner(null); - liveDataHostApiImpl.setLifecycleOwner(null); - } else if (activity instanceof LifecycleOwner) { - processCameraProviderHostApiImpl.setLifecycleOwner((LifecycleOwner) activity); - liveDataHostApiImpl.setLifecycleOwner((LifecycleOwner) activity); - } else { - ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); - processCameraProviderHostApiImpl.setLifecycleOwner(proxyLifecycleProvider); - liveDataHostApiImpl.setLifecycleOwner(proxyLifecycleProvider); - } - } - - /** - * Updates {@code Activity} that is used for requesting camera permissions and tracking the - * orientation of the device. - */ - public void updateActivity(@Nullable Activity activity) { - if (systemServicesHostApiImpl != null) { - systemServicesHostApiImpl.setActivity(activity); - } - if (deviceOrientationManagerHostApiImpl != null) { - deviceOrientationManagerHostApiImpl.setActivity(activity); - } - if (meteringPointHostApiImpl != null) { - meteringPointHostApiImpl.setActivity(activity); + if (proxyApiRegistrar != null) { + proxyApiRegistrar.setContext(pluginBinding.getApplicationContext()); + proxyApiRegistrar.setPermissionsRegistry(null); } } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateFlutterApiWrapper.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateFlutterApiWrapper.java deleted file mode 100644 index cb1c30ad424..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateFlutterApiWrapper.java +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.CameraState; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateFlutterApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateType; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateTypeData; - -/** - * Flutter API implementation for {@link CameraState}. - * - *

This class may handle adding native instances that are attached to a Dart instance or passing - * arguments of callbacks methods to a Dart instance. - */ -public class CameraStateFlutterApiWrapper { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private CameraStateFlutterApi cameraStateFlutterApi; - - /** - * Constructs a {@link CameraStateFlutterApiWrapper}. - * - * @param binaryMessenger used to communicate with Dart over asynchronous messages - * @param instanceManager maintains instances stored to communicate with attached Dart objects - */ - public CameraStateFlutterApiWrapper( - @NonNull BinaryMessenger binaryMessenger, @NonNull InstanceManager instanceManager) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - cameraStateFlutterApi = new CameraStateFlutterApi(binaryMessenger); - } - - /** - * Stores the {@link CameraState} instance and notifies Dart to create and store a new {@link - * CameraState} instance that is attached to this one. If {@code instance} has already been added, - * this method does nothing. - */ - public void create( - @NonNull CameraState instance, - @NonNull CameraStateType type, - @Nullable CameraState.StateError error, - @NonNull CameraStateFlutterApi.Reply callback) { - if (instanceManager.containsInstance(instance)) { - return; - } - - if (error != null) { - // if there is a problem with the current camera state, we need to create a CameraStateError - // to send to the Dart side. - new CameraStateErrorFlutterApiWrapper(binaryMessenger, instanceManager) - .create(error, Long.valueOf(error.getCode()), reply -> {}); - } - - cameraStateFlutterApi.create( - instanceManager.addHostCreatedInstance(instance), - new CameraStateTypeData.Builder().setValue(type).build(), - instanceManager.getIdentifierForStrongReference(error), - callback); - } - - /** Converts CameraX CameraState.Type to CameraStateType that the Dart side understands. */ - @NonNull - public static CameraStateType getCameraStateType(@NonNull CameraState.Type type) { - CameraStateType cameraStateType = null; - switch (type) { - case CLOSED: - cameraStateType = CameraStateType.CLOSED; - break; - case CLOSING: - cameraStateType = CameraStateType.CLOSING; - break; - case OPEN: - cameraStateType = CameraStateType.OPEN; - break; - case OPENING: - cameraStateType = CameraStateType.OPENING; - break; - case PENDING_OPEN: - cameraStateType = CameraStateType.PENDING_OPEN; - break; - } - - if (cameraStateType == null) { - throw new IllegalArgumentException( - "The CameraState.Type passed to this method was not recognized."); - } - return cameraStateType; - } - - /** Sets the Flutter API used to send messages to Dart. */ - @VisibleForTesting - void setApi(@NonNull CameraStateFlutterApi api) { - this.cameraStateFlutterApi = api; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java index c7e9dfec5fd..79a28f78cc3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java @@ -18,10 +18,6 @@ /** Utility class used to create CameraX-related objects primarily for testing purposes. */ public class CameraXProxy { - /** - * Converts a {@link ResolutionInfo} instance to a {@link Size} for setting the target resolution - * of {@link UseCase}s. - */ public static @NonNull Size sizeFromResolution(@NonNull ResolutionInfo resolutionInfo) { return new Size(resolutionInfo.getWidth().intValue(), resolutionInfo.getHeight().intValue()); } @@ -40,17 +36,6 @@ public class CameraXProxy { return new Preview.Builder(); } - /** - * Creates an instance of the {@link SystemServicesFlutterApiImpl}. - * - *

Included in this class to utilize the callback methods it provides, e.g. {@code - * onCameraError(String)}. - */ - public @NonNull SystemServicesFlutterApiImpl createSystemServicesFlutterApiImpl( - @NonNull BinaryMessenger binaryMessenger) { - return new SystemServicesFlutterApiImpl(binaryMessenger); - } - /** Creates an instance of {@link Recorder.Builder}. */ @NonNull public Recorder.Builder createRecorderBuilder() { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java deleted file mode 100644 index 55fe15829c7..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CaptureRequest.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CaptureRequestKey}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CaptureRequestKeyProxyApi extends PigeonApiCaptureRequestKey { - CaptureRequestKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesHostApiImpl.java deleted file mode 100644 index 138e9259e02..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesHostApiImpl.java +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.app.Activity; -import android.content.Context; -import android.os.Build; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraPermissionsErrorData; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.Result; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.SystemServicesHostApi; -import java.io.File; -import java.io.IOException; - -public class SystemServicesHostApiImpl implements SystemServicesHostApi { - private final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - @Nullable private Context context; - - @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); - @VisibleForTesting public @NonNull SystemServicesFlutterApiImpl systemServicesFlutterApi; - - private Activity activity; - private PermissionsRegistry permissionsRegistry; - - public SystemServicesHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull Context context) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.context = context; - this.systemServicesFlutterApi = new SystemServicesFlutterApiImpl(binaryMessenger); - } - - /** Sets the context, which is used to get the cache directory. */ - public void setContext(@NonNull Context context) { - this.context = context; - } - - public void setActivity(@NonNull Activity activity) { - this.activity = activity; - } - - public void setPermissionsRegistry(@Nullable PermissionsRegistry permissionsRegistry) { - this.permissionsRegistry = permissionsRegistry; - } - - /** - * Requests camera permissions using an instance of a {@link CameraPermissionsManager}. - * - *

Will result with {@code null} if permissions were approved or there were no errors; - * otherwise, it will result with the error data explaining what went wrong. - */ - @Override - public void requestCameraPermissions( - @NonNull Boolean enableAudio, @NonNull Result result) { - if (activity == null) { - throw new IllegalStateException("Activity must be set to request camera permissions."); - } - - CameraPermissionsManager cameraPermissionsManager = - cameraXProxy.createCameraPermissionsManager(); - cameraPermissionsManager.requestPermissions( - activity, - permissionsRegistry, - enableAudio, - (String errorCode, String description) -> { - if (errorCode == null) { - result.success(null); - } else { - // If permissions are ongoing or denied, error data will be sent to be handled. - CameraPermissionsErrorData errorData = - new CameraPermissionsErrorData.Builder() - .setErrorCode(errorCode) - .setDescription(description) - .build(); - result.success(errorData); - } - }); - } - - /** Returns a path to be used to create a temp file in the current cache directory. */ - @Override - @NonNull - public String getTempFilePath(@NonNull String prefix, @NonNull String suffix) { - if (context == null) { - throw new IllegalStateException("Context must be set to create a temporary file."); - } - - try { - File path = File.createTempFile(prefix, suffix, context.getCacheDir()); - return path.toString(); - } catch (IOException | SecurityException e) { - throw new GeneratedCameraXLibrary.FlutterError( - "getTempFilePath_failure", - "SystemServicesHostApiImpl.getTempFilePath encountered an exception: " + e.toString(), - null); - } - } - - /** - * Returns whether or not Impeller uses an {@code ImageReader} backend to provide a {@code - * Surface} to CameraX to build the preview. If it is backed by an {@code ImageReader}, then - * CameraX will not automatically apply the transformation needed to correct the preview. - * - *

This is determined by the engine, which approximately uses {@code SurfaceTexture}s on - * Android SDKs below 29. - */ - @Override - @NonNull - public Boolean isPreviewPreTransformed() { - return Build.VERSION.SDK_INT < 29; - } -} From 5bf75b84e4d423255da9dfeb5efbd11df2f9c802 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 22:52:44 -0500 Subject: [PATCH 017/148] formatting --- .../plugins/camerax/AnalyzerProxyApi.java | 10 +- .../camerax/AspectRatioStrategyProxyApi.java | 15 +- .../camerax/Camera2CameraControlProxyApi.java | 18 +- .../camerax/Camera2CameraInfoProxyApi.java | 17 +- .../camerax/CameraAndroidCameraxPlugin.java | 21 +- .../CameraCharacteristicsProxyApi.java | 9 +- .../camerax/CameraControlProxyApi.java | 38 +- .../plugins/camerax/CameraInfoProxyApi.java | 16 +- .../camerax/CameraIntegerRangeProxyApi.java | 9 +- .../plugins/camerax/CameraProxyApi.java | 9 +- .../camerax/CameraSelectorProxyApi.java | 17 +- .../plugins/camerax/CameraSizeProxyApi.java | 6 +- .../plugins/camerax/CameraStateProxyApi.java | 10 +- .../CameraStateStateErrorProxyApi.java | 33 +- .../plugins/camerax/CameraXLibrary.g.kt | 4074 ++++++++++------- .../flutter/plugins/camerax/CameraXProxy.java | 2 - .../CaptureRequestOptionsProxyApi.java | 18 +- .../camerax/CaptureRequestProxyApi.java | 8 +- .../camerax/DeviceOrientationManager.java | 6 +- .../DeviceOrientationManagerProxyApi.java | 25 +- ...yOrientedMeteringPointFactoryProxyApi.java | 21 +- .../camerax/ExposureStateProxyApi.java | 9 +- .../camerax/FallbackStrategyProxyApi.java | 17 +- .../FocusMeteringActionBuilderProxyApi.java | 26 +- .../camerax/FocusMeteringActionProxyApi.java | 16 +- .../camerax/FocusMeteringResultProxyApi.java | 9 +- .../camerax/ImageAnalysisProxyApi.java | 31 +- .../plugins/camerax/ImageCaptureProxyApi.java | 36 +- .../plugins/camerax/ImageProxyProxyApi.java | 10 +- .../plugins/camerax/LiveDataProxyApi.java | 13 +- .../camerax/MeteringPointFactoryProxyApi.java | 16 +- .../camerax/MeteringPointProxyApi.java | 11 +- .../plugins/camerax/ObserverProxyApi.java | 13 +- .../camerax/PendingRecordingProxyApi.java | 17 +- .../plugins/camerax/PlaneProxyProxyApi.java | 11 +- .../plugins/camerax/PreviewProxyApi.java | 37 +- .../ProcessCameraProviderProxyApi.java | 33 +- .../plugins/camerax/ProxyApiRegistrar.java | 25 +- .../camerax/QualitySelectorProxyApi.java | 32 +- .../plugins/camerax/RecorderProxyApi.java | 28 +- .../plugins/camerax/RecordingProxyApi.java | 9 +- .../camerax/ResolutionFilterProxyApi.java | 10 +- .../camerax/ResolutionInfoProxyApi.java | 4 +- .../camerax/ResolutionSelectorProxyApi.java | 19 +- .../camerax/ResolutionStrategyProxyApi.java | 13 +- .../flutter/plugins/camerax/ResultCompat.kt | 2 +- .../camerax/SystemServicesManager.java | 12 +- .../SystemServicesManagerProxyApi.java | 38 +- .../plugins/camerax/VideoCaptureProxyApi.java | 9 +- .../VideoRecordEventListenerProxyApi.java | 14 +- .../plugins/camerax/ZoomStateProxyApi.java | 8 +- .../cameraxexample/InstanceManagerTest.java | 1 - .../lib/src/camerax_library2.g.dart | 328 +- .../pigeons/camerax_library.dart | 3 +- .../test/test_camerax_library.g.dart | 53 +- 55 files changed, 3162 insertions(+), 2133 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java index 01853c07ddc..9fe06f32f06 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java @@ -4,15 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ImageAnalysis.Analyzer; -import androidx.camera.core.ImageProxy; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.ImageAnalysis.Analyzer; /** - * ProxyApi implementation for {@link Analyzer}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link Analyzer}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class AnalyzerProxyApi extends PigeonApiAnalyzer { AnalyzerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java index 299597156ed..ca7f52c87ce 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java @@ -4,14 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.resolutionselector.AspectRatioStrategy; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.resolutionselector.AspectRatioStrategy; /** - * ProxyApi implementation for {@link AspectRatioStrategy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link AspectRatioStrategy}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class AspectRatioStrategyProxyApi extends PigeonApiAspectRatioStrategy { AspectRatioStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -20,9 +19,11 @@ class AspectRatioStrategyProxyApi extends PigeonApiAspectRatioStrategy { @NonNull @Override - public AspectRatioStrategy pigeon_defaultConstructor(@NonNull AspectRatio preferredAspectRatio, @NonNull AspectRatioStrategyFallbackRule fallbackRule) { + public AspectRatioStrategy pigeon_defaultConstructor( + @NonNull AspectRatio preferredAspectRatio, + @NonNull AspectRatioStrategyFallbackRule fallbackRule) { int nativeAspectRatio = -2; - switch(preferredAspectRatio) { + switch (preferredAspectRatio) { case RATIO16TO9: nativeAspectRatio = androidx.camera.core.AspectRatio.RATIO_16_9; break; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java index bdcd993ce86..0fc7f291561 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java @@ -4,27 +4,24 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.annotation.OptIn; import androidx.camera.camera2.interop.Camera2CameraControl; +import androidx.camera.camera2.interop.CaptureRequestOptions; import androidx.camera.camera2.interop.ExperimentalCamera2Interop; import androidx.camera.core.CameraControl; -import androidx.camera.camera2.interop.CaptureRequestOptions; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; - import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; - import kotlin.Result; import kotlin.Unit; import kotlin.jvm.functions.Function1; /** - * ProxyApi implementation for {@link Camera2CameraControl}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link Camera2CameraControl}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ @OptIn(markerClass = ExperimentalCamera2Interop.class) class Camera2CameraControlProxyApi extends PigeonApiCamera2CameraControl { @@ -45,7 +42,10 @@ public Camera2CameraControl from(@NonNull CameraControl cameraControl) { } @Override - public void addCaptureRequestOptions(@NonNull Camera2CameraControl pigeon_instance, @NonNull CaptureRequestOptions bundle, @NonNull Function1, Unit> callback) { + public void addCaptureRequestOptions( + @NonNull Camera2CameraControl pigeon_instance, + @NonNull CaptureRequestOptions bundle, + @NonNull Function1, Unit> callback) { final ListenableFuture addCaptureRequestOptionsFuture = pigeon_instance.addCaptureRequestOptions(bundle); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java index 5b449aeaca6..5943e6db94b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java @@ -4,20 +4,18 @@ package io.flutter.plugins.camerax; +import android.hardware.camera2.CameraCharacteristics; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.OptIn; import androidx.camera.camera2.interop.Camera2CameraInfo; import androidx.camera.camera2.interop.ExperimentalCamera2Interop; import androidx.camera.core.CameraInfo; -import android.hardware.camera2.CameraCharacteristics; -import android.hardware.camera2.CameraCharacteristics.Key; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - /** - * ProxyApi implementation for {@link Camera2CameraInfo}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link Camera2CameraInfo}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ @OptIn(markerClass = ExperimentalCamera2Interop.class) class Camera2CameraInfoProxyApi extends PigeonApiCamera2CameraInfo { @@ -39,7 +37,8 @@ public String getCameraId(Camera2CameraInfo pigeon_instance) { @Nullable @Override - public Object getCameraCharacteristic(Camera2CameraInfo pigeon_instance, @NonNull CameraCharacteristics.Key key) { + public Object getCameraCharacteristic( + Camera2CameraInfo pigeon_instance, @NonNull CameraCharacteristics.Key key) { return pigeon_instance.getCameraCharacteristic(key); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java index b4933b15847..67392ee4661 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java @@ -4,23 +4,16 @@ package io.flutter.plugins.camerax; -import android.app.Activity; -import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.lifecycle.LifecycleOwner; import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.embedding.engine.plugins.activity.ActivityAware; import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.view.TextureRegistry; /** Platform implementation of the camera_plugin implemented with the CameraX library. */ public final class CameraAndroidCameraxPlugin implements FlutterPlugin, ActivityAware { private FlutterPluginBinding pluginBinding; - @Nullable - private ProxyApiRegistrar proxyApiRegistrar; + @Nullable private ProxyApiRegistrar proxyApiRegistrar; /** * Initialize this within the {@code #configureFlutterEngine} of a Flutter activity or fragment. @@ -33,7 +26,11 @@ public CameraAndroidCameraxPlugin() {} public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { pluginBinding = binding; - proxyApiRegistrar = new ProxyApiRegistrar(binding.getBinaryMessenger(), binding.getApplicationContext(), binding.getTextureRegistry()); + proxyApiRegistrar = + new ProxyApiRegistrar( + binding.getBinaryMessenger(), + binding.getApplicationContext(), + binding.getTextureRegistry()); proxyApiRegistrar.setUp(); } @@ -53,7 +50,8 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { public void onAttachedToActivity(@NonNull ActivityPluginBinding activityPluginBinding) { if (proxyApiRegistrar != null) { proxyApiRegistrar.setContext(activityPluginBinding.getActivity()); - proxyApiRegistrar.setPermissionsRegistry(activityPluginBinding::addRequestPermissionsResultListener); + proxyApiRegistrar.setPermissionsRegistry( + activityPluginBinding::addRequestPermissionsResultListener); } } @@ -70,7 +68,8 @@ public void onReattachedToActivityForConfigChanges( @NonNull ActivityPluginBinding activityPluginBinding) { if (proxyApiRegistrar != null) { proxyApiRegistrar.setContext(activityPluginBinding.getActivity()); - proxyApiRegistrar.setPermissionsRegistry(activityPluginBinding::addRequestPermissionsResultListener); + proxyApiRegistrar.setPermissionsRegistry( + activityPluginBinding::addRequestPermissionsResultListener); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java index 9e8dc53bf09..5cab2f35e69 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApi.java @@ -5,14 +5,12 @@ package io.flutter.plugins.camerax; import android.hardware.camera2.CameraCharacteristics; -import android.hardware.camera2.CameraCharacteristics.Key; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; /** - * ProxyApi implementation for {@link CameraCharacteristics}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link CameraCharacteristics}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class CameraCharacteristicsProxyApi extends PigeonApiCameraCharacteristics { CameraCharacteristicsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -30,5 +28,4 @@ public CameraCharacteristics.Key infoSupportedHardwareLevel() { public android.hardware.camera2.CameraCharacteristics.Key sensorOrientation() { return CameraCharacteristics.SENSOR_ORIENTATION; } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java index 0b862f24285..9e5e2d6edd5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java @@ -4,25 +4,22 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.core.CameraControl; import androidx.camera.core.FocusMeteringAction; import androidx.camera.core.FocusMeteringResult; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; - import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; - import kotlin.Result; import kotlin.Unit; import kotlin.jvm.functions.Function1; /** - * ProxyApi implementation for {@link CameraControl}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link CameraControl}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class CameraControlProxyApi extends PigeonApiCameraControl { CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -36,7 +33,10 @@ public ProxyApiRegistrar getPigeonRegistrar() { } @Override - public void enableTorch(@NonNull CameraControl pigeon_instance, boolean torch, @NonNull Function1, Unit> callback) { + public void enableTorch( + @NonNull CameraControl pigeon_instance, + boolean torch, + @NonNull Function1, Unit> callback) { final ListenableFuture enableTorchFuture = pigeon_instance.enableTorch(torch); Futures.addCallback( @@ -54,7 +54,10 @@ public void onFailure(@NonNull Throwable t) { } @Override - public void setZoomRatio(@NonNull CameraControl pigeon_instance, double ratio, @NonNull Function1, Unit> callback) { + public void setZoomRatio( + @NonNull CameraControl pigeon_instance, + double ratio, + @NonNull Function1, Unit> callback) { float ratioAsFloat = (float) ratio; final ListenableFuture setZoomRatioFuture = pigeon_instance.setZoomRatio(ratioAsFloat); @@ -80,7 +83,10 @@ public void onFailure(@NonNull Throwable t) { } @Override - public void startFocusAndMetering(@NonNull CameraControl pigeon_instance, @NonNull FocusMeteringAction action, @NonNull Function1, Unit> callback) { + public void startFocusAndMetering( + @NonNull CameraControl pigeon_instance, + @NonNull FocusMeteringAction action, + @NonNull Function1, Unit> callback) { ListenableFuture focusMeteringResultFuture = pigeon_instance.startFocusAndMetering(action); @@ -105,8 +111,11 @@ public void onFailure(@NonNull Throwable t) { } @Override - public void cancelFocusAndMetering(@NonNull CameraControl pigeon_instance, @NonNull Function1, Unit> callback) { - final ListenableFuture cancelFocusAndMeteringFuture = pigeon_instance.cancelFocusAndMetering(); + public void cancelFocusAndMetering( + @NonNull CameraControl pigeon_instance, + @NonNull Function1, Unit> callback) { + final ListenableFuture cancelFocusAndMeteringFuture = + pigeon_instance.cancelFocusAndMetering(); Futures.addCallback( cancelFocusAndMeteringFuture, @@ -123,7 +132,10 @@ public void onFailure(@NonNull Throwable t) { } @Override - public void setExposureCompensationIndex(@NonNull CameraControl pigeon_instance, long index, @NonNull Function1, Unit> callback) { + public void setExposureCompensationIndex( + @NonNull CameraControl pigeon_instance, + long index, + @NonNull Function1, Unit> callback) { final ListenableFuture setExposureCompensationIndexFuture = pigeon_instance.setExposureCompensationIndex((int) index); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java index c0b50558c3f..223446107e1 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java @@ -4,16 +4,14 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.core.CameraInfo; import androidx.camera.core.ExposureState; -import androidx.lifecycle.LiveData; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; /** - * ProxyApi implementation for {@link CameraInfo}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link CameraInfo}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class CameraInfoProxyApi extends PigeonApiCameraInfo { CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -34,12 +32,14 @@ public ExposureState exposureState(CameraInfo pigeon_instance) { @NonNull @Override public LiveDataProxyApi.LiveDataWrapper getCameraState(CameraInfo pigeon_instance) { - return new LiveDataProxyApi.LiveDataWrapper(pigeon_instance.getCameraState(), LiveDataSupportedType.CAMERA_STATE); + return new LiveDataProxyApi.LiveDataWrapper( + pigeon_instance.getCameraState(), LiveDataSupportedType.CAMERA_STATE); } @NonNull @Override public LiveDataProxyApi.LiveDataWrapper getZoomState(CameraInfo pigeon_instance) { - return new LiveDataProxyApi.LiveDataWrapper(pigeon_instance.getZoomState(), LiveDataSupportedType.ZOOM_STATE); + return new LiveDataProxyApi.LiveDataWrapper( + pigeon_instance.getZoomState(), LiveDataSupportedType.ZOOM_STATE); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java index 8994bdfaab3..19a6b421f48 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java @@ -6,12 +6,11 @@ import android.util.Range; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; /** - * ProxyApi implementation for {@link android.util.Range}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link android.util.Range}. This class may handle + * instantiating native object instances that are attached to a Dart instance or handle method calls + * on the associated native class or an instance of that class. */ class CameraIntegerRangeProxyApi extends PigeonApiCameraIntegerRange { CameraIntegerRangeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -33,4 +32,4 @@ public long lower(android.util.Range pigeon_instance) { public long upper(android.util.Range pigeon_instance) { return (long) pigeon_instance.getUpper(); } -} \ No newline at end of file +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java index 8bd40b5d647..0e6b3b0c1cb 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java @@ -4,16 +4,15 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.core.Camera; import androidx.camera.core.CameraControl; import androidx.camera.core.CameraInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; /** - * ProxyApi implementation for {@link Camera}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link Camera}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class CameraProxyApi extends PigeonApiCamera { CameraProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java index f5e8c70eac7..49957cdc1b9 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java @@ -4,19 +4,17 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.CameraSelector; -import androidx.camera.core.CameraInfo; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.camera.core.CameraInfo; +import androidx.camera.core.CameraSelector; import androidx.camera.core.ExperimentalLensFacing; - -import java.util.Collections; import java.util.List; /** - * ProxyApi implementation for {@link CameraSelector}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link CameraSelector}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class CameraSelectorProxyApi extends PigeonApiCameraSelector { CameraSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -29,7 +27,7 @@ class CameraSelectorProxyApi extends PigeonApiCameraSelector { public CameraSelector pigeon_defaultConstructor(@Nullable LensFacing requireLensFacing) { final CameraSelector.Builder builder = new CameraSelector.Builder(); if (requireLensFacing != null) { - switch(requireLensFacing) { + switch (requireLensFacing) { case FRONT: builder.requireLensFacing(CameraSelector.LENS_FACING_FRONT); case BACK: @@ -57,7 +55,8 @@ public androidx.camera.core.CameraSelector defaultFrontCamera() { @NonNull @Override - public List filter(@NonNull CameraSelector pigeon_instance, @NonNull List cameraInfos) { + public List filter( + @NonNull CameraSelector pigeon_instance, @NonNull List cameraInfos) { // List is the same as List. //noinspection unchecked return pigeon_instance.filter((List) cameraInfos); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java index 88835579942..c533c1823cc 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java @@ -8,9 +8,9 @@ import androidx.annotation.NonNull; /** - * ProxyApi implementation for {@link Size}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link Size}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class CameraSizeProxyApi extends PigeonApiCameraSize { CameraSizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java index 3f667aece29..fc2b6310bd8 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java @@ -4,15 +4,15 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.CameraState; -import androidx.camera.core.CameraState.StateError; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.camera.core.CameraState; +import androidx.camera.core.CameraState.StateError; /** - * ProxyApi implementation for {@link CameraState}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link CameraState}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class CameraStateProxyApi extends PigeonApiCameraState { CameraStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java index 4549831f645..be82ffe466c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java @@ -4,14 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.CameraState; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.CameraState; /** - * ProxyApi implementation for {@link CameraState.StateError}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link CameraState.StateError}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class CameraStateStateErrorProxyApi extends PigeonApiCameraStateStateError { CameraStateStateErrorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -22,14 +21,22 @@ class CameraStateStateErrorProxyApi extends PigeonApiCameraStateStateError { @Override public CameraStateErrorCode code(CameraState.StateError pigeon_instance) { switch (pigeon_instance.getCode()) { - case CameraState.ERROR_CAMERA_DISABLED: return CameraStateErrorCode.CAMERA_DISABLED; - case CameraState.ERROR_CAMERA_FATAL_ERROR: return CameraStateErrorCode.CAMERA_FATAL_ERROR; - case CameraState.ERROR_CAMERA_IN_USE: return CameraStateErrorCode.CAMERA_IN_USE; - case CameraState.ERROR_DO_NOT_DISTURB_MODE_ENABLED: return CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED; - case CameraState.ERROR_MAX_CAMERAS_IN_USE: return CameraStateErrorCode.MAX_CAMERAS_IN_USE; - case CameraState.ERROR_OTHER_RECOVERABLE_ERROR: return CameraStateErrorCode.OTHER_RECOVERABLE_ERROR; - case CameraState.ERROR_STREAM_CONFIG: return CameraStateErrorCode.STREAM_CONFIG; - default: return io.flutter.plugins.camerax.CameraStateErrorCode.UNKNOWN; + case CameraState.ERROR_CAMERA_DISABLED: + return CameraStateErrorCode.CAMERA_DISABLED; + case CameraState.ERROR_CAMERA_FATAL_ERROR: + return CameraStateErrorCode.CAMERA_FATAL_ERROR; + case CameraState.ERROR_CAMERA_IN_USE: + return CameraStateErrorCode.CAMERA_IN_USE; + case CameraState.ERROR_DO_NOT_DISTURB_MODE_ENABLED: + return CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED; + case CameraState.ERROR_MAX_CAMERAS_IN_USE: + return CameraStateErrorCode.MAX_CAMERAS_IN_USE; + case CameraState.ERROR_OTHER_RECOVERABLE_ERROR: + return CameraStateErrorCode.OTHER_RECOVERABLE_ERROR; + case CameraState.ERROR_STREAM_CONFIG: + return CameraStateErrorCode.STREAM_CONFIG; + default: + return io.flutter.plugins.camerax.CameraStateErrorCode.UNKNOWN; } } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 1c4d068f36b..307ad8ca249 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -10,9 +10,7 @@ package io.flutter.plugins.camerax import android.util.Log import io.flutter.plugin.common.BasicMessageChannel import io.flutter.plugin.common.BinaryMessenger -import io.flutter.plugin.common.EventChannel import io.flutter.plugin.common.MessageCodec -import io.flutter.plugin.common.StandardMethodCodec import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer @@ -23,52 +21,52 @@ private fun wrapResult(result: Any?): List { private fun wrapError(exception: Throwable): List { return if (exception is CameraXError) { - listOf( - exception.code, - exception.message, - exception.details - ) + listOf(exception.code, exception.message, exception.details) } else { listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)) } } private fun createConnectionError(channelName: String): CameraXError { - return CameraXError("channel-error", "Unable to establish connection on channel: '$channelName'.", "")} + return CameraXError( + "channel-error", "Unable to establish connection on channel: '$channelName'.", "") +} /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class CameraXError ( - val code: String, - override val message: String? = null, - val details: Any? = null +class CameraXError( + val code: String, + override val message: String? = null, + val details: Any? = null ) : RuntimeException() /** * Maintains instances used to communicate with the corresponding objects in Dart. * - * Objects stored in this container are represented by an object in Dart that is also stored in - * an InstanceManager with the same identifier. + * Objects stored in this container are represented by an object in Dart that is also stored in an + * InstanceManager with the same identifier. * * When an instance is added with an identifier, either can be used to retrieve the other. * - * Added instances are added as a weak reference and a strong reference. When the strong - * reference is removed with [remove] and the weak reference is deallocated, the - * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the strong - * reference is removed and then the identifier is retrieved with the intention to pass the identifier - * to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the instance - * is recreated. The strong reference will then need to be removed manually again. + * Added instances are added as a weak reference and a strong reference. When the strong reference + * is removed with [remove] and the weak reference is deallocated, the + * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the + * strong reference is removed and then the identifier is retrieved with the intention to pass the + * identifier to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the + * instance is recreated. The strong reference will then need to be removed manually again. */ @Suppress("UNCHECKED_CAST", "MemberVisibilityCanBePrivate") -class CameraXLibraryPigeonInstanceManager(private val finalizationListener: PigeonFinalizationListener) { - /** Interface for listening when a weak reference of an instance is removed from the manager. */ +class CameraXLibraryPigeonInstanceManager( + private val finalizationListener: PigeonFinalizationListener +) { + /** Interface for listening when a weak reference of an instance is removed from the manager. */ interface PigeonFinalizationListener { fun onFinalize(identifier: Long) } @@ -94,10 +92,7 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige } init { - handler.postDelayed( - { releaseAllFinalizedInstances() }, - clearFinalizedWeakReferencesInterval - ) + handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) } companion object { @@ -109,19 +104,20 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige private const val tag = "PigeonInstanceManager" /** - * Instantiate a new manager with a listener for garbage collected weak - * references. + * Instantiate a new manager with a listener for garbage collected weak references. * * When the manager is no longer needed, [stopFinalizationListener] must be called. */ - fun create(finalizationListener: PigeonFinalizationListener): CameraXLibraryPigeonInstanceManager { + fun create( + finalizationListener: PigeonFinalizationListener + ): CameraXLibraryPigeonInstanceManager { return CameraXLibraryPigeonInstanceManager(finalizationListener) } } /** - * Removes `identifier` and return its associated strongly referenced instance, if present, - * from the manager. + * Removes `identifier` and return its associated strongly referenced instance, if present, from + * the manager. */ fun remove(identifier: Long): T? { logWarningIfFinalizationListenerHasStopped() @@ -131,15 +127,13 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige /** * Retrieves the identifier paired with an instance, if present, otherwise `null`. * - * * If the manager contains a strong reference to `instance`, it will return the identifier * associated with `instance`. If the manager contains only a weak reference to `instance`, a new * strong reference to `instance` will be added and will need to be removed again with [remove]. * - * * If this method returns a nonnull identifier, this method also expects the Dart - * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart instance the - * identifier is associated with. + * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart + * instance the identifier is associated with. */ fun getIdentifierForStrongReference(instance: Any?): Long? { logWarningIfFinalizationListenerHasStopped() @@ -153,9 +147,9 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige /** * Adds a new instance that was instantiated from Dart. * - * The same instance can be added multiple times, but each identifier must be unique. This - * allows two objects that are equivalent (e.g. the `equals` method returns true and their - * hashcodes are equal) to both be added. + * The same instance can be added multiple times, but each identifier must be unique. This allows + * two objects that are equivalent (e.g. the `equals` method returns true and their hashcodes are + * equal) to both be added. * * [identifier] must be >= 0 and unique. */ @@ -171,7 +165,9 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige */ fun addHostCreatedInstance(instance: Any): Long { logWarningIfFinalizationListenerHasStopped() - require(!containsInstance(instance)) { "Instance of ${instance.javaClass} has already been added." } + require(!containsInstance(instance)) { + "Instance of ${instance.javaClass} has already been added." + } val identifier = nextIdentifier++ addInstance(instance, identifier) return identifier @@ -229,7 +225,8 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige return } var reference: java.lang.ref.WeakReference? - while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != null) { + while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != + null) { val identifier = weakReferencesToIdentifiers.remove(reference) if (identifier != null) { weakInstances.remove(identifier) @@ -237,10 +234,7 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige finalizationListener.onFinalize(identifier) } } - handler.postDelayed( - { releaseAllFinalizedInstances() }, - clearFinalizedWeakReferencesInterval - ) + handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) } private fun addInstance(instance: Any, identifier: Long) { @@ -258,39 +252,43 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige private fun logWarningIfFinalizationListenerHasStopped() { if (hasFinalizationListenerStopped()) { Log.w( - tag, - "The manager was used after calls to the PigeonFinalizationListener has been stopped." - ) + tag, + "The manager was used after calls to the PigeonFinalizationListener has been stopped.") } } } - /** Generated API for managing the Dart and native `InstanceManager`s. */ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: BinaryMessenger) { companion object { /** The codec used by CameraXLibraryPigeonInstanceManagerApi. */ - val codec: MessageCodec by lazy { - CameraXLibraryPigeonCodec() - } + val codec: MessageCodec by lazy { CameraXLibraryPigeonCodec() } /** * Sets up an instance of `CameraXLibraryPigeonInstanceManagerApi` to handle messages from the * `binaryMessenger`. */ - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, instanceManager: CameraXLibraryPigeonInstanceManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + instanceManager: CameraXLibraryPigeonInstanceManager? + ) { run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", + codec) if (instanceManager != null) { channel.setMessageHandler { message, reply -> val args = message as List val identifierArg = args[0] as Long - val wrapped: List = try { - instanceManager.remove(identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + instanceManager.remove(identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -298,15 +296,20 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", + codec) if (instanceManager != null) { channel.setMessageHandler { _, reply -> - val wrapped: List = try { - instanceManager.clear() - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + instanceManager.clear() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -316,9 +319,9 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } - fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) -{ - val channelName = "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" + fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) { + val channelName = + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(identifierArg)) { if (it is List<*>) { @@ -329,13 +332,13 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } /** - * Provides implementations for each ProxyApi implementation and provides access to resources - * needed by any implementation. + * Provides implementations for each ProxyApi implementation and provides access to resources needed + * by any implementation. */ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: BinaryMessenger) { /** Whether APIs should ignore calling to Dart. */ @@ -352,24 +355,23 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary init { val api = CameraXLibraryPigeonInstanceManagerApi(binaryMessenger) - instanceManager = CameraXLibraryPigeonInstanceManager.create( - object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { - override fun onFinalize(identifier: Long) { - api.removeStrongReference(identifier) { - if (it.isFailure) { - Log.e( - "PigeonProxyApiRegistrar", - "Failed to remove Dart strong reference with identifier: $identifier" - ) - } - } - } - } - ) + instanceManager = + CameraXLibraryPigeonInstanceManager.create( + object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { + override fun onFinalize(identifier: Long) { + api.removeStrongReference(identifier) { + if (it.isFailure) { + Log.e( + "PigeonProxyApiRegistrar", + "Failed to remove Dart strong reference with identifier: $identifier") + } + } + } + }) } /** - * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of - * `CameraSize` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of `CameraSize` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraSize(): PigeonApiCameraSize @@ -389,8 +391,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEvent] used to add a new Dart instance of * `VideoRecordEvent` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return PigeonApiVideoRecordEvent(this) } @@ -398,8 +399,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventStart] used to add a new Dart instance of * `VideoRecordEventStart` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart - { + open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart { return PigeonApiVideoRecordEventStart(this) } @@ -407,8 +407,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventFinalize] used to add a new Dart instance of * `VideoRecordEventFinalize` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize - { + open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize { return PigeonApiVideoRecordEventFinalize(this) } @@ -419,14 +418,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPoint(): PigeonApiMeteringPoint /** - * An implementation of [PigeonApiObserver] used to add a new Dart instance of - * `Observer` to the Dart `InstanceManager`. + * An implementation of [PigeonApiObserver] used to add a new Dart instance of `Observer` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiObserver(): PigeonApiObserver /** - * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of - * `CameraInfo` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of `CameraInfo` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraInfo(): PigeonApiCameraInfo @@ -443,17 +442,16 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiProcessCameraProvider(): PigeonApiProcessCameraProvider /** - * An implementation of [PigeonApiUseCase] used to add a new Dart instance of - * `UseCase` to the Dart `InstanceManager`. + * An implementation of [PigeonApiUseCase] used to add a new Dart instance of `UseCase` to the + * Dart `InstanceManager`. */ - open fun getPigeonApiUseCase(): PigeonApiUseCase - { + open fun getPigeonApiUseCase(): PigeonApiUseCase { return PigeonApiUseCase(this) } /** - * An implementation of [PigeonApiCamera] used to add a new Dart instance of - * `Camera` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCamera] used to add a new Dart instance of `Camera` to the Dart + * `InstanceManager`. */ abstract fun getPigeonApiCamera(): PigeonApiCamera @@ -470,29 +468,28 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiDeviceOrientationManager(): PigeonApiDeviceOrientationManager /** - * An implementation of [PigeonApiPreview] used to add a new Dart instance of - * `Preview` to the Dart `InstanceManager`. + * An implementation of [PigeonApiPreview] used to add a new Dart instance of `Preview` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiPreview(): PigeonApiPreview /** - * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of - * `VideoCapture` to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of `VideoCapture` + * to the Dart `InstanceManager`. */ abstract fun getPigeonApiVideoCapture(): PigeonApiVideoCapture /** - * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of - * `VideoOutput` to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of `VideoOutput` to + * the Dart `InstanceManager`. */ - open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput - { + open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput { return PigeonApiVideoOutput(this) } /** - * An implementation of [PigeonApiRecorder] used to add a new Dart instance of - * `Recorder` to the Dart `InstanceManager`. + * An implementation of [PigeonApiRecorder] used to add a new Dart instance of `Recorder` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiRecorder(): PigeonApiRecorder @@ -509,14 +506,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiPendingRecording(): PigeonApiPendingRecording /** - * An implementation of [PigeonApiRecording] used to add a new Dart instance of - * `Recording` to the Dart `InstanceManager`. + * An implementation of [PigeonApiRecording] used to add a new Dart instance of `Recording` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiRecording(): PigeonApiRecording /** - * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of - * `ImageCapture` to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of `ImageCapture` + * to the Dart `InstanceManager`. */ abstract fun getPigeonApiImageCapture(): PigeonApiImageCapture @@ -539,8 +536,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiAspectRatioStrategy(): PigeonApiAspectRatioStrategy /** - * An implementation of [PigeonApiCameraState] used to add a new Dart instance of - * `CameraState` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraState] used to add a new Dart instance of `CameraState` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraState(): PigeonApiCameraState @@ -551,8 +548,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiExposureState(): PigeonApiExposureState /** - * An implementation of [PigeonApiZoomState] used to add a new Dart instance of - * `ZoomState` to the Dart `InstanceManager`. + * An implementation of [PigeonApiZoomState] used to add a new Dart instance of `ZoomState` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiZoomState(): PigeonApiZoomState @@ -563,8 +560,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiImageAnalysis(): PigeonApiImageAnalysis /** - * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of - * `Analyzer` to the Dart `InstanceManager`. + * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of `Analyzer` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiAnalyzer(): PigeonApiAnalyzer @@ -575,20 +572,20 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiCameraStateStateError(): PigeonApiCameraStateStateError /** - * An implementation of [PigeonApiLiveData] used to add a new Dart instance of - * `LiveData` to the Dart `InstanceManager`. + * An implementation of [PigeonApiLiveData] used to add a new Dart instance of `LiveData` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiLiveData(): PigeonApiLiveData /** - * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of - * `ImageProxy` to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of `ImageProxy` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiImageProxy(): PigeonApiImageProxy /** - * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of - * `PlaneProxy` to the Dart `InstanceManager`. + * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of `PlaneProxy` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiPlaneProxy(): PigeonApiPlaneProxy @@ -638,8 +635,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCaptureRequestKey] used to add a new Dart instance of * `CaptureRequestKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey - { + open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey { return PigeonApiCaptureRequestKey(this) } @@ -665,8 +661,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCameraCharacteristicsKey] used to add a new Dart instance of * `CameraCharacteristicsKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey - { + open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey { return PigeonApiCameraCharacteristicsKey(this) } @@ -689,33 +684,42 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory /** - * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart instance of - * `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. + * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart + * instance of `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. */ - abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): PigeonApiDisplayOrientedMeteringPointFactory + abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): + PigeonApiDisplayOrientedMeteringPointFactory fun setUp() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, instanceManager) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSize()) - PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraIntegerRange()) + PigeonApiCameraIntegerRange.setUpMessageHandlers( + binaryMessenger, getPigeonApiCameraIntegerRange()) PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPoint()) PigeonApiObserver.setUpMessageHandlers(binaryMessenger, getPigeonApiObserver()) PigeonApiCameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraInfo()) PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSelector()) - PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, getPigeonApiProcessCameraProvider()) + PigeonApiProcessCameraProvider.setUpMessageHandlers( + binaryMessenger, getPigeonApiProcessCameraProvider()) PigeonApiCamera.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera()) - PigeonApiSystemServicesManager.setUpMessageHandlers(binaryMessenger, getPigeonApiSystemServicesManager()) - PigeonApiDeviceOrientationManager.setUpMessageHandlers(binaryMessenger, getPigeonApiDeviceOrientationManager()) + PigeonApiSystemServicesManager.setUpMessageHandlers( + binaryMessenger, getPigeonApiSystemServicesManager()) + PigeonApiDeviceOrientationManager.setUpMessageHandlers( + binaryMessenger, getPigeonApiDeviceOrientationManager()) PigeonApiPreview.setUpMessageHandlers(binaryMessenger, getPigeonApiPreview()) PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoCapture()) PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, getPigeonApiRecorder()) - PigeonApiVideoRecordEventListener.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoRecordEventListener()) + PigeonApiVideoRecordEventListener.setUpMessageHandlers( + binaryMessenger, getPigeonApiVideoRecordEventListener()) PigeonApiPendingRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiPendingRecording()) PigeonApiRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiRecording()) PigeonApiImageCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiImageCapture()) - PigeonApiResolutionStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionStrategy()) - PigeonApiResolutionSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionSelector()) - PigeonApiAspectRatioStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiAspectRatioStrategy()) + PigeonApiResolutionStrategy.setUpMessageHandlers( + binaryMessenger, getPigeonApiResolutionStrategy()) + PigeonApiResolutionSelector.setUpMessageHandlers( + binaryMessenger, getPigeonApiResolutionSelector()) + PigeonApiAspectRatioStrategy.setUpMessageHandlers( + binaryMessenger, getPigeonApiAspectRatioStrategy()) PigeonApiImageAnalysis.setUpMessageHandlers(binaryMessenger, getPigeonApiImageAnalysis()) PigeonApiAnalyzer.setUpMessageHandlers(binaryMessenger, getPigeonApiAnalyzer()) PigeonApiLiveData.setUpMessageHandlers(binaryMessenger, getPigeonApiLiveData()) @@ -723,16 +727,24 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiQualitySelector.setUpMessageHandlers(binaryMessenger, getPigeonApiQualitySelector()) PigeonApiFallbackStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiFallbackStrategy()) PigeonApiCameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraControl()) - PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers(binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) + PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers( + binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) PigeonApiCaptureRequest.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequest()) - PigeonApiCaptureRequestOptions.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequestOptions()) - PigeonApiCamera2CameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraControl()) + PigeonApiCaptureRequestOptions.setUpMessageHandlers( + binaryMessenger, getPigeonApiCaptureRequestOptions()) + PigeonApiCamera2CameraControl.setUpMessageHandlers( + binaryMessenger, getPigeonApiCamera2CameraControl()) PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionFilter()) - PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraCharacteristics()) - PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraInfo()) - PigeonApiMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPointFactory()) - PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) + PigeonApiCameraCharacteristics.setUpMessageHandlers( + binaryMessenger, getPigeonApiCameraCharacteristics()) + PigeonApiCamera2CameraInfo.setUpMessageHandlers( + binaryMessenger, getPigeonApiCamera2CameraInfo()) + PigeonApiMeteringPointFactory.setUpMessageHandlers( + binaryMessenger, getPigeonApiMeteringPointFactory()) + PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers( + binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) } + fun tearDown() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, null) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, null) @@ -773,7 +785,10 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, null) } } -private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibraryPigeonProxyApiRegistrar) : CameraXLibraryPigeonCodec() { + +private class CameraXLibraryPigeonProxyApiBaseCodec( + val registrar: CameraXLibraryPigeonProxyApiRegistrar +) : CameraXLibraryPigeonCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { @@ -784,163 +799,136 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar } override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { - if (value is Boolean || value is ByteArray || value is Double || value is DoubleArray || value is FloatArray || value is Int || value is IntArray || value is List<*> || value is Long || value is LongArray || value is Map<*, *> || value is String || value is InfoSupportedHardwareLevel || value is AspectRatio || value is CameraStateType || value is LiveDataSupportedType || value is VideoQuality || value is MeteringMode || value is LensFacing || value is CameraXFlashMode || value is ResolutionStrategyFallbackRule || value is AspectRatioStrategyFallbackRule || value is CameraStateErrorCode || value == null) { + if (value is Boolean || + value is ByteArray || + value is Double || + value is DoubleArray || + value is FloatArray || + value is Int || + value is IntArray || + value is List<*> || + value is Long || + value is LongArray || + value is Map<*, *> || + value is String || + value is InfoSupportedHardwareLevel || + value is AspectRatio || + value is CameraStateType || + value is LiveDataSupportedType || + value is VideoQuality || + value is MeteringMode || + value is LensFacing || + value is CameraXFlashMode || + value is ResolutionStrategyFallbackRule || + value is AspectRatioStrategyFallbackRule || + value is CameraStateErrorCode || + value == null) { super.writeValue(stream, value) return } if (value is android.util.Size) { - registrar.getPigeonApiCameraSize().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ResolutionInfo) { - registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) { } - } - else if (value is android.util.Range<*>) { - registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent.Start) { - registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { - registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent) { - registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.MeteringPoint) { - registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) { } - } - else if (value is androidx.lifecycle.Observer<*>) { - registrar.getPigeonApiObserver().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraInfo) { - registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraSelector) { - registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { - registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.Camera) { - registrar.getPigeonApiCamera().pigeon_newInstance(value) { } - } - else if (value is SystemServicesManager) { - registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) { } - } - else if (value is DeviceOrientationManager) { - registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.Preview) { - registrar.getPigeonApiPreview().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoCapture<*>) { - registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.Recorder) { - registrar.getPigeonApiRecorder().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoOutput) { - registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) { } - } - else if (value is VideoRecordEventListener) { - registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.PendingRecording) { - registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.Recording) { - registrar.getPigeonApiRecording().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageCapture) { - registrar.getPigeonApiImageCapture().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { - registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { - registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { - registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraState) { - registrar.getPigeonApiCameraState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ExposureState) { - registrar.getPigeonApiExposureState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ZoomState) { - registrar.getPigeonApiZoomState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageAnalysis) { - registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.UseCase) { - registrar.getPigeonApiUseCase().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { - registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraState.StateError) { - registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) { } - } - else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { - registrar.getPigeonApiLiveData().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageProxy) { - registrar.getPigeonApiImageProxy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { - registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.QualitySelector) { - registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.FallbackStrategy) { - registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraControl) { - registrar.getPigeonApiCameraControl().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringAction.Builder) { - registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringAction) { - registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringResult) { - registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CaptureRequest) { - registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { - registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { - registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { - registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { - registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { - registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CameraCharacteristics) { - registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { - registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { - registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.MeteringPointFactory) { - registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) { } + registrar.getPigeonApiCameraSize().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ResolutionInfo) { + registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) {} + } else if (value is android.util.Range<*>) { + registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent.Start) { + registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { + registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent) { + registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.MeteringPoint) { + registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) {} + } else if (value is androidx.lifecycle.Observer<*>) { + registrar.getPigeonApiObserver().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraInfo) { + registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraSelector) { + registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { + registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.Camera) { + registrar.getPigeonApiCamera().pigeon_newInstance(value) {} + } else if (value is SystemServicesManager) { + registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) {} + } else if (value is DeviceOrientationManager) { + registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.Preview) { + registrar.getPigeonApiPreview().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoCapture<*>) { + registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.Recorder) { + registrar.getPigeonApiRecorder().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoOutput) { + registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) {} + } else if (value is VideoRecordEventListener) { + registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.PendingRecording) { + registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.Recording) { + registrar.getPigeonApiRecording().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageCapture) { + registrar.getPigeonApiImageCapture().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { + registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { + registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { + registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraState) { + registrar.getPigeonApiCameraState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ExposureState) { + registrar.getPigeonApiExposureState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ZoomState) { + registrar.getPigeonApiZoomState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageAnalysis) { + registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.UseCase) { + registrar.getPigeonApiUseCase().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { + registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraState.StateError) { + registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) {} + } else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { + registrar.getPigeonApiLiveData().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageProxy) { + registrar.getPigeonApiImageProxy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { + registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.QualitySelector) { + registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.FallbackStrategy) { + registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraControl) { + registrar.getPigeonApiCameraControl().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringAction.Builder) { + registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringAction) { + registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringResult) { + registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CaptureRequest) { + registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { + registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { + registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { + registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { + registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { + registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CameraCharacteristics) { + registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { + registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { + registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.MeteringPointFactory) { + registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) {} } when { @@ -948,7 +936,9 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar stream.write(128) writeValue(stream, registrar.instanceManager.getIdentifierForStrongReference(value)) } - else -> throw IllegalArgumentException("Unsupported value: '$value' of type '${value.javaClass.name}'") + else -> + throw IllegalArgumentException( + "Unsupported value: '$value' of type '${value.javaClass.name}'") } } } @@ -956,27 +946,22 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar /** * Generally classifies the overall set of the camera device functionality. * - * See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. + * See + * https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. */ enum class InfoSupportedHardwareLevel(val raw: Int) { /** - * This camera device is capable of YUV reprocessing and RAW data capture, in - * addition to FULL-level capabilities. + * This camera device is capable of YUV reprocessing and RAW data capture, in addition to + * FULL-level capabilities. */ LEVEL3(0), - /** - * This camera device is backed by an external camera connected to this - * Android device. - */ + /** This camera device is backed by an external camera connected to this Android device. */ EXTERNAL(1), /** This camera device is capable of supporting advanced imaging applications. */ FULL(2), /** This camera device is running in backward compatibility mode. */ LEGACY(3), - /** - * This camera device does not have enough capabilities to qualify as a FULL - * device or better. - */ + /** This camera device does not have enough capabilities to qualify as a FULL device or better. */ LIMITED(4); companion object { @@ -1021,8 +1006,8 @@ enum class CameraStateType(val raw: Int) { /** Represents a state where the camera device is currently opening. */ OPENING(3), /** - * Represents a state where the camera is waiting for a signal to attempt to - * open the camera device. + * Represents a state where the camera is waiting for a signal to attempt to open the camera + * device. */ PENDING_OPEN(4), /** This value is not recognized by this wrapper. */ @@ -1048,8 +1033,8 @@ enum class LiveDataSupportedType(val raw: Int) { } /** - * Video quality constraints that will be used by a QualitySelector to choose - * an appropriate video resolution. + * Video quality constraints that will be used by a QualitySelector to choose an appropriate video + * resolution. * * These are pre-defined quality constants that are universally used for video. * @@ -1079,23 +1064,15 @@ enum class VideoQuality(val raw: Int) { /** * A flag used for indicating metering mode regions. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). */ enum class MeteringMode(val raw: Int) { - /** - * A flag used in metering mode indicating the AE (Auto Exposure) region is - * enabled. - */ + /** A flag used in metering mode indicating the AE (Auto Exposure) region is enabled. */ AE(0), - /** - * A flag used in metering mode indicating the AF (Auto Focus) region is - * enabled. - */ + /** A flag used in metering mode indicating the AF (Auto Focus) region is enabled. */ AF(1), - /** - * A flag used in metering mode indicating the AWB (Auto White Balance) - * region is enabled. - */ + /** A flag used in metering mode indicating the AWB (Auto White Balance) region is enabled. */ AWB(2); companion object { @@ -1108,20 +1085,15 @@ enum class MeteringMode(val raw: Int) { /** * Direction of lens of a camera. * - * See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). + * See + * https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). */ enum class LensFacing(val raw: Int) { /** A camera on the device facing the same direction as the device's screen. */ FRONT(0), - /** - * A camera on the device facing the opposite direction as the device's - * screen. - */ + /** A camera on the device facing the opposite direction as the device's screen. */ BACK(1), - /** - * An external camera that has no fixed facing relative to the device's - * screen. - */ + /** An external camera that has no fixed facing relative to the device's screen. */ EXTERNAL(2), /** A camera on the devices that its lens facing is resolved. */ UNKNOWN(3); @@ -1136,14 +1108,14 @@ enum class LensFacing(val raw: Int) { /** * FlashModes for image capture. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). */ enum class CameraXFlashMode(val raw: Int) { /** * Auto flash. * - * The flash will be used according to the camera system's determination when - * taking a picture. + * The flash will be used according to the camera system's determination when taking a picture. */ AUTO(0), /** @@ -1167,36 +1139,33 @@ enum class CameraXFlashMode(val raw: Int) { } /** - * Fallback rule for choosing an alternate size when the specified bound size - * is unavailable. + * Fallback rule for choosing an alternate size when the specified bound size is unavailable. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ enum class ResolutionStrategyFallbackRule(val raw: Int) { /** - * When the specified bound size is unavailable, CameraX falls back to the - * closest higher resolution size. + * When the specified bound size is unavailable, CameraX falls back to the closest higher + * resolution size. */ CLOSEST_HIGHER(0), /** - * When the specified bound size is unavailable, CameraX falls back to select - * the closest higher resolution size. + * When the specified bound size is unavailable, CameraX falls back to select the closest higher + * resolution size. */ CLOSEST_HIGHER_THEN_LOWER(1), /** - * When the specified bound size is unavailable, CameraX falls back to the - * closest lower resolution size. + * When the specified bound size is unavailable, CameraX falls back to the closest lower + * resolution size. */ CLOSEST_LOWER(2), /** - * When the specified bound size is unavailable, CameraX falls back to select - * the closest lower resolution size. + * When the specified bound size is unavailable, CameraX falls back to select the closest lower + * resolution size. */ CLOSEST_LOWER_THEN_HIGHER(3), - /** - * CameraX doesn't select an alternate size when the specified bound size is - * unavailable. - */ + /** CameraX doesn't select an alternate size when the specified bound size is unavailable. */ NONE(4); companion object { @@ -1207,21 +1176,20 @@ enum class ResolutionStrategyFallbackRule(val raw: Int) { } /** - * Fallback rule for choosing the aspect ratio when the preferred aspect ratio - * is not available. + * Fallback rule for choosing the aspect ratio when the preferred aspect ratio is not available. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). */ enum class AspectRatioStrategyFallbackRule(val raw: Int) { /** - * CameraX automatically chooses the next best aspect ratio which contains - * the closest field of view (FOV) of the camera sensor, from the remaining - * options. + * CameraX automatically chooses the next best aspect ratio which contains the closest field of + * view (FOV) of the camera sensor, from the remaining options. */ AUTO(0), /** - * CameraX doesn't fall back to select sizes of any other aspect ratio when - * this fallback rule is used. + * CameraX doesn't fall back to select sizes of any other aspect ratio when this fallback rule is + * used. */ NONE(1); @@ -1238,34 +1206,23 @@ enum class AspectRatioStrategyFallbackRule(val raw: Int) { * https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() */ enum class CameraStateErrorCode(val raw: Int) { - /** - * An error indicating that the camera device could not be opened due to a - * device policy. - */ + /** An error indicating that the camera device could not be opened due to a device policy. */ CAMERA_DISABLED(0), - /** - * An error indicating that the camera device was closed due to a fatal - * error. - */ + /** An error indicating that the camera device was closed due to a fatal error. */ CAMERA_FATAL_ERROR(1), /** An error indicating that the camera device is already in use. */ CAMERA_IN_USE(2), /** - * An error indicating that the camera could not be opened because "Do Not - * Disturb" mode is enabled on devices affected by a bug in Android 9 (API - * level 28). + * An error indicating that the camera could not be opened because "Do Not Disturb" mode is + * enabled on devices affected by a bug in Android 9 (API level 28). */ DO_NOT_DISTURB_MODE_ENABLED(3), /** - * An error indicating that the limit number of open cameras has been - * reached, and more cameras cannot be opened until other instances are - * closed. + * An error indicating that the limit number of open cameras has been reached, and more cameras + * cannot be opened until other instances are closed. */ MAX_CAMERAS_IN_USE(4), - /** - * An error indicating that the camera device has encountered a recoverable - * error. - */ + /** An error indicating that the camera device has encountered a recoverable error. */ OTHER_RECOVERABLE_ERROR(5), /** An error indicating that configuring the camera has failed. */ STREAM_CONFIG(6), @@ -1278,48 +1235,33 @@ enum class CameraStateErrorCode(val raw: Int) { } } } + private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 129.toByte() -> { - return (readValue(buffer) as Long?)?.let { - InfoSupportedHardwareLevel.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { InfoSupportedHardwareLevel.ofRaw(it.toInt()) } } 130.toByte() -> { - return (readValue(buffer) as Long?)?.let { - AspectRatio.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { AspectRatio.ofRaw(it.toInt()) } } 131.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraStateType.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraStateType.ofRaw(it.toInt()) } } 132.toByte() -> { - return (readValue(buffer) as Long?)?.let { - LiveDataSupportedType.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { LiveDataSupportedType.ofRaw(it.toInt()) } } 133.toByte() -> { - return (readValue(buffer) as Long?)?.let { - VideoQuality.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { VideoQuality.ofRaw(it.toInt()) } } 134.toByte() -> { - return (readValue(buffer) as Long?)?.let { - MeteringMode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { MeteringMode.ofRaw(it.toInt()) } } 135.toByte() -> { - return (readValue(buffer) as Long?)?.let { - LensFacing.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { LensFacing.ofRaw(it.toInt()) } } 136.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraXFlashMode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraXFlashMode.ofRaw(it.toInt()) } } 137.toByte() -> { return (readValue(buffer) as Long?)?.let { @@ -1332,14 +1274,13 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { } } 139.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraStateErrorCode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraStateErrorCode.ofRaw(it.toInt()) } } else -> super.readValueOfType(type, buffer) } } - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is InfoSupportedHardwareLevel -> { stream.write(129) @@ -1396,7 +1337,9 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { * See https://developer.android.com/reference/android/util/Size.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraSize( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(width: Long, height: Long): android.util.Size /** The width of the size (in pixels). */ @@ -1410,19 +1353,25 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSize?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val widthArg = args[1] as Long val heightArg = args[2] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(widthArg,heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(widthArg, heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1434,8 +1383,7 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) -{ + fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1446,7 +1394,8 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -1462,10 +1411,9 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -1562,20 +1510,24 @@ public class CameraSizeProxyApiTest { } */ /** - * A `ResolutionInfo` allows the application to know the resolution information - * of a specific use case. + * A `ResolutionInfo` allows the application to know the resolution information of a specific use + * case. * * See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiResolutionInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Returns the output resolution used for the use case. */ abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ResolutionInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1586,7 +1538,8 @@ abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryP Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionArg = resolution(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -1601,10 +1554,9 @@ abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -1680,7 +1632,9 @@ public class ResolutionInfoProxyApiTest { * See https://developer.android.com/reference/android/util/Range.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraIntegerRange( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(lower: Long, upper: Long): android.util.Range<*> /** The lower endpoint. */ @@ -1694,19 +1648,25 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraIntegerRange?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val lowerArg = args[1] as Long val upperArg = args[2] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(lowerArg,upperArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(lowerArg, upperArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1718,8 +1678,10 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Range<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.util.Range<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1730,12 +1692,14 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val lowerArg = lower(pigeon_instanceArg) val upperArg = upper(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, lowerArg, upperArg)) { if (it is List<*>) { @@ -1746,10 +1710,9 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -1851,11 +1814,15 @@ public class CameraIntegerRangeProxyApiTest { * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEvent( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1866,10 +1833,12 @@ open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPig Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -1880,10 +1849,9 @@ open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPig } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -1938,11 +1906,15 @@ public class VideoRecordEventProxyApiTest { * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Start. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEventStart( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1953,10 +1925,12 @@ open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibra Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -1967,17 +1941,15 @@ open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibra } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } - } /* @@ -2032,11 +2004,17 @@ public class VideoRecordEventStartProxyApiTest { * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEventFinalize( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2047,10 +2025,12 @@ open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLi Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -2061,17 +2041,15 @@ open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLi } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } - } /* @@ -2121,18 +2099,20 @@ public class VideoRecordEventFinalizeProxyApiTest { } */ /** - * A MeteringPoint is used to specify a region which can then be converted to - * sensor coordinate system for focus and metering purpose. + * A MeteringPoint is used to specify a region which can then be converted to sensor coordinate + * system for focus and metering purpose. * * See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiMeteringPoint( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Size of the MeteringPoint width and height (ranging from 0 to 1). * - * It is the percentage of the sensor width/height (or crop region - * width/height if crop region is set). + * It is the percentage of the sensor width/height (or crop region width/height if crop region is + * set). */ abstract fun getSize(pigeon_instance: androidx.camera.core.MeteringPoint): Double @@ -2141,16 +2121,21 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPoint?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - listOf(api.getSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2162,8 +2147,10 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPoint and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPoint, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.MeteringPoint, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2174,7 +2161,8 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" @@ -2188,10 +2176,9 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -2271,17 +2258,23 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiObserver?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2293,8 +2286,10 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Observer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.lifecycle.Observer<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.lifecycle.Observer<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2305,12 +2300,16 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP Result.success(Unit) return } - throw IllegalStateException("Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.") + throw IllegalStateException( + "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.") } /** Called when the data is changed to value. */ - fun onChanged(pigeon_instanceArg: androidx.lifecycle.Observer<*>, valueArg: Any, callback: (Result) -> Unit) -{ + fun onChanged( + pigeon_instanceArg: androidx.lifecycle.Observer<*>, + valueArg: Any, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2330,10 +2329,9 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -2424,37 +2422,50 @@ public class ObserverProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Returns the sensor rotation in degrees, relative to the device's "natural" - * (default) orientation. + * Returns the sensor rotation in degrees, relative to the device's "natural" (default) + * orientation. */ abstract fun sensorRotationDegrees(pigeon_instance: androidx.camera.core.CameraInfo): Long /** Returns a ExposureState. */ - abstract fun exposureState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.camera.core.ExposureState + abstract fun exposureState( + pigeon_instance: androidx.camera.core.CameraInfo + ): androidx.camera.core.ExposureState /** A LiveData of the camera's state. */ - abstract fun getCameraState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getCameraState( + pigeon_instance: androidx.camera.core.CameraInfo + ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper /** A LiveData of ZoomState. */ - abstract fun getZoomState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getZoomState( + pigeon_instance: androidx.camera.core.CameraInfo + ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = try { - listOf(api.getCameraState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2462,16 +2473,21 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = try { - listOf(api.getZoomState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getZoomState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2483,8 +2499,10 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2495,7 +2513,8 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) val exposureStateArg = exposureState(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -2511,10 +2530,9 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -2636,14 +2654,17 @@ public class CameraInfoProxyApiTest { } */ /** - * A set of requirements and priorities used to select a camera or return a - * filtered set of cameras. + * A set of requirements and priorities used to select a camera or return a filtered set of cameras. * * See https://developer.android.com/reference/androidx/camera/core/CameraSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(requireLensFacing: LensFacing?): androidx.camera.core.CameraSelector +abstract class PigeonApiCameraSelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + requireLensFacing: LensFacing? + ): androidx.camera.core.CameraSelector /** A static `CameraSelector` that selects the default back facing camera. */ abstract fun defaultBackCamera(): androidx.camera.core.CameraSelector @@ -2651,29 +2672,35 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP /** A static `CameraSelector` that selects the default front facing camera. */ abstract fun defaultFrontCamera(): androidx.camera.core.CameraSelector - /** - * Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the - * selector. - */ - abstract fun filter(pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List): List + /** Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the selector. */ + abstract fun filter( + pigeon_instance: androidx.camera.core.CameraSelector, + cameraInfos: List + ): List companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val requireLensFacingArg = args[1] as LensFacing? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2681,17 +2708,23 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultBackCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.defaultBackCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2699,17 +2732,23 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultFrontCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.defaultFrontCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2717,17 +2756,22 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraSelector val cameraInfosArg = args[1] as List - val wrapped: List = try { - listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2739,8 +2783,10 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraSelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraSelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2751,7 +2797,8 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" @@ -2765,10 +2812,9 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -2863,43 +2909,63 @@ public class CameraSelectorProxyApiTest { } */ /** - * A singleton which can be used to bind the lifecycle of cameras to any - * `LifecycleOwner` within an application's process. + * A singleton which can be used to bind the lifecycle of cameras to any `LifecycleOwner` within an + * application's process. * * See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiProcessCameraProvider( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Retrieves the ProcessCameraProvider associated with the current process. */ - abstract fun getInstance(callback: (Result) -> Unit) + abstract fun getInstance( + callback: (Result) -> Unit + ) /** The `CameraInfo` instances of the available cameras. */ - abstract fun getAvailableCameraInfos(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider): List + abstract fun getAvailableCameraInfos( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider + ): List /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ - abstract fun bindToLifecycle(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelector: androidx.camera.core.CameraSelector, useCases: List): androidx.camera.core.Camera + abstract fun bindToLifecycle( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + cameraSelector: androidx.camera.core.CameraSelector, + useCases: List + ): androidx.camera.core.Camera /** Returns true if the `UseCase` is bound to a lifecycle. */ - abstract fun isBound(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase): Boolean + abstract fun isBound( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + useCase: androidx.camera.core.UseCase + ): Boolean /** Unbinds all specified use cases from the lifecycle provider. */ - abstract fun unbind(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCases: List) + abstract fun unbind( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + useCases: List + ) - /** - * Unbinds all use cases from the lifecycle provider and removes them from - * CameraX. - */ + /** Unbinds all use cases from the lifecycle provider and removes them from CameraX. */ abstract fun unbindAll(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiProcessCameraProvider?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiProcessCameraProvider? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", + codec) if (api != null) { channel.setMessageHandler { _, reply -> - api.getInstance{ result: Result -> + api.getInstance { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -2914,16 +2980,21 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = try { - listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2931,18 +3002,23 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val cameraSelectorArg = args[1] as androidx.camera.core.CameraSelector val useCasesArg = args[2] as List - val wrapped: List = try { - listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2950,17 +3026,22 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCaseArg = args[1] as androidx.camera.core.UseCase - val wrapped: List = try { - listOf(api.isBound(pigeon_instanceArg, useCaseArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.isBound(pigeon_instanceArg, useCaseArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2968,18 +3049,23 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCasesArg = args[1] as List - val wrapped: List = try { - api.unbind(pigeon_instanceArg, useCasesArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.unbind(pigeon_instanceArg, useCasesArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2987,17 +3073,22 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = try { - api.unbindAll(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.unbindAll(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3009,8 +3100,10 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3021,10 +3114,12 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -3035,10 +3130,9 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -3195,8 +3289,10 @@ public class ProcessCameraProviderProxyApiTest { open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.UseCase, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3207,7 +3303,8 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" @@ -3221,10 +3318,9 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -3274,35 +3370,43 @@ public class UseCaseProxyApiTest { } */ /** - * The camera interface is used to control the flow of data to use cases, - * control the camera via the `CameraControl`, and publish the state of the - * camera via CameraInfo. + * The camera interface is used to control the flow of data to use cases, control the camera via the + * `CameraControl`, and publish the state of the camera via CameraInfo. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The `CameraControl` for the Camera. */ - abstract fun cameraControl(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraControl + abstract fun cameraControl( + pigeon_instance: androidx.camera.core.Camera + ): androidx.camera.core.CameraControl /** Returns information about this camera. */ - abstract fun getCameraInfo(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraInfo + abstract fun getCameraInfo( + pigeon_instance: androidx.camera.core.Camera + ): androidx.camera.core.CameraInfo companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Camera - val wrapped: List = try { - listOf(api.getCameraInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3314,8 +3418,10 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Camera, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.Camera, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3326,7 +3432,8 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val cameraControlArg = cameraControl(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -3341,10 +3448,9 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -3433,31 +3539,50 @@ public class CameraProxyApiTest { */ /** Convenience class for accessing system resources. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiSystemServicesManager( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): SystemServicesManager - abstract fun requestCameraPermissions(pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit) + abstract fun requestCameraPermissions( + pigeon_instance: SystemServicesManager, + enableAudio: Boolean, + callback: (Result) -> Unit + ) - abstract fun getTempFilePath(pigeon_instance: SystemServicesManager, prefix: String, suffix: String): String + abstract fun getTempFilePath( + pigeon_instance: SystemServicesManager, + prefix: String, + suffix: String + ): String abstract fun isPreviewPreTransformed(pigeon_instance: SystemServicesManager): Boolean companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiSystemServicesManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiSystemServicesManager? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3465,13 +3590,18 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val enableAudioArg = args[1] as Boolean - api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> + api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result + -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -3485,18 +3615,23 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val prefixArg = args[1] as String val suffixArg = args[2] as String - val wrapped: List = try { - listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3504,16 +3639,21 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager - val wrapped: List = try { - listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3525,8 +3665,10 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: SystemServicesManager, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: SystemServicesManager, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3537,11 +3679,15 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL Result.success(Unit) return } - throw IllegalStateException("Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.") + throw IllegalStateException( + "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.") } - fun onCameraError(pigeon_instanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit) -{ + fun onCameraError( + pigeon_instanceArg: SystemServicesManager, + errorDescriptionArg: String, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3550,7 +3696,8 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, errorDescriptionArg)) { if (it is List<*>) { @@ -3561,10 +3708,9 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -3702,14 +3848,19 @@ public class SystemServicesManagerProxyApiTest { } */ /** - * Support class to help to determine the media orientation based on the - * orientation of the device. + * Support class to help to determine the media orientation based on the orientation of the device. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiDeviceOrientationManager( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager - abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager, isFrontFacing: Boolean, sensorOrientation: Long) + abstract fun startListeningForDeviceOrientationChange( + pigeon_instance: DeviceOrientationManager, + isFrontFacing: Boolean, + sensorOrientation: Long + ) abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) @@ -3719,20 +3870,29 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDeviceOrientationManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiDeviceOrientationManager? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3740,19 +3900,25 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager val isFrontFacingArg = args[1] as Boolean val sensorOrientationArg = args[2] as Long - val wrapped: List = try { - api.startListeningForDeviceOrientationChange(pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.startListeningForDeviceOrientationChange( + pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3760,17 +3926,22 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3778,16 +3949,21 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3795,16 +3971,21 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - listOf(api.getUiOrientation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getUiOrientation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3815,9 +3996,13 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: DeviceOrientationManager, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: DeviceOrientationManager, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3828,11 +4013,15 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer Result.success(Unit) return } - throw IllegalStateException("Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.") + throw IllegalStateException( + "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.") } - fun onDeviceOrientationChanged(pigeon_instanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit) -{ + fun onDeviceOrientationChanged( + pigeon_instanceArg: DeviceOrientationManager, + orientationArg: String, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3841,7 +4030,8 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, orientationArg)) { if (it is List<*>) { @@ -3852,10 +4042,9 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -4013,28 +4202,31 @@ public class DeviceOrientationManagerProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(targetRotation: Long?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.Preview + abstract fun pigeon_defaultConstructor( + targetRotation: Long?, + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector? + ): androidx.camera.core.Preview /** * Sets a SurfaceProvider to provide a Surface for Preview. * * This is a convenience function that - * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the - * Flutter engine. + * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the Flutter engine. * 2. Sets this method with the created `SurfaceProvider`. - * 3. Returns the texture id of the `TextureEntry` that provided the - * `SurfaceProducer`. + * 3. Returns the texture id of the `TextureEntry` that provided the `SurfaceProducer`. */ - abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager): Long + abstract fun setSurfaceProvider( + pigeon_instance: androidx.camera.core.Preview, + systemServicesManager: SystemServicesManager + ): Long - /** - * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was - * created. - */ + /** Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was created. */ abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) /** Gets selected resolution information of the `Preview`. */ - abstract fun getResolutionInfo(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.ResolutionInfo? + abstract fun getResolutionInfo( + pigeon_instance: androidx.camera.core.Preview + ): androidx.camera.core.ResolutionInfo? /** Sets the target rotation. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) @@ -4044,19 +4236,27 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPreview?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val targetRotationArg = args[1] as Long? - val resolutionSelectorArg = args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,resolutionSelectorArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionSelectorArg = + args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(targetRotationArg, resolutionSelectorArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4064,17 +4264,22 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val systemServicesManagerArg = args[1] as SystemServicesManager - val wrapped: List = try { - listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4082,17 +4287,22 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = try { - api.releaseSurfaceProvider(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.releaseSurfaceProvider(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4100,16 +4310,21 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = try { - listOf(api.getResolutionInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getResolutionInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4117,18 +4332,23 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4140,8 +4360,10 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Preview and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Preview, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.Preview, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4152,7 +4374,8 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance" @@ -4166,17 +4389,15 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /* @@ -4314,33 +4535,48 @@ public class PreviewProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiVideoCapture( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Create a `VideoCapture` associated with the given `VideoOutput`. */ - abstract fun withOutput(videoOutput: androidx.camera.video.VideoOutput): androidx.camera.video.VideoCapture<*> + abstract fun withOutput( + videoOutput: androidx.camera.video.VideoOutput + ): androidx.camera.video.VideoCapture<*> /** Gets the VideoOutput associated with this VideoCapture. */ - abstract fun getOutput(pigeon_instance: androidx.camera.video.VideoCapture<*>): androidx.camera.video.VideoOutput + abstract fun getOutput( + pigeon_instance: androidx.camera.video.VideoCapture<*> + ): androidx.camera.video.VideoOutput /** Sets the desired rotation of the output video. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long) + abstract fun setTargetRotation( + pigeon_instance: androidx.camera.video.VideoCapture<*>, + rotation: Long + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val videoOutputArg = args[1] as androidx.camera.video.VideoOutput - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withOutput(videoOutputArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.withOutput(videoOutputArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4348,16 +4584,21 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> - val wrapped: List = try { - listOf(api.getOutput(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getOutput(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4365,18 +4606,23 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4388,8 +4634,10 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4400,7 +4648,8 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" @@ -4414,17 +4663,15 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /* @@ -4530,8 +4777,10 @@ public class VideoCaptureProxyApiTest { open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoOutput and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoOutput, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoOutput, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4542,7 +4791,8 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" @@ -4556,10 +4806,9 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -4609,14 +4858,18 @@ public class VideoOutputProxyApiTest { } */ /** - * An implementation of `VideoOutput` for starting video recordings that are - * saved to a File, ParcelFileDescriptor, or MediaStore. + * An implementation of `VideoOutput` for starting video recordings that are saved to a File, + * ParcelFileDescriptor, or MediaStore. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(aspectRatio: Long?, targetVideoEncodingBitRate: Long?, qualitySelector: androidx.camera.video.QualitySelector?): androidx.camera.video.Recorder + abstract fun pigeon_defaultConstructor( + aspectRatio: Long?, + targetVideoEncodingBitRate: Long?, + qualitySelector: androidx.camera.video.QualitySelector? + ): androidx.camera.video.Recorder /** Gets the aspect ratio of this Recorder. */ abstract fun getAspectRatio(pigeon_instance: androidx.camera.video.Recorder): Long @@ -4625,14 +4878,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long /** Prepares a recording that will be saved to a File. */ - abstract fun prepareRecording(pigeon_instance: androidx.camera.video.Recorder, path: String): androidx.camera.video.PendingRecording + abstract fun prepareRecording( + pigeon_instance: androidx.camera.video.Recorder, + path: String + ): androidx.camera.video.PendingRecording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecorder?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -4640,12 +4900,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP val aspectRatioArg = args[1] as Long? val targetVideoEncodingBitRateArg = args[2] as Long? val qualitySelectorArg = args[3] as androidx.camera.video.QualitySelector? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioArg,targetVideoEncodingBitRateArg,qualitySelectorArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + aspectRatioArg, targetVideoEncodingBitRateArg, qualitySelectorArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4653,16 +4917,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4670,16 +4939,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4687,17 +4961,22 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val pathArg = args[1] as String - val wrapped: List = try { - listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4709,8 +4988,10 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recorder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recorder, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.Recorder, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4721,7 +5002,8 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" @@ -4735,17 +5017,15 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoOutput] used to access callback methods */ - fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput - { + fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput { return pigeonRegistrar.getPigeonApiVideoOutput() } - } /* @@ -4865,25 +5145,36 @@ public class RecorderProxyApiTest { */ /** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiVideoRecordEventListener( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): VideoRecordEventListener companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoRecordEventListener?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiVideoRecordEventListener? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4894,9 +5185,13 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: VideoRecordEventListener, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: VideoRecordEventListener, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4907,11 +5202,15 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer Result.success(Unit) return } - throw IllegalStateException("Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.") + throw IllegalStateException( + "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.") } - fun onEvent(pigeon_instanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) -{ + fun onEvent( + pigeon_instanceArg: VideoRecordEventListener, + eventArg: androidx.camera.video.VideoRecordEvent, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4931,10 +5230,9 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -5025,26 +5323,36 @@ public class VideoRecordEventListenerProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiPendingRecording( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Starts the recording, making it an active recording. */ - abstract fun start(pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener): androidx.camera.video.Recording + abstract fun start( + pigeon_instance: androidx.camera.video.PendingRecording, + listener: VideoRecordEventListener + ): androidx.camera.video.Recording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPendingRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording val listenerArg = args[1] as VideoRecordEventListener - val wrapped: List = try { - listOf(api.start(pigeon_instanceArg, listenerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.start(pigeon_instanceArg, listenerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5056,8 +5364,10 @@ abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PendingRecording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.PendingRecording, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.PendingRecording, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5068,10 +5378,12 @@ abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibrar Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -5082,10 +5394,9 @@ abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibrar } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -5182,17 +5493,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5200,17 +5514,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.pause(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pause(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5218,17 +5535,22 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.resume", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recording.resume", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.resume(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.resume(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5236,17 +5558,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.stop(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.stop(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5258,8 +5583,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recording, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.Recording, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5270,7 +5597,8 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" @@ -5284,10 +5612,9 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -5402,14 +5729,26 @@ public class RecordingProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(targetRotation: Long?, flashMode: CameraXFlashMode?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageCapture +abstract class PigeonApiImageCapture( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + targetRotation: Long?, + flashMode: CameraXFlashMode?, + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector? + ): androidx.camera.core.ImageCapture /** Set the flash mode. */ - abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode) + abstract fun setFlashMode( + pigeon_instance: androidx.camera.core.ImageCapture, + flashMode: CameraXFlashMode + ) /** Captures a new still image for in memory access. */ - abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) + abstract fun takePicture( + pigeon_instance: androidx.camera.core.ImageCapture, + callback: (Result) -> Unit + ) /** Sets the desired rotation of the output image. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) @@ -5419,20 +5758,29 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val targetRotationArg = args[1] as Long? val flashModeArg = args[2] as CameraXFlashMode? - val resolutionSelectorArg = args[3] as androidx.camera.core.resolutionselector.ResolutionSelector? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,flashModeArg,resolutionSelectorArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionSelectorArg = + args[3] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + targetRotationArg, flashModeArg, resolutionSelectorArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5440,18 +5788,23 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val flashModeArg = args[1] as CameraXFlashMode - val wrapped: List = try { - api.setFlashMode(pigeon_instanceArg, flashModeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setFlashMode(pigeon_instanceArg, flashModeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5459,7 +5812,11 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5479,18 +5836,23 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5502,8 +5864,10 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageCapture, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5514,7 +5878,8 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance" @@ -5528,17 +5893,15 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /* @@ -5652,35 +6015,48 @@ public class ImageCaptureProxyApiTest { } */ /** - * The resolution strategy defines the resolution selection sequence to select - * the best size. + * The resolution strategy defines the resolution selection sequence to select the best size. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(boundSize: android.util.Size, fallbackRule: ResolutionStrategyFallbackRule): androidx.camera.core.resolutionselector.ResolutionStrategy +abstract class PigeonApiResolutionStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + boundSize: android.util.Size, + fallbackRule: ResolutionStrategyFallbackRule + ): androidx.camera.core.resolutionselector.ResolutionStrategy - abstract fun highestAvailableStrategy(): androidx.camera.core.resolutionselector.ResolutionStrategy + abstract fun highestAvailableStrategy(): + androidx.camera.core.resolutionselector.ResolutionStrategy companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val boundSizeArg = args[1] as android.util.Size val fallbackRuleArg = args[2] as ResolutionStrategyFallbackRule - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(boundSizeArg,fallbackRuleArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(boundSizeArg, fallbackRuleArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5688,17 +6064,23 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.highestAvailableStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.highestAvailableStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5710,8 +6092,10 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5722,10 +6106,12 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -5736,10 +6122,9 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -5810,34 +6195,51 @@ public class ResolutionStrategyProxyApiTest { } */ /** - * A set of requirements and priorities used to select a resolution for the - * `UseCase`. + * A set of requirements and priorities used to select a resolution for the `UseCase`. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?, resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?): androidx.camera.core.resolutionselector.ResolutionSelector +abstract class PigeonApiResolutionSelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?, + resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, + resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter? + ): androidx.camera.core.resolutionselector.ResolutionSelector companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val aspectRatioStrategyArg = args[1] as androidx.camera.core.resolutionselector.AspectRatioStrategy? - val resolutionStrategyArg = args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? - val resolutionFilterArg = args[3] as androidx.camera.core.resolutionselector.ResolutionFilter? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioStrategyArg,resolutionStrategyArg,resolutionFilterArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val aspectRatioStrategyArg = + args[1] as androidx.camera.core.resolutionselector.AspectRatioStrategy? + val resolutionStrategyArg = + args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val resolutionFilterArg = + args[3] as androidx.camera.core.resolutionselector.ResolutionFilter? + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + aspectRatioStrategyArg, resolutionStrategyArg, resolutionFilterArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5849,8 +6251,10 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5861,10 +6265,12 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -5875,10 +6281,9 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -5947,49 +6352,60 @@ public class ResolutionSelectorProxyApiTest { } */ /** - * The aspect ratio strategy defines the sequence of aspect ratios that are - * used to select the best size for a particular image. + * The aspect ratio strategy defines the sequence of aspect ratios that are used to select the best + * size for a particular image. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiAspectRatioStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Creates a new AspectRatioStrategy instance, configured with the specified - * preferred aspect ratio and fallback rule. + * Creates a new AspectRatioStrategy instance, configured with the specified preferred aspect + * ratio and fallback rule. */ - abstract fun pigeon_defaultConstructor(preferredAspectRatio: AspectRatio, fallbackRule: AspectRatioStrategyFallbackRule): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun pigeon_defaultConstructor( + preferredAspectRatio: AspectRatio, + fallbackRule: AspectRatioStrategyFallbackRule + ): androidx.camera.core.resolutionselector.AspectRatioStrategy - /** - * The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 - * in priority. - */ - abstract fun ratio_16_9FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + /** The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 in priority. */ + abstract fun ratio_16_9FallbackAutoStrategy(): + androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The pre-defined default aspect ratio strategy that selects sizes with - * RATIO_4_3 in priority. + * The pre-defined default aspect ratio strategy that selects sizes with RATIO_4_3 in priority. */ - abstract fun ratio_4_3FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun ratio_4_3FallbackAutoStrategy(): + androidx.camera.core.resolutionselector.AspectRatioStrategy companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAspectRatioStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredAspectRatioArg = args[1] as AspectRatio val fallbackRuleArg = args[2] as AspectRatioStrategyFallbackRule - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(preferredAspectRatioArg,fallbackRuleArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(preferredAspectRatioArg, fallbackRuleArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5997,17 +6413,23 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6015,17 +6437,23 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6037,8 +6465,10 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6049,10 +6479,12 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -6063,10 +6495,9 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -6146,17 +6577,23 @@ public class AspectRatioStrategyProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/CameraState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraState( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The camera's state. */ abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType /** Potentially returns an error the camera encountered. */ - abstract fun error(pigeon_instance: androidx.camera.core.CameraState): androidx.camera.core.CameraState.StateError? + abstract fun error( + pigeon_instance: androidx.camera.core.CameraState + ): androidx.camera.core.CameraState.StateError? @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6167,7 +6604,8 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val errorArg = error(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -6183,10 +6621,9 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -6284,20 +6721,26 @@ public class CameraStateProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/ExposureState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiExposureState( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Get the maximum and minimum exposure compensation values for * `CameraControl.setExposureCompensationIndex`. */ - abstract fun exposureCompensationRange(pigeon_instance: androidx.camera.core.ExposureState): android.util.Range<*> + abstract fun exposureCompensationRange( + pigeon_instance: androidx.camera.core.ExposureState + ): android.util.Range<*> /** Get the smallest step by which the exposure compensation can be changed. */ abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ExposureState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ExposureState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6308,26 +6751,28 @@ abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPi Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) + channel.send( + listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } } - } /* @@ -6427,8 +6872,10 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ZoomState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6439,7 +6886,8 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -6455,10 +6903,9 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -6542,42 +6989,60 @@ public class ZoomStateProxyApiTest { } */ /** - * A use case providing CPU accessible images for an app to perform image - * analysis on. + * A use case providing CPU accessible images for an app to perform image analysis on. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(targetRotation: Long?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageAnalysis +abstract class PigeonApiImageAnalysis( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + targetRotation: Long?, + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector? + ): androidx.camera.core.ImageAnalysis /** Sets an analyzer to receive and analyze images. */ - abstract fun setAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer) + abstract fun setAnalyzer( + pigeon_instance: androidx.camera.core.ImageAnalysis, + analyzer: androidx.camera.core.ImageAnalysis.Analyzer + ) /** Removes a previously set analyzer. */ abstract fun clearAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis) /** Sets the target rotation. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageAnalysis, rotation: Long) + abstract fun setTargetRotation( + pigeon_instance: androidx.camera.core.ImageAnalysis, + rotation: Long + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageAnalysis?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val targetRotationArg = args[1] as Long? - val resolutionSelectorArg = args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,resolutionSelectorArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionSelectorArg = + args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(targetRotationArg, resolutionSelectorArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6585,18 +7050,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val analyzerArg = args[1] as androidx.camera.core.ImageAnalysis.Analyzer - val wrapped: List = try { - api.setAnalyzer(pigeon_instanceArg, analyzerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setAnalyzer(pigeon_instanceArg, analyzerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6604,17 +7074,22 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis - val wrapped: List = try { - api.clearAnalyzer(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.clearAnalyzer(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6622,18 +7097,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6645,8 +7125,10 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6657,7 +7139,8 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" @@ -6671,17 +7154,15 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /* @@ -6808,17 +7289,23 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAnalyzer?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6830,8 +7317,10 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Analyzer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6842,12 +7331,16 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP Result.success(Unit) return } - throw IllegalStateException("Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.") + throw IllegalStateException( + "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.") } /** Analyzes an image to produce a result. */ - fun analyze(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, imageArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) -{ + fun analyze( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + imageArg: androidx.camera.core.ImageProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6867,10 +7360,9 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -6963,14 +7455,20 @@ public class AnalyzerProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraStateStateError( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The code of this error. */ - abstract fun code(pigeon_instance: androidx.camera.core.CameraState.StateError): CameraStateErrorCode + abstract fun code( + pigeon_instance: androidx.camera.core.CameraState.StateError + ): CameraStateErrorCode @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState.StateError, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraState.StateError, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6981,11 +7479,13 @@ abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXL Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val codeArg = code(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, codeArg)) { if (it is List<*>) { @@ -6996,10 +7496,9 @@ abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXL } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -7075,48 +7574,59 @@ public class CameraStateStateErrorProxyApiTest { } */ /** - * LiveData is a data holder class that can be observed within a given - * lifecycle. + * LiveData is a data holder class that can be observed within a given lifecycle. * - * This is a wrapper around the native class to better support the generic - * type. Java has type erasure; + * This is a wrapper around the native class to better support the generic type. Java has type + * erasure; * * See https://developer.android.com/reference/androidx/lifecycle/LiveData. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The generic type used by this instance. */ - abstract fun type(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): LiveDataSupportedType + abstract fun type( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ): LiveDataSupportedType - /** - * Adds the given observer to the observers list within the lifespan of the - * given owner. - */ - abstract fun observe(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, observer: androidx.lifecycle.Observer<*>) + /** Adds the given observer to the observers list within the lifespan of the given owner. */ + abstract fun observe( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + observer: androidx.lifecycle.Observer<*> + ) /** Removes all observers that are tied to the given `LifecycleOwner`. */ - abstract fun removeObservers(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) + abstract fun removeObservers( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ) /** Returns the current value. */ - abstract fun getValue(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): Any? + abstract fun getValue( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiLiveData?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val observerArg = args[1] as androidx.lifecycle.Observer<*> - val wrapped: List = try { - api.observe(pigeon_instanceArg, observerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.observe(pigeon_instanceArg, observerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7124,17 +7634,23 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = try { - api.removeObservers(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = + try { + api.removeObservers(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7142,16 +7658,22 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = try { - listOf(api.getValue(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = + try { + listOf(api.getValue(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7163,8 +7685,10 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7175,7 +7699,8 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -7190,10 +7715,9 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -7319,7 +7843,9 @@ public class LiveDataProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiImageProxy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The image format. */ abstract fun format(pigeon_instance: androidx.camera.core.ImageProxy): Long @@ -7330,7 +7856,9 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo abstract fun height(pigeon_instance: androidx.camera.core.ImageProxy): Long /** Returns the array of planes. */ - abstract fun getPlanes(pigeon_instance: androidx.camera.core.ImageProxy): List + abstract fun getPlanes( + pigeon_instance: androidx.camera.core.ImageProxy + ): List /** Closes the underlying `android.media.Image`. */ abstract fun close(pigeon_instance: androidx.camera.core.ImageProxy) @@ -7340,16 +7868,21 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageProxy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = try { - listOf(api.getPlanes(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getPlanes(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7357,17 +7890,22 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7379,8 +7917,10 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7391,7 +7931,8 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val formatArg = format(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) @@ -7408,10 +7949,9 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -7546,13 +8086,14 @@ public class ImageProxyProxyApiTest { } */ /** - * A plane proxy which has an analogous interface as - * `android.media.Image.Plane`. + * A plane proxy which has an analogous interface as `android.media.Image.Plane`. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiPlaneProxy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The pixels buffer. */ abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray @@ -7564,8 +8105,10 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7576,7 +8119,8 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val bufferArg = buffer(pigeon_instanceArg) val pixelStrideArg = pixelStride(pigeon_instanceArg) val rowStrideArg = rowStride(pigeon_instanceArg) @@ -7593,10 +8137,9 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -7697,40 +8240,57 @@ public class PlaneProxyProxyApiTest { } */ /** - * Defines a desired quality setting that can be used to configure components - * with quality setting requirements such as creating a Recorder. + * Defines a desired quality setting that can be used to configure components with quality setting + * requirements such as creating a Recorder. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiQualitySelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets an instance of QualitySelector with a desired quality. */ - abstract fun from(quality: VideoQuality, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + abstract fun from( + quality: VideoQuality, + fallbackStrategy: androidx.camera.video.FallbackStrategy? + ): androidx.camera.video.QualitySelector /** Gets an instance of QualitySelector with ordered desired qualities. */ - abstract fun fromOrderedList(qualities: List, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + abstract fun fromOrderedList( + qualities: List, + fallbackStrategy: androidx.camera.video.FallbackStrategy? + ): androidx.camera.video.QualitySelector /** Gets the corresponding resolution from the input quality. */ - abstract fun getResolution(cameraInfo: androidx.camera.core.CameraInfo, quality: VideoQuality): android.util.Size? + abstract fun getResolution( + cameraInfo: androidx.camera.core.CameraInfo, + quality: VideoQuality + ): android.util.Size? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiQualitySelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(qualityArg,fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(qualityArg, fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7738,19 +8298,25 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualitiesArg = args[1] as List val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.fromOrderedList(qualitiesArg,fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.fromOrderedList(qualitiesArg, fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7758,17 +8324,22 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val cameraInfoArg = args[0] as androidx.camera.core.CameraInfo val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - listOf(api.getResolution(cameraInfoArg, qualityArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getResolution(cameraInfoArg, qualityArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7780,8 +8351,10 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of QualitySelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.QualitySelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.QualitySelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7792,7 +8365,8 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" @@ -7806,10 +8380,9 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -7897,35 +8470,40 @@ public class QualitySelectorProxyApiTest { } */ /** - * A class represents the strategy that will be adopted when the device does - * not support all the desired Quality in QualitySelector in order to select - * the quality as possible. + * A class represents the strategy that will be adopted when the device does not support all the + * desired Quality in QualitySelector in order to select the quality as possible. * * See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFallbackStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Returns a fallback strategy that will choose the quality that is closest - * to and higher than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and higher than the + * input quality. */ - abstract fun higherQualityOrLowerThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + abstract fun higherQualityOrLowerThan( + quality: VideoQuality + ): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and higher than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and higher than the + * input quality. */ abstract fun higherQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and lower than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and lower than the + * input quality. */ - abstract fun lowerQualityOrHigherThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + abstract fun lowerQualityOrHigherThan( + quality: VideoQuality + ): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and lower than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and lower than the + * input quality. */ abstract fun lowerQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy @@ -7934,18 +8512,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFallbackStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7953,18 +8537,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.higherQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7972,18 +8562,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7991,18 +8587,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.lowerQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8014,8 +8616,10 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.FallbackStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.FallbackStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -8026,10 +8630,12 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -8040,10 +8646,9 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -8145,38 +8750,59 @@ public class FallbackStrategyProxyApiTest { } */ /** - * The CameraControl provides various asynchronous operations like zoom, focus - * and metering which affects output of all UseCases currently bound to that - * camera. + * The CameraControl provides various asynchronous operations like zoom, focus and metering which + * affects output of all UseCases currently bound to that camera. * * See https://developer.android.com/reference/androidx/camera/core/CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraControl( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Enable the torch or disable the torch. */ - abstract fun enableTorch(pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit) + abstract fun enableTorch( + pigeon_instance: androidx.camera.core.CameraControl, + torch: Boolean, + callback: (Result) -> Unit + ) /** Sets current zoom by ratio. */ - abstract fun setZoomRatio(pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit) - - /** - * Starts a focus and metering action configured by the - * `FocusMeteringAction`. - */ - abstract fun startFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) + abstract fun setZoomRatio( + pigeon_instance: androidx.camera.core.CameraControl, + ratio: Double, + callback: (Result) -> Unit + ) + + /** Starts a focus and metering action configured by the `FocusMeteringAction`. */ + abstract fun startFocusAndMetering( + pigeon_instance: androidx.camera.core.CameraControl, + action: androidx.camera.core.FocusMeteringAction, + callback: (Result) -> Unit + ) /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ - abstract fun cancelFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, callback: (Result) -> Unit) + abstract fun cancelFocusAndMetering( + pigeon_instance: androidx.camera.core.CameraControl, + callback: (Result) -> Unit + ) /** Set the exposure compensation value for the camera. */ - abstract fun setExposureCompensationIndex(pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit) + abstract fun setExposureCompensationIndex( + pigeon_instance: androidx.camera.core.CameraControl, + index: Long, + callback: (Result) -> Unit + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraControl?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -8196,7 +8822,11 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -8216,13 +8846,18 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val actionArg = args[1] as androidx.camera.core.FocusMeteringAction - api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> + api.startFocusAndMetering(pigeon_instanceArg, actionArg) { + result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -8237,7 +8872,11 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -8256,13 +8895,18 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val indexArg = args[1] as Long - api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result -> + api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result + -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -8281,8 +8925,10 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraControl, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraControl, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -8293,7 +8939,8 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" @@ -8307,10 +8954,9 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -8449,48 +9095,71 @@ public class CameraControlProxyApiTest { /** * The builder used to create the `FocusMeteringAction`. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** - * Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | - * FLAG_AE | FLAG_AWB. - */ - abstract fun pigeon_defaultConstructor(point: androidx.camera.core.MeteringPoint): androidx.camera.core.FocusMeteringAction.Builder +abstract class PigeonApiFocusMeteringActionBuilder( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + /** Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | FLAG_AE | FLAG_AWB. */ + abstract fun pigeon_defaultConstructor( + point: androidx.camera.core.MeteringPoint + ): androidx.camera.core.FocusMeteringAction.Builder /** Creates a Builder from a `MeteringPoint` and `MeteringMode`. */ - abstract fun withMode(point: androidx.camera.core.MeteringPoint, mode: MeteringMode): androidx.camera.core.FocusMeteringAction.Builder + abstract fun withMode( + point: androidx.camera.core.MeteringPoint, + mode: MeteringMode + ): androidx.camera.core.FocusMeteringAction.Builder /** Adds another MeteringPoint with default metering mode. */ - abstract fun addPoint(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint) + abstract fun addPoint( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + point: androidx.camera.core.MeteringPoint + ) /** Adds another MeteringPoint with specified meteringMode. */ - abstract fun addPointWithMode(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, mode: MeteringMode) + abstract fun addPointWithMode( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + point: androidx.camera.core.MeteringPoint, + mode: MeteringMode + ) /** Disables the auto-cancel. */ abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) /** Builds the `FocusMeteringAction` instance. */ - abstract fun build(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder): androidx.camera.core.FocusMeteringAction + abstract fun build( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder + ): androidx.camera.core.FocusMeteringAction companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFocusMeteringActionBuilder?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiFocusMeteringActionBuilder? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8498,19 +9167,25 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withMode(pointArg,modeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.withMode(pointArg, modeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8518,18 +9193,23 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - api.addPoint(pigeon_instanceArg, pointArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.addPoint(pigeon_instanceArg, pointArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8537,19 +9217,24 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = try { - api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8557,17 +9242,22 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = try { - api.disableAutoCancel(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.disableAutoCancel(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8575,16 +9265,21 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = try { - listOf(api.build(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.build(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8595,9 +9290,13 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -8608,10 +9307,12 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -8622,10 +9323,9 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -8775,23 +9475,35 @@ public class FocusMeteringActionBuilderProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFocusMeteringAction( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** All MeteringPoints used for AE regions. */ - abstract fun meteringPointsAe(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAe( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** All MeteringPoints used for AF regions. */ - abstract fun meteringPointsAf(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAf( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** All MeteringPoints used for AWB regions. */ - abstract fun meteringPointsAwb(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAwb( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** If auto-cancel is enabled or not. */ - abstract fun isAutoCancelEnabled(pigeon_instance: androidx.camera.core.FocusMeteringAction): Boolean + abstract fun isAutoCancelEnabled( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -8802,28 +9514,36 @@ abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLib Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, meteringPointsAeArg, meteringPointsAfArg, meteringPointsAwbArg, isAutoCancelEnabledArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) + channel.send( + listOf( + pigeon_identifierArg, + meteringPointsAeArg, + meteringPointsAfArg, + meteringPointsAwbArg, + isAutoCancelEnabledArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } } - } /* @@ -8948,14 +9668,18 @@ public class FocusMeteringActionProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFocusMeteringResult( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** If auto focus is successful. */ abstract fun isFocusSuccessful(pigeon_instance: androidx.camera.core.FocusMeteringResult): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -8966,11 +9690,13 @@ abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLib Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, isFocusSuccessfulArg)) { if (it is List<*>) { @@ -8981,10 +9707,9 @@ abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLib } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -9051,16 +9776,17 @@ public class FocusMeteringResultProxyApiTest { } */ /** - * An immutable package of settings and outputs needed to capture a single - * image from the camera device. + * An immutable package of settings and outputs needed to capture a single image from the camera + * device. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCaptureRequest( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Whether auto-exposure (AE) is currently locked to its latest calculated - * values. + * Whether auto-exposure (AE) is currently locked to its latest calculated values. * * Value is boolean. * @@ -9073,17 +9799,23 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequest?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.controlAELock(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.controlAELock(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9095,8 +9827,10 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequest and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CaptureRequest, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9107,7 +9841,8 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" @@ -9121,10 +9856,9 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -9182,17 +9916,21 @@ public class CaptureRequestProxyApiTest { } */ /** - * A Key is used to do capture request field lookups with CaptureRequest.get or - * to set fields with `CaptureRequest.Builder.set`. + * A Key is used to do capture request field lookups with CaptureRequest.get or to set fields with + * `CaptureRequest.Builder.set`. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiCaptureRequestKey( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9203,10 +9941,12 @@ open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPi Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -9217,10 +9957,9 @@ open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPi } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -9272,29 +10011,43 @@ public class CaptureRequestKeyProxyApiTest { /** * A bundle of Camera2 capture request options. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(options: Map, Any?>): androidx.camera.camera2.interop.CaptureRequestOptions +abstract class PigeonApiCaptureRequestOptions( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + options: Map, Any?> + ): androidx.camera.camera2.interop.CaptureRequestOptions companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequestOptions?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCaptureRequestOptions? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val optionsArg = args[1] as Map, Any?> - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9306,8 +10059,10 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9318,10 +10073,12 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -9332,10 +10089,9 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -9400,39 +10156,53 @@ public class CaptureRequestOptionsProxyApiTest { } */ /** - * An class that provides ability to interoperate with the - * 1android.hardware.camera21 APIs. + * An class that provides ability to interoperate with the 1android.hardware.camera21 APIs. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCamera2CameraControl( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets the `Camera2CameraControl` from a `CameraControl`. */ - abstract fun from(cameraControl: androidx.camera.core.CameraControl): androidx.camera.camera2.interop.Camera2CameraControl + abstract fun from( + cameraControl: androidx.camera.core.CameraControl + ): androidx.camera.camera2.interop.Camera2CameraControl - /** - * Adds a `CaptureRequestOptions` updates the session with the options it - * contains. - */ - abstract fun addCaptureRequestOptions(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, bundle: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) + /** Adds a `CaptureRequestOptions` updates the session with the options it contains. */ + abstract fun addCaptureRequestOptions( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, + bundle: androidx.camera.camera2.interop.CaptureRequestOptions, + callback: (Result) -> Unit + ) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraControl?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCamera2CameraControl? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraControlArg = args[1] as androidx.camera.core.CameraControl - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraControlArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(cameraControlArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9440,7 +10210,11 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -9464,8 +10238,10 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9476,10 +10252,12 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -9490,10 +10268,9 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -9576,32 +10353,43 @@ public class Camera2CameraControlProxyApiTest { } */ /** - * Applications can filter out unsuitable sizes and sort the resolution list in - * the preferred order by implementing the resolution filter interface. + * Applications can filter out unsuitable sizes and sort the resolution list in the preferred order + * by implementing the resolution filter interface. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun createWithOnePreferredSize(preferredSize: android.util.Size): androidx.camera.core.resolutionselector.ResolutionFilter +abstract class PigeonApiResolutionFilter( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun createWithOnePreferredSize( + preferredSize: android.util.Size + ): androidx.camera.core.resolutionselector.ResolutionFilter companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionFilter?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredSizeArg = args[1] as android.util.Size - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9613,8 +10401,10 @@ abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9625,10 +10415,12 @@ abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibrar Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -9639,10 +10431,9 @@ abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibrar } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -9707,17 +10498,23 @@ public class ResolutionFilterProxyApiTest { } */ /** - * A Key is used to do camera characteristics field lookups with - * `CameraCharacteristics.get`. + * A Key is used to do camera characteristics field lookups with `CameraCharacteristics.get`. * - * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. + * See + * https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiCameraCharacteristicsKey( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9728,10 +10525,12 @@ open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLi Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -9742,10 +10541,9 @@ open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLi } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -9800,7 +10598,9 @@ public class CameraCharacteristicsKeyProxyApiTest { * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraCharacteristics( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Generally classifies the overall set of the camera device functionality. * @@ -9811,8 +10611,8 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL abstract fun infoSupportedHardwareLevel(): android.hardware.camera2.CameraCharacteristics.Key<*> /** - * Clockwise angle through which the output image needs to be rotated to be - * upright on the device screen in its native orientation.. + * Clockwise angle through which the output image needs to be rotated to be upright on the device + * screen in its native orientation.. * * Value is Integer. * @@ -9822,20 +10622,29 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraCharacteristics?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCameraCharacteristics? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.infoSupportedHardwareLevel(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.infoSupportedHardwareLevel(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9843,17 +10652,23 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.sensorOrientation(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.sensorOrientation(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9865,8 +10680,10 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9877,10 +10694,12 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -9891,10 +10710,9 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -9960,36 +10778,52 @@ public class CameraCharacteristicsProxyApiTest { /** * An interface for retrieving Camera2-related camera information. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCamera2CameraInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets the `Camera2CameraInfo` from a `CameraInfo`. */ - abstract fun from(cameraInfo: androidx.camera.core.CameraInfo): androidx.camera.camera2.interop.Camera2CameraInfo + abstract fun from( + cameraInfo: androidx.camera.core.CameraInfo + ): androidx.camera.camera2.interop.Camera2CameraInfo /** Gets the string camera ID. */ - abstract fun getCameraId(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo): String + abstract fun getCameraId( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo + ): String /** Gets a camera characteristic value. */ - abstract fun getCameraCharacteristic(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, key: android.hardware.camera2.CameraCharacteristics.Key<*>): Any? + abstract fun getCameraCharacteristic( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, + key: android.hardware.camera2.CameraCharacteristics.Key<*> + ): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraInfoArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(cameraInfoArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9997,16 +10831,21 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo - val wrapped: List = try { - listOf(api.getCameraId(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraId(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10014,17 +10853,22 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val keyArg = args[1] as android.hardware.camera2.CameraCharacteristics.Key<*> - val wrapped: List = try { - listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10036,8 +10880,10 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -10048,10 +10894,12 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -10062,10 +10910,9 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -10172,30 +11019,49 @@ public class Camera2CameraInfoProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiMeteringPointFactory( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Creates a MeteringPoint by x, y. */ - abstract fun createPoint(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double): androidx.camera.core.MeteringPoint + abstract fun createPoint( + pigeon_instance: androidx.camera.core.MeteringPointFactory, + x: Double, + y: Double + ): androidx.camera.core.MeteringPoint /** Creates a MeteringPoint by x, y, size. */ - abstract fun createPointWithSize(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double, size: Double): androidx.camera.core.MeteringPoint + abstract fun createPointWithSize( + pigeon_instance: androidx.camera.core.MeteringPointFactory, + x: Double, + y: Double, + size: Double + ): androidx.camera.core.MeteringPoint companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPointFactory?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiMeteringPointFactory? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double - val wrapped: List = try { - listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10203,7 +11069,11 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -10211,11 +11081,12 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi val xArg = args[1] as Double val yArg = args[2] as Double val sizeArg = args[3] as Double - val wrapped: List = try { - listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10227,8 +11098,10 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -10239,10 +11112,12 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -10253,10 +11128,9 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /* @@ -10347,27 +11221,39 @@ public class MeteringPointFactoryProxyApiTest { } */ /** - * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint - * which can then be used to construct a FocusMeteringAction to start a focus - * and metering action. + * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint which can then be used + * to construct a FocusMeteringAction to start a focus and metering action. * - * See https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. + * See + * https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiDisplayOrientedMeteringPointFactory( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) - * into a MeteringPoint based on the current display's rotation and - * CameraInfo. + * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) into a MeteringPoint + * based on the current display's rotation and CameraInfo. */ - abstract fun pigeon_defaultConstructor(cameraInfo: androidx.camera.core.CameraInfo, width: Double, height: Double): androidx.camera.core.DisplayOrientedMeteringPointFactory + abstract fun pigeon_defaultConstructor( + cameraInfo: androidx.camera.core.CameraInfo, + width: Double, + height: Double + ): androidx.camera.core.DisplayOrientedMeteringPointFactory companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDisplayOrientedMeteringPointFactory?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiDisplayOrientedMeteringPointFactory? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -10375,12 +11261,15 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo val widthArg = args[2] as Double val heightArg = args[3] as Double - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(cameraInfoArg,widthArg,heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(cameraInfoArg, widthArg, heightArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10391,9 +11280,14 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to + * [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -10404,10 +11298,12 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis Result.success(Unit) return } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -10418,17 +11314,15 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiMeteringPointFactory] used to access callback methods */ - fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory - { + fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory { return pigeonRegistrar.getPigeonApiMeteringPointFactory() } - } /* diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java index 79a28f78cc3..9b678e9ddd5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java @@ -4,7 +4,6 @@ package io.flutter.plugins.camerax; -import android.app.Activity; import android.util.Size; import androidx.annotation.NonNull; import androidx.camera.core.CameraSelector; @@ -12,7 +11,6 @@ import androidx.camera.core.ImageCapture; import androidx.camera.core.Preview; import androidx.camera.video.Recorder; -import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; import java.io.File; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java index 024e3c5b2e5..feae34d6daf 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -4,20 +4,16 @@ package io.flutter.plugins.camerax; -import androidx.camera.camera2.interop.CaptureRequestOptions; - import android.hardware.camera2.CaptureRequest; -import android.hardware.camera2.CaptureRequest.Key; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.camera2.interop.CaptureRequestOptions; import androidx.camera.camera2.interop.ExperimentalCamera2Interop; - import java.util.Map; /** - * ProxyApi implementation for {@link CaptureRequestOptions}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link CaptureRequestOptions}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { CaptureRequestOptionsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -27,7 +23,8 @@ class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { @ExperimentalCamera2Interop @NonNull @Override - public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map, ?> options) { + public CaptureRequestOptions pigeon_defaultConstructor( + @NonNull Map, ?> options) { final CaptureRequestOptions.Builder builder = new CaptureRequestOptions.Builder(); for (final Map.Entry, ?> option : options.entrySet()) { @@ -39,7 +36,8 @@ public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map) option.getKey(), option.getValue()); + builder.setCaptureRequestOption( + (CaptureRequest.Key) option.getKey(), option.getValue()); } return builder.build(); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java index 3f8f6dc91d2..9556baccc4b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestProxyApi.java @@ -5,14 +5,12 @@ package io.flutter.plugins.camerax; import android.hardware.camera2.CaptureRequest; -import android.hardware.camera2.CaptureRequest.Key; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; /** - * ProxyApi implementation for {@link CaptureRequest}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link CaptureRequest}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class CaptureRequestProxyApi extends PigeonApiCaptureRequest { CaptureRequestProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java index f326219c94f..27c88895a15 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java @@ -22,7 +22,8 @@ */ public abstract class DeviceOrientationManager { interface DeviceOrientationChangeCallback { - void onChange(@NonNull DeviceOrientationManager manager, @NonNull DeviceOrientation newOrientation); + void onChange( + @NonNull DeviceOrientationManager manager, @NonNull DeviceOrientation newOrientation); } private static final IntentFilter orientationIntentFilter = @@ -166,6 +167,7 @@ int getDefaultRotation() { @SuppressWarnings("deprecation") @VisibleForTesting Display getDisplay() { - return ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); + return ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)) + .getDefaultDisplay(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java index 1c82d16603a..3a361ccb030 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java @@ -5,28 +5,34 @@ package io.flutter.plugins.camerax; import android.content.Context; - import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import io.flutter.embedding.engine.systemchannels.PlatformChannel; /** - * ProxyApi implementation for {@link DeviceOrientationManager}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link DeviceOrientationManager}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class DeviceOrientationManagerProxyApi extends PigeonApiDeviceOrientationManager { DeviceOrientationManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { super(pigeonRegistrar); } - /** Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to Dart. */ + /** + * Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to + * Dart. + */ static class DeviceOrientationManagerImpl extends DeviceOrientationManager { private final DeviceOrientationManagerProxyApi api; DeviceOrientationManagerImpl(@NonNull DeviceOrientationManagerProxyApi api) { - super((manager, newOrientation) -> api.getPigeonRegistrar().runOnMainThread(() -> api.onDeviceOrientationChanged(manager, newOrientation.toString(), reply -> null))); + super( + (manager, newOrientation) -> + api.getPigeonRegistrar() + .runOnMainThread( + () -> + api.onDeviceOrientationChanged( + manager, newOrientation.toString(), reply -> null))); this.api = api; } @@ -50,7 +56,8 @@ public DeviceOrientationManager pigeon_defaultConstructor() { } @Override - public void startListeningForDeviceOrientationChange(DeviceOrientationManager pigeon_instance, boolean isFrontFacing, long sensorOrientation) { + public void startListeningForDeviceOrientationChange( + DeviceOrientationManager pigeon_instance, boolean isFrontFacing, long sensorOrientation) { pigeon_instance.start(); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java index f00c7ee0bc4..93bfb70d5e3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApi.java @@ -5,18 +5,17 @@ package io.flutter.plugins.camerax; import android.view.Display; - -import androidx.camera.core.DisplayOrientedMeteringPointFactory; -import androidx.camera.core.CameraInfo; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.CameraInfo; +import androidx.camera.core.DisplayOrientedMeteringPointFactory; /** - * ProxyApi implementation for {@link DisplayOrientedMeteringPointFactory}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link DisplayOrientedMeteringPointFactory}. This class may handle + * instantiating native object instances that are attached to a Dart instance or handle method calls + * on the associated native class or an instance of that class. */ -class DisplayOrientedMeteringPointFactoryProxyApi extends PigeonApiDisplayOrientedMeteringPointFactory { +class DisplayOrientedMeteringPointFactoryProxyApi + extends PigeonApiDisplayOrientedMeteringPointFactory { DisplayOrientedMeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { super(pigeonRegistrar); } @@ -29,11 +28,13 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override - public DisplayOrientedMeteringPointFactory pigeon_defaultConstructor(@NonNull CameraInfo cameraInfo, double width, double height) { + public DisplayOrientedMeteringPointFactory pigeon_defaultConstructor( + @NonNull CameraInfo cameraInfo, double width, double height) { final Display display = getPigeonRegistrar().getDisplay(); if (display != null) { - return new DisplayOrientedMeteringPointFactory(display, cameraInfo, (float) width, (float) height); + return new DisplayOrientedMeteringPointFactory( + display, cameraInfo, (float) width, (float) height); } throw new IllegalStateException("A Display could not be retrieved."); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java index e2c33d794d0..b890ebcbd2e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java @@ -4,15 +4,14 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ExposureState; import android.util.Range; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.ExposureState; /** - * ProxyApi implementation for {@link ExposureState}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link ExposureState}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class ExposureStateProxyApi extends PigeonApiExposureState { ExposureStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java index 9c062067e2d..b7a7922e19c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FallbackStrategyProxyApi.java @@ -4,15 +4,14 @@ package io.flutter.plugins.camerax; -import androidx.camera.video.FallbackStrategy; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.video.FallbackStrategy; import androidx.camera.video.Quality; /** - * ProxyApi implementation for {@link FallbackStrategy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link FallbackStrategy}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class FallbackStrategyProxyApi extends PigeonApiFallbackStrategy { FallbackStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -48,13 +47,13 @@ Quality getNativeQuality(VideoQuality quality) { case SD: return Quality.SD; case HD: - return Quality.HD; + return Quality.HD; case FHD: - return Quality.FHD; + return Quality.FHD; case UHD: - return Quality.UHD; + return Quality.UHD; case LOWEST: - return Quality.LOWEST; + return Quality.LOWEST; case HIGHEST: return Quality.HIGHEST; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java index 1be522b831d..f9b80cf5bd5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java @@ -4,18 +4,15 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.FocusMeteringAction.Builder; -import androidx.camera.core.MeteringPoint; -import androidx.camera.core.FocusMeteringAction; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.MeteringPoint; -import java.util.List; /** - * ProxyApi implementation for {@link FocusMeteringAction.Builder}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link FocusMeteringAction.Builder}. This class may handle + * instantiating native object instances that are attached to a Dart instance or handle method calls + * on the associated native class or an instance of that class. */ class FocusMeteringActionBuilderProxyApi extends PigeonApiFocusMeteringActionBuilder { FocusMeteringActionBuilderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -30,7 +27,8 @@ public FocusMeteringAction.Builder pigeon_defaultConstructor(@NonNull MeteringPo @NonNull @Override - public FocusMeteringAction.Builder withMode(@NonNull MeteringPoint point, @NonNull MeteringMode mode) { + public FocusMeteringAction.Builder withMode( + @NonNull MeteringPoint point, @NonNull MeteringMode mode) { return new FocusMeteringAction.Builder(point, getNativeMeteringMode(mode)); } @@ -40,7 +38,10 @@ public void addPoint(FocusMeteringAction.Builder pigeon_instance, @NonNull Meter } @Override - public void addPointWithMode(FocusMeteringAction. Builder pigeon_instance, @NonNull MeteringPoint point, @NonNull MeteringMode mode) { + public void addPointWithMode( + FocusMeteringAction.Builder pigeon_instance, + @NonNull MeteringPoint point, + @NonNull MeteringMode mode) { pigeon_instance.addPoint(point, getNativeMeteringMode(mode)); } @@ -51,12 +52,13 @@ public void disableAutoCancel(FocusMeteringAction.Builder pigeon_instance) { @NonNull @Override - public androidx.camera.core.FocusMeteringAction build(FocusMeteringAction.Builder pigeon_instance) { + public androidx.camera.core.FocusMeteringAction build( + FocusMeteringAction.Builder pigeon_instance) { return pigeon_instance.build(); } int getNativeMeteringMode(@NonNull MeteringMode mode) { - switch(mode) { + switch (mode) { case AE: return FocusMeteringAction.FLAG_AE; case AF: diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java index a7133aaf215..7afc6e2e47c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java @@ -4,17 +4,15 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.core.FocusMeteringAction; import androidx.camera.core.MeteringPoint; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - import java.util.List; /** - * ProxyApi implementation for {@link FocusMeteringAction}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link FocusMeteringAction}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class FocusMeteringActionProxyApi extends PigeonApiFocusMeteringAction { FocusMeteringActionProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -29,13 +27,15 @@ public List meteringPointsAe(FocusMeteringAction pigeon_instance) @NonNull @Override - public List meteringPointsAf(FocusMeteringAction pigeon_instance) { + public List meteringPointsAf( + FocusMeteringAction pigeon_instance) { return pigeon_instance.getMeteringPointsAf(); } @NonNull @Override - public List meteringPointsAwb(FocusMeteringAction pigeon_instance) { + public List meteringPointsAwb( + FocusMeteringAction pigeon_instance) { return pigeon_instance.getMeteringPointsAwb(); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java index 56155aa29fc..4220c00762d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java @@ -4,14 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.FocusMeteringResult; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.FocusMeteringResult; /** - * ProxyApi implementation for {@link FocusMeteringResult}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link FocusMeteringResult}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class FocusMeteringResultProxyApi extends PigeonApiFocusMeteringResult { FocusMeteringResultProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java index e02d161870e..ca29abd3269 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java @@ -4,17 +4,16 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.ImageAnalysis.Analyzer; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.camera.core.ImageAnalysis; +import androidx.camera.core.resolutionselector.ResolutionSelector; import androidx.core.content.ContextCompat; /** - * ProxyApi implementation for {@link ImageAnalysis}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link ImageAnalysis}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { private long clearFinalizedWeakReferencesIntervalDefaultValue; @@ -32,7 +31,8 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override - public ImageAnalysis pigeon_defaultConstructor(@Nullable Long targetRotation, @Nullable ResolutionSelector resolutionSelector) { + public ImageAnalysis pigeon_defaultConstructor( + @Nullable Long targetRotation, @Nullable ResolutionSelector resolutionSelector) { final ImageAnalysis.Builder builder = new ImageAnalysis.Builder(); if (targetRotation != null) { builder.setTargetRotation(targetRotation.intValue()); @@ -44,15 +44,24 @@ public ImageAnalysis pigeon_defaultConstructor(@Nullable Long targetRotation, @N } @Override - public void setAnalyzer(ImageAnalysis pigeon_instance, @NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) { - getPigeonRegistrar().getInstanceManager().setClearFinalizedWeakReferencesInterval(CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL_FOR_IMAGE_ANALYSIS); - pigeon_instance.setAnalyzer(ContextCompat.getMainExecutor(getPigeonRegistrar().getContext()), analyzer); + public void setAnalyzer( + ImageAnalysis pigeon_instance, + @NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) { + getPigeonRegistrar() + .getInstanceManager() + .setClearFinalizedWeakReferencesInterval( + CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL_FOR_IMAGE_ANALYSIS); + pigeon_instance.setAnalyzer( + ContextCompat.getMainExecutor(getPigeonRegistrar().getContext()), analyzer); } @Override public void clearAnalyzer(ImageAnalysis pigeon_instance) { pigeon_instance.clearAnalyzer(); - getPigeonRegistrar().getInstanceManager().setClearFinalizedWeakReferencesInterval(getPigeonRegistrar().getDefaultClearFinalizedWeakReferencesInterval()); + getPigeonRegistrar() + .getInstanceManager() + .setClearFinalizedWeakReferencesInterval( + getPigeonRegistrar().getDefaultClearFinalizedWeakReferencesInterval()); } @Override diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java index 60672b31971..c5ce9e77c31 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java @@ -4,24 +4,21 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ImageCapture; -import androidx.camera.core.ImageCaptureException; -import androidx.camera.core.resolutionselector.ResolutionSelector; import androidx.annotation.NonNull; import androidx.annotation.Nullable; - +import androidx.camera.core.ImageCapture; +import androidx.camera.core.ImageCaptureException; import java.io.File; import java.io.IOException; import java.util.concurrent.Executors; - import kotlin.Result; import kotlin.Unit; import kotlin.jvm.functions.Function1; /** - * ProxyApi implementation for {@link ImageCapture}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link ImageCapture}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class ImageCaptureProxyApi extends PigeonApiImageCapture { static final String TEMPORARY_FILE_NAME = "CAP"; @@ -39,14 +36,17 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override - public ImageCapture pigeon_defaultConstructor(@Nullable Long targetRotation, @Nullable CameraXFlashMode flashMode, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector resolutionSelector) { + public ImageCapture pigeon_defaultConstructor( + @Nullable Long targetRotation, + @Nullable CameraXFlashMode flashMode, + @Nullable androidx.camera.core.resolutionselector.ResolutionSelector resolutionSelector) { final ImageCapture.Builder builder = new ImageCapture.Builder(); if (targetRotation != null) { builder.setTargetRotation(targetRotation.intValue()); } if (flashMode != null) { // This sets the requested flash mode, but may fail silently. - switch(flashMode) { + switch (flashMode) { case AUTO: builder.setFlashMode(ImageCapture.FLASH_MODE_AUTO); case OFF: @@ -62,9 +62,10 @@ public ImageCapture pigeon_defaultConstructor(@Nullable Long targetRotation, @Nu } @Override - public void setFlashMode(@NonNull ImageCapture pigeon_instance, @NonNull CameraXFlashMode flashMode) { + public void setFlashMode( + @NonNull ImageCapture pigeon_instance, @NonNull CameraXFlashMode flashMode) { int nativeFlashMode = -1; - switch(flashMode) { + switch (flashMode) { case AUTO: nativeFlashMode = ImageCapture.FLASH_MODE_AUTO; break; @@ -77,9 +78,10 @@ public void setFlashMode(@NonNull ImageCapture pigeon_instance, @NonNull CameraX pigeon_instance.setFlashMode(nativeFlashMode); } - @Override - public void takePicture(@NonNull ImageCapture pigeon_instance, @NonNull Function1, Unit> callback) { + public void takePicture( + @NonNull ImageCapture pigeon_instance, + @NonNull Function1, Unit> callback) { final File outputDir = getPigeonRegistrar().getContext().getCacheDir(); File temporaryCaptureFile; try { @@ -94,7 +96,8 @@ public void takePicture(@NonNull ImageCapture pigeon_instance, @NonNull Function final ImageCapture.OnImageSavedCallback onImageSavedCallback = createOnImageSavedCallback(temporaryCaptureFile, callback); - pigeon_instance.takePicture(outputFileOptions, Executors.newSingleThreadExecutor(), onImageSavedCallback); + pigeon_instance.takePicture( + outputFileOptions, Executors.newSingleThreadExecutor(), onImageSavedCallback); } @Override @@ -106,7 +109,8 @@ ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File return new ImageCapture.OutputFileOptions.Builder(file).build(); } - @NonNull ImageCapture.OnImageSavedCallback createOnImageSavedCallback( + @NonNull + ImageCapture.OnImageSavedCallback createOnImageSavedCallback( @NonNull File file, @NonNull Function1, Unit> callback) { return new ImageCapture.OnImageSavedCallback() { @Override diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java index e407247b266..86b6b33e54f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java @@ -4,18 +4,16 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.core.ImageProxy; import androidx.camera.core.ImageProxy.PlaneProxy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - import java.util.Arrays; import java.util.List; /** - * ProxyApi implementation for {@link ImageProxy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link ImageProxy}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class ImageProxyProxyApi extends PigeonApiImageProxy { ImageProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java index 0100a5b5ed8..cd84b2156a4 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java @@ -4,18 +4,16 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.CameraState; -import androidx.camera.core.ZoomState; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LiveData; import androidx.lifecycle.Observer; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; /** - * ProxyApi implementation for {@link LiveData}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link LiveData}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ public class LiveDataProxyApi extends PigeonApiLiveData { public static class LiveDataWrapper { @@ -79,5 +77,4 @@ public void removeObservers(@NonNull LiveDataWrapper pigeon_instance) { public Object getValue(@NonNull LiveDataWrapper pigeon_instance) { return pigeon_instance.getLiveData().getValue(); } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java index 8bd0b53aed8..e617a027ac4 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java @@ -4,15 +4,14 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.MeteringPointFactory; -import androidx.camera.core.MeteringPoint; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.MeteringPoint; +import androidx.camera.core.MeteringPointFactory; /** - * ProxyApi implementation for {@link MeteringPointFactory}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link MeteringPointFactory}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class MeteringPointFactoryProxyApi extends PigeonApiMeteringPointFactory { MeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -27,7 +26,8 @@ public MeteringPoint createPoint(MeteringPointFactory pigeon_instance, double x, @NonNull @Override - public MeteringPoint createPointWithSize(MeteringPointFactory pigeon_instance, double x, double y, double size) { - return pigeon_instance.createPoint((float) x, (float) y, (float) size); + public MeteringPoint createPointWithSize( + MeteringPointFactory pigeon_instance, double x, double y, double size) { + return pigeon_instance.createPoint((float) x, (float) y, (float) size); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java index d3c5953caf3..e7a7d4ba465 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java @@ -4,14 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.MeteringPoint; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.MeteringPoint; /** - * ProxyApi implementation for {@link MeteringPoint}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link MeteringPoint}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class MeteringPointProxyApi extends PigeonApiMeteringPoint { MeteringPointProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -22,4 +21,4 @@ class MeteringPointProxyApi extends PigeonApiMeteringPoint { public double getSize(MeteringPoint pigeon_instance) { return pigeon_instance.getSize(); } -} \ No newline at end of file +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java index 65f2db52997..2ee388fcbc3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java @@ -4,16 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.CameraState; -import androidx.camera.core.ZoomState; -import androidx.lifecycle.Observer; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.lifecycle.Observer; /** - * ProxyApi implementation for {@link Observer}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link Observer}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class ObserverProxyApi extends PigeonApiObserver { /** Implementation of {@link Observer} that passes arguments of callback methods to Dart. */ @@ -45,4 +42,4 @@ public ProxyApiRegistrar getPigeonRegistrar() { public Observer pigeon_defaultConstructor() { return new ObserverImpl<>(this); } -} \ No newline at end of file +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java index 1f13d194873..467740482bd 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java @@ -4,18 +4,15 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.video.PendingRecording; import androidx.camera.video.Recording; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.camera.video.VideoRecordEvent; import androidx.core.content.ContextCompat; -import androidx.core.util.Consumer; /** - * ProxyApi implementation for {@link PendingRecording}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link PendingRecording}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class PendingRecordingProxyApi extends PigeonApiPendingRecording { PendingRecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -30,7 +27,9 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override - public Recording start(PendingRecording pigeon_instance, @NonNull VideoRecordEventListener listener) { - return pigeon_instance.start(ContextCompat.getMainExecutor(getPigeonRegistrar().getContext()), listener::onEvent); + public Recording start( + PendingRecording pigeon_instance, @NonNull VideoRecordEventListener listener) { + return pigeon_instance.start( + ContextCompat.getMainExecutor(getPigeonRegistrar().getContext()), listener::onEvent); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java index 2a38965c4ba..637449cf040 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java @@ -4,16 +4,14 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ImageProxy.PlaneProxy; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - +import androidx.camera.core.ImageProxy.PlaneProxy; import java.nio.ByteBuffer; /** - * ProxyApi implementation for {@link PlaneProxy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link PlaneProxy}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class PlaneProxyProxyApi extends PigeonApiPlaneProxy { PlaneProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -40,5 +38,4 @@ public long pixelStride(PlaneProxy pigeon_instance) { public long rowStride(PlaneProxy pigeon_instance) { return pigeon_instance.getRowStride(); } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index 878c683c03e..473c49bcfc3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -5,24 +5,20 @@ package io.flutter.plugins.camerax; import android.view.Surface; - +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.camera.core.Preview; import androidx.camera.core.SurfaceRequest; import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.ResolutionInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - +import io.flutter.view.TextureRegistry; import java.util.HashMap; import java.util.Map; import java.util.concurrent.Executors; -import io.flutter.view.TextureRegistry; - /** - * ProxyApi implementation for {@link Preview}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link Preview}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class PreviewProxyApi extends PigeonApiPreview { // Stores the SurfaceProducer when it is used as a SurfaceProvider for a Preview. @@ -40,7 +36,8 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override - public Preview pigeon_defaultConstructor(@Nullable Long targetRotation, @Nullable ResolutionSelector resolutionSelector) { + public Preview pigeon_defaultConstructor( + @Nullable Long targetRotation, @Nullable ResolutionSelector resolutionSelector) { final Preview.Builder builder = new Preview.Builder(); if (targetRotation != null) { builder.setTargetRotation(targetRotation.intValue()); @@ -52,9 +49,12 @@ public Preview pigeon_defaultConstructor(@Nullable Long targetRotation, @Nullabl } @Override - public long setSurfaceProvider(@NonNull Preview pigeon_instance, @NonNull SystemServicesManager systemServicesManager) { - final TextureRegistry.SurfaceProducer surfaceProducer = getPigeonRegistrar().getTextureRegistry().createSurfaceProducer(); - final Preview.SurfaceProvider surfaceProvider = createSurfaceProvider(surfaceProducer, systemServicesManager); + public long setSurfaceProvider( + @NonNull Preview pigeon_instance, @NonNull SystemServicesManager systemServicesManager) { + final TextureRegistry.SurfaceProducer surfaceProducer = + getPigeonRegistrar().getTextureRegistry().createSurfaceProducer(); + final Preview.SurfaceProvider surfaceProvider = + createSurfaceProvider(surfaceProducer, systemServicesManager); pigeon_instance.setSurfaceProvider(surfaceProvider); surfaceProducers.put(pigeon_instance, surfaceProducer); @@ -64,7 +64,8 @@ public long setSurfaceProvider(@NonNull Preview pigeon_instance, @NonNull System @Override public void releaseSurfaceProvider(@NonNull Preview pigeon_instance) { - final TextureRegistry.SurfaceProducer surfaceProducer = surfaceProducers.remove(pigeon_instance); + final TextureRegistry.SurfaceProducer surfaceProducer = + surfaceProducers.remove(pigeon_instance); if (surfaceProducer != null) { surfaceProducer.release(); } @@ -81,8 +82,10 @@ public void setTargetRotation(Preview pigeon_instance, long rotation) { pigeon_instance.setTargetRotation((int) rotation); } - @NonNull Preview.SurfaceProvider createSurfaceProvider( - @NonNull TextureRegistry.SurfaceProducer surfaceProducer, @NonNull SystemServicesManager systemServicesManager) { + @NonNull + Preview.SurfaceProvider createSurfaceProvider( + @NonNull TextureRegistry.SurfaceProducer surfaceProducer, + @NonNull SystemServicesManager systemServicesManager) { return request -> { // Set callback for surfaceProducer to invalidate Surfaces that it produces when they // get destroyed. diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java index fe24a7d3ec6..15b35b12cf8 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java @@ -4,27 +4,24 @@ package io.flutter.plugins.camerax; -import androidx.camera.lifecycle.ProcessCameraProvider; -import androidx.camera.core.UseCase; -import androidx.camera.core.CameraSelector; -import androidx.camera.core.CameraInfo; -import androidx.camera.core.Camera; import androidx.annotation.NonNull; +import androidx.camera.core.Camera; +import androidx.camera.core.CameraInfo; +import androidx.camera.core.CameraSelector; +import androidx.camera.core.UseCase; +import androidx.camera.lifecycle.ProcessCameraProvider; import androidx.core.content.ContextCompat; import androidx.lifecycle.LifecycleOwner; - import com.google.common.util.concurrent.ListenableFuture; - import java.util.List; - import kotlin.Result; import kotlin.Unit; import kotlin.jvm.functions.Function1; /** - * ProxyApi implementation for {@link ProcessCameraProvider}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link ProcessCameraProvider}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class ProcessCameraProviderProxyApi extends PigeonApiProcessCameraProvider { ProcessCameraProviderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -38,7 +35,8 @@ public ProxyApiRegistrar getPigeonRegistrar() { } @Override - public void getInstance(@NonNull Function1, Unit> callback) { + public void getInstance( + @NonNull Function1, Unit> callback) { final ListenableFuture processCameraProviderFuture = ProcessCameraProvider.getInstance(getPigeonRegistrar().getContext()); @@ -62,10 +60,14 @@ public List getAvailableCameraInfos(ProcessCameraProvider pigeon_ins @NonNull @Override - public Camera bindToLifecycle(@NonNull ProcessCameraProvider pigeon_instance, @NonNull CameraSelector cameraSelector, @NonNull List useCases) { + public Camera bindToLifecycle( + @NonNull ProcessCameraProvider pigeon_instance, + @NonNull CameraSelector cameraSelector, + @NonNull List useCases) { final LifecycleOwner lifecycleOwner = getPigeonRegistrar().getLifecycleOwner(); if (lifecycleOwner != null) { - return pigeon_instance.bindToLifecycle(lifecycleOwner, cameraSelector, useCases.toArray(new UseCase[0])); + return pigeon_instance.bindToLifecycle( + lifecycleOwner, cameraSelector, useCases.toArray(new UseCase[0])); } throw new IllegalStateException( @@ -78,7 +80,8 @@ public boolean isBound(ProcessCameraProvider pigeon_instance, @NonNull UseCase u } @Override - public void unbind(ProcessCameraProvider pigeon_instance, @NonNull List useCases) { + public void unbind( + ProcessCameraProvider pigeon_instance, @NonNull List useCases) { pigeon_instance.unbind(useCases.toArray(new UseCase[0])); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index ad15fa373e2..c1a20544e4f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -8,12 +8,10 @@ import android.util.Log; import android.view.Display; import android.view.WindowManager; - import androidx.annotation.ChecksSdkIntAtLeast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.lifecycle.LifecycleOwner; - import io.flutter.plugin.common.BinaryMessenger; import io.flutter.view.TextureRegistry; @@ -21,22 +19,23 @@ public class ProxyApiRegistrar extends CameraXLibraryPigeonProxyApiRegistrar { @NonNull private final CameraPermissionsManager cameraPermissionsManager = new CameraPermissionsManager(); - @NonNull - private final TextureRegistry textureRegistry; + @NonNull private final TextureRegistry textureRegistry; private final long defaultClearFinalizedWeakReferencesInterval; - @NonNull - private Context context; + @NonNull private Context context; - @Nullable - private CameraPermissionsManager.PermissionsRegistry permissionsRegistry; + @Nullable private CameraPermissionsManager.PermissionsRegistry permissionsRegistry; - public ProxyApiRegistrar(@NonNull BinaryMessenger binaryMessenger, @NonNull Context context, @NonNull TextureRegistry textureRegistry) { + public ProxyApiRegistrar( + @NonNull BinaryMessenger binaryMessenger, + @NonNull Context context, + @NonNull TextureRegistry textureRegistry) { super(binaryMessenger); this.context = context; this.textureRegistry = textureRegistry; - defaultClearFinalizedWeakReferencesInterval = getInstanceManager().getClearFinalizedWeakReferencesInterval(); + defaultClearFinalizedWeakReferencesInterval = + getInstanceManager().getClearFinalizedWeakReferencesInterval(); } // Interface for an injectable SDK version checker. @@ -100,7 +99,8 @@ public CameraPermissionsManager getCameraPermissionsManager() { return cameraPermissionsManager; } - void setPermissionsRegistry(@Nullable CameraPermissionsManager.PermissionsRegistry permissionsRegistry) { + void setPermissionsRegistry( + @Nullable CameraPermissionsManager.PermissionsRegistry permissionsRegistry) { this.permissionsRegistry = permissionsRegistry; } @@ -389,7 +389,8 @@ public PigeonApiMeteringPointFactory getPigeonApiMeteringPointFactory() { @NonNull @Override - public PigeonApiDisplayOrientedMeteringPointFactory getPigeonApiDisplayOrientedMeteringPointFactory() { + public PigeonApiDisplayOrientedMeteringPointFactory + getPigeonApiDisplayOrientedMeteringPointFactory() { return new DisplayOrientedMeteringPointFactoryProxyApi(this); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java index 36d1e2f3b9c..59d946dcf17 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/QualitySelectorProxyApi.java @@ -4,21 +4,19 @@ package io.flutter.plugins.camerax; -import androidx.camera.video.Quality; -import androidx.camera.video.QualitySelector; -import androidx.camera.video.FallbackStrategy; -import androidx.camera.core.CameraInfo; import android.util.Size; import androidx.annotation.NonNull; import androidx.annotation.Nullable; - +import androidx.camera.video.FallbackStrategy; +import androidx.camera.video.Quality; +import androidx.camera.video.QualitySelector; import java.util.ArrayList; import java.util.List; /** - * ProxyApi implementation for {@link QualitySelector}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link QualitySelector}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class QualitySelectorProxyApi extends PigeonApiQualitySelector { QualitySelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -27,7 +25,8 @@ class QualitySelectorProxyApi extends PigeonApiQualitySelector { @NonNull @Override - public QualitySelector from(@NonNull VideoQuality quality, @Nullable FallbackStrategy fallbackStrategy) { + public QualitySelector from( + @NonNull VideoQuality quality, @Nullable FallbackStrategy fallbackStrategy) { if (fallbackStrategy == null) { return QualitySelector.from(getNativeQuality(quality)); } @@ -37,7 +36,9 @@ public QualitySelector from(@NonNull VideoQuality quality, @Nullable FallbackStr @NonNull @Override - public QualitySelector fromOrderedList(@NonNull List qualities, @Nullable FallbackStrategy fallbackStrategy) { + public QualitySelector fromOrderedList( + @NonNull List qualities, + @Nullable FallbackStrategy fallbackStrategy) { final List nativeQualities = new ArrayList<>(); for (final VideoQuality quality : qualities) { nativeQualities.add(getNativeQuality(quality)); @@ -52,7 +53,8 @@ public QualitySelector fromOrderedList(@NonNull List qua @Nullable @Override - public Size getResolution(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull VideoQuality quality) { + public Size getResolution( + @NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull VideoQuality quality) { return QualitySelector.getResolution(cameraInfo, getNativeQuality(quality)); } @@ -61,13 +63,13 @@ Quality getNativeQuality(VideoQuality quality) { case SD: return Quality.SD; case HD: - return Quality.HD; + return Quality.HD; case FHD: - return Quality.FHD; + return Quality.FHD; case UHD: - return Quality.UHD; + return Quality.UHD; case LOWEST: - return Quality.LOWEST; + return Quality.LOWEST; case HIGHEST: return Quality.HIGHEST; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java index 822bb9c0f96..08e7a1b58db 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java @@ -6,23 +6,18 @@ import android.Manifest; import android.content.pm.PackageManager; - -import androidx.annotation.VisibleForTesting; -import androidx.camera.video.FileOutputOptions; -import androidx.camera.video.Recorder; -import androidx.camera.video.QualitySelector; -import androidx.camera.video.PendingRecording; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.camera.video.FileOutputOptions; +import androidx.camera.video.PendingRecording; +import androidx.camera.video.Recorder; import androidx.core.content.ContextCompat; - import java.io.File; -import java.util.Objects; /** - * ProxyApi implementation for {@link Recorder}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link Recorder}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class RecorderProxyApi extends PigeonApiRecorder { RecorderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -37,7 +32,10 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override - public Recorder pigeon_defaultConstructor(@Nullable Long aspectRatio, @Nullable Long targetVideoEncodingBitRate, @Nullable androidx.camera.video.QualitySelector qualitySelector) { + public Recorder pigeon_defaultConstructor( + @Nullable Long aspectRatio, + @Nullable Long targetVideoEncodingBitRate, + @Nullable androidx.camera.video.QualitySelector qualitySelector) { final Recorder.Builder builder = new Recorder.Builder(); if (aspectRatio != null) { builder.setAspectRatio(aspectRatio.intValue()); @@ -68,8 +66,10 @@ public PendingRecording prepareRecording(Recorder pigeon_instance, @NonNull Stri final FileOutputOptions fileOutputOptions = new FileOutputOptions.Builder(temporaryCaptureFile).build(); - final PendingRecording pendingRecording = pigeon_instance.prepareRecording(getPigeonRegistrar().getContext(), fileOutputOptions); - if (ContextCompat.checkSelfPermission(getPigeonRegistrar().getContext(), Manifest.permission.RECORD_AUDIO) + final PendingRecording pendingRecording = + pigeon_instance.prepareRecording(getPigeonRegistrar().getContext(), fileOutputOptions); + if (ContextCompat.checkSelfPermission( + getPigeonRegistrar().getContext(), Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) { pendingRecording.withAudioEnabled(); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java index eaca690e852..02b793fcc99 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java @@ -4,14 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.video.Recording; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.video.Recording; /** - * ProxyApi implementation for {@link Recording}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link Recording}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class RecordingProxyApi extends PigeonApiRecording { RecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java index a800d4a0c1b..89b073ed25e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionFilterProxyApi.java @@ -4,17 +4,15 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.resolutionselector.ResolutionFilter; import android.util.Size; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - +import androidx.camera.core.resolutionselector.ResolutionFilter; import java.util.List; /** - * ProxyApi implementation for {@link ResolutionFilter}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link ResolutionFilter}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class ResolutionFilterProxyApi extends PigeonApiResolutionFilter { ResolutionFilterProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java index 978b235e425..c79d223ea84 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java @@ -4,13 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ResolutionInfo; import androidx.annotation.NonNull; +import androidx.camera.core.ResolutionInfo; /** * ProxyApi implementation for {@link ResolutionInfo}. * - * This class may handle instantiating native object instances that are attached to a Dart + *

This class may handle instantiating native object instances that are attached to a Dart * instance or handle method calls on the associated native class or an instance of that class. */ class ResolutionInfoProxyApi extends PigeonApiResolutionInfo { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java index 415ad173d7e..ffaadca6e5a 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java @@ -4,17 +4,17 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import androidx.camera.core.resolutionselector.ResolutionFilter; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.camera.core.resolutionselector.AspectRatioStrategy; +import androidx.camera.core.resolutionselector.ResolutionFilter; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.resolutionselector.ResolutionStrategy; /** - * ProxyApi implementation for {@link ResolutionSelector}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link ResolutionSelector}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { ResolutionSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -23,7 +23,10 @@ class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { @NonNull @Override - public ResolutionSelector pigeon_defaultConstructor(@Nullable AspectRatioStrategy aspectRatioStrategy, @Nullable ResolutionStrategy resolutionStrategy, @Nullable ResolutionFilter resolutionFilter) { + public ResolutionSelector pigeon_defaultConstructor( + @Nullable AspectRatioStrategy aspectRatioStrategy, + @Nullable ResolutionStrategy resolutionStrategy, + @Nullable ResolutionFilter resolutionFilter) { final ResolutionSelector.Builder builder = new ResolutionSelector.Builder(); if (aspectRatioStrategy != null) { builder.setAspectRatioStrategy(aspectRatioStrategy); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java index c19e909ab17..37b7299c807 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java @@ -4,15 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import android.util.Size; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.core.resolutionselector.ResolutionStrategy; /** - * ProxyApi implementation for {@link ResolutionStrategy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link ResolutionStrategy}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class ResolutionStrategyProxyApi extends PigeonApiResolutionStrategy { ResolutionStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { @@ -21,7 +19,8 @@ class ResolutionStrategyProxyApi extends PigeonApiResolutionStrategy { @NonNull @Override - public ResolutionStrategy pigeon_defaultConstructor(@NonNull android.util.Size boundSize, @NonNull ResolutionStrategyFallbackRule fallbackRule) { + public ResolutionStrategy pigeon_defaultConstructor( + @NonNull android.util.Size boundSize, @NonNull ResolutionStrategyFallbackRule fallbackRule) { int nativeFallbackRule = -1; switch (fallbackRule) { case CLOSEST_HIGHER: diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt index a4274fe8407..01588814489 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package io.flutter.plugins.camerax; +package io.flutter.plugins.camerax /** * ResultCompat. diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java index 1ec26e0121d..af87523e9b6 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java @@ -3,16 +3,13 @@ import android.app.Activity; import android.content.Context; import android.os.Build; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; - import java.io.File; import java.io.IOException; public abstract class SystemServicesManager { - @NonNull - private final CameraPermissionsManager cameraPermissionsManager; + @NonNull private final CameraPermissionsManager cameraPermissionsManager; public interface PermissionsResultListener { void onResult(boolean isSuccessful); @@ -30,7 +27,8 @@ protected SystemServicesManager(@NonNull CameraPermissionsManager cameraPermissi @Nullable abstract CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry(); - public void requestCameraPermissions(@NonNull Boolean enableAudio, @NonNull PermissionsResultListener listener) { + public void requestCameraPermissions( + @NonNull Boolean enableAudio, @NonNull PermissionsResultListener listener) { if (getContext() instanceof Activity) { cameraPermissionsManager.requestPermissions( (Activity) getContext(), @@ -44,8 +42,8 @@ public void requestCameraPermissions(@NonNull Boolean enableAudio, @NonNull Perm @NonNull public String getTempFilePath(@NonNull String prefix, @NonNull String suffix) throws IOException { - final File path = File.createTempFile(prefix, suffix, getContext().getCacheDir()); - return path.toString(); + final File path = File.createTempFile(prefix, suffix, getContext().getCacheDir()); + return path.toString(); } @NonNull diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java index 166002be941..50617a7be61 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java @@ -4,25 +4,24 @@ package io.flutter.plugins.camerax; - import android.content.Context; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; - import java.io.IOException; - import kotlin.Result; import kotlin.Unit; import kotlin.jvm.functions.Function1; /** - * ProxyApi implementation for {@link SystemServicesManager}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link SystemServicesManager}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManager { - /** Implementation of {@link SystemServicesManager} that passes arguments of callback methods to Dart. */ + /** + * Implementation of {@link SystemServicesManager} that passes arguments of callback methods to + * Dart. + */ static class SystemServicesManagerImpl extends SystemServicesManager { private final SystemServicesManagerProxyApi api; @@ -30,9 +29,11 @@ static class SystemServicesManagerImpl extends SystemServicesManager { super(api.getPigeonRegistrar().getCameraPermissionsManager()); this.api = api; } + @Override public void onCameraError(@NonNull String errorDescription) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onCameraError(this, errorDescription, reply -> null)); + api.getPigeonRegistrar() + .runOnMainThread(() -> api.onCameraError(this, errorDescription, reply -> null)); } @NonNull @@ -65,17 +66,27 @@ public SystemServicesManager pigeon_defaultConstructor() { } @Override - public void requestCameraPermissions(@NonNull SystemServicesManager pigeon_instance, boolean enableAudio, @NonNull Function1, Unit> callback) { - pigeon_instance.requestCameraPermissions(enableAudio, isSuccessful -> ResultCompat.success(null, callback)); + public void requestCameraPermissions( + @NonNull SystemServicesManager pigeon_instance, + boolean enableAudio, + @NonNull Function1, Unit> callback) { + pigeon_instance.requestCameraPermissions( + enableAudio, isSuccessful -> ResultCompat.success(null, callback)); } @NonNull @Override - public String getTempFilePath(@NonNull SystemServicesManager pigeon_instance, @NonNull String prefix, @NonNull String suffix) { + public String getTempFilePath( + @NonNull SystemServicesManager pigeon_instance, + @NonNull String prefix, + @NonNull String suffix) { try { return pigeon_instance.getTempFilePath(prefix, suffix); } catch (IOException e) { - throw new CameraXError("getTempFilePath_failure", "SystemServicesHostApiImpl.getTempFilePath encountered an exception: " + e, null); + throw new CameraXError( + "getTempFilePath_failure", + "SystemServicesHostApiImpl.getTempFilePath encountered an exception: " + e, + null); } } @@ -83,5 +94,4 @@ public String getTempFilePath(@NonNull SystemServicesManager pigeon_instance, @N public boolean isPreviewPreTransformed(SystemServicesManager pigeon_instance) { return pigeon_instance.isPreviewPreTransformed(); } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java index ab290fcc6c2..9950cfc1137 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java @@ -4,15 +4,14 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.video.VideoCapture; import androidx.camera.video.VideoOutput; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; /** - * ProxyApi implementation for {@link VideoCapture}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link VideoCapture}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. */ class VideoCaptureProxyApi extends PigeonApiVideoCapture { VideoCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java index 1ce62752f65..75c7c089d78 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java @@ -4,20 +4,22 @@ package io.flutter.plugins.camerax; -import androidx.camera.video.VideoRecordEvent; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; +import androidx.camera.video.VideoRecordEvent; /** - * ProxyApi implementation for {@link VideoRecordEventListener}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link VideoRecordEventListener}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ class VideoRecordEventListenerProxyApi extends PigeonApiVideoRecordEventListener { VideoRecordEventListenerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { super(pigeonRegistrar); } - /** Implementation of {@link VideoRecordEventListener} that passes arguments of callback methods to Dart. */ + /** + * Implementation of {@link VideoRecordEventListener} that passes arguments of callback methods to + * Dart. + */ static class VideoRecordEventListenerImpl implements VideoRecordEventListener { private final VideoRecordEventListenerProxyApi api; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java index 4a6b3350aa3..28ad6a1f8ac 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java @@ -4,13 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ZoomState; import androidx.annotation.NonNull; +import androidx.camera.core.ZoomState; /** - * ProxyApi implementation for {@link ZoomState}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * ProxyApi implementation for {@link ZoomState}. This class may handle instantiating native object + * instances that are attached to a Dart instance or handle method calls on the associated native + * class or an instance of that class. */ class ZoomStateProxyApi extends PigeonApiZoomState { ZoomStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { diff --git a/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java b/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java index d2eb0079006..cc8823d1a75 100644 --- a/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java +++ b/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java @@ -9,7 +9,6 @@ import static org.junit.Assert.assertNull; import androidx.test.ext.junit.runners.AndroidJUnit4; - import org.junit.Test; import org.junit.runner.RunWith; diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 0c9f774e246..aa498a1a479 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -8,7 +8,8 @@ import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/foundation.dart' + show ReadBuffer, WriteBuffer, immutable, protected; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; @@ -19,7 +20,8 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse( + {Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; } @@ -28,6 +30,7 @@ List wrapResponse({Object? result, PlatformException? error, bool empty } return [error.code, error.message, error.details]; } + /// An immutable object that serves as the base class for all ProxyApis and /// can provide functional copies of itself. /// @@ -110,9 +113,10 @@ class PigeonInstanceManager { // by calling instanceManager.getIdentifier() inside of `==` while this was a // HashMap). final Expando _identifiers = Expando(); - final Map> _weakInstances = - >{}; - final Map _strongInstances = {}; + final Map> + _weakInstances = >{}; + final Map _strongInstances = + {}; late final Finalizer _finalizer; int _nextIdentifier = 0; @@ -122,7 +126,8 @@ class PigeonInstanceManager { static PigeonInstanceManager _initInstance() { WidgetsFlutterBinding.ensureInitialized(); - final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); + final _PigeonInternalInstanceManagerApi api = + _PigeonInternalInstanceManagerApi(); // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. api.clear(); final PigeonInstanceManager instanceManager = PigeonInstanceManager( @@ -130,58 +135,109 @@ class PigeonInstanceManager { api.removeStrongReference(identifier); }, ); - _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); - CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventFinalize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPoint.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Observer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ProcessCameraProvider.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - UseCase.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers( + instanceManager: instanceManager); + CameraSize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraIntegerRange.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEvent.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventStart.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventFinalize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPoint.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Observer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ProcessCameraProvider.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + UseCase.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - SystemServicesManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - DeviceOrientationManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Preview.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoOutput.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recorder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventListener.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PendingRecording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - AspectRatioStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ExposureState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ZoomState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageAnalysis.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Analyzer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraStateStateError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - LiveData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PlaneProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - QualitySelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FallbackStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringActionBuilder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringAction.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringResult.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequest.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestOptions.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionFilter.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + SystemServicesManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DeviceOrientationManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Preview.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoOutput.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recorder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventListener.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PendingRecording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + AspectRatioStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ExposureState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ZoomState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageAnalysis.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Analyzer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraStateStateError.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + LiveData.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PlaneProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + QualitySelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FallbackStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringAction.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringResult.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequest.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestOptions.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionFilter.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristicsKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristics.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); return instanceManager; } @@ -245,15 +301,20 @@ class PigeonInstanceManager { /// /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. - T? getInstanceWithWeakReference(int identifier) { - final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; + T? getInstanceWithWeakReference( + int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = + _weakInstances[identifier]?.target; if (weakInstance == null) { - final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; + final PigeonInternalProxyApiBaseClass? strongInstance = + _strongInstances[identifier]; if (strongInstance != null) { - final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); + final PigeonInternalProxyApiBaseClass copy = + strongInstance.pigeon_copy(); _identifiers[copy] = identifier; - _weakInstances[identifier] = WeakReference(copy); + _weakInstances[identifier] = + WeakReference(copy); _finalizer.attach(copy, identifier, detach: copy); return copy as T; } @@ -277,17 +338,20 @@ class PigeonInstanceManager { /// added. /// /// Returns unique identifier of the [instance] added. - void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { + void addHostCreatedInstance( + PigeonInternalProxyApiBaseClass instance, int identifier) { _addInstanceWithIdentifier(instance, identifier); } - void _addInstanceWithIdentifier(PigeonInternalProxyApiBaseClass instance, int identifier) { + void _addInstanceWithIdentifier( + PigeonInternalProxyApiBaseClass instance, int identifier) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = WeakReference(instance); + _weakInstances[identifier] = + WeakReference(instance); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -411,27 +475,28 @@ class _PigeonInternalInstanceManagerApi { } class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { - const _PigeonInternalProxyApiBaseCodec(this.instanceManager); - final PigeonInstanceManager instanceManager; - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is PigeonInternalProxyApiBaseClass) { - buffer.putUint8(128); - writeValue(buffer, instanceManager.getIdentifier(value)); - } else { - super.writeValue(buffer, value); - } - } - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return instanceManager - .getInstanceWithWeakReference(readValue(buffer)! as int); - default: - return super.readValueOfType(type, buffer); - } - } + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } + + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } } /// Handles constructing objects and calling static methods for the Android @@ -726,7 +791,6 @@ class InteractiveMediaAdsProxy { CameraCharacteristics.sensorOrientation; } - /// Generally classifies the overall set of the camera device functionality. /// /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. @@ -734,13 +798,17 @@ enum InfoSupportedHardwareLevel { /// This camera device is capable of YUV reprocessing and RAW data capture, in /// addition to FULL-level capabilities. level3, + /// This camera device is backed by an external camera connected to this /// Android device. external, + /// This camera device is capable of supporting advanced imaging applications. full, + /// This camera device is running in backward compatibility mode. legacy, + /// This camera device does not have enough capabilities to qualify as a FULL /// device or better. limited, @@ -752,8 +820,10 @@ enum InfoSupportedHardwareLevel { enum AspectRatio { /// 16:9 standard aspect ratio. ratio16To9, + /// 4:3 standard aspect ratio. ratio4To3, + /// The aspect ratio representing no preference for aspect ratio. ratioDefault, } @@ -764,15 +834,20 @@ enum AspectRatio { enum CameraStateType { /// Represents a state where the camera device is closed. closed, + /// Represents a state where the camera device is currently closing. closing, + /// Represents a state where the camera device is open. open, + /// Represents a state where the camera device is currently opening. opening, + /// Represents a state where the camera is waiting for a signal to attempt to /// open the camera device. pendingOpen, + /// This value is not recognized by this wrapper. unknown, } @@ -792,14 +867,19 @@ enum LiveDataSupportedType { enum VideoQuality { /// Standard Definition (SD) 480p video quality. SD, + /// High Definition (HD) 720p video quality. HD, + /// Full High Definition (FHD) 1080p video quality. FHD, + /// Ultra High Definition (UHD) 2160p video quality. UHD, + /// The lowest video quality supported by the video frame producer. lowest, + /// The highest video quality supported by the video frame producer. highest, } @@ -811,9 +891,11 @@ enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. ae, + /// A flag used in metering mode indicating the AF (Auto Focus) region is /// enabled. af, + /// A flag used in metering mode indicating the AWB (Auto White Balance) /// region is enabled. awb, @@ -825,12 +907,15 @@ enum MeteringMode { enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, + /// A camera on the device facing the opposite direction as the device's /// screen. back, + /// An external camera that has no fixed facing relative to the device's /// screen. external, + /// A camera on the devices that its lens facing is resolved. unknown, } @@ -844,10 +929,12 @@ enum CameraXFlashMode { /// The flash will be used according to the camera system's determination when /// taking a picture. auto, + /// No flash. /// /// The flash will never be used when taking a picture. off, + /// Always flash. /// /// The flash will always be used when taking a picture. @@ -862,15 +949,19 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to the /// closest higher resolution size. closestHigher, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest higher resolution size. closestHigherThenLower, + /// When the specified bound size is unavailable, CameraX falls back to the /// closest lower resolution size. closestLower, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. closestLowerThenHigher, + /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, @@ -885,6 +976,7 @@ enum AspectRatioStrategyFallbackRule { /// the closest field of view (FOV) of the camera sensor, from the remaining /// options. auto, + /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, @@ -897,29 +989,35 @@ enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. cameraDisabled, + /// An error indicating that the camera device was closed due to a fatal /// error. cameraFatalError, + /// An error indicating that the camera device is already in use. cameraInUse, + /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API /// level 28). doNotDisturbModeEnabled, + /// An error indicating that the limit number of open cameras has been /// reached, and more cameras cannot be opened until other instances are /// closed. maxCamerasInUse, + /// An error indicating that the camera device has encountered a recoverable /// error. otherRecoverableError, + /// An error indicating that configuring the camera has failed. streamConfig, + /// The value is not recognized by this wrapper. unknown, } - class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -927,37 +1025,37 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); } else { @@ -968,37 +1066,41 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null ? null : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null + ? null + : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null + ? null + : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; default: @@ -1006,6 +1108,7 @@ class _PigeonCodec extends StandardMessageCodec { } } } + /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. @@ -8457,4 +8560,3 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { ); } } - diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index f7daccd2570..2733ef0f438 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -838,7 +838,8 @@ abstract class CameraStateStateError { /// See https://developer.android.com/reference/androidx/lifecycle/LiveData. @ProxyApi( kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper', + fullClassName: + 'io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper', ), ) abstract class LiveData { diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index fad045fe1f0..b03dd5879a5 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -13,7 +13,6 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:camera_android_camerax/src/camerax_library2.g.dart'; - class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -21,37 +20,37 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); } else { @@ -62,37 +61,41 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null ? null : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null + ? null + : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null + ? null + : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; default: From 575a496c6ba11ce074871ea3aa62686614ee7ab8 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 23:08:07 -0500 Subject: [PATCH 018/148] code builds again --- .../plugins/camerax/CameraIntegerRangeProxyApi.java | 4 ++-- .../flutter/plugins/camerax/CameraSelectorProxyApi.java | 8 ++++++-- .../plugins/camerax/CaptureRequestOptionsProxyApi.java | 2 +- .../io/flutter/plugins/camerax/ImageCaptureProxyApi.java | 3 +++ .../java/io/flutter/plugins/camerax/LiveDataProxyApi.java | 3 +-- .../io/flutter/plugins/camerax/ProxyApiRegistrar.java | 2 +- 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java index 19a6b421f48..63fbbef59cb 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java @@ -25,11 +25,11 @@ public Range pigeon_defaultConstructor(long lower, long upper) { @Override public long lower(android.util.Range pigeon_instance) { - return (long) pigeon_instance.getLower(); + return (Integer) pigeon_instance.getLower(); } @Override public long upper(android.util.Range pigeon_instance) { - return (long) pigeon_instance.getUpper(); + return (Integer) pigeon_instance.getUpper(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java index 49957cdc1b9..d3b29897b68 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java @@ -30,12 +30,16 @@ public CameraSelector pigeon_defaultConstructor(@Nullable LensFacing requireLens switch (requireLensFacing) { case FRONT: builder.requireLensFacing(CameraSelector.LENS_FACING_FRONT); + break; case BACK: builder.requireLensFacing(CameraSelector.LENS_FACING_BACK); + break; case EXTERNAL: builder.requireLensFacing(CameraSelector.LENS_FACING_EXTERNAL); + break; case UNKNOWN: builder.requireLensFacing(CameraSelector.LENS_FACING_FRONT); + break; } } return builder.build(); @@ -53,12 +57,12 @@ public androidx.camera.core.CameraSelector defaultFrontCamera() { return CameraSelector.DEFAULT_FRONT_CAMERA; } + // List is the same as List. + @SuppressWarnings("unchecked") @NonNull @Override public List filter( @NonNull CameraSelector pigeon_instance, @NonNull List cameraInfos) { - // List is the same as List. - //noinspection unchecked return pigeon_instance.filter((List) cameraInfos); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java index feae34d6daf..5fea7b41cdc 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -20,6 +20,7 @@ class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { super(pigeonRegistrar); } + @SuppressWarnings("unchecked") @ExperimentalCamera2Interop @NonNull @Override @@ -35,7 +36,6 @@ public CaptureRequestOptions pigeon_defaultConstructor( continue; } - //noinspection unchecked builder.setCaptureRequestOption( (CaptureRequest.Key) option.getKey(), option.getValue()); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java index c5ce9e77c31..6f3e27369c5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java @@ -49,10 +49,13 @@ public ImageCapture pigeon_defaultConstructor( switch (flashMode) { case AUTO: builder.setFlashMode(ImageCapture.FLASH_MODE_AUTO); + break; case OFF: builder.setFlashMode(ImageCapture.FLASH_MODE_OFF); + break; case ON: builder.setFlashMode(ImageCapture.FLASH_MODE_ON); + break; } } if (resolutionSelector != null) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java index cd84b2156a4..b120a7b399f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java @@ -50,6 +50,7 @@ public LiveDataSupportedType type(@NonNull LiveDataWrapper pigeon_instance) { return pigeon_instance.getGenericType(); } + @SuppressWarnings("unchecked") @Override public void observe(@NonNull LiveDataWrapper pigeon_instance, @NonNull Observer observer) { final LifecycleOwner lifecycleOwner = getPigeonRegistrar().getLifecycleOwner(); @@ -57,9 +58,7 @@ public void observe(@NonNull LiveDataWrapper pigeon_instance, @NonNull Observer< throw new IllegalStateException("LifecycleOwner must be set to observe a LiveData instance."); } - //noinspection unchecked final LiveData castedLiveData = (LiveData) pigeon_instance.getLiveData(); - //noinspection unchecked castedLiveData.observe(lifecycleOwner, (Observer) observer); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index c1a20544e4f..515f47dd939 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -118,12 +118,12 @@ long getDefaultClearFinalizedWeakReferencesInterval() { return defaultClearFinalizedWeakReferencesInterval; } + @SuppressWarnings("deprecation") @Nullable Display getDisplay() { if (sdkIsAtLeast(Build.VERSION_CODES.R)) { return getContext().getDisplay(); } else { - //noinspection deprecation return ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)) .getDefaultDisplay(); } From 475d465ee2cdf7678b49e47652298b2e593b80f3 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 23:42:24 -0500 Subject: [PATCH 019/148] fix setup --- .../camerax/SystemServicesManager.java | 14 ++--- .../lib/src/android_camera_camerax.dart | 53 ++++++++++--------- 2 files changed, 35 insertions(+), 32 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java index af87523e9b6..919ead7478f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java @@ -29,15 +29,15 @@ protected SystemServicesManager(@NonNull CameraPermissionsManager cameraPermissi public void requestCameraPermissions( @NonNull Boolean enableAudio, @NonNull PermissionsResultListener listener) { - if (getContext() instanceof Activity) { - cameraPermissionsManager.requestPermissions( - (Activity) getContext(), - getPermissionsRegistry(), - enableAudio, - (String errorCode, String description) -> listener.onResult(errorCode == null)); + if (!(getContext() instanceof Activity)) { + throw new IllegalStateException("Activity must be set to request camera permissions."); } - throw new IllegalStateException("Activity must be set to request camera permissions."); + cameraPermissionsManager.requestPermissions( + (Activity) getContext(), + getPermissionsRegistry(), + enableAudio, + (String errorCode, String description) -> listener.onResult(errorCode == null)); } @NonNull diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 95ce2abe7a5..103355592f0 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -10,7 +10,7 @@ import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart' show DeviceOrientation, PlatformException; import 'package:flutter/widgets.dart' - show RotatedBox, Texture, Widget, visibleForTesting; + show RotatedBox, Texture, Widget, WidgetsFlutterBinding, visibleForTesting; import 'package:stream_transform/stream_transform.dart'; import 'camerax_library.dart'; import 'camerax_proxy2.dart'; @@ -18,31 +18,11 @@ import 'camerax_proxy2.dart'; /// The Android implementation of [CameraPlatform] that uses the CameraX library. class AndroidCameraCameraX extends CameraPlatform { /// Constructs an [AndroidCameraCameraX]. - AndroidCameraCameraX() { - systemServicesManager = proxy.newSystemServicesManager( - onCameraError: (_, String errorDescription) { - cameraErrorStreamController.add(errorDescription); - }, - ); - - deviceOrientationManager = proxy.newDeviceOrientationManager( - onDeviceOrientationChanged: (_, String orientation) { - final DeviceOrientation deviceOrientation = - _deserializeDeviceOrientation( - orientation, - ); - deviceOrientationChangedStreamController.add( - DeviceOrientationChangedEvent(deviceOrientation), - ); - }, - ); - } + AndroidCameraCameraX(); /// Registers this class as the default instance of [CameraPlatform]. static void registerWith() { CameraPlatform.instance = AndroidCameraCameraX(); - PigeonInstanceManager.instance; - setUpGenerics(); } /// Proxy for creating `JavaObject`s and calling their methods that require @@ -273,6 +253,26 @@ class AndroidCameraCameraX extends CameraPlatform { /// Returns list of all available cameras and their descriptions. @override Future> availableCameras() async { + systemServicesManager = proxy.newSystemServicesManager( + onCameraError: (_, String errorDescription) { + cameraErrorStreamController.add(errorDescription); + }, + ); + + deviceOrientationManager = proxy.newDeviceOrientationManager( + onDeviceOrientationChanged: (_, String orientation) { + final DeviceOrientation deviceOrientation = + _deserializeDeviceOrientation( + orientation, + ); + deviceOrientationChangedStreamController.add( + DeviceOrientationChangedEvent(deviceOrientation), + ); + }, + ); + + setUpGenerics(); + final List cameraDescriptions = []; processCameraProvider ??= await proxy.getInstanceProcessCameraProvider(); @@ -430,9 +430,12 @@ class AndroidCameraCameraX extends CameraPlatform { proxy.sensorOrientationCameraCharacteristics(), ) .then((Object? value) => sensorOrientation = value! as int), - deviceOrientationManager.getUiOrientation().then((Object? orientation) { - return _deserializeDeviceOrientation(orientation! as String); - }), + deviceOrientationManager.getUiOrientation().then( + (Object? orientation) { + return naturalOrientation ??= + _deserializeDeviceOrientation(orientation! as String); + }, + ), ]); _subscriptionForDeviceOrientationChanges = onDeviceOrientationChanged() .listen((DeviceOrientationChangedEvent event) { From 696454da275abfe78e046c73c29f0f324bd4660f Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 26 Dec 2024 23:55:11 -0500 Subject: [PATCH 020/148] temporary work for value --- .../camerax/Camera2CameraInfoProxyApi.java | 21 ++++++++++++++++++- .../pigeons/camerax_library.dart | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java index 5943e6db94b..f45e9d8ed76 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java @@ -5,6 +5,8 @@ package io.flutter.plugins.camerax; import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraMetadata; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.OptIn; @@ -39,6 +41,23 @@ public String getCameraId(Camera2CameraInfo pigeon_instance) { @Override public Object getCameraCharacteristic( Camera2CameraInfo pigeon_instance, @NonNull CameraCharacteristics.Key key) { - return pigeon_instance.getCameraCharacteristic(key); + final Object result = pigeon_instance.getCameraCharacteristic(key); + // TODO: need better solution + if (key == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL) { + switch((Integer) result) { + case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_3: + return InfoSupportedHardwareLevel.LEVEL3; + case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL: + return InfoSupportedHardwareLevel.EXTERNAL; + case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_FULL: + return InfoSupportedHardwareLevel.FULL; + case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY: + return InfoSupportedHardwareLevel.LEGACY; + case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED: + return InfoSupportedHardwareLevel.LIMITED; + } + } + + return result; } } diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 2733ef0f438..0f0c4d8bb67 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -1151,7 +1151,7 @@ abstract class CameraCharacteristicsKey {} abstract class CameraCharacteristics { /// Generally classifies the overall set of the camera device functionality. /// - /// Value is `InfoSupportedHardwareLeve`. + /// Value is `InfoSupportedHardwareLevel`. /// /// This key is available on all devices. @static From 7bf4991d3871bd4d2090f4cbd0e8e50b4499611e Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 29 Dec 2024 09:14:11 -0500 Subject: [PATCH 021/148] proxy for setup generics --- .../lib/src/android_camera_camerax.dart | 6 ++--- .../lib/src/camerax_library.dart | 24 +------------------ .../lib/src/camerax_proxy2.dart | 9 ++++--- .../pigeons/camerax_library.dart | 2 +- 4 files changed, 11 insertions(+), 30 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 103355592f0..2be56c30605 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -10,7 +10,7 @@ import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart' show DeviceOrientation, PlatformException; import 'package:flutter/widgets.dart' - show RotatedBox, Texture, Widget, WidgetsFlutterBinding, visibleForTesting; + show RotatedBox, Texture, Widget, visibleForTesting; import 'package:stream_transform/stream_transform.dart'; import 'camerax_library.dart'; import 'camerax_proxy2.dart'; @@ -253,6 +253,8 @@ class AndroidCameraCameraX extends CameraPlatform { /// Returns list of all available cameras and their descriptions. @override Future> availableCameras() async { + proxy.setUpGenericsProxy(); + systemServicesManager = proxy.newSystemServicesManager( onCameraError: (_, String errorDescription) { cameraErrorStreamController.add(errorDescription); @@ -271,8 +273,6 @@ class AndroidCameraCameraX extends CameraPlatform { }, ); - setUpGenerics(); - final List cameraDescriptions = []; processCameraProvider ??= await proxy.getInstanceProcessCameraProvider(); diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index f4af4910bca..58c1bd5ecee 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -4,7 +4,6 @@ export 'camerax_library2.g.dart' hide CameraInfo, LiveData, Observer; void setUpGenerics() { camerax.LiveData.pigeon_setUpMessageHandlers( - pigeon_instanceManager: camerax.PigeonInstanceManager.instance, pigeon_newInstance: (camerax.LiveDataSupportedType type) { switch (type) { case camerax.LiveDataSupportedType.cameraState: @@ -14,6 +13,7 @@ void setUpGenerics() { } }, ); + camerax.CameraInfo.pigeon_setUpMessageHandlers(pigeon_newInstance: ( int sensorRotationDegrees, camerax.ExposureState exposureState, @@ -87,17 +87,6 @@ class LiveData extends camerax.LiveData { super.pigeon_instanceManager, }) : super.pigeon_detached(); - static camerax.LiveDataSupportedType? asSupportedType(Type type) { - switch (type) { - case camerax.CameraState(): - return camerax.LiveDataSupportedType.cameraState; - case camerax.ZoomState(): - return camerax.LiveDataSupportedType.zoomState; - } - - return null; - } - @override Future observe(covariant Observer observer) { return super.observe(observer); @@ -136,17 +125,6 @@ class Observer extends camerax.Observer { super.pigeon_instanceManager, }) : super.pigeon_detached(); - static camerax.LiveDataSupportedType asSupportedType(Type type) { - switch (type) { - case camerax.CameraState(): - return camerax.LiveDataSupportedType.cameraState; - case camerax.ZoomState(): - return camerax.LiveDataSupportedType.zoomState; - } - - throw UnsupportedError('Type `$type` is unsupported.'); - } - @override Observer pigeon_copy() { return Observer.detached( diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index 8f27bc38fd9..18384c24abd 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -1,4 +1,4 @@ -import 'camerax_library2.g.dart'; +import 'camerax_library.dart'; /// Handles constructing objects and calling static methods for the Android /// Interactive Media Ads native library. @@ -12,6 +12,7 @@ import 'camerax_library2.g.dart'; class CameraXProxy { /// Constructs an [CameraXProxy]. const CameraXProxy({ + this.setUpGenericsProxy = setUpGenerics, this.newCameraSize = CameraSize.new, this.newCameraIntegerRange = CameraIntegerRange.new, this.newObserver = Observer.new, @@ -63,6 +64,8 @@ class CameraXProxy { _sensorOrientationCameraCharacteristics, }); + final void Function() setUpGenericsProxy; + /// Constructs [CameraSize]. final CameraSize Function({ required int width, @@ -76,8 +79,8 @@ class CameraXProxy { }) newCameraIntegerRange; /// Constructs [Observer]. - final Observer Function({ - required void Function(Observer, Object) onChanged, + final Observer Function({ + required void Function(Observer, T) onChanged, }) newObserver; /// Constructs [CameraSelector]. diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 0f0c4d8bb67..63c41ea8047 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -1160,7 +1160,7 @@ abstract class CameraCharacteristics { /// Clockwise angle through which the output image needs to be rotated to be /// upright on the device screen in its native orientation.. /// - /// Value is Integer. + /// Value is int. /// /// This key is available on all devices. @static From 9530050d95cdce46f205f98d540b4c32d6708e58 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 2 Jan 2025 12:40:54 -0500 Subject: [PATCH 022/148] update proxy --- .../plugins/camerax/CameraXLibrary.g.kt | 4082 +++++++---------- .../lib/src/camerax_library.dart | 2 + .../lib/src/camerax_library2.g.dart | 193 +- .../lib/src/camerax_proxy2.dart | 183 +- .../test/test_camerax_library.g.dart | 55 +- 5 files changed, 1887 insertions(+), 2628 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 307ad8ca249..52a2a3bedd3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v22.7.0), do not edit directly. +// Autogenerated from Pigeon (v22.7.1), do not edit directly. // See also: https://pub.dev/packages/pigeon @file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") @@ -10,7 +10,9 @@ package io.flutter.plugins.camerax import android.util.Log import io.flutter.plugin.common.BasicMessageChannel import io.flutter.plugin.common.BinaryMessenger +import io.flutter.plugin.common.EventChannel import io.flutter.plugin.common.MessageCodec +import io.flutter.plugin.common.StandardMethodCodec import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer @@ -21,52 +23,52 @@ private fun wrapResult(result: Any?): List { private fun wrapError(exception: Throwable): List { return if (exception is CameraXError) { - listOf(exception.code, exception.message, exception.details) + listOf( + exception.code, + exception.message, + exception.details + ) } else { listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)) + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) + ) } } private fun createConnectionError(channelName: String): CameraXError { - return CameraXError( - "channel-error", "Unable to establish connection on channel: '$channelName'.", "") -} + return CameraXError("channel-error", "Unable to establish connection on channel: '$channelName'.", "")} /** * Error class for passing custom error details to Flutter via a thrown PlatformException. - * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class CameraXError( - val code: String, - override val message: String? = null, - val details: Any? = null -) : RuntimeException() +class CameraXError ( + val code: String, + override val message: String? = null, + val details: Any? = null +) : Throwable() /** * Maintains instances used to communicate with the corresponding objects in Dart. * - * Objects stored in this container are represented by an object in Dart that is also stored in an - * InstanceManager with the same identifier. + * Objects stored in this container are represented by an object in Dart that is also stored in + * an InstanceManager with the same identifier. * * When an instance is added with an identifier, either can be used to retrieve the other. * - * Added instances are added as a weak reference and a strong reference. When the strong reference - * is removed with [remove] and the weak reference is deallocated, the - * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the - * strong reference is removed and then the identifier is retrieved with the intention to pass the - * identifier to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the - * instance is recreated. The strong reference will then need to be removed manually again. + * Added instances are added as a weak reference and a strong reference. When the strong + * reference is removed with [remove] and the weak reference is deallocated, the + * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the strong + * reference is removed and then the identifier is retrieved with the intention to pass the identifier + * to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the instance + * is recreated. The strong reference will then need to be removed manually again. */ @Suppress("UNCHECKED_CAST", "MemberVisibilityCanBePrivate") -class CameraXLibraryPigeonInstanceManager( - private val finalizationListener: PigeonFinalizationListener -) { - /** Interface for listening when a weak reference of an instance is removed from the manager. */ +class CameraXLibraryPigeonInstanceManager(private val finalizationListener: PigeonFinalizationListener) { + /** Interface for listening when a weak reference of an instance is removed from the manager. */ interface PigeonFinalizationListener { fun onFinalize(identifier: Long) } @@ -92,7 +94,10 @@ class CameraXLibraryPigeonInstanceManager( } init { - handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) + handler.postDelayed( + { releaseAllFinalizedInstances() }, + clearFinalizedWeakReferencesInterval + ) } companion object { @@ -104,20 +109,19 @@ class CameraXLibraryPigeonInstanceManager( private const val tag = "PigeonInstanceManager" /** - * Instantiate a new manager with a listener for garbage collected weak references. + * Instantiate a new manager with a listener for garbage collected weak + * references. * * When the manager is no longer needed, [stopFinalizationListener] must be called. */ - fun create( - finalizationListener: PigeonFinalizationListener - ): CameraXLibraryPigeonInstanceManager { + fun create(finalizationListener: PigeonFinalizationListener): CameraXLibraryPigeonInstanceManager { return CameraXLibraryPigeonInstanceManager(finalizationListener) } } /** - * Removes `identifier` and return its associated strongly referenced instance, if present, from - * the manager. + * Removes `identifier` and return its associated strongly referenced instance, if present, + * from the manager. */ fun remove(identifier: Long): T? { logWarningIfFinalizationListenerHasStopped() @@ -127,13 +131,15 @@ class CameraXLibraryPigeonInstanceManager( /** * Retrieves the identifier paired with an instance, if present, otherwise `null`. * + * * If the manager contains a strong reference to `instance`, it will return the identifier * associated with `instance`. If the manager contains only a weak reference to `instance`, a new * strong reference to `instance` will be added and will need to be removed again with [remove]. * + * * If this method returns a nonnull identifier, this method also expects the Dart - * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart - * instance the identifier is associated with. + * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart instance the + * identifier is associated with. */ fun getIdentifierForStrongReference(instance: Any?): Long? { logWarningIfFinalizationListenerHasStopped() @@ -147,9 +153,9 @@ class CameraXLibraryPigeonInstanceManager( /** * Adds a new instance that was instantiated from Dart. * - * The same instance can be added multiple times, but each identifier must be unique. This allows - * two objects that are equivalent (e.g. the `equals` method returns true and their hashcodes are - * equal) to both be added. + * The same instance can be added multiple times, but each identifier must be unique. This + * allows two objects that are equivalent (e.g. the `equals` method returns true and their + * hashcodes are equal) to both be added. * * [identifier] must be >= 0 and unique. */ @@ -165,9 +171,7 @@ class CameraXLibraryPigeonInstanceManager( */ fun addHostCreatedInstance(instance: Any): Long { logWarningIfFinalizationListenerHasStopped() - require(!containsInstance(instance)) { - "Instance of ${instance.javaClass} has already been added." - } + require(!containsInstance(instance)) { "Instance of ${instance.javaClass} has already been added." } val identifier = nextIdentifier++ addInstance(instance, identifier) return identifier @@ -225,8 +229,7 @@ class CameraXLibraryPigeonInstanceManager( return } var reference: java.lang.ref.WeakReference? - while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != - null) { + while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != null) { val identifier = weakReferencesToIdentifiers.remove(reference) if (identifier != null) { weakInstances.remove(identifier) @@ -234,7 +237,10 @@ class CameraXLibraryPigeonInstanceManager( finalizationListener.onFinalize(identifier) } } - handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) + handler.postDelayed( + { releaseAllFinalizedInstances() }, + clearFinalizedWeakReferencesInterval + ) } private fun addInstance(instance: Any, identifier: Long) { @@ -252,43 +258,39 @@ class CameraXLibraryPigeonInstanceManager( private fun logWarningIfFinalizationListenerHasStopped() { if (hasFinalizationListenerStopped()) { Log.w( - tag, - "The manager was used after calls to the PigeonFinalizationListener has been stopped.") + tag, + "The manager was used after calls to the PigeonFinalizationListener has been stopped." + ) } } } + /** Generated API for managing the Dart and native `InstanceManager`s. */ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: BinaryMessenger) { companion object { /** The codec used by CameraXLibraryPigeonInstanceManagerApi. */ - val codec: MessageCodec by lazy { CameraXLibraryPigeonCodec() } + val codec: MessageCodec by lazy { + CameraXLibraryPigeonCodec() + } /** * Sets up an instance of `CameraXLibraryPigeonInstanceManagerApi` to handle messages from the * `binaryMessenger`. */ - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - instanceManager: CameraXLibraryPigeonInstanceManager? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, instanceManager: CameraXLibraryPigeonInstanceManager?) { run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", codec) if (instanceManager != null) { channel.setMessageHandler { message, reply -> val args = message as List val identifierArg = args[0] as Long - val wrapped: List = - try { - instanceManager.remove(identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + instanceManager.remove(identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -296,20 +298,15 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", codec) if (instanceManager != null) { channel.setMessageHandler { _, reply -> - val wrapped: List = - try { - instanceManager.clear() - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + instanceManager.clear() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -319,9 +316,9 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } - fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) { - val channelName = - "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" + fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) +{ + val channelName = "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(identifierArg)) { if (it is List<*>) { @@ -332,13 +329,13 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } /** - * Provides implementations for each ProxyApi implementation and provides access to resources needed - * by any implementation. + * Provides implementations for each ProxyApi implementation and provides access to resources + * needed by any implementation. */ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: BinaryMessenger) { /** Whether APIs should ignore calling to Dart. */ @@ -355,23 +352,24 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary init { val api = CameraXLibraryPigeonInstanceManagerApi(binaryMessenger) - instanceManager = - CameraXLibraryPigeonInstanceManager.create( - object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { - override fun onFinalize(identifier: Long) { - api.removeStrongReference(identifier) { - if (it.isFailure) { - Log.e( - "PigeonProxyApiRegistrar", - "Failed to remove Dart strong reference with identifier: $identifier") - } - } - } - }) + instanceManager = CameraXLibraryPigeonInstanceManager.create( + object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { + override fun onFinalize(identifier: Long) { + api.removeStrongReference(identifier) { + if (it.isFailure) { + Log.e( + "PigeonProxyApiRegistrar", + "Failed to remove Dart strong reference with identifier: $identifier" + ) + } + } + } + } + ) } /** - * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of `CameraSize` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of + * `CameraSize` to the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraSize(): PigeonApiCameraSize @@ -391,7 +389,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEvent] used to add a new Dart instance of * `VideoRecordEvent` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { + open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent + { return PigeonApiVideoRecordEvent(this) } @@ -399,7 +398,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventStart] used to add a new Dart instance of * `VideoRecordEventStart` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart { + open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart + { return PigeonApiVideoRecordEventStart(this) } @@ -407,7 +407,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventFinalize] used to add a new Dart instance of * `VideoRecordEventFinalize` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize { + open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize + { return PigeonApiVideoRecordEventFinalize(this) } @@ -418,14 +419,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPoint(): PigeonApiMeteringPoint /** - * An implementation of [PigeonApiObserver] used to add a new Dart instance of `Observer` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiObserver] used to add a new Dart instance of + * `Observer` to the Dart `InstanceManager`. */ abstract fun getPigeonApiObserver(): PigeonApiObserver /** - * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of `CameraInfo` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of + * `CameraInfo` to the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraInfo(): PigeonApiCameraInfo @@ -442,16 +443,17 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiProcessCameraProvider(): PigeonApiProcessCameraProvider /** - * An implementation of [PigeonApiUseCase] used to add a new Dart instance of `UseCase` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiUseCase] used to add a new Dart instance of + * `UseCase` to the Dart `InstanceManager`. */ - open fun getPigeonApiUseCase(): PigeonApiUseCase { + open fun getPigeonApiUseCase(): PigeonApiUseCase + { return PigeonApiUseCase(this) } /** - * An implementation of [PigeonApiCamera] used to add a new Dart instance of `Camera` to the Dart - * `InstanceManager`. + * An implementation of [PigeonApiCamera] used to add a new Dart instance of + * `Camera` to the Dart `InstanceManager`. */ abstract fun getPigeonApiCamera(): PigeonApiCamera @@ -468,28 +470,29 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiDeviceOrientationManager(): PigeonApiDeviceOrientationManager /** - * An implementation of [PigeonApiPreview] used to add a new Dart instance of `Preview` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiPreview] used to add a new Dart instance of + * `Preview` to the Dart `InstanceManager`. */ abstract fun getPigeonApiPreview(): PigeonApiPreview /** - * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of `VideoCapture` - * to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of + * `VideoCapture` to the Dart `InstanceManager`. */ abstract fun getPigeonApiVideoCapture(): PigeonApiVideoCapture /** - * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of `VideoOutput` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of + * `VideoOutput` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput { + open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput + { return PigeonApiVideoOutput(this) } /** - * An implementation of [PigeonApiRecorder] used to add a new Dart instance of `Recorder` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiRecorder] used to add a new Dart instance of + * `Recorder` to the Dart `InstanceManager`. */ abstract fun getPigeonApiRecorder(): PigeonApiRecorder @@ -506,14 +509,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiPendingRecording(): PigeonApiPendingRecording /** - * An implementation of [PigeonApiRecording] used to add a new Dart instance of `Recording` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiRecording] used to add a new Dart instance of + * `Recording` to the Dart `InstanceManager`. */ abstract fun getPigeonApiRecording(): PigeonApiRecording /** - * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of `ImageCapture` - * to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of + * `ImageCapture` to the Dart `InstanceManager`. */ abstract fun getPigeonApiImageCapture(): PigeonApiImageCapture @@ -536,8 +539,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiAspectRatioStrategy(): PigeonApiAspectRatioStrategy /** - * An implementation of [PigeonApiCameraState] used to add a new Dart instance of `CameraState` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraState] used to add a new Dart instance of + * `CameraState` to the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraState(): PigeonApiCameraState @@ -548,8 +551,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiExposureState(): PigeonApiExposureState /** - * An implementation of [PigeonApiZoomState] used to add a new Dart instance of `ZoomState` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiZoomState] used to add a new Dart instance of + * `ZoomState` to the Dart `InstanceManager`. */ abstract fun getPigeonApiZoomState(): PigeonApiZoomState @@ -560,8 +563,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiImageAnalysis(): PigeonApiImageAnalysis /** - * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of `Analyzer` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of + * `Analyzer` to the Dart `InstanceManager`. */ abstract fun getPigeonApiAnalyzer(): PigeonApiAnalyzer @@ -572,20 +575,20 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiCameraStateStateError(): PigeonApiCameraStateStateError /** - * An implementation of [PigeonApiLiveData] used to add a new Dart instance of `LiveData` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiLiveData] used to add a new Dart instance of + * `LiveData` to the Dart `InstanceManager`. */ abstract fun getPigeonApiLiveData(): PigeonApiLiveData /** - * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of `ImageProxy` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of + * `ImageProxy` to the Dart `InstanceManager`. */ abstract fun getPigeonApiImageProxy(): PigeonApiImageProxy /** - * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of `PlaneProxy` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of + * `PlaneProxy` to the Dart `InstanceManager`. */ abstract fun getPigeonApiPlaneProxy(): PigeonApiPlaneProxy @@ -635,7 +638,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCaptureRequestKey] used to add a new Dart instance of * `CaptureRequestKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey { + open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey + { return PigeonApiCaptureRequestKey(this) } @@ -661,7 +665,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCameraCharacteristicsKey] used to add a new Dart instance of * `CameraCharacteristicsKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey { + open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey + { return PigeonApiCameraCharacteristicsKey(this) } @@ -684,42 +689,33 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory /** - * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart - * instance of `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. + * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart instance of + * `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. */ - abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): - PigeonApiDisplayOrientedMeteringPointFactory + abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): PigeonApiDisplayOrientedMeteringPointFactory fun setUp() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, instanceManager) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSize()) - PigeonApiCameraIntegerRange.setUpMessageHandlers( - binaryMessenger, getPigeonApiCameraIntegerRange()) + PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraIntegerRange()) PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPoint()) PigeonApiObserver.setUpMessageHandlers(binaryMessenger, getPigeonApiObserver()) PigeonApiCameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraInfo()) PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSelector()) - PigeonApiProcessCameraProvider.setUpMessageHandlers( - binaryMessenger, getPigeonApiProcessCameraProvider()) + PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, getPigeonApiProcessCameraProvider()) PigeonApiCamera.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera()) - PigeonApiSystemServicesManager.setUpMessageHandlers( - binaryMessenger, getPigeonApiSystemServicesManager()) - PigeonApiDeviceOrientationManager.setUpMessageHandlers( - binaryMessenger, getPigeonApiDeviceOrientationManager()) + PigeonApiSystemServicesManager.setUpMessageHandlers(binaryMessenger, getPigeonApiSystemServicesManager()) + PigeonApiDeviceOrientationManager.setUpMessageHandlers(binaryMessenger, getPigeonApiDeviceOrientationManager()) PigeonApiPreview.setUpMessageHandlers(binaryMessenger, getPigeonApiPreview()) PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoCapture()) PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, getPigeonApiRecorder()) - PigeonApiVideoRecordEventListener.setUpMessageHandlers( - binaryMessenger, getPigeonApiVideoRecordEventListener()) + PigeonApiVideoRecordEventListener.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoRecordEventListener()) PigeonApiPendingRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiPendingRecording()) PigeonApiRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiRecording()) PigeonApiImageCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiImageCapture()) - PigeonApiResolutionStrategy.setUpMessageHandlers( - binaryMessenger, getPigeonApiResolutionStrategy()) - PigeonApiResolutionSelector.setUpMessageHandlers( - binaryMessenger, getPigeonApiResolutionSelector()) - PigeonApiAspectRatioStrategy.setUpMessageHandlers( - binaryMessenger, getPigeonApiAspectRatioStrategy()) + PigeonApiResolutionStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionStrategy()) + PigeonApiResolutionSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionSelector()) + PigeonApiAspectRatioStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiAspectRatioStrategy()) PigeonApiImageAnalysis.setUpMessageHandlers(binaryMessenger, getPigeonApiImageAnalysis()) PigeonApiAnalyzer.setUpMessageHandlers(binaryMessenger, getPigeonApiAnalyzer()) PigeonApiLiveData.setUpMessageHandlers(binaryMessenger, getPigeonApiLiveData()) @@ -727,24 +723,16 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiQualitySelector.setUpMessageHandlers(binaryMessenger, getPigeonApiQualitySelector()) PigeonApiFallbackStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiFallbackStrategy()) PigeonApiCameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraControl()) - PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers( - binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) + PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers(binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) PigeonApiCaptureRequest.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequest()) - PigeonApiCaptureRequestOptions.setUpMessageHandlers( - binaryMessenger, getPigeonApiCaptureRequestOptions()) - PigeonApiCamera2CameraControl.setUpMessageHandlers( - binaryMessenger, getPigeonApiCamera2CameraControl()) + PigeonApiCaptureRequestOptions.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequestOptions()) + PigeonApiCamera2CameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraControl()) PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionFilter()) - PigeonApiCameraCharacteristics.setUpMessageHandlers( - binaryMessenger, getPigeonApiCameraCharacteristics()) - PigeonApiCamera2CameraInfo.setUpMessageHandlers( - binaryMessenger, getPigeonApiCamera2CameraInfo()) - PigeonApiMeteringPointFactory.setUpMessageHandlers( - binaryMessenger, getPigeonApiMeteringPointFactory()) - PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers( - binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) + PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraCharacteristics()) + PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraInfo()) + PigeonApiMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPointFactory()) + PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) } - fun tearDown() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, null) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, null) @@ -785,10 +773,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, null) } } - -private class CameraXLibraryPigeonProxyApiBaseCodec( - val registrar: CameraXLibraryPigeonProxyApiRegistrar -) : CameraXLibraryPigeonCodec() { +private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibraryPigeonProxyApiRegistrar) : CameraXLibraryPigeonCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { @@ -799,136 +784,163 @@ private class CameraXLibraryPigeonProxyApiBaseCodec( } override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { - if (value is Boolean || - value is ByteArray || - value is Double || - value is DoubleArray || - value is FloatArray || - value is Int || - value is IntArray || - value is List<*> || - value is Long || - value is LongArray || - value is Map<*, *> || - value is String || - value is InfoSupportedHardwareLevel || - value is AspectRatio || - value is CameraStateType || - value is LiveDataSupportedType || - value is VideoQuality || - value is MeteringMode || - value is LensFacing || - value is CameraXFlashMode || - value is ResolutionStrategyFallbackRule || - value is AspectRatioStrategyFallbackRule || - value is CameraStateErrorCode || - value == null) { + if (value is Boolean || value is ByteArray || value is Double || value is DoubleArray || value is FloatArray || value is Int || value is IntArray || value is List<*> || value is Long || value is LongArray || value is Map<*, *> || value is String || value is InfoSupportedHardwareLevel || value is AspectRatio || value is CameraStateType || value is LiveDataSupportedType || value is VideoQuality || value is MeteringMode || value is LensFacing || value is CameraXFlashMode || value is ResolutionStrategyFallbackRule || value is AspectRatioStrategyFallbackRule || value is CameraStateErrorCode || value == null) { super.writeValue(stream, value) return } if (value is android.util.Size) { - registrar.getPigeonApiCameraSize().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ResolutionInfo) { - registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) {} - } else if (value is android.util.Range<*>) { - registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoRecordEvent.Start) { - registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { - registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoRecordEvent) { - registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.MeteringPoint) { - registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) {} - } else if (value is androidx.lifecycle.Observer<*>) { - registrar.getPigeonApiObserver().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraInfo) { - registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraSelector) { - registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) {} - } else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { - registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.Camera) { - registrar.getPigeonApiCamera().pigeon_newInstance(value) {} - } else if (value is SystemServicesManager) { - registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) {} - } else if (value is DeviceOrientationManager) { - registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.Preview) { - registrar.getPigeonApiPreview().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoCapture<*>) { - registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.Recorder) { - registrar.getPigeonApiRecorder().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoOutput) { - registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) {} - } else if (value is VideoRecordEventListener) { - registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.PendingRecording) { - registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.Recording) { - registrar.getPigeonApiRecording().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageCapture) { - registrar.getPigeonApiImageCapture().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { - registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { - registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { - registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraState) { - registrar.getPigeonApiCameraState().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ExposureState) { - registrar.getPigeonApiExposureState().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ZoomState) { - registrar.getPigeonApiZoomState().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageAnalysis) { - registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.UseCase) { - registrar.getPigeonApiUseCase().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { - registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraState.StateError) { - registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) {} - } else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { - registrar.getPigeonApiLiveData().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageProxy) { - registrar.getPigeonApiImageProxy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { - registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.QualitySelector) { - registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.FallbackStrategy) { - registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraControl) { - registrar.getPigeonApiCameraControl().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.FocusMeteringAction.Builder) { - registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.FocusMeteringAction) { - registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.FocusMeteringResult) { - registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) {} - } else if (value is android.hardware.camera2.CaptureRequest) { - registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) {} - } else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { - registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) {} - } else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { - registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) {} - } else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { - registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { - registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) {} - } else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { - registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) {} - } else if (value is android.hardware.camera2.CameraCharacteristics) { - registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) {} - } else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { - registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { - registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.MeteringPointFactory) { - registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) {} + registrar.getPigeonApiCameraSize().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ResolutionInfo) { + registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) { } + } + else if (value is android.util.Range<*>) { + registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoRecordEvent.Start) { + registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { + registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoRecordEvent) { + registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.MeteringPoint) { + registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) { } + } + else if (value is androidx.lifecycle.Observer<*>) { + registrar.getPigeonApiObserver().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraInfo) { + registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraSelector) { + registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { + registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.Camera) { + registrar.getPigeonApiCamera().pigeon_newInstance(value) { } + } + else if (value is SystemServicesManager) { + registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) { } + } + else if (value is DeviceOrientationManager) { + registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.Preview) { + registrar.getPigeonApiPreview().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoCapture<*>) { + registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.Recorder) { + registrar.getPigeonApiRecorder().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoOutput) { + registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) { } + } + else if (value is VideoRecordEventListener) { + registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.PendingRecording) { + registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.Recording) { + registrar.getPigeonApiRecording().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageCapture) { + registrar.getPigeonApiImageCapture().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { + registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { + registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { + registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraState) { + registrar.getPigeonApiCameraState().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ExposureState) { + registrar.getPigeonApiExposureState().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ZoomState) { + registrar.getPigeonApiZoomState().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageAnalysis) { + registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.UseCase) { + registrar.getPigeonApiUseCase().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { + registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraState.StateError) { + registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) { } + } + else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { + registrar.getPigeonApiLiveData().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageProxy) { + registrar.getPigeonApiImageProxy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { + registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.QualitySelector) { + registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.FallbackStrategy) { + registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraControl) { + registrar.getPigeonApiCameraControl().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.FocusMeteringAction.Builder) { + registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.FocusMeteringAction) { + registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.FocusMeteringResult) { + registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CaptureRequest) { + registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { + registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { + registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { + registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { + registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { + registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CameraCharacteristics) { + registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { + registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { + registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.MeteringPointFactory) { + registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) { } } when { @@ -936,9 +948,7 @@ private class CameraXLibraryPigeonProxyApiBaseCodec( stream.write(128) writeValue(stream, registrar.instanceManager.getIdentifierForStrongReference(value)) } - else -> - throw IllegalArgumentException( - "Unsupported value: '$value' of type '${value.javaClass.name}'") + else -> throw IllegalArgumentException("Unsupported value: '$value' of type '${value.javaClass.name}'") } } } @@ -946,22 +956,27 @@ private class CameraXLibraryPigeonProxyApiBaseCodec( /** * Generally classifies the overall set of the camera device functionality. * - * See - * https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. + * See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. */ enum class InfoSupportedHardwareLevel(val raw: Int) { /** - * This camera device is capable of YUV reprocessing and RAW data capture, in addition to - * FULL-level capabilities. + * This camera device is capable of YUV reprocessing and RAW data capture, in + * addition to FULL-level capabilities. */ LEVEL3(0), - /** This camera device is backed by an external camera connected to this Android device. */ + /** + * This camera device is backed by an external camera connected to this + * Android device. + */ EXTERNAL(1), /** This camera device is capable of supporting advanced imaging applications. */ FULL(2), /** This camera device is running in backward compatibility mode. */ LEGACY(3), - /** This camera device does not have enough capabilities to qualify as a FULL device or better. */ + /** + * This camera device does not have enough capabilities to qualify as a FULL + * device or better. + */ LIMITED(4); companion object { @@ -1006,8 +1021,8 @@ enum class CameraStateType(val raw: Int) { /** Represents a state where the camera device is currently opening. */ OPENING(3), /** - * Represents a state where the camera is waiting for a signal to attempt to open the camera - * device. + * Represents a state where the camera is waiting for a signal to attempt to + * open the camera device. */ PENDING_OPEN(4), /** This value is not recognized by this wrapper. */ @@ -1033,8 +1048,8 @@ enum class LiveDataSupportedType(val raw: Int) { } /** - * Video quality constraints that will be used by a QualitySelector to choose an appropriate video - * resolution. + * Video quality constraints that will be used by a QualitySelector to choose + * an appropriate video resolution. * * These are pre-defined quality constants that are universally used for video. * @@ -1064,15 +1079,23 @@ enum class VideoQuality(val raw: Int) { /** * A flag used for indicating metering mode regions. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). + * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). */ enum class MeteringMode(val raw: Int) { - /** A flag used in metering mode indicating the AE (Auto Exposure) region is enabled. */ + /** + * A flag used in metering mode indicating the AE (Auto Exposure) region is + * enabled. + */ AE(0), - /** A flag used in metering mode indicating the AF (Auto Focus) region is enabled. */ + /** + * A flag used in metering mode indicating the AF (Auto Focus) region is + * enabled. + */ AF(1), - /** A flag used in metering mode indicating the AWB (Auto White Balance) region is enabled. */ + /** + * A flag used in metering mode indicating the AWB (Auto White Balance) + * region is enabled. + */ AWB(2); companion object { @@ -1085,15 +1108,20 @@ enum class MeteringMode(val raw: Int) { /** * Direction of lens of a camera. * - * See - * https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). + * See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). */ enum class LensFacing(val raw: Int) { /** A camera on the device facing the same direction as the device's screen. */ FRONT(0), - /** A camera on the device facing the opposite direction as the device's screen. */ + /** + * A camera on the device facing the opposite direction as the device's + * screen. + */ BACK(1), - /** An external camera that has no fixed facing relative to the device's screen. */ + /** + * An external camera that has no fixed facing relative to the device's + * screen. + */ EXTERNAL(2), /** A camera on the devices that its lens facing is resolved. */ UNKNOWN(3); @@ -1108,14 +1136,14 @@ enum class LensFacing(val raw: Int) { /** * FlashModes for image capture. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). */ enum class CameraXFlashMode(val raw: Int) { /** * Auto flash. * - * The flash will be used according to the camera system's determination when taking a picture. + * The flash will be used according to the camera system's determination when + * taking a picture. */ AUTO(0), /** @@ -1139,33 +1167,36 @@ enum class CameraXFlashMode(val raw: Int) { } /** - * Fallback rule for choosing an alternate size when the specified bound size is unavailable. + * Fallback rule for choosing an alternate size when the specified bound size + * is unavailable. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ enum class ResolutionStrategyFallbackRule(val raw: Int) { /** - * When the specified bound size is unavailable, CameraX falls back to the closest higher - * resolution size. + * When the specified bound size is unavailable, CameraX falls back to the + * closest higher resolution size. */ CLOSEST_HIGHER(0), /** - * When the specified bound size is unavailable, CameraX falls back to select the closest higher - * resolution size. + * When the specified bound size is unavailable, CameraX falls back to select + * the closest higher resolution size. */ CLOSEST_HIGHER_THEN_LOWER(1), /** - * When the specified bound size is unavailable, CameraX falls back to the closest lower - * resolution size. + * When the specified bound size is unavailable, CameraX falls back to the + * closest lower resolution size. */ CLOSEST_LOWER(2), /** - * When the specified bound size is unavailable, CameraX falls back to select the closest lower - * resolution size. + * When the specified bound size is unavailable, CameraX falls back to select + * the closest lower resolution size. */ CLOSEST_LOWER_THEN_HIGHER(3), - /** CameraX doesn't select an alternate size when the specified bound size is unavailable. */ + /** + * CameraX doesn't select an alternate size when the specified bound size is + * unavailable. + */ NONE(4); companion object { @@ -1176,20 +1207,21 @@ enum class ResolutionStrategyFallbackRule(val raw: Int) { } /** - * Fallback rule for choosing the aspect ratio when the preferred aspect ratio is not available. + * Fallback rule for choosing the aspect ratio when the preferred aspect ratio + * is not available. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). */ enum class AspectRatioStrategyFallbackRule(val raw: Int) { /** - * CameraX automatically chooses the next best aspect ratio which contains the closest field of - * view (FOV) of the camera sensor, from the remaining options. + * CameraX automatically chooses the next best aspect ratio which contains + * the closest field of view (FOV) of the camera sensor, from the remaining + * options. */ AUTO(0), /** - * CameraX doesn't fall back to select sizes of any other aspect ratio when this fallback rule is - * used. + * CameraX doesn't fall back to select sizes of any other aspect ratio when + * this fallback rule is used. */ NONE(1); @@ -1206,23 +1238,34 @@ enum class AspectRatioStrategyFallbackRule(val raw: Int) { * https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() */ enum class CameraStateErrorCode(val raw: Int) { - /** An error indicating that the camera device could not be opened due to a device policy. */ + /** + * An error indicating that the camera device could not be opened due to a + * device policy. + */ CAMERA_DISABLED(0), - /** An error indicating that the camera device was closed due to a fatal error. */ + /** + * An error indicating that the camera device was closed due to a fatal + * error. + */ CAMERA_FATAL_ERROR(1), /** An error indicating that the camera device is already in use. */ CAMERA_IN_USE(2), /** - * An error indicating that the camera could not be opened because "Do Not Disturb" mode is - * enabled on devices affected by a bug in Android 9 (API level 28). + * An error indicating that the camera could not be opened because "Do Not + * Disturb" mode is enabled on devices affected by a bug in Android 9 (API + * level 28). */ DO_NOT_DISTURB_MODE_ENABLED(3), /** - * An error indicating that the limit number of open cameras has been reached, and more cameras - * cannot be opened until other instances are closed. + * An error indicating that the limit number of open cameras has been + * reached, and more cameras cannot be opened until other instances are + * closed. */ MAX_CAMERAS_IN_USE(4), - /** An error indicating that the camera device has encountered a recoverable error. */ + /** + * An error indicating that the camera device has encountered a recoverable + * error. + */ OTHER_RECOVERABLE_ERROR(5), /** An error indicating that configuring the camera has failed. */ STREAM_CONFIG(6), @@ -1235,33 +1278,48 @@ enum class CameraStateErrorCode(val raw: Int) { } } } - private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 129.toByte() -> { - return (readValue(buffer) as Long?)?.let { InfoSupportedHardwareLevel.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + InfoSupportedHardwareLevel.ofRaw(it.toInt()) + } } 130.toByte() -> { - return (readValue(buffer) as Long?)?.let { AspectRatio.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + AspectRatio.ofRaw(it.toInt()) + } } 131.toByte() -> { - return (readValue(buffer) as Long?)?.let { CameraStateType.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + CameraStateType.ofRaw(it.toInt()) + } } 132.toByte() -> { - return (readValue(buffer) as Long?)?.let { LiveDataSupportedType.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + LiveDataSupportedType.ofRaw(it.toInt()) + } } 133.toByte() -> { - return (readValue(buffer) as Long?)?.let { VideoQuality.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + VideoQuality.ofRaw(it.toInt()) + } } 134.toByte() -> { - return (readValue(buffer) as Long?)?.let { MeteringMode.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + MeteringMode.ofRaw(it.toInt()) + } } 135.toByte() -> { - return (readValue(buffer) as Long?)?.let { LensFacing.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + LensFacing.ofRaw(it.toInt()) + } } 136.toByte() -> { - return (readValue(buffer) as Long?)?.let { CameraXFlashMode.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + CameraXFlashMode.ofRaw(it.toInt()) + } } 137.toByte() -> { return (readValue(buffer) as Long?)?.let { @@ -1274,13 +1332,14 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { } } 139.toByte() -> { - return (readValue(buffer) as Long?)?.let { CameraStateErrorCode.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + CameraStateErrorCode.ofRaw(it.toInt()) + } } else -> super.readValueOfType(type, buffer) } } - - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is InfoSupportedHardwareLevel -> { stream.write(129) @@ -1337,9 +1396,7 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { * See https://developer.android.com/reference/android/util/Size.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSize( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(width: Long, height: Long): android.util.Size /** The width of the size (in pixels). */ @@ -1353,25 +1410,19 @@ abstract class PigeonApiCameraSize( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSize?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val widthArg = args[1] as Long val heightArg = args[2] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(widthArg, heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(widthArg,heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1383,7 +1434,8 @@ abstract class PigeonApiCameraSize( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) { + fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1394,8 +1446,7 @@ abstract class PigeonApiCameraSize( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -1411,9 +1462,10 @@ abstract class PigeonApiCameraSize( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -1510,24 +1562,20 @@ public class CameraSizeProxyApiTest { } */ /** - * A `ResolutionInfo` allows the application to know the resolution information of a specific use - * case. + * A `ResolutionInfo` allows the application to know the resolution information + * of a specific use case. * * See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionInfo( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Returns the output resolution used for the use case. */ abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ResolutionInfo, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1538,8 +1586,7 @@ abstract class PigeonApiResolutionInfo( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionArg = resolution(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -1554,9 +1601,10 @@ abstract class PigeonApiResolutionInfo( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -1632,9 +1680,7 @@ public class ResolutionInfoProxyApiTest { * See https://developer.android.com/reference/android/util/Range.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraIntegerRange( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(lower: Long, upper: Long): android.util.Range<*> /** The lower endpoint. */ @@ -1648,25 +1694,19 @@ abstract class PigeonApiCameraIntegerRange( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraIntegerRange?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val lowerArg = args[1] as Long val upperArg = args[2] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(lowerArg, upperArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(lowerArg,upperArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1678,10 +1718,8 @@ abstract class PigeonApiCameraIntegerRange( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: android.util.Range<*>, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: android.util.Range<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1692,14 +1730,12 @@ abstract class PigeonApiCameraIntegerRange( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val lowerArg = lower(pigeon_instanceArg) val upperArg = upper(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, lowerArg, upperArg)) { if (it is List<*>) { @@ -1710,9 +1746,10 @@ abstract class PigeonApiCameraIntegerRange( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -1814,15 +1851,11 @@ public class CameraIntegerRangeProxyApiTest { * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEvent( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1833,12 +1866,10 @@ open class PigeonApiVideoRecordEvent( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -1849,9 +1880,10 @@ open class PigeonApiVideoRecordEvent( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -1906,15 +1938,11 @@ public class VideoRecordEventProxyApiTest { * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Start. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventStart( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1925,12 +1953,10 @@ open class PigeonApiVideoRecordEventStart( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -1941,15 +1967,17 @@ open class PigeonApiVideoRecordEventStart( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent + { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } + } /* @@ -2004,17 +2032,11 @@ public class VideoRecordEventStartProxyApiTest { * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventFinalize( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2025,12 +2047,10 @@ open class PigeonApiVideoRecordEventFinalize( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -2041,15 +2061,17 @@ open class PigeonApiVideoRecordEventFinalize( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent + { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } + } /* @@ -2099,20 +2121,18 @@ public class VideoRecordEventFinalizeProxyApiTest { } */ /** - * A MeteringPoint is used to specify a region which can then be converted to sensor coordinate - * system for focus and metering purpose. + * A MeteringPoint is used to specify a region which can then be converted to + * sensor coordinate system for focus and metering purpose. * * See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPoint( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** * Size of the MeteringPoint width and height (ranging from 0 to 1). * - * It is the percentage of the sensor width/height (or crop region width/height if crop region is - * set). + * It is the percentage of the sensor width/height (or crop region + * width/height if crop region is set). */ abstract fun getSize(pigeon_instance: androidx.camera.core.MeteringPoint): Double @@ -2121,21 +2141,16 @@ abstract class PigeonApiMeteringPoint( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPoint?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPoint - val wrapped: List = - try { - listOf(api.getSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2147,10 +2162,8 @@ abstract class PigeonApiMeteringPoint( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPoint and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.MeteringPoint, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPoint, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2161,8 +2174,7 @@ abstract class PigeonApiMeteringPoint( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" @@ -2176,9 +2188,10 @@ abstract class PigeonApiMeteringPoint( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -2258,23 +2271,17 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiObserver?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2286,10 +2293,8 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Observer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.lifecycle.Observer<*>, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.lifecycle.Observer<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2300,16 +2305,12 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP Result.success(Unit) return } - throw IllegalStateException( - "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.") + throw IllegalStateException("Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.") } /** Called when the data is changed to value. */ - fun onChanged( - pigeon_instanceArg: androidx.lifecycle.Observer<*>, - valueArg: Any, - callback: (Result) -> Unit - ) { + fun onChanged(pigeon_instanceArg: androidx.lifecycle.Observer<*>, valueArg: Any, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2329,9 +2330,10 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -2422,50 +2424,37 @@ public class ObserverProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraInfo( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Returns the sensor rotation in degrees, relative to the device's "natural" (default) - * orientation. + * Returns the sensor rotation in degrees, relative to the device's "natural" + * (default) orientation. */ abstract fun sensorRotationDegrees(pigeon_instance: androidx.camera.core.CameraInfo): Long /** Returns a ExposureState. */ - abstract fun exposureState( - pigeon_instance: androidx.camera.core.CameraInfo - ): androidx.camera.core.ExposureState + abstract fun exposureState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.camera.core.ExposureState /** A LiveData of the camera's state. */ - abstract fun getCameraState( - pigeon_instance: androidx.camera.core.CameraInfo - ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getCameraState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper /** A LiveData of ZoomState. */ - abstract fun getZoomState( - pigeon_instance: androidx.camera.core.CameraInfo - ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getZoomState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = - try { - listOf(api.getCameraState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getCameraState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2473,21 +2462,16 @@ abstract class PigeonApiCameraInfo( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = - try { - listOf(api.getZoomState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getZoomState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2499,10 +2483,8 @@ abstract class PigeonApiCameraInfo( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraInfo, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraInfo, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2513,8 +2495,7 @@ abstract class PigeonApiCameraInfo( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) val exposureStateArg = exposureState(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -2530,9 +2511,10 @@ abstract class PigeonApiCameraInfo( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -2654,17 +2636,14 @@ public class CameraInfoProxyApiTest { } */ /** - * A set of requirements and priorities used to select a camera or return a filtered set of cameras. + * A set of requirements and priorities used to select a camera or return a + * filtered set of cameras. * * See https://developer.android.com/reference/androidx/camera/core/CameraSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSelector( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - requireLensFacing: LensFacing? - ): androidx.camera.core.CameraSelector +abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(requireLensFacing: LensFacing?): androidx.camera.core.CameraSelector /** A static `CameraSelector` that selects the default back facing camera. */ abstract fun defaultBackCamera(): androidx.camera.core.CameraSelector @@ -2672,35 +2651,29 @@ abstract class PigeonApiCameraSelector( /** A static `CameraSelector` that selects the default front facing camera. */ abstract fun defaultFrontCamera(): androidx.camera.core.CameraSelector - /** Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the selector. */ - abstract fun filter( - pigeon_instance: androidx.camera.core.CameraSelector, - cameraInfos: List - ): List + /** + * Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the + * selector. + */ + abstract fun filter(pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List): List companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val requireLensFacingArg = args[1] as LensFacing? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2708,23 +2681,17 @@ abstract class PigeonApiCameraSelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.defaultBackCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultBackCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2732,23 +2699,17 @@ abstract class PigeonApiCameraSelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.defaultFrontCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultFrontCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2756,22 +2717,17 @@ abstract class PigeonApiCameraSelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraSelector val cameraInfosArg = args[1] as List - val wrapped: List = - try { - listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2783,10 +2739,8 @@ abstract class PigeonApiCameraSelector( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraSelector, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraSelector, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2797,8 +2751,7 @@ abstract class PigeonApiCameraSelector( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" @@ -2812,9 +2765,10 @@ abstract class PigeonApiCameraSelector( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -2909,63 +2863,43 @@ public class CameraSelectorProxyApiTest { } */ /** - * A singleton which can be used to bind the lifecycle of cameras to any `LifecycleOwner` within an - * application's process. + * A singleton which can be used to bind the lifecycle of cameras to any + * `LifecycleOwner` within an application's process. * * See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiProcessCameraProvider( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Retrieves the ProcessCameraProvider associated with the current process. */ - abstract fun getInstance( - callback: (Result) -> Unit - ) + abstract fun getInstance(callback: (Result) -> Unit) /** The `CameraInfo` instances of the available cameras. */ - abstract fun getAvailableCameraInfos( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider - ): List + abstract fun getAvailableCameraInfos(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider): List /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ - abstract fun bindToLifecycle( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, - cameraSelector: androidx.camera.core.CameraSelector, - useCases: List - ): androidx.camera.core.Camera + abstract fun bindToLifecycle(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelector: androidx.camera.core.CameraSelector, useCases: List): androidx.camera.core.Camera /** Returns true if the `UseCase` is bound to a lifecycle. */ - abstract fun isBound( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, - useCase: androidx.camera.core.UseCase - ): Boolean + abstract fun isBound(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase): Boolean /** Unbinds all specified use cases from the lifecycle provider. */ - abstract fun unbind( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, - useCases: List - ) + abstract fun unbind(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCases: List) - /** Unbinds all use cases from the lifecycle provider and removes them from CameraX. */ + /** + * Unbinds all use cases from the lifecycle provider and removes them from + * CameraX. + */ abstract fun unbindAll(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiProcessCameraProvider? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiProcessCameraProvider?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", codec) if (api != null) { channel.setMessageHandler { _, reply -> - api.getInstance { result: Result -> + api.getInstance{ result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -2980,21 +2914,16 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = - try { - listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3002,23 +2931,18 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val cameraSelectorArg = args[1] as androidx.camera.core.CameraSelector val useCasesArg = args[2] as List - val wrapped: List = - try { - listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3026,22 +2950,17 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCaseArg = args[1] as androidx.camera.core.UseCase - val wrapped: List = - try { - listOf(api.isBound(pigeon_instanceArg, useCaseArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.isBound(pigeon_instanceArg, useCaseArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3049,23 +2968,18 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCasesArg = args[1] as List - val wrapped: List = - try { - api.unbind(pigeon_instanceArg, useCasesArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.unbind(pigeon_instanceArg, useCasesArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3073,22 +2987,17 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = - try { - api.unbindAll(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.unbindAll(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3100,10 +3009,8 @@ abstract class PigeonApiProcessCameraProvider( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3114,12 +3021,10 @@ abstract class PigeonApiProcessCameraProvider( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -3130,9 +3035,10 @@ abstract class PigeonApiProcessCameraProvider( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -3289,10 +3195,8 @@ public class ProcessCameraProviderProxyApiTest { open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.UseCase, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3303,8 +3207,7 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" @@ -3318,9 +3221,10 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -3370,43 +3274,35 @@ public class UseCaseProxyApiTest { } */ /** - * The camera interface is used to control the flow of data to use cases, control the camera via the - * `CameraControl`, and publish the state of the camera via CameraInfo. + * The camera interface is used to control the flow of data to use cases, + * control the camera via the `CameraControl`, and publish the state of the + * camera via CameraInfo. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The `CameraControl` for the Camera. */ - abstract fun cameraControl( - pigeon_instance: androidx.camera.core.Camera - ): androidx.camera.core.CameraControl + abstract fun cameraControl(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraControl /** Returns information about this camera. */ - abstract fun getCameraInfo( - pigeon_instance: androidx.camera.core.Camera - ): androidx.camera.core.CameraInfo + abstract fun getCameraInfo(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraInfo companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Camera - val wrapped: List = - try { - listOf(api.getCameraInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getCameraInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3418,10 +3314,8 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.Camera, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Camera, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3432,8 +3326,7 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val cameraControlArg = cameraControl(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -3448,9 +3341,10 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -3539,50 +3433,31 @@ public class CameraProxyApiTest { */ /** Convenience class for accessing system resources. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiSystemServicesManager( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(): SystemServicesManager - abstract fun requestCameraPermissions( - pigeon_instance: SystemServicesManager, - enableAudio: Boolean, - callback: (Result) -> Unit - ) + abstract fun requestCameraPermissions(pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit) - abstract fun getTempFilePath( - pigeon_instance: SystemServicesManager, - prefix: String, - suffix: String - ): String + abstract fun getTempFilePath(pigeon_instance: SystemServicesManager, prefix: String, suffix: String): String abstract fun isPreviewPreTransformed(pigeon_instance: SystemServicesManager): Boolean companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiSystemServicesManager? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiSystemServicesManager?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3590,18 +3465,13 @@ abstract class PigeonApiSystemServicesManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val enableAudioArg = args[1] as Boolean - api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result - -> + api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -3615,23 +3485,18 @@ abstract class PigeonApiSystemServicesManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val prefixArg = args[1] as String val suffixArg = args[2] as String - val wrapped: List = - try { - listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3639,21 +3504,16 @@ abstract class PigeonApiSystemServicesManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager - val wrapped: List = - try { - listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3665,10 +3525,8 @@ abstract class PigeonApiSystemServicesManager( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: SystemServicesManager, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: SystemServicesManager, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3679,15 +3537,11 @@ abstract class PigeonApiSystemServicesManager( Result.success(Unit) return } - throw IllegalStateException( - "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.") + throw IllegalStateException("Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.") } - fun onCameraError( - pigeon_instanceArg: SystemServicesManager, - errorDescriptionArg: String, - callback: (Result) -> Unit - ) { + fun onCameraError(pigeon_instanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3696,8 +3550,7 @@ abstract class PigeonApiSystemServicesManager( } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" + val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, errorDescriptionArg)) { if (it is List<*>) { @@ -3708,9 +3561,10 @@ abstract class PigeonApiSystemServicesManager( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -3848,19 +3702,14 @@ public class SystemServicesManagerProxyApiTest { } */ /** - * Support class to help to determine the media orientation based on the orientation of the device. + * Support class to help to determine the media orientation based on the + * orientation of the device. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDeviceOrientationManager( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager - abstract fun startListeningForDeviceOrientationChange( - pigeon_instance: DeviceOrientationManager, - isFrontFacing: Boolean, - sensorOrientation: Long - ) + abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager, isFrontFacing: Boolean, sensorOrientation: Long) abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) @@ -3870,29 +3719,20 @@ abstract class PigeonApiDeviceOrientationManager( companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiDeviceOrientationManager? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDeviceOrientationManager?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3900,25 +3740,19 @@ abstract class PigeonApiDeviceOrientationManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager val isFrontFacingArg = args[1] as Boolean val sensorOrientationArg = args[2] as Long - val wrapped: List = - try { - api.startListeningForDeviceOrientationChange( - pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.startListeningForDeviceOrientationChange(pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3926,22 +3760,17 @@ abstract class PigeonApiDeviceOrientationManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = - try { - api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3949,21 +3778,16 @@ abstract class PigeonApiDeviceOrientationManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = - try { - listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3971,21 +3795,16 @@ abstract class PigeonApiDeviceOrientationManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = - try { - listOf(api.getUiOrientation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getUiOrientation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3996,13 +3815,9 @@ abstract class PigeonApiDeviceOrientationManager( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: DeviceOrientationManager, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: DeviceOrientationManager, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4013,15 +3828,11 @@ abstract class PigeonApiDeviceOrientationManager( Result.success(Unit) return } - throw IllegalStateException( - "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.") + throw IllegalStateException("Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.") } - fun onDeviceOrientationChanged( - pigeon_instanceArg: DeviceOrientationManager, - orientationArg: String, - callback: (Result) -> Unit - ) { + fun onDeviceOrientationChanged(pigeon_instanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4030,8 +3841,7 @@ abstract class PigeonApiDeviceOrientationManager( } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" + val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, orientationArg)) { if (it is List<*>) { @@ -4042,9 +3852,10 @@ abstract class PigeonApiDeviceOrientationManager( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -4202,31 +4013,28 @@ public class DeviceOrientationManagerProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor( - targetRotation: Long?, - resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector? - ): androidx.camera.core.Preview + abstract fun pigeon_defaultConstructor(targetRotation: Long?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.Preview /** * Sets a SurfaceProvider to provide a Surface for Preview. * * This is a convenience function that - * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the Flutter engine. + * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the + * Flutter engine. * 2. Sets this method with the created `SurfaceProvider`. - * 3. Returns the texture id of the `TextureEntry` that provided the `SurfaceProducer`. + * 3. Returns the texture id of the `TextureEntry` that provided the + * `SurfaceProducer`. */ - abstract fun setSurfaceProvider( - pigeon_instance: androidx.camera.core.Preview, - systemServicesManager: SystemServicesManager - ): Long + abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager): Long - /** Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was created. */ + /** + * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was + * created. + */ abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) /** Gets selected resolution information of the `Preview`. */ - abstract fun getResolutionInfo( - pigeon_instance: androidx.camera.core.Preview - ): androidx.camera.core.ResolutionInfo? + abstract fun getResolutionInfo(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.ResolutionInfo? /** Sets the target rotation. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) @@ -4236,27 +4044,19 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPreview?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val targetRotationArg = args[1] as Long? - val resolutionSelectorArg = - args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(targetRotationArg, resolutionSelectorArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionSelectorArg = args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,resolutionSelectorArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4264,22 +4064,17 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val systemServicesManagerArg = args[1] as SystemServicesManager - val wrapped: List = - try { - listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4287,22 +4082,17 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = - try { - api.releaseSurfaceProvider(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.releaseSurfaceProvider(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4310,21 +4100,16 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = - try { - listOf(api.getResolutionInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getResolutionInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4332,23 +4117,18 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val rotationArg = args[1] as Long - val wrapped: List = - try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4360,10 +4140,8 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Preview and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.Preview, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Preview, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4374,8 +4152,7 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance" @@ -4389,15 +4166,17 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { return pigeonRegistrar.getPigeonApiUseCase() } + } /* @@ -4535,48 +4314,33 @@ public class PreviewProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoCapture( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Create a `VideoCapture` associated with the given `VideoOutput`. */ - abstract fun withOutput( - videoOutput: androidx.camera.video.VideoOutput - ): androidx.camera.video.VideoCapture<*> + abstract fun withOutput(videoOutput: androidx.camera.video.VideoOutput): androidx.camera.video.VideoCapture<*> /** Gets the VideoOutput associated with this VideoCapture. */ - abstract fun getOutput( - pigeon_instance: androidx.camera.video.VideoCapture<*> - ): androidx.camera.video.VideoOutput + abstract fun getOutput(pigeon_instance: androidx.camera.video.VideoCapture<*>): androidx.camera.video.VideoOutput /** Sets the desired rotation of the output video. */ - abstract fun setTargetRotation( - pigeon_instance: androidx.camera.video.VideoCapture<*>, - rotation: Long - ) + abstract fun setTargetRotation(pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val videoOutputArg = args[1] as androidx.camera.video.VideoOutput - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.withOutput(videoOutputArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withOutput(videoOutputArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4584,21 +4348,16 @@ abstract class PigeonApiVideoCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> - val wrapped: List = - try { - listOf(api.getOutput(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getOutput(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4606,23 +4365,18 @@ abstract class PigeonApiVideoCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> val rotationArg = args[1] as Long - val wrapped: List = - try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4634,10 +4388,8 @@ abstract class PigeonApiVideoCapture( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4648,8 +4400,7 @@ abstract class PigeonApiVideoCapture( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" @@ -4663,15 +4414,17 @@ abstract class PigeonApiVideoCapture( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { return pigeonRegistrar.getPigeonApiUseCase() } + } /* @@ -4777,10 +4530,8 @@ public class VideoCaptureProxyApiTest { open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoOutput and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoOutput, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoOutput, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4791,8 +4542,7 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" @@ -4806,9 +4556,10 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -4858,18 +4609,14 @@ public class VideoOutputProxyApiTest { } */ /** - * An implementation of `VideoOutput` for starting video recordings that are saved to a File, - * ParcelFileDescriptor, or MediaStore. + * An implementation of `VideoOutput` for starting video recordings that are + * saved to a File, ParcelFileDescriptor, or MediaStore. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor( - aspectRatio: Long?, - targetVideoEncodingBitRate: Long?, - qualitySelector: androidx.camera.video.QualitySelector? - ): androidx.camera.video.Recorder + abstract fun pigeon_defaultConstructor(aspectRatio: Long?, targetVideoEncodingBitRate: Long?, qualitySelector: androidx.camera.video.QualitySelector?): androidx.camera.video.Recorder /** Gets the aspect ratio of this Recorder. */ abstract fun getAspectRatio(pigeon_instance: androidx.camera.video.Recorder): Long @@ -4878,21 +4625,14 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long /** Prepares a recording that will be saved to a File. */ - abstract fun prepareRecording( - pigeon_instance: androidx.camera.video.Recorder, - path: String - ): androidx.camera.video.PendingRecording + abstract fun prepareRecording(pigeon_instance: androidx.camera.video.Recorder, path: String): androidx.camera.video.PendingRecording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecorder?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -4900,16 +4640,12 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP val aspectRatioArg = args[1] as Long? val targetVideoEncodingBitRateArg = args[2] as Long? val qualitySelectorArg = args[3] as androidx.camera.video.QualitySelector? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor( - aspectRatioArg, targetVideoEncodingBitRateArg, qualitySelectorArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioArg,targetVideoEncodingBitRateArg,qualitySelectorArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4917,21 +4653,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = - try { - listOf(api.getAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4939,21 +4670,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = - try { - listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4961,22 +4687,17 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val pathArg = args[1] as String - val wrapped: List = - try { - listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4988,10 +4709,8 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recorder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.Recorder, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recorder, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5002,8 +4721,7 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" @@ -5017,15 +4735,17 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoOutput] used to access callback methods */ - fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput { + fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput + { return pigeonRegistrar.getPigeonApiVideoOutput() } + } /* @@ -5145,36 +4865,25 @@ public class RecorderProxyApiTest { */ /** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoRecordEventListener( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(): VideoRecordEventListener companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiVideoRecordEventListener? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoRecordEventListener?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5185,13 +4894,9 @@ abstract class PigeonApiVideoRecordEventListener( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: VideoRecordEventListener, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: VideoRecordEventListener, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5202,15 +4907,11 @@ abstract class PigeonApiVideoRecordEventListener( Result.success(Unit) return } - throw IllegalStateException( - "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.") + throw IllegalStateException("Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.") } - fun onEvent( - pigeon_instanceArg: VideoRecordEventListener, - eventArg: androidx.camera.video.VideoRecordEvent, - callback: (Result) -> Unit - ) { + fun onEvent(pigeon_instanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5230,9 +4931,10 @@ abstract class PigeonApiVideoRecordEventListener( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -5323,36 +5025,26 @@ public class VideoRecordEventListenerProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPendingRecording( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Starts the recording, making it an active recording. */ - abstract fun start( - pigeon_instance: androidx.camera.video.PendingRecording, - listener: VideoRecordEventListener - ): androidx.camera.video.Recording + abstract fun start(pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener): androidx.camera.video.Recording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPendingRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording val listenerArg = args[1] as VideoRecordEventListener - val wrapped: List = - try { - listOf(api.start(pigeon_instanceArg, listenerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.start(pigeon_instanceArg, listenerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5364,10 +5056,8 @@ abstract class PigeonApiPendingRecording( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PendingRecording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.PendingRecording, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.PendingRecording, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5378,12 +5068,10 @@ abstract class PigeonApiPendingRecording( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -5394,9 +5082,10 @@ abstract class PigeonApiPendingRecording( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -5493,20 +5182,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = - try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5514,20 +5200,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = - BasicMessageChannel( - binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = - try { - api.pause(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pause(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5535,22 +5218,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recording.resume", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.resume", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = - try { - api.resume(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.resume(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5558,20 +5236,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = - BasicMessageChannel( - binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = - try { - api.stop(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.stop(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5583,10 +5258,8 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.Recording, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recording, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5597,8 +5270,7 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" @@ -5612,9 +5284,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -5729,26 +5402,14 @@ public class RecordingProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageCapture( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - targetRotation: Long?, - flashMode: CameraXFlashMode?, - resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector? - ): androidx.camera.core.ImageCapture +abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(targetRotation: Long?, flashMode: CameraXFlashMode?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageCapture /** Set the flash mode. */ - abstract fun setFlashMode( - pigeon_instance: androidx.camera.core.ImageCapture, - flashMode: CameraXFlashMode - ) + abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode) /** Captures a new still image for in memory access. */ - abstract fun takePicture( - pigeon_instance: androidx.camera.core.ImageCapture, - callback: (Result) -> Unit - ) + abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) /** Sets the desired rotation of the output image. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) @@ -5758,29 +5419,20 @@ abstract class PigeonApiImageCapture( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val targetRotationArg = args[1] as Long? val flashModeArg = args[2] as CameraXFlashMode? - val resolutionSelectorArg = - args[3] as androidx.camera.core.resolutionselector.ResolutionSelector? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor( - targetRotationArg, flashModeArg, resolutionSelectorArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionSelectorArg = args[3] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,flashModeArg,resolutionSelectorArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5788,23 +5440,18 @@ abstract class PigeonApiImageCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val flashModeArg = args[1] as CameraXFlashMode - val wrapped: List = - try { - api.setFlashMode(pigeon_instanceArg, flashModeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setFlashMode(pigeon_instanceArg, flashModeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5812,11 +5459,7 @@ abstract class PigeonApiImageCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5836,23 +5479,18 @@ abstract class PigeonApiImageCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val rotationArg = args[1] as Long - val wrapped: List = - try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5864,10 +5502,8 @@ abstract class PigeonApiImageCapture( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageCapture, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -5878,8 +5514,7 @@ abstract class PigeonApiImageCapture( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance" @@ -5893,15 +5528,17 @@ abstract class PigeonApiImageCapture( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { return pigeonRegistrar.getPigeonApiUseCase() } + } /* @@ -6015,48 +5652,35 @@ public class ImageCaptureProxyApiTest { } */ /** - * The resolution strategy defines the resolution selection sequence to select the best size. + * The resolution strategy defines the resolution selection sequence to select + * the best size. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionStrategy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - boundSize: android.util.Size, - fallbackRule: ResolutionStrategyFallbackRule - ): androidx.camera.core.resolutionselector.ResolutionStrategy +abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(boundSize: android.util.Size, fallbackRule: ResolutionStrategyFallbackRule): androidx.camera.core.resolutionselector.ResolutionStrategy - abstract fun highestAvailableStrategy(): - androidx.camera.core.resolutionselector.ResolutionStrategy + abstract fun highestAvailableStrategy(): androidx.camera.core.resolutionselector.ResolutionStrategy companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val boundSizeArg = args[1] as android.util.Size val fallbackRuleArg = args[2] as ResolutionStrategyFallbackRule - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(boundSizeArg, fallbackRuleArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(boundSizeArg,fallbackRuleArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6064,23 +5688,17 @@ abstract class PigeonApiResolutionStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.highestAvailableStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.highestAvailableStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6092,10 +5710,8 @@ abstract class PigeonApiResolutionStrategy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6106,12 +5722,10 @@ abstract class PigeonApiResolutionStrategy( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -6122,9 +5736,10 @@ abstract class PigeonApiResolutionStrategy( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -6195,51 +5810,34 @@ public class ResolutionStrategyProxyApiTest { } */ /** - * A set of requirements and priorities used to select a resolution for the `UseCase`. + * A set of requirements and priorities used to select a resolution for the + * `UseCase`. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionSelector( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?, - resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, - resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter? - ): androidx.camera.core.resolutionselector.ResolutionSelector +abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?, resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?): androidx.camera.core.resolutionselector.ResolutionSelector companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val aspectRatioStrategyArg = - args[1] as androidx.camera.core.resolutionselector.AspectRatioStrategy? - val resolutionStrategyArg = - args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? - val resolutionFilterArg = - args[3] as androidx.camera.core.resolutionselector.ResolutionFilter? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor( - aspectRatioStrategyArg, resolutionStrategyArg, resolutionFilterArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val aspectRatioStrategyArg = args[1] as androidx.camera.core.resolutionselector.AspectRatioStrategy? + val resolutionStrategyArg = args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val resolutionFilterArg = args[3] as androidx.camera.core.resolutionselector.ResolutionFilter? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioStrategyArg,resolutionStrategyArg,resolutionFilterArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6251,10 +5849,8 @@ abstract class PigeonApiResolutionSelector( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6265,12 +5861,10 @@ abstract class PigeonApiResolutionSelector( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -6281,9 +5875,10 @@ abstract class PigeonApiResolutionSelector( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -6352,60 +5947,49 @@ public class ResolutionSelectorProxyApiTest { } */ /** - * The aspect ratio strategy defines the sequence of aspect ratios that are used to select the best - * size for a particular image. + * The aspect ratio strategy defines the sequence of aspect ratios that are + * used to select the best size for a particular image. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiAspectRatioStrategy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Creates a new AspectRatioStrategy instance, configured with the specified preferred aspect - * ratio and fallback rule. + * Creates a new AspectRatioStrategy instance, configured with the specified + * preferred aspect ratio and fallback rule. */ - abstract fun pigeon_defaultConstructor( - preferredAspectRatio: AspectRatio, - fallbackRule: AspectRatioStrategyFallbackRule - ): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun pigeon_defaultConstructor(preferredAspectRatio: AspectRatio, fallbackRule: AspectRatioStrategyFallbackRule): androidx.camera.core.resolutionselector.AspectRatioStrategy - /** The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 in priority. */ - abstract fun ratio_16_9FallbackAutoStrategy(): - androidx.camera.core.resolutionselector.AspectRatioStrategy + /** + * The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 + * in priority. + */ + abstract fun ratio_16_9FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The pre-defined default aspect ratio strategy that selects sizes with RATIO_4_3 in priority. + * The pre-defined default aspect ratio strategy that selects sizes with + * RATIO_4_3 in priority. */ - abstract fun ratio_4_3FallbackAutoStrategy(): - androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun ratio_4_3FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAspectRatioStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredAspectRatioArg = args[1] as AspectRatio val fallbackRuleArg = args[2] as AspectRatioStrategyFallbackRule - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(preferredAspectRatioArg, fallbackRuleArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(preferredAspectRatioArg,fallbackRuleArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6413,23 +5997,17 @@ abstract class PigeonApiAspectRatioStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6437,23 +6015,17 @@ abstract class PigeonApiAspectRatioStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6465,10 +6037,8 @@ abstract class PigeonApiAspectRatioStrategy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6479,12 +6049,10 @@ abstract class PigeonApiAspectRatioStrategy( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -6495,9 +6063,10 @@ abstract class PigeonApiAspectRatioStrategy( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -6577,23 +6146,17 @@ public class AspectRatioStrategyProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/CameraState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraState( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The camera's state. */ abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType /** Potentially returns an error the camera encountered. */ - abstract fun error( - pigeon_instance: androidx.camera.core.CameraState - ): androidx.camera.core.CameraState.StateError? + abstract fun error(pigeon_instance: androidx.camera.core.CameraState): androidx.camera.core.CameraState.StateError? @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraState, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6604,8 +6167,7 @@ abstract class PigeonApiCameraState( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val errorArg = error(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -6621,9 +6183,10 @@ abstract class PigeonApiCameraState( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -6721,26 +6284,20 @@ public class CameraStateProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/ExposureState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiExposureState( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** * Get the maximum and minimum exposure compensation values for * `CameraControl.setExposureCompensationIndex`. */ - abstract fun exposureCompensationRange( - pigeon_instance: androidx.camera.core.ExposureState - ): android.util.Range<*> + abstract fun exposureCompensationRange(pigeon_instance: androidx.camera.core.ExposureState): android.util.Range<*> /** Get the smallest step by which the exposure compensation can be changed. */ abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ExposureState, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ExposureState, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6751,28 +6308,26 @@ abstract class PigeonApiExposureState( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send( - listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + channel.send(listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } } + } /* @@ -6872,10 +6427,8 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ZoomState, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -6886,8 +6439,7 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -6903,9 +6455,10 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -6989,60 +6542,42 @@ public class ZoomStateProxyApiTest { } */ /** - * A use case providing CPU accessible images for an app to perform image analysis on. + * A use case providing CPU accessible images for an app to perform image + * analysis on. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageAnalysis( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - targetRotation: Long?, - resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector? - ): androidx.camera.core.ImageAnalysis +abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(targetRotation: Long?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageAnalysis /** Sets an analyzer to receive and analyze images. */ - abstract fun setAnalyzer( - pigeon_instance: androidx.camera.core.ImageAnalysis, - analyzer: androidx.camera.core.ImageAnalysis.Analyzer - ) + abstract fun setAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer) /** Removes a previously set analyzer. */ abstract fun clearAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis) /** Sets the target rotation. */ - abstract fun setTargetRotation( - pigeon_instance: androidx.camera.core.ImageAnalysis, - rotation: Long - ) + abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageAnalysis, rotation: Long) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageAnalysis?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val targetRotationArg = args[1] as Long? - val resolutionSelectorArg = - args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(targetRotationArg, resolutionSelectorArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionSelectorArg = args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,resolutionSelectorArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7050,23 +6585,18 @@ abstract class PigeonApiImageAnalysis( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val analyzerArg = args[1] as androidx.camera.core.ImageAnalysis.Analyzer - val wrapped: List = - try { - api.setAnalyzer(pigeon_instanceArg, analyzerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setAnalyzer(pigeon_instanceArg, analyzerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7074,22 +6604,17 @@ abstract class PigeonApiImageAnalysis( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis - val wrapped: List = - try { - api.clearAnalyzer(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.clearAnalyzer(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7097,23 +6622,18 @@ abstract class PigeonApiImageAnalysis( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val rotationArg = args[1] as Long - val wrapped: List = - try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7125,10 +6645,8 @@ abstract class PigeonApiImageAnalysis( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageAnalysis, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7139,8 +6657,7 @@ abstract class PigeonApiImageAnalysis( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" @@ -7154,15 +6671,17 @@ abstract class PigeonApiImageAnalysis( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { return pigeonRegistrar.getPigeonApiUseCase() } + } /* @@ -7289,23 +6808,17 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAnalyzer?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7317,10 +6830,8 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Analyzer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7331,16 +6842,12 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP Result.success(Unit) return } - throw IllegalStateException( - "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.") + throw IllegalStateException("Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.") } /** Analyzes an image to produce a result. */ - fun analyze( - pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, - imageArg: androidx.camera.core.ImageProxy, - callback: (Result) -> Unit - ) { + fun analyze(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, imageArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7360,9 +6867,10 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -7455,20 +6963,14 @@ public class AnalyzerProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraStateStateError( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The code of this error. */ - abstract fun code( - pigeon_instance: androidx.camera.core.CameraState.StateError - ): CameraStateErrorCode + abstract fun code(pigeon_instance: androidx.camera.core.CameraState.StateError): CameraStateErrorCode @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraState.StateError, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState.StateError, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7479,13 +6981,11 @@ abstract class PigeonApiCameraStateStateError( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val codeArg = code(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, codeArg)) { if (it is List<*>) { @@ -7496,9 +6996,10 @@ abstract class PigeonApiCameraStateStateError( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -7574,59 +7075,48 @@ public class CameraStateStateErrorProxyApiTest { } */ /** - * LiveData is a data holder class that can be observed within a given lifecycle. + * LiveData is a data holder class that can be observed within a given + * lifecycle. * - * This is a wrapper around the native class to better support the generic type. Java has type - * erasure; + * This is a wrapper around the native class to better support the generic + * type. Java has type erasure; * * See https://developer.android.com/reference/androidx/lifecycle/LiveData. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The generic type used by this instance. */ - abstract fun type( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - ): LiveDataSupportedType + abstract fun type(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): LiveDataSupportedType - /** Adds the given observer to the observers list within the lifespan of the given owner. */ - abstract fun observe( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, - observer: androidx.lifecycle.Observer<*> - ) + /** + * Adds the given observer to the observers list within the lifespan of the + * given owner. + */ + abstract fun observe(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, observer: androidx.lifecycle.Observer<*>) /** Removes all observers that are tied to the given `LifecycleOwner`. */ - abstract fun removeObservers( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - ) + abstract fun removeObservers(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) /** Returns the current value. */ - abstract fun getValue( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - ): Any? + abstract fun getValue(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiLiveData?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val observerArg = args[1] as androidx.lifecycle.Observer<*> - val wrapped: List = - try { - api.observe(pigeon_instanceArg, observerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.observe(pigeon_instanceArg, observerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7634,23 +7124,17 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = - try { - api.removeObservers(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = try { + api.removeObservers(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7658,22 +7142,16 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = - try { - listOf(api.getValue(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = try { + listOf(api.getValue(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7685,10 +7163,8 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7699,8 +7175,7 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -7715,9 +7190,10 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -7843,9 +7319,7 @@ public class LiveDataProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageProxy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The image format. */ abstract fun format(pigeon_instance: androidx.camera.core.ImageProxy): Long @@ -7856,9 +7330,7 @@ abstract class PigeonApiImageProxy( abstract fun height(pigeon_instance: androidx.camera.core.ImageProxy): Long /** Returns the array of planes. */ - abstract fun getPlanes( - pigeon_instance: androidx.camera.core.ImageProxy - ): List + abstract fun getPlanes(pigeon_instance: androidx.camera.core.ImageProxy): List /** Closes the underlying `android.media.Image`. */ abstract fun close(pigeon_instance: androidx.camera.core.ImageProxy) @@ -7868,21 +7340,16 @@ abstract class PigeonApiImageProxy( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageProxy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = - try { - listOf(api.getPlanes(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getPlanes(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7890,22 +7357,17 @@ abstract class PigeonApiImageProxy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = - try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7917,10 +7379,8 @@ abstract class PigeonApiImageProxy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageProxy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7931,8 +7391,7 @@ abstract class PigeonApiImageProxy( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val formatArg = format(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) @@ -7949,9 +7408,10 @@ abstract class PigeonApiImageProxy( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -8086,14 +7546,13 @@ public class ImageProxyProxyApiTest { } */ /** - * A plane proxy which has an analogous interface as `android.media.Image.Plane`. + * A plane proxy which has an analogous interface as + * `android.media.Image.Plane`. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPlaneProxy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The pixels buffer. */ abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray @@ -8105,10 +7564,8 @@ abstract class PigeonApiPlaneProxy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -8119,8 +7576,7 @@ abstract class PigeonApiPlaneProxy( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val bufferArg = buffer(pigeon_instanceArg) val pixelStrideArg = pixelStride(pigeon_instanceArg) val rowStrideArg = rowStride(pigeon_instanceArg) @@ -8137,9 +7593,10 @@ abstract class PigeonApiPlaneProxy( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -8240,57 +7697,40 @@ public class PlaneProxyProxyApiTest { } */ /** - * Defines a desired quality setting that can be used to configure components with quality setting - * requirements such as creating a Recorder. + * Defines a desired quality setting that can be used to configure components + * with quality setting requirements such as creating a Recorder. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiQualitySelector( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Gets an instance of QualitySelector with a desired quality. */ - abstract fun from( - quality: VideoQuality, - fallbackStrategy: androidx.camera.video.FallbackStrategy? - ): androidx.camera.video.QualitySelector + abstract fun from(quality: VideoQuality, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector /** Gets an instance of QualitySelector with ordered desired qualities. */ - abstract fun fromOrderedList( - qualities: List, - fallbackStrategy: androidx.camera.video.FallbackStrategy? - ): androidx.camera.video.QualitySelector + abstract fun fromOrderedList(qualities: List, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector /** Gets the corresponding resolution from the input quality. */ - abstract fun getResolution( - cameraInfo: androidx.camera.core.CameraInfo, - quality: VideoQuality - ): android.util.Size? + abstract fun getResolution(cameraInfo: androidx.camera.core.CameraInfo, quality: VideoQuality): android.util.Size? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiQualitySelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.from(qualityArg, fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(qualityArg,fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8298,25 +7738,19 @@ abstract class PigeonApiQualitySelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualitiesArg = args[1] as List val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.fromOrderedList(qualitiesArg, fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.fromOrderedList(qualitiesArg,fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8324,22 +7758,17 @@ abstract class PigeonApiQualitySelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val cameraInfoArg = args[0] as androidx.camera.core.CameraInfo val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - listOf(api.getResolution(cameraInfoArg, qualityArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getResolution(cameraInfoArg, qualityArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8351,10 +7780,8 @@ abstract class PigeonApiQualitySelector( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of QualitySelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.QualitySelector, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.QualitySelector, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -8365,8 +7792,7 @@ abstract class PigeonApiQualitySelector( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" @@ -8380,9 +7806,10 @@ abstract class PigeonApiQualitySelector( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -8470,40 +7897,35 @@ public class QualitySelectorProxyApiTest { } */ /** - * A class represents the strategy that will be adopted when the device does not support all the - * desired Quality in QualitySelector in order to select the quality as possible. + * A class represents the strategy that will be adopted when the device does + * not support all the desired Quality in QualitySelector in order to select + * the quality as possible. * * See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFallbackStrategy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Returns a fallback strategy that will choose the quality that is closest to and higher than the - * input quality. + * Returns a fallback strategy that will choose the quality that is closest + * to and higher than the input quality. */ - abstract fun higherQualityOrLowerThan( - quality: VideoQuality - ): androidx.camera.video.FallbackStrategy + abstract fun higherQualityOrLowerThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest to and higher than the - * input quality. + * Returns a fallback strategy that will choose the quality that is closest + * to and higher than the input quality. */ abstract fun higherQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest to and lower than the - * input quality. + * Returns a fallback strategy that will choose the quality that is closest + * to and lower than the input quality. */ - abstract fun lowerQualityOrHigherThan( - quality: VideoQuality - ): androidx.camera.video.FallbackStrategy + abstract fun lowerQualityOrHigherThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest to and lower than the - * input quality. + * Returns a fallback strategy that will choose the quality that is closest + * to and lower than the input quality. */ abstract fun lowerQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy @@ -8512,24 +7934,18 @@ abstract class PigeonApiFallbackStrategy( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFallbackStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8537,24 +7953,18 @@ abstract class PigeonApiFallbackStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.higherQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8562,24 +7972,18 @@ abstract class PigeonApiFallbackStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8587,24 +7991,18 @@ abstract class PigeonApiFallbackStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.lowerQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8616,10 +8014,8 @@ abstract class PigeonApiFallbackStrategy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.FallbackStrategy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.FallbackStrategy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -8630,12 +8026,10 @@ abstract class PigeonApiFallbackStrategy( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -8646,9 +8040,10 @@ abstract class PigeonApiFallbackStrategy( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -8750,59 +8145,38 @@ public class FallbackStrategyProxyApiTest { } */ /** - * The CameraControl provides various asynchronous operations like zoom, focus and metering which - * affects output of all UseCases currently bound to that camera. + * The CameraControl provides various asynchronous operations like zoom, focus + * and metering which affects output of all UseCases currently bound to that + * camera. * * See https://developer.android.com/reference/androidx/camera/core/CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraControl( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Enable the torch or disable the torch. */ - abstract fun enableTorch( - pigeon_instance: androidx.camera.core.CameraControl, - torch: Boolean, - callback: (Result) -> Unit - ) + abstract fun enableTorch(pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit) /** Sets current zoom by ratio. */ - abstract fun setZoomRatio( - pigeon_instance: androidx.camera.core.CameraControl, - ratio: Double, - callback: (Result) -> Unit - ) - - /** Starts a focus and metering action configured by the `FocusMeteringAction`. */ - abstract fun startFocusAndMetering( - pigeon_instance: androidx.camera.core.CameraControl, - action: androidx.camera.core.FocusMeteringAction, - callback: (Result) -> Unit - ) + abstract fun setZoomRatio(pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit) + + /** + * Starts a focus and metering action configured by the + * `FocusMeteringAction`. + */ + abstract fun startFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ - abstract fun cancelFocusAndMetering( - pigeon_instance: androidx.camera.core.CameraControl, - callback: (Result) -> Unit - ) + abstract fun cancelFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, callback: (Result) -> Unit) /** Set the exposure compensation value for the camera. */ - abstract fun setExposureCompensationIndex( - pigeon_instance: androidx.camera.core.CameraControl, - index: Long, - callback: (Result) -> Unit - ) + abstract fun setExposureCompensationIndex(pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraControl?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -8822,11 +8196,7 @@ abstract class PigeonApiCameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -8846,18 +8216,13 @@ abstract class PigeonApiCameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val actionArg = args[1] as androidx.camera.core.FocusMeteringAction - api.startFocusAndMetering(pigeon_instanceArg, actionArg) { - result: Result -> + api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -8872,11 +8237,7 @@ abstract class PigeonApiCameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -8895,18 +8256,13 @@ abstract class PigeonApiCameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val indexArg = args[1] as Long - api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result - -> + api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -8925,10 +8281,8 @@ abstract class PigeonApiCameraControl( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraControl, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraControl, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -8939,8 +8293,7 @@ abstract class PigeonApiCameraControl( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" @@ -8954,9 +8307,10 @@ abstract class PigeonApiCameraControl( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -9095,71 +8449,48 @@ public class CameraControlProxyApiTest { /** * The builder used to create the `FocusMeteringAction`. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringActionBuilder( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - /** Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | FLAG_AE | FLAG_AWB. */ - abstract fun pigeon_defaultConstructor( - point: androidx.camera.core.MeteringPoint - ): androidx.camera.core.FocusMeteringAction.Builder +abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | + * FLAG_AE | FLAG_AWB. + */ + abstract fun pigeon_defaultConstructor(point: androidx.camera.core.MeteringPoint): androidx.camera.core.FocusMeteringAction.Builder /** Creates a Builder from a `MeteringPoint` and `MeteringMode`. */ - abstract fun withMode( - point: androidx.camera.core.MeteringPoint, - mode: MeteringMode - ): androidx.camera.core.FocusMeteringAction.Builder + abstract fun withMode(point: androidx.camera.core.MeteringPoint, mode: MeteringMode): androidx.camera.core.FocusMeteringAction.Builder /** Adds another MeteringPoint with default metering mode. */ - abstract fun addPoint( - pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, - point: androidx.camera.core.MeteringPoint - ) + abstract fun addPoint(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint) /** Adds another MeteringPoint with specified meteringMode. */ - abstract fun addPointWithMode( - pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, - point: androidx.camera.core.MeteringPoint, - mode: MeteringMode - ) + abstract fun addPointWithMode(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, mode: MeteringMode) /** Disables the auto-cancel. */ abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) /** Builds the `FocusMeteringAction` instance. */ - abstract fun build( - pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder - ): androidx.camera.core.FocusMeteringAction + abstract fun build(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder): androidx.camera.core.FocusMeteringAction companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiFocusMeteringActionBuilder? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFocusMeteringActionBuilder?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9167,25 +8498,19 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.withMode(pointArg, modeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withMode(pointArg,modeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9193,23 +8518,18 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = - try { - api.addPoint(pigeon_instanceArg, pointArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.addPoint(pigeon_instanceArg, pointArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9217,24 +8537,19 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = - try { - api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9242,22 +8557,17 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = - try { - api.disableAutoCancel(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.disableAutoCancel(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9265,21 +8575,16 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = - try { - listOf(api.build(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.build(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9290,13 +8595,9 @@ abstract class PigeonApiFocusMeteringActionBuilder( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9307,12 +8608,10 @@ abstract class PigeonApiFocusMeteringActionBuilder( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -9323,9 +8622,10 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -9475,35 +8775,23 @@ public class FocusMeteringActionBuilderProxyApiTest { * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringAction( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** All MeteringPoints used for AE regions. */ - abstract fun meteringPointsAe( - pigeon_instance: androidx.camera.core.FocusMeteringAction - ): List + abstract fun meteringPointsAe(pigeon_instance: androidx.camera.core.FocusMeteringAction): List /** All MeteringPoints used for AF regions. */ - abstract fun meteringPointsAf( - pigeon_instance: androidx.camera.core.FocusMeteringAction - ): List + abstract fun meteringPointsAf(pigeon_instance: androidx.camera.core.FocusMeteringAction): List /** All MeteringPoints used for AWB regions. */ - abstract fun meteringPointsAwb( - pigeon_instance: androidx.camera.core.FocusMeteringAction - ): List + abstract fun meteringPointsAwb(pigeon_instance: androidx.camera.core.FocusMeteringAction): List /** If auto-cancel is enabled or not. */ - abstract fun isAutoCancelEnabled( - pigeon_instance: androidx.camera.core.FocusMeteringAction - ): Boolean + abstract fun isAutoCancelEnabled(pigeon_instance: androidx.camera.core.FocusMeteringAction): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9514,36 +8802,28 @@ abstract class PigeonApiFocusMeteringAction( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send( - listOf( - pigeon_identifierArg, - meteringPointsAeArg, - meteringPointsAfArg, - meteringPointsAwbArg, - isAutoCancelEnabledArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + channel.send(listOf(pigeon_identifierArg, meteringPointsAeArg, meteringPointsAfArg, meteringPointsAwbArg, isAutoCancelEnabledArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } } + } /* @@ -9668,18 +8948,14 @@ public class FocusMeteringActionProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringResult( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** If auto focus is successful. */ abstract fun isFocusSuccessful(pigeon_instance: androidx.camera.core.FocusMeteringResult): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9690,13 +8966,11 @@ abstract class PigeonApiFocusMeteringResult( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, isFocusSuccessfulArg)) { if (it is List<*>) { @@ -9707,9 +8981,10 @@ abstract class PigeonApiFocusMeteringResult( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -9776,17 +9051,16 @@ public class FocusMeteringResultProxyApiTest { } */ /** - * An immutable package of settings and outputs needed to capture a single image from the camera - * device. + * An immutable package of settings and outputs needed to capture a single + * image from the camera device. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequest( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Whether auto-exposure (AE) is currently locked to its latest calculated values. + * Whether auto-exposure (AE) is currently locked to its latest calculated + * values. * * Value is boolean. * @@ -9799,23 +9073,17 @@ abstract class PigeonApiCaptureRequest( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequest?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.controlAELock(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.controlAELock(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9827,10 +9095,8 @@ abstract class PigeonApiCaptureRequest( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequest and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CaptureRequest, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9841,8 +9107,7 @@ abstract class PigeonApiCaptureRequest( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" @@ -9856,9 +9121,10 @@ abstract class PigeonApiCaptureRequest( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -9916,21 +9182,17 @@ public class CaptureRequestProxyApiTest { } */ /** - * A Key is used to do capture request field lookups with CaptureRequest.get or to set fields with - * `CaptureRequest.Builder.set`. + * A Key is used to do capture request field lookups with CaptureRequest.get or + * to set fields with `CaptureRequest.Builder.set`. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCaptureRequestKey( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -9941,12 +9203,10 @@ open class PigeonApiCaptureRequestKey( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -9957,9 +9217,10 @@ open class PigeonApiCaptureRequestKey( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -10011,43 +9272,29 @@ public class CaptureRequestKeyProxyApiTest { /** * A bundle of Camera2 capture request options. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. + * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequestOptions( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - options: Map, Any?> - ): androidx.camera.camera2.interop.CaptureRequestOptions +abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(options: Map, Any?>): androidx.camera.camera2.interop.CaptureRequestOptions companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiCaptureRequestOptions? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequestOptions?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val optionsArg = args[1] as Map, Any?> - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10059,10 +9306,8 @@ abstract class PigeonApiCaptureRequestOptions( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -10073,12 +9318,10 @@ abstract class PigeonApiCaptureRequestOptions( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -10089,9 +9332,10 @@ abstract class PigeonApiCaptureRequestOptions( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -10156,53 +9400,39 @@ public class CaptureRequestOptionsProxyApiTest { } */ /** - * An class that provides ability to interoperate with the 1android.hardware.camera21 APIs. + * An class that provides ability to interoperate with the + * 1android.hardware.camera21 APIs. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. + * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraControl( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Gets the `Camera2CameraControl` from a `CameraControl`. */ - abstract fun from( - cameraControl: androidx.camera.core.CameraControl - ): androidx.camera.camera2.interop.Camera2CameraControl + abstract fun from(cameraControl: androidx.camera.core.CameraControl): androidx.camera.camera2.interop.Camera2CameraControl - /** Adds a `CaptureRequestOptions` updates the session with the options it contains. */ - abstract fun addCaptureRequestOptions( - pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, - bundle: androidx.camera.camera2.interop.CaptureRequestOptions, - callback: (Result) -> Unit - ) + /** + * Adds a `CaptureRequestOptions` updates the session with the options it + * contains. + */ + abstract fun addCaptureRequestOptions(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, bundle: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiCamera2CameraControl? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraControl?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraControlArg = args[1] as androidx.camera.core.CameraControl - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.from(cameraControlArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraControlArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10210,11 +9440,7 @@ abstract class PigeonApiCamera2CameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -10238,10 +9464,8 @@ abstract class PigeonApiCamera2CameraControl( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -10252,12 +9476,10 @@ abstract class PigeonApiCamera2CameraControl( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -10268,9 +9490,10 @@ abstract class PigeonApiCamera2CameraControl( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -10353,43 +9576,32 @@ public class Camera2CameraControlProxyApiTest { } */ /** - * Applications can filter out unsuitable sizes and sort the resolution list in the preferred order - * by implementing the resolution filter interface. + * Applications can filter out unsuitable sizes and sort the resolution list in + * the preferred order by implementing the resolution filter interface. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionFilter( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun createWithOnePreferredSize( - preferredSize: android.util.Size - ): androidx.camera.core.resolutionselector.ResolutionFilter +abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun createWithOnePreferredSize(preferredSize: android.util.Size): androidx.camera.core.resolutionselector.ResolutionFilter companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionFilter?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredSizeArg = args[1] as android.util.Size - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10401,10 +9613,8 @@ abstract class PigeonApiResolutionFilter( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -10415,12 +9625,10 @@ abstract class PigeonApiResolutionFilter( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -10431,9 +9639,10 @@ abstract class PigeonApiResolutionFilter( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -10498,23 +9707,17 @@ public class ResolutionFilterProxyApiTest { } */ /** - * A Key is used to do camera characteristics field lookups with `CameraCharacteristics.get`. + * A Key is used to do camera characteristics field lookups with + * `CameraCharacteristics.get`. * - * See - * https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. + * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCameraCharacteristicsKey( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -10525,12 +9728,10 @@ open class PigeonApiCameraCharacteristicsKey( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -10541,9 +9742,10 @@ open class PigeonApiCameraCharacteristicsKey( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -10598,23 +9800,21 @@ public class CameraCharacteristicsKeyProxyApiTest { * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraCharacteristics( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** * Generally classifies the overall set of the camera device functionality. * - * Value is `InfoSupportedHardwareLeve`. + * Value is `InfoSupportedHardwareLevel`. * * This key is available on all devices. */ abstract fun infoSupportedHardwareLevel(): android.hardware.camera2.CameraCharacteristics.Key<*> /** - * Clockwise angle through which the output image needs to be rotated to be upright on the device - * screen in its native orientation.. + * Clockwise angle through which the output image needs to be rotated to be + * upright on the device screen in its native orientation.. * - * Value is Integer. + * Value is int. * * This key is available on all devices. */ @@ -10622,29 +9822,20 @@ abstract class PigeonApiCameraCharacteristics( companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiCameraCharacteristics? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraCharacteristics?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.infoSupportedHardwareLevel(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.infoSupportedHardwareLevel(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10652,23 +9843,17 @@ abstract class PigeonApiCameraCharacteristics( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.sensorOrientation(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.sensorOrientation(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10680,10 +9865,8 @@ abstract class PigeonApiCameraCharacteristics( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -10694,12 +9877,10 @@ abstract class PigeonApiCameraCharacteristics( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -10710,9 +9891,10 @@ abstract class PigeonApiCameraCharacteristics( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -10778,52 +9960,36 @@ public class CameraCharacteristicsProxyApiTest { /** * An interface for retrieving Camera2-related camera information. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. + * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraInfo( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Gets the `Camera2CameraInfo` from a `CameraInfo`. */ - abstract fun from( - cameraInfo: androidx.camera.core.CameraInfo - ): androidx.camera.camera2.interop.Camera2CameraInfo + abstract fun from(cameraInfo: androidx.camera.core.CameraInfo): androidx.camera.camera2.interop.Camera2CameraInfo /** Gets the string camera ID. */ - abstract fun getCameraId( - pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo - ): String + abstract fun getCameraId(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo): String /** Gets a camera characteristic value. */ - abstract fun getCameraCharacteristic( - pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, - key: android.hardware.camera2.CameraCharacteristics.Key<*> - ): Any? + abstract fun getCameraCharacteristic(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, key: android.hardware.camera2.CameraCharacteristics.Key<*>): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.from(cameraInfoArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraInfoArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10831,21 +9997,16 @@ abstract class PigeonApiCamera2CameraInfo( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo - val wrapped: List = - try { - listOf(api.getCameraId(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getCameraId(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10853,22 +10014,17 @@ abstract class PigeonApiCamera2CameraInfo( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val keyArg = args[1] as android.hardware.camera2.CameraCharacteristics.Key<*> - val wrapped: List = - try { - listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10880,10 +10036,8 @@ abstract class PigeonApiCamera2CameraInfo( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -10894,12 +10048,10 @@ abstract class PigeonApiCamera2CameraInfo( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -10910,9 +10062,10 @@ abstract class PigeonApiCamera2CameraInfo( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -11019,49 +10172,30 @@ public class Camera2CameraInfoProxyApiTest { * See https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPointFactory( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Creates a MeteringPoint by x, y. */ - abstract fun createPoint( - pigeon_instance: androidx.camera.core.MeteringPointFactory, - x: Double, - y: Double - ): androidx.camera.core.MeteringPoint + abstract fun createPoint(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double): androidx.camera.core.MeteringPoint /** Creates a MeteringPoint by x, y, size. */ - abstract fun createPointWithSize( - pigeon_instance: androidx.camera.core.MeteringPointFactory, - x: Double, - y: Double, - size: Double - ): androidx.camera.core.MeteringPoint + abstract fun createPointWithSize(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double, size: Double): androidx.camera.core.MeteringPoint companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiMeteringPointFactory? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPointFactory?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double - val wrapped: List = - try { - listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -11069,11 +10203,7 @@ abstract class PigeonApiMeteringPointFactory( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -11081,12 +10211,11 @@ abstract class PigeonApiMeteringPointFactory( val xArg = args[1] as Double val yArg = args[2] as Double val sizeArg = args[3] as Double - val wrapped: List = - try { - listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -11098,10 +10227,8 @@ abstract class PigeonApiMeteringPointFactory( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -11112,12 +10239,10 @@ abstract class PigeonApiMeteringPointFactory( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -11128,9 +10253,10 @@ abstract class PigeonApiMeteringPointFactory( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /* @@ -11221,39 +10347,27 @@ public class MeteringPointFactoryProxyApiTest { } */ /** - * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint which can then be used - * to construct a FocusMeteringAction to start a focus and metering action. + * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint + * which can then be used to construct a FocusMeteringAction to start a focus + * and metering action. * - * See - * https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. + * See https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDisplayOrientedMeteringPointFactory( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) into a MeteringPoint - * based on the current display's rotation and CameraInfo. + * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) + * into a MeteringPoint based on the current display's rotation and + * CameraInfo. */ - abstract fun pigeon_defaultConstructor( - cameraInfo: androidx.camera.core.CameraInfo, - width: Double, - height: Double - ): androidx.camera.core.DisplayOrientedMeteringPointFactory + abstract fun pigeon_defaultConstructor(cameraInfo: androidx.camera.core.CameraInfo, width: Double, height: Double): androidx.camera.core.DisplayOrientedMeteringPointFactory companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiDisplayOrientedMeteringPointFactory? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDisplayOrientedMeteringPointFactory?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -11261,15 +10375,12 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory( val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo val widthArg = args[2] as Double val heightArg = args[3] as Double - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(cameraInfoArg, widthArg, heightArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(cameraInfoArg,widthArg,heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -11280,14 +10391,9 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to - * [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -11298,12 +10404,10 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory( Result.success(Unit) return } - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { @@ -11314,15 +10418,17 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } @Suppress("FunctionName") /** An implementation of [PigeonApiMeteringPointFactory] used to access callback methods */ - fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory { + fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory + { return pigeonRegistrar.getPigeonApiMeteringPointFactory() } + } /* diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index 58c1bd5ecee..5ddaf258759 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -110,6 +110,8 @@ class LiveData extends camerax.LiveData { class Observer extends camerax.Observer { Observer({ required void Function(Observer instance, T value) onChanged, + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, }) : super( onChanged: ( camerax.Observer instance, diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index aa498a1a479..c13afc87872 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v22.7.0), do not edit directly. +// Autogenerated from Pigeon (v22.7.1), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers @@ -508,9 +508,9 @@ class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { /// /// By default each function calls the default constructor of the class it /// intends to return. -class InteractiveMediaAdsProxy { - /// Constructs an [InteractiveMediaAdsProxy]. - const InteractiveMediaAdsProxy({ +class MyLibraryProxy { + /// Constructs an [MyLibraryProxy]. + const MyLibraryProxy({ this.newCameraSize = CameraSize.new, this.newCameraIntegerRange = CameraIntegerRange.new, this.newObserver = Observer.new, @@ -566,74 +566,104 @@ class InteractiveMediaAdsProxy { final CameraSize Function({ required int width, required int height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newCameraSize; /// Constructs [CameraIntegerRange]. final CameraIntegerRange Function({ required int lower, required int upper, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newCameraIntegerRange; /// Constructs [Observer]. - final Observer Function( - {required void Function( - Observer, - Object, - ) onChanged}) newObserver; + final Observer Function({ + required void Function( + Observer, + Object, + ) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newObserver; /// Constructs [CameraSelector]. - final CameraSelector Function({LensFacing? requireLensFacing}) - newCameraSelector; + final CameraSelector Function({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newCameraSelector; /// Constructs [SystemServicesManager]. - final SystemServicesManager Function( - {required void Function( - SystemServicesManager, - String, - ) onCameraError}) newSystemServicesManager; + final SystemServicesManager Function({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newSystemServicesManager; /// Constructs [DeviceOrientationManager]. - final DeviceOrientationManager Function( - {required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged}) newDeviceOrientationManager; + final DeviceOrientationManager Function({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newDeviceOrientationManager; /// Constructs [Preview]. final Preview Function({ int? targetRotation, ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newPreview; /// Constructs [VideoCapture]. - final VideoCapture Function({required VideoOutput videoOutput}) - withOutputVideoCapture; + final VideoCapture Function({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) withOutputVideoCapture; /// Constructs [Recorder]. final Recorder Function({ int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newRecorder; /// Constructs [VideoRecordEventListener]. - final VideoRecordEventListener Function( - {required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent}) newVideoRecordEventListener; + final VideoRecordEventListener Function({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newVideoRecordEventListener; /// Constructs [ImageCapture]. final ImageCapture Function({ int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newImageCapture; /// Constructs [ResolutionStrategy]. final ResolutionStrategy Function({ required CameraSize boundSize, required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newResolutionStrategy; /// Constructs [ResolutionSelector]. @@ -641,98 +671,145 @@ class InteractiveMediaAdsProxy { AspectRatioStrategy? aspectRatioStrategy, ResolutionStrategy? resolutionStrategy, ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newResolutionSelector; /// Constructs [AspectRatioStrategy]. final AspectRatioStrategy Function({ required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newAspectRatioStrategy; /// Constructs [ImageAnalysis]. final ImageAnalysis Function({ int? targetRotation, ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newImageAnalysis; /// Constructs [Analyzer]. - final Analyzer Function( - {required void Function( - Analyzer, - ImageProxy, - ) analyze}) newAnalyzer; + final Analyzer Function({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newAnalyzer; /// Constructs [QualitySelector]. final QualitySelector Function({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) fromQualitySelector; /// Constructs [QualitySelector]. final QualitySelector Function({ required List qualities, FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) fromOrderedListQualitySelector; /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({required VideoQuality quality}) - higherQualityOrLowerThanFallbackStrategy; + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) higherQualityOrLowerThanFallbackStrategy; /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({required VideoQuality quality}) - higherQualityThanFallbackStrategy; + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) higherQualityThanFallbackStrategy; /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({required VideoQuality quality}) - lowerQualityOrHigherThanFallbackStrategy; + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) lowerQualityOrHigherThanFallbackStrategy; /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({required VideoQuality quality}) - lowerQualityThanFallbackStrategy; + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) lowerQualityThanFallbackStrategy; /// Constructs [FocusMeteringActionBuilder]. - final FocusMeteringActionBuilder Function({required MeteringPoint point}) - newFocusMeteringActionBuilder; + final FocusMeteringActionBuilder Function({ + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newFocusMeteringActionBuilder; /// Constructs [FocusMeteringActionBuilder]. final FocusMeteringActionBuilder Function({ required MeteringPoint point, required MeteringMode mode, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) withModeFocusMeteringActionBuilder; /// Constructs [CaptureRequestOptions]. - final CaptureRequestOptions Function( - {required Map options}) - newCaptureRequestOptions; + final CaptureRequestOptions Function({ + required Map options, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newCaptureRequestOptions; /// Constructs [Camera2CameraControl]. - final Camera2CameraControl Function({required CameraControl cameraControl}) - fromCamera2CameraControl; + final Camera2CameraControl Function({ + required CameraControl cameraControl, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) fromCamera2CameraControl; /// Constructs [ResolutionFilter]. - final ResolutionFilter Function({required CameraSize preferredSize}) - createWithOnePreferredSizeResolutionFilter; + final ResolutionFilter Function({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) createWithOnePreferredSizeResolutionFilter; /// Constructs [Camera2CameraInfo]. - final Camera2CameraInfo Function({required CameraInfo cameraInfo}) - fromCamera2CameraInfo; + final Camera2CameraInfo Function({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) fromCamera2CameraInfo; /// Constructs [DisplayOrientedMeteringPointFactory]. final DisplayOrientedMeteringPointFactory Function({ required CameraInfo cameraInfo, required double width, required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newDisplayOrientedMeteringPointFactory; /// Calls to [ProcessCameraProvider.getInstance]. - final Future Function() - getInstanceProcessCameraProvider; + final Future Function({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) getInstanceProcessCameraProvider; /// Calls to [QualitySelector.getResolution]. final Future Function( CameraInfo, - VideoQuality, - ) getResolutionQualitySelector; + VideoQuality, { + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) getResolutionQualitySelector; /// Calls to [CameraSelector.defaultBackCamera]. final CameraSelector Function() defaultBackCameraCameraSelector; @@ -7972,7 +8049,7 @@ class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { /// Generally classifies the overall set of the camera device functionality. /// - /// Value is `InfoSupportedHardwareLeve`. + /// Value is `InfoSupportedHardwareLevel`. /// /// This key is available on all devices. static final CameraCharacteristicsKey infoSupportedHardwareLevel = @@ -7981,7 +8058,7 @@ class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { /// Clockwise angle through which the output image needs to be rotated to be /// upright on the device screen in its native orientation.. /// - /// Value is Integer. + /// Value is int. /// /// This key is available on all devices. static final CameraCharacteristicsKey sensorOrientation = diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index 18384c24abd..20877ded0c6 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -1,3 +1,7 @@ +import 'package:flutter/services.dart'; + +// ignore_for_file: non_constant_identifier_names + import 'camerax_library.dart'; /// Handles constructing objects and calling static methods for the Android @@ -9,10 +13,9 @@ import 'camerax_library.dart'; /// /// By default each function calls the default constructor of the class it /// intends to return. -class CameraXProxy { - /// Constructs an [CameraXProxy]. - const CameraXProxy({ - this.setUpGenericsProxy = setUpGenerics, +class MyLibraryProxy { + /// Constructs an [MyLibraryProxy]. + const MyLibraryProxy({ this.newCameraSize = CameraSize.new, this.newCameraIntegerRange = CameraIntegerRange.new, this.newObserver = Observer.new, @@ -64,78 +67,105 @@ class CameraXProxy { _sensorOrientationCameraCharacteristics, }); - final void Function() setUpGenericsProxy; - /// Constructs [CameraSize]. final CameraSize Function({ required int width, required int height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newCameraSize; /// Constructs [CameraIntegerRange]. final CameraIntegerRange Function({ required int lower, required int upper, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newCameraIntegerRange; /// Constructs [Observer]. final Observer Function({ required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newObserver; /// Constructs [CameraSelector]. - final CameraSelector Function({LensFacing? requireLensFacing}) - newCameraSelector; + final CameraSelector Function({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newCameraSelector; /// Constructs [SystemServicesManager]. - final SystemServicesManager Function( - {required void Function( - SystemServicesManager, - String, - ) onCameraError}) newSystemServicesManager; + final SystemServicesManager Function({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newSystemServicesManager; /// Constructs [DeviceOrientationManager]. - final DeviceOrientationManager Function( - {required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged}) newDeviceOrientationManager; + final DeviceOrientationManager Function({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newDeviceOrientationManager; /// Constructs [Preview]. final Preview Function({ int? targetRotation, ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newPreview; /// Constructs [VideoCapture]. - final VideoCapture Function({required VideoOutput videoOutput}) - withOutputVideoCapture; + final VideoCapture Function({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) withOutputVideoCapture; /// Constructs [Recorder]. final Recorder Function({ int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newRecorder; /// Constructs [VideoRecordEventListener]. - final VideoRecordEventListener Function( - {required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent}) newVideoRecordEventListener; + final VideoRecordEventListener Function({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newVideoRecordEventListener; /// Constructs [ImageCapture]. final ImageCapture Function({ int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newImageCapture; /// Constructs [ResolutionStrategy]. final ResolutionStrategy Function({ required CameraSize boundSize, required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newResolutionStrategy; /// Constructs [ResolutionSelector]. @@ -143,98 +173,145 @@ class CameraXProxy { AspectRatioStrategy? aspectRatioStrategy, ResolutionStrategy? resolutionStrategy, ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newResolutionSelector; /// Constructs [AspectRatioStrategy]. final AspectRatioStrategy Function({ required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newAspectRatioStrategy; /// Constructs [ImageAnalysis]. final ImageAnalysis Function({ int? targetRotation, ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newImageAnalysis; /// Constructs [Analyzer]. - final Analyzer Function( - {required void Function( - Analyzer, - ImageProxy, - ) analyze}) newAnalyzer; + final Analyzer Function({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newAnalyzer; /// Constructs [QualitySelector]. final QualitySelector Function({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) fromQualitySelector; /// Constructs [QualitySelector]. final QualitySelector Function({ required List qualities, FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) fromOrderedListQualitySelector; /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({required VideoQuality quality}) - higherQualityOrLowerThanFallbackStrategy; + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) higherQualityOrLowerThanFallbackStrategy; /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({required VideoQuality quality}) - higherQualityThanFallbackStrategy; + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) higherQualityThanFallbackStrategy; /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({required VideoQuality quality}) - lowerQualityOrHigherThanFallbackStrategy; + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) lowerQualityOrHigherThanFallbackStrategy; /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({required VideoQuality quality}) - lowerQualityThanFallbackStrategy; + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) lowerQualityThanFallbackStrategy; /// Constructs [FocusMeteringActionBuilder]. - final FocusMeteringActionBuilder Function({required MeteringPoint point}) - newFocusMeteringActionBuilder; + final FocusMeteringActionBuilder Function({ + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newFocusMeteringActionBuilder; /// Constructs [FocusMeteringActionBuilder]. final FocusMeteringActionBuilder Function({ required MeteringPoint point, required MeteringMode mode, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) withModeFocusMeteringActionBuilder; /// Constructs [CaptureRequestOptions]. - final CaptureRequestOptions Function( - {required Map options}) - newCaptureRequestOptions; + final CaptureRequestOptions Function({ + required Map options, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newCaptureRequestOptions; /// Constructs [Camera2CameraControl]. - final Camera2CameraControl Function({required CameraControl cameraControl}) - fromCamera2CameraControl; + final Camera2CameraControl Function({ + required CameraControl cameraControl, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) fromCamera2CameraControl; /// Constructs [ResolutionFilter]. - final ResolutionFilter Function({required CameraSize preferredSize}) - createWithOnePreferredSizeResolutionFilter; + final ResolutionFilter Function({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) createWithOnePreferredSizeResolutionFilter; /// Constructs [Camera2CameraInfo]. - final Camera2CameraInfo Function({required CameraInfo cameraInfo}) - fromCamera2CameraInfo; + final Camera2CameraInfo Function({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) fromCamera2CameraInfo; /// Constructs [DisplayOrientedMeteringPointFactory]. final DisplayOrientedMeteringPointFactory Function({ required CameraInfo cameraInfo, required double width, required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) newDisplayOrientedMeteringPointFactory; /// Calls to [ProcessCameraProvider.getInstance]. - final Future Function() - getInstanceProcessCameraProvider; + final Future Function({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) getInstanceProcessCameraProvider; /// Calls to [QualitySelector.getResolution]. final Future Function( CameraInfo, - VideoQuality, - ) getResolutionQualitySelector; + VideoQuality, { + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) getResolutionQualitySelector; /// Calls to [CameraSelector.defaultBackCamera]. final CameraSelector Function() defaultBackCameraCameraSelector; diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart index b03dd5879a5..e442e53842e 100644 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v22.7.0), do not edit directly. +// Autogenerated from Pigeon (v22.7.1), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, unnecessary_import, no_leading_underscores_for_local_identifiers // ignore_for_file: avoid_relative_lib_imports @@ -13,6 +13,7 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:camera_android_camerax/src/camerax_library2.g.dart'; + class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -20,37 +21,37 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); } else { @@ -61,41 +62,37 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null - ? null - : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null ? null : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null - ? null - : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; default: From 5d3944463c64127692aacf8e7ce391b56171b51d Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 2 Jan 2025 12:46:08 -0500 Subject: [PATCH 023/148] java test files and update library --- .../CameraCharacteristicsKeyProxyApi.java | 21 +++++ .../camerax/CaptureRequestKeyProxyApi.java | 21 +++++ .../plugins/camerax/UseCaseProxyApi.java | 21 +++++ .../plugins/camerax/VideoOutputProxyApi.java | 21 +++++ .../VideoRecordEventFinalizeProxyApi.java | 21 +++++ .../camerax/VideoRecordEventProxyApi.java | 21 +++++ .../VideoRecordEventStartProxyApi.java | 21 +++++ .../plugins/camerax/AnalyzerProxyApiTest.java | 40 +++++++++ .../AspectRatioStrategyProxyApiTest.java | 27 ++++++ .../Camera2CameraControlProxyApiTest.java | 40 +++++++++ .../Camera2CameraInfoProxyApiTest.java | 52 ++++++++++++ .../CameraCharacteristicsKeyProxyApiTest.java | 20 +++++ .../CameraCharacteristicsProxyApiTest.java | 21 +++++ .../camerax/CameraControlProxyApiTest.java | 78 +++++++++++++++++ .../camerax/CameraInfoProxyApiTest.java | 66 +++++++++++++++ .../CameraIntegerRangeProxyApiTest.java | 49 +++++++++++ .../plugins/camerax/CameraProxyApiTest.java | 44 ++++++++++ .../camerax/CameraSelectorProxyApiTest.java | 40 +++++++++ .../camerax/CameraSizeProxyApiTest.java | 49 +++++++++++ .../camerax/CameraStateProxyApiTest.java | 43 ++++++++++ .../CameraStateStateErrorProxyApiTest.java | 31 +++++++ .../CaptureRequestKeyProxyApiTest.java | 20 +++++ .../CaptureRequestOptionsProxyApiTest.java | 28 +++++++ .../camerax/CaptureRequestProxyApiTest.java | 21 +++++ .../DeviceOrientationManagerProxyApiTest.java | 83 +++++++++++++++++++ ...entedMeteringPointFactoryProxyApiTest.java | 28 +++++++ .../camerax/ExposureStateProxyApiTest.java | 43 ++++++++++ .../camerax/FallbackStrategyProxyApiTest.java | 48 +++++++++++ ...ocusMeteringActionBuilderProxyApiTest.java | 80 ++++++++++++++++++ .../FocusMeteringActionProxyApiTest.java | 65 +++++++++++++++ .../FocusMeteringResultProxyApiTest.java | 31 +++++++ .../camerax/ImageAnalysisProxyApiTest.java | 61 ++++++++++++++ .../camerax/ImageCaptureProxyApiTest.java | 61 ++++++++++++++ .../camerax/ImageProxyProxyApiTest.java | 75 +++++++++++++++++ .../plugins/camerax/LiveDataProxyApiTest.java | 64 ++++++++++++++ .../MeteringPointFactoryProxyApiTest.java | 48 +++++++++++ .../camerax/MeteringPointProxyApiTest.java | 31 +++++++ .../plugins/camerax/ObserverProxyApiTest.java | 39 +++++++++ .../camerax/PendingRecordingProxyApiTest.java | 33 ++++++++ .../camerax/PlaneProxyProxyApiTest.java | 53 ++++++++++++ .../plugins/camerax/PreviewProxyApiTest.java | 73 ++++++++++++++++ .../ProcessCameraProviderProxyApiTest.java | 81 ++++++++++++++++++ .../camerax/QualitySelectorProxyApiTest.java | 37 +++++++++ .../plugins/camerax/RecorderProxyApiTest.java | 63 ++++++++++++++ .../camerax/RecordingProxyApiTest.java | 60 ++++++++++++++ .../camerax/ResolutionFilterProxyApiTest.java | 28 +++++++ .../camerax/ResolutionInfoProxyApiTest.java | 32 +++++++ .../ResolutionSelectorProxyApiTest.java | 30 +++++++ .../ResolutionStrategyProxyApiTest.java | 28 +++++++ .../SystemServicesManagerProxyApiTest.java | 74 +++++++++++++++++ .../plugins/camerax/UseCaseProxyApiTest.java | 20 +++++ .../camerax/VideoCaptureProxyApiTest.java | 50 +++++++++++ .../camerax/VideoOutputProxyApiTest.java | 20 +++++ .../VideoRecordEventFinalizeProxyApiTest.java | 20 +++++ .../VideoRecordEventListenerProxyApiTest.java | 39 +++++++++ .../camerax/VideoRecordEventProxyApiTest.java | 20 +++++ .../VideoRecordEventStartProxyApiTest.java | 20 +++++ .../camerax/ZoomStateProxyApiTest.java | 42 ++++++++++ .../lib/src/camerax_library.dart | 22 ++++- .../lib/src/camerax_proxy2.dart | 6 +- 60 files changed, 2417 insertions(+), 7 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java new file mode 100644 index 00000000000..62a52f85b69 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraCharacteristicsKey}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraCharacteristicsKeyProxyApi extends PigeonApiCameraCharacteristicsKey { + CameraCharacteristicsKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java new file mode 100644 index 00000000000..55fe15829c7 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequestKey}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestKeyProxyApi extends PigeonApiCaptureRequestKey { + CaptureRequestKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java new file mode 100644 index 00000000000..4ed06895b5b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.UseCase; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link UseCase}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class UseCaseProxyApi extends PigeonApiUseCase { + UseCaseProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java new file mode 100644 index 00000000000..422ac5538f5 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoOutput; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoOutput}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoOutputProxyApi extends PigeonApiVideoOutput { + VideoOutputProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java new file mode 100644 index 00000000000..90385335609 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent.Finalize; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventFinalize}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventFinalizeProxyApi extends PigeonApiVideoRecordEventFinalize { + VideoRecordEventFinalizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java new file mode 100644 index 00000000000..2c6bafa9068 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEvent}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventProxyApi extends PigeonApiVideoRecordEvent { + VideoRecordEventProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java new file mode 100644 index 00000000000..ab18d1e2b55 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent.Start; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventStart}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventStartProxyApi extends PigeonApiVideoRecordEventStart { + VideoRecordEventStartProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerProxyApiTest.java new file mode 100644 index 00000000000..bae00524185 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerProxyApiTest.java @@ -0,0 +1,40 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageAnalysis.Analyzer +import androidx.camera.core.ImageProxy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class AnalyzerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiAnalyzer api = new TestProxyApiRegistrar().getPigeonApiAnalyzer(); + + assertTrue(api.pigeon_defaultConstructor() instanceof AnalyzerProxyApi.AnalyzerImpl); + } + + @Test + public void analyze() { + final AnalyzerProxyApi mockApi = mock(AnalyzerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final AnalyzerImpl instance = new AnalyzerImpl(mockApi); + final androidx.camera.core.ImageProxy image = mock(ImageProxy.class); + instance.analyze(image); + + verify(mockApi).analyze(eq(instance), eq(image), any()); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApiTest.java new file mode 100644 index 00000000000..ba6dd0bf516 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApiTest.java @@ -0,0 +1,27 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.AspectRatioStrategy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class AspectRatioStrategyProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + + assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO) instanceof AspectRatioStrategyProxyApi.AspectRatioStrategy); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java new file mode 100644 index 00000000000..545f365dd45 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java @@ -0,0 +1,40 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.camera2.interop.Camera2CameraControl +import androidx.camera.core.CameraControl +import androidx.camera.camera2.interop.CaptureRequestOptions +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class Camera2CameraControlProxyApiTest { + @Test + public void from() { + final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + + assertTrue(api.from(mock(CameraControl.class)) instanceof Camera2CameraControlProxyApi.Camera2CameraControl); + } + + @Test + public void addCaptureRequestOptions() { + final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + + final Camera2CameraControl instance = mock(Camera2CameraControl.class); + final androidx.camera.camera2.interop.CaptureRequestOptions bundle = mock(CaptureRequestOptions.class); + api.addCaptureRequestOptions(instance, bundle); + + verify(instance).addCaptureRequestOptions(bundle); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java new file mode 100644 index 00000000000..956866125fa --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java @@ -0,0 +1,52 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.camera2.interop.Camera2CameraInfo +import androidx.camera.core.CameraInfo +import android.hardware.camera2.CameraCharacteristics.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class Camera2CameraInfoProxyApiTest { + @Test + public void from() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + assertTrue(api.from(mock(CameraInfo.class)) instanceof Camera2CameraInfoProxyApi.Camera2CameraInfo); + } + + @Test + public void getCameraId() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); + final String value = "myString"; + when(instance.getCameraId()).thenReturn(value); + + assertEquals(value, api.getCameraId(instance )); + } + + @Test + public void getCameraCharacteristic() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); + final android.hardware.camera2.CameraCharacteristics.Key<*> key = mock(CameraCharacteristicsKey.class); + final Any value = -1; + when(instance.getCameraCharacteristic(key)).thenReturn(value); + + assertEquals(value, api.getCameraCharacteristic(instance, key)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java new file mode 100644 index 00000000000..8397a9c62c0 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java @@ -0,0 +1,20 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CameraCharacteristics.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraCharacteristicsKeyProxyApiTest { +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java new file mode 100644 index 00000000000..d01a67c04eb --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CameraCharacteristics +import android.hardware.camera2.CameraCharacteristics.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraCharacteristicsProxyApiTest { +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java new file mode 100644 index 00000000000..d7c23b2bf8b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java @@ -0,0 +1,78 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraControl +import androidx.camera.core.FocusMeteringAction +import androidx.camera.core.FocusMeteringResult +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraControlProxyApiTest { + @Test + public void enableTorch() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final Boolean torch = true; + api.enableTorch(instance, torch); + + verify(instance).enableTorch(torch); + } + + @Test + public void setZoomRatio() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final Double ratio = 1.0; + api.setZoomRatio(instance, ratio); + + verify(instance).setZoomRatio(ratio); + } + + @Test + public void startFocusAndMetering() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final androidx.camera.core.FocusMeteringAction action = mock(FocusMeteringAction.class); + final androidx.camera.core.FocusMeteringResult value = mock(FocusMeteringResult.class); + when(instance.startFocusAndMetering(action)).thenReturn(value); + + assertEquals(value, api.startFocusAndMetering(instance, action)); + } + + @Test + public void cancelFocusAndMetering() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + api.cancelFocusAndMetering(instance ); + + verify(instance).cancelFocusAndMetering(); + } + + @Test + public void setExposureCompensationIndex() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final Long index = 0; + final Long value = 0; + when(instance.setExposureCompensationIndex(index)).thenReturn(value); + + assertEquals(value, api.setExposureCompensationIndex(instance, index)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java new file mode 100644 index 00000000000..e1a11dae94b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java @@ -0,0 +1,66 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraInfo +import androidx.camera.core.ExposureState +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraInfoProxyApiTest { + @Test + public void sensorRotationDegrees() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final Long value = 0; + when(instance.getSensorRotationDegrees()).thenReturn(value); + + assertEquals(value, api.sensorRotationDegrees(instance)); + } + + @Test + public void exposureState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final androidx.camera.core.ExposureState value = mock(ExposureState.class); + when(instance.getExposureState()).thenReturn(value); + + assertEquals(value, api.exposureState(instance)); + } + + @Test + public void getCameraState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); + when(instance.getCameraState()).thenReturn(value); + + assertEquals(value, api.getCameraState(instance )); + } + + @Test + public void getZoomState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); + when(instance.getZoomState()).thenReturn(value); + + assertEquals(value, api.getZoomState(instance )); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java new file mode 100644 index 00000000000..2fd3b489e88 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java @@ -0,0 +1,49 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.util.Range<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraIntegerRangeProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + assertTrue(api.pigeon_defaultConstructor() instanceof CameraIntegerRangeProxyApi.CameraIntegerRange); + } + + @Test + public void lower() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + final CameraIntegerRange instance = mock(CameraIntegerRange.class); + final Long value = 0; + when(instance.getLower()).thenReturn(value); + + assertEquals(value, api.lower(instance)); + } + + @Test + public void upper() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + final CameraIntegerRange instance = mock(CameraIntegerRange.class); + final Long value = 0; + when(instance.getUpper()).thenReturn(value); + + assertEquals(value, api.upper(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java new file mode 100644 index 00000000000..c1bb20d6bde --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java @@ -0,0 +1,44 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.Camera +import androidx.camera.core.CameraControl +import androidx.camera.core.CameraInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraProxyApiTest { + @Test + public void cameraControl() { + final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); + + final Camera instance = mock(Camera.class); + final androidx.camera.core.CameraControl value = mock(CameraControl.class); + when(instance.getCameraControl()).thenReturn(value); + + assertEquals(value, api.cameraControl(instance)); + } + + @Test + public void getCameraInfo() { + final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); + + final Camera instance = mock(Camera.class); + final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); + when(instance.getCameraInfo()).thenReturn(value); + + assertEquals(value, api.getCameraInfo(instance )); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java new file mode 100644 index 00000000000..5c50678b1e8 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java @@ -0,0 +1,40 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraSelector +import androidx.camera.core.CameraInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraSelectorProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); + + assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT) instanceof CameraSelectorProxyApi.CameraSelector); + } + + @Test + public void filter() { + final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); + + final CameraSelector instance = mock(CameraSelector.class); + final List cameraInfos = Arrays.asList(mock(CameraInfo.class)); + final List value = Arrays.asList(mock(CameraInfo.class)); + when(instance.filter(cameraInfos)).thenReturn(value); + + assertEquals(value, api.filter(instance, cameraInfos)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java new file mode 100644 index 00000000000..a3d7e67b59b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java @@ -0,0 +1,49 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraSizeProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + assertTrue(api.pigeon_defaultConstructor() instanceof CameraSizeProxyApi.CameraSize); + } + + @Test + public void width() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + final CameraSize instance = mock(CameraSize.class); + final Long value = 0; + when(instance.getWidth()).thenReturn(value); + + assertEquals(value, api.width(instance)); + } + + @Test + public void height() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + final CameraSize instance = mock(CameraSize.class); + final Long value = 0; + when(instance.getHeight()).thenReturn(value); + + assertEquals(value, api.height(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java new file mode 100644 index 00000000000..55322cefc18 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java @@ -0,0 +1,43 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraState +import androidx.camera.core.CameraState.StateError +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraStateProxyApiTest { + @Test + public void type() { + final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); + + final CameraState instance = mock(CameraState.class); + final CameraStateType value = io.flutter.plugins.camerax.CameraStateType.CLOSED; + when(instance.getType()).thenReturn(value); + + assertEquals(value, api.type(instance)); + } + + @Test + public void error() { + final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); + + final CameraState instance = mock(CameraState.class); + final androidx.camera.core.CameraState.StateError value = mock(CameraStateStateError.class); + when(instance.getError()).thenReturn(value); + + assertEquals(value, api.error(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java new file mode 100644 index 00000000000..18613d769f6 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java @@ -0,0 +1,31 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraState.StateError +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraStateStateErrorProxyApiTest { + @Test + public void code() { + final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); + + final CameraStateStateError instance = mock(CameraStateStateError.class); + final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; + when(instance.getCode()).thenReturn(value); + + assertEquals(value, api.code(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java new file mode 100644 index 00000000000..b438a2f9fdf --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java @@ -0,0 +1,20 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CaptureRequest.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestKeyProxyApiTest { +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java new file mode 100644 index 00000000000..defe18a676d --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.camera2.interop.CaptureRequestOptions +import android.hardware.camera2.CaptureRequest.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestOptionsProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); + + assertTrue(api.pigeon_defaultConstructor(new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}) instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java new file mode 100644 index 00000000000..07c8b982dcf --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java @@ -0,0 +1,21 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CaptureRequest +import android.hardware.camera2.CaptureRequest.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestProxyApiTest { +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java new file mode 100644 index 00000000000..fe1c2ee72a1 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java @@ -0,0 +1,83 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class DeviceOrientationManagerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + assertTrue(api.pigeon_defaultConstructor() instanceof DeviceOrientationManagerProxyApi.DeviceOrientationManager); + } + + @Test + public void startListeningForDeviceOrientationChange() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final Boolean isFrontFacing = true; + final Long sensorOrientation = 0; + api.startListeningForDeviceOrientationChange(instance, isFrontFacing, sensorOrientation); + + verify(instance).startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); + } + + @Test + public void stopListeningForDeviceOrientationChange() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + api.stopListeningForDeviceOrientationChange(instance ); + + verify(instance).stopListeningForDeviceOrientationChange(); + } + + @Test + public void getDefaultDisplayRotation() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final Long value = 0; + when(instance.getDefaultDisplayRotation()).thenReturn(value); + + assertEquals(value, api.getDefaultDisplayRotation(instance )); + } + + @Test + public void getUiOrientation() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final String value = "myString"; + when(instance.getUiOrientation()).thenReturn(value); + + assertEquals(value, api.getUiOrientation(instance )); + } + + @Test + public void onDeviceOrientationChanged() { + final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final DeviceOrientationManagerImpl instance = new DeviceOrientationManagerImpl(mockApi); + final String orientation = "myString"; + instance.onDeviceOrientationChanged(orientation); + + verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation), any()); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java new file mode 100644 index 00000000000..b429486fc31 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.DisplayOrientedMeteringPointFactory +import androidx.camera.core.CameraInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class DisplayOrientedMeteringPointFactoryProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiDisplayOrientedMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiDisplayOrientedMeteringPointFactory(); + + assertTrue(api.pigeon_defaultConstructor(mock(CameraInfo.class), 1.0, 1.0) instanceof DisplayOrientedMeteringPointFactoryProxyApi.DisplayOrientedMeteringPointFactory); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java new file mode 100644 index 00000000000..016baabd3d4 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java @@ -0,0 +1,43 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ExposureState +import android.util.Range<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ExposureStateProxyApiTest { + @Test + public void exposureCompensationRange() { + final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); + + final ExposureState instance = mock(ExposureState.class); + final android.util.Range<*> value = mock(CameraIntegerRange.class); + when(instance.getExposureCompensationRange()).thenReturn(value); + + assertEquals(value, api.exposureCompensationRange(instance)); + } + + @Test + public void exposureCompensationStep() { + final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); + + final ExposureState instance = mock(ExposureState.class); + final Double value = 1.0; + when(instance.getExposureCompensationStep()).thenReturn(value); + + assertEquals(value, api.exposureCompensationStep(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java new file mode 100644 index 00000000000..1194da1aac9 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java @@ -0,0 +1,48 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.FallbackStrategy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FallbackStrategyProxyApiTest { + @Test + public void higherQualityOrLowerThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.higherQualityOrLowerThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + + @Test + public void higherQualityThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.higherQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + + @Test + public void lowerQualityOrHigherThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.lowerQualityOrHigherThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + + @Test + public void lowerQualityThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.lowerQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java new file mode 100644 index 00000000000..bdd824f1fd5 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java @@ -0,0 +1,80 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.FocusMeteringAction.Builder +import androidx.camera.core.MeteringPoint +import androidx.camera.core.FocusMeteringAction +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringActionBuilderProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + assertTrue(api.pigeon_defaultConstructor(mock(MeteringPoint.class)) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); + } + + @Test + public void withMode() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + assertTrue(api.withMode(mock(MeteringPoint.class), io.flutter.plugins.camerax.MeteringMode.AE) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); + } + + @Test + public void addPoint() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); + api.addPoint(instance, point); + + verify(instance).addPoint(point); + } + + @Test + public void addPointWithMode() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); + final MeteringMode mode = io.flutter.plugins.camerax.MeteringMode.AE; + api.addPointWithMode(instance, point, mode); + + verify(instance).addPointWithMode(point, mode); + } + + @Test + public void disableAutoCancel() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + api.disableAutoCancel(instance ); + + verify(instance).disableAutoCancel(); + } + + @Test + public void build() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); + when(instance.build()).thenReturn(value); + + assertEquals(value, api.build(instance )); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java new file mode 100644 index 00000000000..403c61dc541 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java @@ -0,0 +1,65 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.FocusMeteringAction +import androidx.camera.core.MeteringPoint +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringActionProxyApiTest { + @Test + public void meteringPointsAe() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Arrays.asList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAe()).thenReturn(value); + + assertEquals(value, api.meteringPointsAe(instance)); + } + + @Test + public void meteringPointsAf() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Arrays.asList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAf()).thenReturn(value); + + assertEquals(value, api.meteringPointsAf(instance)); + } + + @Test + public void meteringPointsAwb() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Arrays.asList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAwb()).thenReturn(value); + + assertEquals(value, api.meteringPointsAwb(instance)); + } + + @Test + public void isAutoCancelEnabled() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final Boolean value = true; + when(instance.getIsAutoCancelEnabled()).thenReturn(value); + + assertEquals(value, api.isAutoCancelEnabled(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java new file mode 100644 index 00000000000..d1866419685 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java @@ -0,0 +1,31 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.FocusMeteringResult +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringResultProxyApiTest { + @Test + public void isFocusSuccessful() { + final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); + + final FocusMeteringResult instance = mock(FocusMeteringResult.class); + final Boolean value = true; + when(instance.getIsFocusSuccessful()).thenReturn(value); + + assertEquals(value, api.isFocusSuccessful(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java new file mode 100644 index 00000000000..9cfd5100530 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java @@ -0,0 +1,61 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageAnalysis +import androidx.camera.core.resolutionselector.ResolutionSelector +import androidx.camera.core.ImageAnalysis.Analyzer +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageAnalysisProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + assertTrue(api.pigeon_defaultConstructor(0, mock(ResolutionSelector.class)) instanceof ImageAnalysisProxyApi.ImageAnalysis); + } + + @Test + public void setAnalyzer() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); + api.setAnalyzer(instance, analyzer); + + verify(instance).setAnalyzer(analyzer); + } + + @Test + public void clearAnalyzer() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + api.clearAnalyzer(instance ); + + verify(instance).clearAnalyzer(); + } + + @Test + public void setTargetRotation() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java new file mode 100644 index 00000000000..ba9a4d273dd --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java @@ -0,0 +1,61 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageCapture +import androidx.camera.core.resolutionselector.ResolutionSelector +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageCaptureProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO, mock(ResolutionSelector.class)) instanceof ImageCaptureProxyApi.ImageCapture); + } + + @Test + public void setFlashMode() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; + api.setFlashMode(instance, flashMode); + + verify(instance).setFlashMode(flashMode); + } + + @Test + public void takePicture() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final String value = "myString"; + when(instance.takePicture()).thenReturn(value); + + assertEquals(value, api.takePicture(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java new file mode 100644 index 00000000000..6a66b4472a5 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java @@ -0,0 +1,75 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageProxy +import androidx.camera.core.ImageProxy.PlaneProxy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageProxyProxyApiTest { + @Test + public void format() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final Long value = 0; + when(instance.getFormat()).thenReturn(value); + + assertEquals(value, api.format(instance)); + } + + @Test + public void width() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final Long value = 0; + when(instance.getWidth()).thenReturn(value); + + assertEquals(value, api.width(instance)); + } + + @Test + public void height() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final Long value = 0; + when(instance.getHeight()).thenReturn(value); + + assertEquals(value, api.height(instance)); + } + + @Test + public void getPlanes() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final List value = Arrays.asList(mock(PlaneProxy.class)); + when(instance.getPlanes()).thenReturn(value); + + assertEquals(value, api.getPlanes(instance )); + } + + @Test + public void close() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + api.close(instance ); + + verify(instance).close(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java new file mode 100644 index 00000000000..c4317cf11e8 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java @@ -0,0 +1,64 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper +import androidx.lifecycle.Observer<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class LiveDataProxyApiTest { + @Test + public void type() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + when(instance.getType()).thenReturn(value); + + assertEquals(value, api.type(instance)); + } + + @Test + public void observe() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + final androidx.lifecycle.Observer<*> observer = mock(Observer.class); + api.observe(instance, observer); + + verify(instance).observe(observer); + } + + @Test + public void removeObservers() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + api.removeObservers(instance ); + + verify(instance).removeObservers(); + } + + @Test + public void getValue() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + final Any value = -1; + when(instance.getValue()).thenReturn(value); + + assertEquals(value, api.getValue(instance )); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java new file mode 100644 index 00000000000..b936016bf16 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java @@ -0,0 +1,48 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.MeteringPointFactory +import androidx.camera.core.MeteringPoint +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MeteringPointFactoryProxyApiTest { + @Test + public void createPoint() { + final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + + final MeteringPointFactory instance = mock(MeteringPointFactory.class); + final Double x = 1.0; + final Double y = 1.0; + final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); + when(instance.createPoint(x, y)).thenReturn(value); + + assertEquals(value, api.createPoint(instance, x, y)); + } + + @Test + public void createPointWithSize() { + final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + + final MeteringPointFactory instance = mock(MeteringPointFactory.class); + final Double x = 1.0; + final Double y = 1.0; + final Double size = 1.0; + final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); + when(instance.createPointWithSize(x, y, size)).thenReturn(value); + + assertEquals(value, api.createPointWithSize(instance, x, y, size)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java new file mode 100644 index 00000000000..ba326f052ef --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java @@ -0,0 +1,31 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.MeteringPoint +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MeteringPointProxyApiTest { + @Test + public void getSize() { + final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); + + final MeteringPoint instance = mock(MeteringPoint.class); + final Double value = 1.0; + when(instance.getSize()).thenReturn(value); + + assertEquals(value, api.getSize(instance )); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java new file mode 100644 index 00000000000..a5c9fd7cd8e --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java @@ -0,0 +1,39 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.lifecycle.Observer<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ObserverProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); + + assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.ObserverImpl); + } + + @Test + public void onChanged() { + final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final ObserverImpl instance = new ObserverImpl(mockApi); + final Any value = -1; + instance.onChanged(value); + + verify(mockApi).onChanged(eq(instance), eq(value), any()); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java new file mode 100644 index 00000000000..5343071a20c --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java @@ -0,0 +1,33 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.PendingRecording +import androidx.camera.video.Recording +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PendingRecordingProxyApiTest { + @Test + public void start() { + final PigeonApiPendingRecording api = new TestProxyApiRegistrar().getPigeonApiPendingRecording(); + + final PendingRecording instance = mock(PendingRecording.class); + final VideoRecordEventListener listener = mock(VideoRecordEventListener.class); + final androidx.camera.video.Recording value = mock(Recording.class); + when(instance.start(listener)).thenReturn(value); + + assertEquals(value, api.start(instance, listener)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java new file mode 100644 index 00000000000..194b0b9027f --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java @@ -0,0 +1,53 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageProxy.PlaneProxy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PlaneProxyProxyApiTest { + @Test + public void buffer() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final ByteArray value = {0xA1}; + when(instance.getBuffer()).thenReturn(value); + + assertEquals(value, api.buffer(instance)); + } + + @Test + public void pixelStride() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final Long value = 0; + when(instance.getPixelStride()).thenReturn(value); + + assertEquals(value, api.pixelStride(instance)); + } + + @Test + public void rowStride() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final Long value = 0; + when(instance.getRowStride()).thenReturn(value); + + assertEquals(value, api.rowStride(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java new file mode 100644 index 00000000000..b838cdc3d8f --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java @@ -0,0 +1,73 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.Preview +import androidx.camera.core.resolutionselector.ResolutionSelector +import androidx.camera.core.ResolutionInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PreviewProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + assertTrue(api.pigeon_defaultConstructor(0, mock(ResolutionSelector.class)) instanceof PreviewProxyApi.Preview); + } + + @Test + public void setSurfaceProvider() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); + final Long value = 0; + when(instance.setSurfaceProvider(systemServicesManager)).thenReturn(value); + + assertEquals(value, api.setSurfaceProvider(instance, systemServicesManager)); + } + + @Test + public void releaseSurfaceProvider() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + api.releaseSurfaceProvider(instance ); + + verify(instance).releaseSurfaceProvider(); + } + + @Test + public void getResolutionInfo() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); + when(instance.getResolutionInfo()).thenReturn(value); + + assertEquals(value, api.getResolutionInfo(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java new file mode 100644 index 00000000000..e2b3b1dcf6e --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java @@ -0,0 +1,81 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.lifecycle.ProcessCameraProvider +import androidx.camera.core.UseCase +import androidx.camera.core.CameraSelector +import androidx.camera.core.CameraInfo +import androidx.camera.core.Camera +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ProcessCameraProviderProxyApiTest { + @Test + public void getAvailableCameraInfos() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final List value = Arrays.asList(mock(CameraInfo.class)); + when(instance.getAvailableCameraInfos()).thenReturn(value); + + assertEquals(value, api.getAvailableCameraInfos(instance )); + } + + @Test + public void bindToLifecycle() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); + final List useCases = Arrays.asList(mock(UseCase.class)); + final androidx.camera.core.Camera value = mock(Camera.class); + when(instance.bindToLifecycle(cameraSelector, useCases)).thenReturn(value); + + assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); + } + + @Test + public void isBound() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final androidx.camera.core.UseCase useCase = mock(UseCase.class); + final Boolean value = true; + when(instance.isBound(useCase)).thenReturn(value); + + assertEquals(value, api.isBound(instance, useCase)); + } + + @Test + public void unbind() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final List useCases = Arrays.asList(mock(UseCase.class)); + api.unbind(instance, useCases); + + verify(instance).unbind(useCases); + } + + @Test + public void unbindAll() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + api.unbindAll(instance ); + + verify(instance).unbindAll(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java new file mode 100644 index 00000000000..68c506af609 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java @@ -0,0 +1,37 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.QualitySelector +import androidx.camera.video.FallbackStrategy +import androidx.camera.core.CameraInfo +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class QualitySelectorProxyApiTest { + @Test + public void from() { + final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + assertTrue(api.from(io.flutter.plugins.camerax.VideoQuality.SD, mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); + } + + @Test + public void fromOrderedList() { + final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + assertTrue(api.fromOrderedList(Arrays.asList(io.flutter.plugins.camerax.VideoQuality.SD), mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java new file mode 100644 index 00000000000..9315b69fd1c --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java @@ -0,0 +1,63 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.Recorder +import androidx.camera.video.QualitySelector +import androidx.camera.video.PendingRecording +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class RecorderProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + assertTrue(api.pigeon_defaultConstructor(0, 0, mock(QualitySelector.class)) instanceof RecorderProxyApi.Recorder); + } + + @Test + public void getAspectRatio() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final Long value = 0; + when(instance.getAspectRatio()).thenReturn(value); + + assertEquals(value, api.getAspectRatio(instance )); + } + + @Test + public void getTargetVideoEncodingBitRate() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final Long value = 0; + when(instance.getTargetVideoEncodingBitRate()).thenReturn(value); + + assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); + } + + @Test + public void prepareRecording() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final String path = "myString"; + final androidx.camera.video.PendingRecording value = mock(PendingRecording.class); + when(instance.prepareRecording(path)).thenReturn(value); + + assertEquals(value, api.prepareRecording(instance, path)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java new file mode 100644 index 00000000000..3c05d37b460 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java @@ -0,0 +1,60 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.Recording +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class RecordingProxyApiTest { + @Test + public void close() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.close(instance ); + + verify(instance).close(); + } + + @Test + public void pause() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.pause(instance ); + + verify(instance).pause(); + } + + @Test + public void resume() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.resume(instance ); + + verify(instance).resume(); + } + + @Test + public void stop() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.stop(instance ); + + verify(instance).stop(); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java new file mode 100644 index 00000000000..e674cab4492 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.ResolutionFilter +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionFilterProxyApiTest { + @Test + public void createWithOnePreferredSize() { + final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); + + assertTrue(api.createWithOnePreferredSize(mock(CameraSize.class)) instanceof ResolutionFilterProxyApi.ResolutionFilter); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java new file mode 100644 index 00000000000..dd5c1edf8f9 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java @@ -0,0 +1,32 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ResolutionInfo +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionInfoProxyApiTest { + @Test + public void resolution() { + final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); + + final ResolutionInfo instance = mock(ResolutionInfo.class); + final android.util.Size value = mock(CameraSize.class); + when(instance.getResolution()).thenReturn(value); + + assertEquals(value, api.resolution(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java new file mode 100644 index 00000000000..b273b84d875 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java @@ -0,0 +1,30 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.ResolutionSelector +import androidx.camera.core.resolutionselector.AspectRatioStrategy +import androidx.camera.core.resolutionselector.ResolutionStrategy +import androidx.camera.core.resolutionselector.ResolutionFilter +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionSelectorProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class), mock(ResolutionStrategy.class), mock(ResolutionFilter.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java new file mode 100644 index 00000000000..a82c1e3359b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.ResolutionStrategy +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionStrategyProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + assertTrue(api.pigeon_defaultConstructor(mock(CameraSize.class), io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER) instanceof ResolutionStrategyProxyApi.ResolutionStrategy); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java new file mode 100644 index 00000000000..05d5ebe2652 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java @@ -0,0 +1,74 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class SystemServicesManagerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + assertTrue(api.pigeon_defaultConstructor() instanceof SystemServicesManagerProxyApi.SystemServicesManager); + } + + @Test + public void requestCameraPermissions() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = mock(SystemServicesManager.class); + final Boolean enableAudio = true; + api.requestCameraPermissions(instance, enableAudio); + + verify(instance).requestCameraPermissions(enableAudio); + } + + @Test + public void getTempFilePath() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = mock(SystemServicesManager.class); + final String prefix = "myString"; + final String suffix = "myString"; + final String value = "myString"; + when(instance.getTempFilePath(prefix, suffix)).thenReturn(value); + + assertEquals(value, api.getTempFilePath(instance, prefix, suffix)); + } + + @Test + public void isPreviewPreTransformed() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = mock(SystemServicesManager.class); + final Boolean value = true; + when(instance.isPreviewPreTransformed()).thenReturn(value); + + assertEquals(value, api.isPreviewPreTransformed(instance )); + } + + @Test + public void onCameraError() { + final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final SystemServicesManagerImpl instance = new SystemServicesManagerImpl(mockApi); + final String errorDescription = "myString"; + instance.onCameraError(errorDescription); + + verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java new file mode 100644 index 00000000000..7de9fd6d23f --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java @@ -0,0 +1,20 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.UseCase +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class UseCaseProxyApiTest { +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java new file mode 100644 index 00000000000..2803b27e97f --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java @@ -0,0 +1,50 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoCapture<*> +import androidx.camera.video.VideoOutput +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoCaptureProxyApiTest { + @Test + public void withOutput() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + assertTrue(api.withOutput(mock(VideoOutput.class)) instanceof VideoCaptureProxyApi.VideoCapture); + } + + @Test + public void getOutput() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + final VideoCapture instance = mock(VideoCapture.class); + final androidx.camera.video.VideoOutput value = mock(VideoOutput.class); + when(instance.getOutput()).thenReturn(value); + + assertEquals(value, api.getOutput(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + final VideoCapture instance = mock(VideoCapture.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java new file mode 100644 index 00000000000..d8b964047ea --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java @@ -0,0 +1,20 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoOutput +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoOutputProxyApiTest { +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java new file mode 100644 index 00000000000..1b6b3b717b9 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java @@ -0,0 +1,20 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent.Finalize +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventFinalizeProxyApiTest { +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java new file mode 100644 index 00000000000..0a4486299f7 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java @@ -0,0 +1,39 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventListenerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiVideoRecordEventListener api = new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); + + assertTrue(api.pigeon_defaultConstructor() instanceof VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl); + } + + @Test + public void onEvent() { + final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final VideoRecordEventListenerImpl instance = new VideoRecordEventListenerImpl(mockApi); + final androidx.camera.video.VideoRecordEvent event = mock(VideoRecordEvent.class); + instance.onEvent(event); + + verify(mockApi).onEvent(eq(instance), eq(event), any()); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java new file mode 100644 index 00000000000..0dd5f2dd1d3 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java @@ -0,0 +1,20 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventProxyApiTest { +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java new file mode 100644 index 00000000000..68601dd4c44 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java @@ -0,0 +1,20 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent.Start +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventStartProxyApiTest { +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java new file mode 100644 index 00000000000..5c621a78cef --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java @@ -0,0 +1,42 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ZoomState +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ZoomStateProxyApiTest { + @Test + public void minZoomRatio() { + final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); + + final ZoomState instance = mock(ZoomState.class); + final Double value = 1.0; + when(instance.getMinZoomRatio()).thenReturn(value); + + assertEquals(value, api.minZoomRatio(instance)); + } + + @Test + public void maxZoomRatio() { + final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); + + final ZoomState instance = mock(ZoomState.class); + final Double value = 1.0; + when(instance.getMaxZoomRatio()).thenReturn(value); + + assertEquals(value, api.maxZoomRatio(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index 5ddaf258759..ccb453f9f95 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -1,15 +1,28 @@ +import 'package:flutter/services.dart'; + import 'camerax_library2.g.dart' as camerax; export 'camerax_library2.g.dart' hide CameraInfo, LiveData, Observer; -void setUpGenerics() { +void setUpGenerics({ + BinaryMessenger? pigeonBinaryMessenger, + camerax.PigeonInstanceManager? pigeonInstanceManager, +}) { camerax.LiveData.pigeon_setUpMessageHandlers( pigeon_newInstance: (camerax.LiveDataSupportedType type) { switch (type) { case camerax.LiveDataSupportedType.cameraState: - return LiveData.detached(type: type); + return LiveData.detached( + type: type, + pigeon_binaryMessenger: pigeonBinaryMessenger, + pigeon_instanceManager: pigeonInstanceManager, + ); case camerax.LiveDataSupportedType.zoomState: - return LiveData.detached(type: type); + return LiveData.detached( + type: type, + pigeon_binaryMessenger: pigeonBinaryMessenger, + pigeon_instanceManager: pigeonInstanceManager, + ); } }, ); @@ -21,11 +34,12 @@ void setUpGenerics() { return CameraInfo.detached( sensorRotationDegrees: sensorRotationDegrees, exposureState: exposureState, + pigeon_binaryMessenger: pigeonBinaryMessenger, + pigeon_instanceManager: pigeonInstanceManager, ); }); } -// TODO: move rotation logic to dart /// Handle onto the raw buffer managed by screen compositor. /// /// See https://developer.android.com/reference/android/view/Surface.html. diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index 20877ded0c6..258a58620cf 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -13,9 +13,9 @@ import 'camerax_library.dart'; /// /// By default each function calls the default constructor of the class it /// intends to return. -class MyLibraryProxy { - /// Constructs an [MyLibraryProxy]. - const MyLibraryProxy({ +class CameraXProxy { + /// Constructs an [CameraXProxy]. + const CameraXProxy({ this.newCameraSize = CameraSize.new, this.newCameraIntegerRange = CameraIntegerRange.new, this.newObserver = Observer.new, From ac5394c585ef6e462d25796bd9335226665c221f Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 2 Jan 2025 12:47:46 -0500 Subject: [PATCH 024/148] add setup generics --- .../camera_android_camerax/lib/src/camerax_proxy2.dart | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index 258a58620cf..8cfa91d0cf4 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -16,6 +16,7 @@ import 'camerax_library.dart'; class CameraXProxy { /// Constructs an [CameraXProxy]. const CameraXProxy({ + this.setUpGenericsProxy = setUpGenerics, this.newCameraSize = CameraSize.new, this.newCameraIntegerRange = CameraIntegerRange.new, this.newObserver = Observer.new, @@ -67,6 +68,11 @@ class CameraXProxy { _sensorOrientationCameraCharacteristics, }); + final void Function({ + BinaryMessenger? pigeonBinaryMessenger, + PigeonInstanceManager? pigeonInstanceManager, + }) setUpGenericsProxy; + /// Constructs [CameraSize]. final CameraSize Function({ required int width, From 6b33f0618ba6c3e698c137d37d42bc4b83038ddb Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Fri, 3 Jan 2025 15:10:42 -0500 Subject: [PATCH 025/148] default mocks for proxy --- .../lib/src/analyzer.dart | 142 - ...roid_camera_camerax_flutter_api_impls.dart | 219 - .../lib/src/aspect_ratio_strategy.dart | 138 - .../lib/src/camera.dart | 121 - .../lib/src/camera2_camera_control.dart | 135 - .../lib/src/camera2_camera_info.dart | 140 - .../lib/src/camera_control.dart | 229 - .../lib/src/camera_info.dart | 140 - .../lib/src/camera_metadata.dart | 42 - .../lib/src/camera_selector.dart | 203 - .../lib/src/camera_state.dart | 127 - .../lib/src/camera_state_error.dart | 115 - .../lib/src/camerax_library.dart | 19 +- .../lib/src/camerax_library.g.dart | 3689 ------- .../lib/src/camerax_proxy.dart | 358 - .../lib/src/capture_request_options.dart | 139 - .../lib/src/device_orientation_manager.dart | 131 - .../lib/src/exposure_state.dart | 78 - .../lib/src/fallback_strategy.dart | 88 - .../lib/src/focus_metering_action.dart | 131 - .../lib/src/focus_metering_result.dart | 108 - .../lib/src/image_analysis.dart | 155 - .../lib/src/image_capture.dart | 195 - .../lib/src/image_proxy.dart | 146 - .../lib/src/instance_manager.dart | 197 - .../lib/src/java_object.dart | 84 - .../lib/src/live_data.dart | 193 - .../lib/src/metering_point.dart | 127 - .../lib/src/observer.dart | 132 - .../lib/src/pending_recording.dart | 115 - .../lib/src/plane_proxy.dart | 94 - .../lib/src/preview.dart | 159 - .../lib/src/process_camera_provider.dart | 222 - .../lib/src/quality_selector.dart | 145 - .../lib/src/recorder.dart | 179 - .../lib/src/recording.dart | 122 - .../lib/src/resolution_filter.dart | 107 - .../lib/src/resolution_selector.dart | 120 - .../lib/src/resolution_strategy.dart | 189 - .../lib/src/surface.dart | 37 - .../lib/src/system_services.dart | 107 - .../lib/src/use_case.dart | 17 - .../lib/src/video_capture.dart | 134 - .../lib/src/zoom_state.dart | 73 - .../test/analyzer_test.dart | 116 - .../test/analyzer_test.mocks.dart | 59 - .../test/android_camera_camerax_test.dart | 8437 +++++++++-------- .../android_camera_camerax_test.mocks.dart | 3584 +++++-- .../test/aspect_ratio_strategy_test.dart | 84 - .../aspect_ratio_strategy_test.mocks.dart | 68 - .../test/camera2_camera_control_test.dart | 126 - .../camera2_camera_control_test.mocks.dart | 169 - .../test/camera2_camera_info_test.dart | 155 - .../test/camera2_camera_info_test.mocks.dart | 188 - .../test/camera_control_test.dart | 306 - .../test/camera_control_test.mocks.dart | 148 - .../test/camera_info_test.dart | 178 - .../test/camera_info_test.mocks.dart | 156 - .../test/camera_selector_test.dart | 124 - .../test/camera_selector_test.mocks.dart | 82 - .../test/camera_state_error_test.dart | 53 - .../test/camera_state_error_test.mocks.dart | 40 - .../test/camera_state_test.dart | 68 - .../test/camera_state_test.mocks.dart | 40 - .../test/camera_test.dart | 104 - .../test/camera_test.mocks.dart | 67 - .../test/capture_request_options_test.dart | 143 - .../capture_request_options_test.mocks.dart | 66 - .../test/device_orientation_manager_test.dart | 99 - ...device_orientation_manager_test.mocks.dart | 100 - .../test/exposure_state_test.dart | 49 - .../test/exposure_state_test.mocks.dart | 40 - .../test/fallback_strategy_test.dart | 76 - .../test/fallback_strategy_test.mocks.dart | 69 - .../test/focus_metering_action_test.dart | 106 - .../focus_metering_action_test.mocks.dart | 112 - .../test/focus_metering_result_test.dart | 76 - .../focus_metering_result_test.mocks.dart | 102 - .../test/image_analysis_test.dart | 189 - .../test/image_analysis_test.mocks.dart | 121 - .../test/image_capture_test.dart | 154 - .../test/image_capture_test.mocks.dart | 132 - .../test/image_proxy_test.dart | 128 - .../test/image_proxy_test.mocks.dart | 68 - .../test/instance_manager_test.dart | 174 - .../test/live_data_test.dart | 162 - .../test/live_data_test.mocks.dart | 89 - .../test/metering_point_test.dart | 94 - .../test/metering_point_test.mocks.dart | 176 - .../test/observer_test.dart | 114 - .../test/observer_test.mocks.dart | 59 - .../test/pending_recording_test.dart | 65 - .../test/pending_recording_test.mocks.dart | 112 - .../test/plane_proxy_test.dart | 46 - .../test/plane_proxy_test.mocks.dart | 40 - .../test/preview_test.dart | 174 - .../test/preview_test.mocks.dart | 141 - .../test/process_camera_provider_test.dart | 236 - .../process_camera_provider_test.mocks.dart | 129 - .../test/quality_selector_test.dart | 194 - .../test/quality_selector_test.mocks.dart | 223 - .../test/recorder_test.dart | 167 - .../test/recorder_test.mocks.dart | 253 - .../test/recording_test.dart | 119 - .../test/recording_test.mocks.dart | 86 - .../test/resolution_filter_test.dart | 90 - .../test/resolution_filter_test.mocks.dart | 67 - .../test/resolution_selector_test.dart | 140 - .../test/resolution_selector_test.mocks.dart | 138 - .../test/resolution_strategy_test.dart | 109 - .../test/resolution_strategy_test.mocks.dart | 69 - .../test/system_services_test.dart | 100 - .../test/system_services_test.mocks.dart | 99 - .../test/test_camerax_library.g.dart | 102 - .../test/video_capture_test.dart | 116 - .../test/video_capture_test.mocks.dart | 126 - .../test/zoom_state_test.dart | 40 - .../test/zoom_state_test.mocks.dart | 40 - 118 files changed, 7223 insertions(+), 22589 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/lib/src/analyzer.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/aspect_ratio_strategy.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camera.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camera2_camera_control.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camera2_camera_info.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camera_control.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camera_info.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camera_metadata.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camera_selector.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camera_state.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camera_state_error.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/capture_request_options.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/device_orientation_manager.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/exposure_state.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/fallback_strategy.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/image_analysis.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/image_capture.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/image_proxy.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/instance_manager.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/java_object.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/live_data.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/metering_point.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/observer.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/pending_recording.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/plane_proxy.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/preview.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/process_camera_provider.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/quality_selector.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/recorder.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/recording.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/resolution_filter.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/resolution_selector.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/resolution_strategy.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/surface.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/system_services.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/use_case.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/video_capture.dart delete mode 100644 packages/camera/camera_android_camerax/lib/src/zoom_state.dart delete mode 100644 packages/camera/camera_android_camerax/test/analyzer_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/analyzer_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/aspect_ratio_strategy_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/aspect_ratio_strategy_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera2_camera_control_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera2_camera_control_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera2_camera_info_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera2_camera_info_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_control_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_control_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_info_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_selector_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_selector_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_state_error_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_state_error_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_state_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_state_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/camera_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/capture_request_options_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/capture_request_options_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/device_orientation_manager_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/device_orientation_manager_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/exposure_state_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/exposure_state_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/fallback_strategy_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/fallback_strategy_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/focus_metering_action_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/focus_metering_action_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/focus_metering_result_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/focus_metering_result_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/image_analysis_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/image_analysis_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/image_capture_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/image_capture_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/image_proxy_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/image_proxy_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/instance_manager_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/live_data_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/live_data_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/metering_point_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/metering_point_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/observer_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/observer_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/pending_recording_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/pending_recording_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/plane_proxy_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/plane_proxy_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/preview_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/preview_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/process_camera_provider_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/process_camera_provider_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/quality_selector_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/quality_selector_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/recorder_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/recorder_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/recording_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/recording_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/resolution_filter_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/resolution_filter_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/resolution_selector_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/resolution_selector_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/resolution_strategy_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/resolution_strategy_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/system_services_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/system_services_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/test_camerax_library.g.dart delete mode 100644 packages/camera/camera_android_camerax/test/video_capture_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/video_capture_test.mocks.dart delete mode 100644 packages/camera/camera_android_camerax/test/zoom_state_test.dart delete mode 100644 packages/camera/camera_android_camerax/test/zoom_state_test.mocks.dart diff --git a/packages/camera/camera_android_camerax/lib/src/analyzer.dart b/packages/camera/camera_android_camerax/lib/src/analyzer.dart deleted file mode 100644 index 8da367f0046..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/analyzer.dart +++ /dev/null @@ -1,142 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable, protected; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'image_proxy.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Wrapper of callback for analyzing images. -/// -/// See https://developer.android.com/reference/androidx/camera/core/ImageAnalysis.Analyzer. -@immutable -class Analyzer extends JavaObject { - /// Creates an [Analyzer]. - Analyzer( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.analyze}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _AnalyzerHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createfromInstances(this); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - /// Constructs a [Analyzer] that is not automatically attached to a native object. - Analyzer.detached( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.analyze}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _AnalyzerHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _AnalyzerHostApiImpl _api; - - /// Analyzes an image to produce a result. - final Future Function(ImageProxy imageProxy) analyze; -} - -/// Host API implementation of [Analyzer]. -class _AnalyzerHostApiImpl extends AnalyzerHostApi { - _AnalyzerHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - final BinaryMessenger? binaryMessenger; - - final InstanceManager instanceManager; - - /// Creates an [Analyzer] instance on the native side. - Future createfromInstances( - Analyzer instance, - ) { - return create( - instanceManager.addDartCreatedInstance( - instance, - onCopy: (Analyzer original) => Analyzer.detached( - analyze: original.analyze, - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - ), - ); - } -} - -/// Flutter API implementation for [Analyzer]. -/// -/// This class may handle instantiating and adding Dart instances that are -/// attached to a native instance or receiving callback methods from an -/// overridden native class. -@protected -class AnalyzerFlutterApiImpl implements AnalyzerFlutterApi { - /// Constructs a [AnalyzerFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - AnalyzerFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create( - int identifier, - ) { - _instanceManager.addHostCreatedInstance( - Analyzer.detached( - analyze: (ImageProxy imageProxy) async {}, - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - identifier, - onCopy: (Analyzer original) => Analyzer.detached( - analyze: original.analyze, - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - ); - } - - @override - void analyze( - int identifier, - int imageProxyIdentifier, - ) { - final Analyzer instance = - _instanceManager.getInstanceWithWeakReference(identifier)!; - final ImageProxy imageProxy = - _instanceManager.getInstanceWithWeakReference(imageProxyIdentifier)!; - instance.analyze( - imageProxy, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart deleted file mode 100644 index 5a2af4e576a..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax_flutter_api_impls.dart +++ /dev/null @@ -1,219 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'analyzer.dart'; -import 'camera.dart'; -import 'camera2_camera_info.dart'; -import 'camera_control.dart'; -import 'camera_info.dart'; -import 'camera_selector.dart'; -import 'camera_state.dart'; -import 'camera_state_error.dart'; -import 'camerax_library.g.dart'; -import 'device_orientation_manager.dart'; -import 'exposure_state.dart'; -import 'focus_metering_result.dart'; -import 'image_proxy.dart'; -import 'java_object.dart'; -import 'live_data.dart'; -import 'observer.dart'; -import 'pending_recording.dart'; -import 'plane_proxy.dart'; -import 'process_camera_provider.dart'; -import 'recorder.dart'; -import 'recording.dart'; -import 'system_services.dart'; -import 'video_capture.dart'; -import 'zoom_state.dart'; - -/// Handles initialization of Flutter APIs for the Android CameraX library. -class AndroidCameraXCameraFlutterApis { - /// Creates a [AndroidCameraXCameraFlutterApis]. - AndroidCameraXCameraFlutterApis( - {JavaObjectFlutterApiImpl? javaObjectFlutterApiImpl, - CameraFlutterApiImpl? cameraFlutterApiImpl, - CameraInfoFlutterApiImpl? cameraInfoFlutterApiImpl, - CameraSelectorFlutterApiImpl? cameraSelectorFlutterApiImpl, - ProcessCameraProviderFlutterApiImpl? processCameraProviderFlutterApiImpl, - SystemServicesFlutterApiImpl? systemServicesFlutterApiImpl, - DeviceOrientationManagerFlutterApiImpl? - deviceOrientationManagerFlutterApiImpl, - CameraStateErrorFlutterApiImpl? cameraStateErrorFlutterApiImpl, - CameraStateFlutterApiImpl? cameraStateFlutterApiImpl, - PendingRecordingFlutterApiImpl? pendingRecordingFlutterApiImpl, - RecordingFlutterApiImpl? recordingFlutterApiImpl, - RecorderFlutterApiImpl? recorderFlutterApiImpl, - VideoCaptureFlutterApiImpl? videoCaptureFlutterApiImpl, - ExposureStateFlutterApiImpl? exposureStateFlutterApiImpl, - ZoomStateFlutterApiImpl? zoomStateFlutterApiImpl, - LiveDataFlutterApiImpl? liveDataFlutterApiImpl, - ObserverFlutterApiImpl? observerFlutterApiImpl, - ImageProxyFlutterApiImpl? imageProxyFlutterApiImpl, - PlaneProxyFlutterApiImpl? planeProxyFlutterApiImpl, - AnalyzerFlutterApiImpl? analyzerFlutterApiImpl, - CameraControlFlutterApiImpl? cameraControlFlutterApiImpl, - FocusMeteringResultFlutterApiImpl? focusMeteringResultFlutterApiImpl, - Camera2CameraInfoFlutterApiImpl? camera2CameraInfoFlutterApiImpl}) { - this.javaObjectFlutterApiImpl = - javaObjectFlutterApiImpl ?? JavaObjectFlutterApiImpl(); - this.cameraInfoFlutterApiImpl = - cameraInfoFlutterApiImpl ?? CameraInfoFlutterApiImpl(); - this.cameraSelectorFlutterApiImpl = - cameraSelectorFlutterApiImpl ?? CameraSelectorFlutterApiImpl(); - this.processCameraProviderFlutterApiImpl = - processCameraProviderFlutterApiImpl ?? - ProcessCameraProviderFlutterApiImpl(); - this.cameraFlutterApiImpl = cameraFlutterApiImpl ?? CameraFlutterApiImpl(); - this.systemServicesFlutterApiImpl = - systemServicesFlutterApiImpl ?? SystemServicesFlutterApiImpl(); - this.deviceOrientationManagerFlutterApiImpl = - deviceOrientationManagerFlutterApiImpl ?? - DeviceOrientationManagerFlutterApiImpl(); - this.cameraStateErrorFlutterApiImpl = - cameraStateErrorFlutterApiImpl ?? CameraStateErrorFlutterApiImpl(); - this.cameraStateFlutterApiImpl = - cameraStateFlutterApiImpl ?? CameraStateFlutterApiImpl(); - this.pendingRecordingFlutterApiImpl = - pendingRecordingFlutterApiImpl ?? PendingRecordingFlutterApiImpl(); - this.recordingFlutterApiImpl = - recordingFlutterApiImpl ?? RecordingFlutterApiImpl(); - this.recorderFlutterApiImpl = - recorderFlutterApiImpl ?? RecorderFlutterApiImpl(); - this.videoCaptureFlutterApiImpl = - videoCaptureFlutterApiImpl ?? VideoCaptureFlutterApiImpl(); - this.exposureStateFlutterApiImpl = - exposureStateFlutterApiImpl ?? ExposureStateFlutterApiImpl(); - this.zoomStateFlutterApiImpl = - zoomStateFlutterApiImpl ?? ZoomStateFlutterApiImpl(); - this.liveDataFlutterApiImpl = - liveDataFlutterApiImpl ?? LiveDataFlutterApiImpl(); - this.observerFlutterApiImpl = - observerFlutterApiImpl ?? ObserverFlutterApiImpl(); - this.analyzerFlutterApiImpl = - analyzerFlutterApiImpl ?? AnalyzerFlutterApiImpl(); - this.imageProxyFlutterApiImpl = - imageProxyFlutterApiImpl ?? ImageProxyFlutterApiImpl(); - this.planeProxyFlutterApiImpl = - planeProxyFlutterApiImpl ?? PlaneProxyFlutterApiImpl(); - this.cameraControlFlutterApiImpl = - cameraControlFlutterApiImpl ?? CameraControlFlutterApiImpl(); - this.focusMeteringResultFlutterApiImpl = - focusMeteringResultFlutterApiImpl ?? - FocusMeteringResultFlutterApiImpl(); - this.camera2CameraInfoFlutterApiImpl = - camera2CameraInfoFlutterApiImpl ?? Camera2CameraInfoFlutterApiImpl(); - } - - static bool _haveBeenSetUp = false; - - /// Mutable instance containing all Flutter Apis for Android CameraX Camera. - /// - /// This should only be changed for testing purposes. - static AndroidCameraXCameraFlutterApis instance = - AndroidCameraXCameraFlutterApis(); - - /// Handles callbacks methods for the native Java Object class. - late final JavaObjectFlutterApi javaObjectFlutterApiImpl; - - /// Flutter Api implementation for [CameraInfo]. - late final CameraInfoFlutterApiImpl cameraInfoFlutterApiImpl; - - /// Flutter Api implementation for [CameraSelector]. - late final CameraSelectorFlutterApiImpl cameraSelectorFlutterApiImpl; - - /// Flutter Api implementation for [ProcessCameraProvider]. - late final ProcessCameraProviderFlutterApiImpl - processCameraProviderFlutterApiImpl; - - /// Flutter Api implementation for [Camera]. - late final CameraFlutterApiImpl cameraFlutterApiImpl; - - /// Flutter Api implementation for [SystemServices]. - late final SystemServicesFlutterApiImpl systemServicesFlutterApiImpl; - - /// Flutter Api implementation for [DeviceOrientationManager]. - late final DeviceOrientationManagerFlutterApiImpl - deviceOrientationManagerFlutterApiImpl; - - /// Flutter Api implementation for [CameraStateError]. - late final CameraStateErrorFlutterApiImpl? cameraStateErrorFlutterApiImpl; - - /// Flutter Api implementation for [CameraState]. - late final CameraStateFlutterApiImpl? cameraStateFlutterApiImpl; - - /// Flutter Api implementation for [LiveData]. - late final LiveDataFlutterApiImpl? liveDataFlutterApiImpl; - - /// Flutter Api implementation for [Observer]. - late final ObserverFlutterApiImpl? observerFlutterApiImpl; - - /// Flutter Api for [PendingRecording]. - late final PendingRecordingFlutterApiImpl pendingRecordingFlutterApiImpl; - - /// Flutter Api for [Recording]. - late final RecordingFlutterApiImpl recordingFlutterApiImpl; - - /// Flutter Api for [Recorder]. - late final RecorderFlutterApiImpl recorderFlutterApiImpl; - - /// Flutter Api for [VideoCapture]. - late final VideoCaptureFlutterApiImpl videoCaptureFlutterApiImpl; - - /// Flutter Api for [ExposureState]. - late final ExposureStateFlutterApiImpl exposureStateFlutterApiImpl; - - /// Flutter Api for [ZoomState]. - late final ZoomStateFlutterApiImpl zoomStateFlutterApiImpl; - - /// Flutter Api implementation for [Analyzer]. - late final AnalyzerFlutterApiImpl analyzerFlutterApiImpl; - - /// Flutter Api implementation for [ImageProxy]. - late final ImageProxyFlutterApiImpl imageProxyFlutterApiImpl; - - /// Flutter Api implementation for [PlaneProxy]. - late final PlaneProxyFlutterApiImpl planeProxyFlutterApiImpl; - - /// Flutter Api implementation for [CameraControl]. - late final CameraControlFlutterApiImpl cameraControlFlutterApiImpl; - - /// Flutter Api implementation for [FocusMeteringResult]. - late final FocusMeteringResultFlutterApiImpl - focusMeteringResultFlutterApiImpl; - - /// Flutter Api implementation for [Camera2CameraInfo]. - late final Camera2CameraInfoFlutterApiImpl camera2CameraInfoFlutterApiImpl; - - /// Ensures all the Flutter APIs have been setup to receive calls from native code. - void ensureSetUp() { - if (!_haveBeenSetUp) { - JavaObjectFlutterApi.setup(javaObjectFlutterApiImpl); - CameraInfoFlutterApi.setup(cameraInfoFlutterApiImpl); - CameraSelectorFlutterApi.setup(cameraSelectorFlutterApiImpl); - ProcessCameraProviderFlutterApi.setup( - processCameraProviderFlutterApiImpl); - CameraFlutterApi.setup(cameraFlutterApiImpl); - SystemServicesFlutterApi.setup(systemServicesFlutterApiImpl); - DeviceOrientationManagerFlutterApi.setup( - deviceOrientationManagerFlutterApiImpl); - CameraStateErrorFlutterApi.setup(cameraStateErrorFlutterApiImpl); - CameraStateFlutterApi.setup(cameraStateFlutterApiImpl); - PendingRecordingFlutterApi.setup(pendingRecordingFlutterApiImpl); - RecordingFlutterApi.setup(recordingFlutterApiImpl); - RecorderFlutterApi.setup(recorderFlutterApiImpl); - VideoCaptureFlutterApi.setup(videoCaptureFlutterApiImpl); - ExposureStateFlutterApi.setup(exposureStateFlutterApiImpl); - ZoomStateFlutterApi.setup(zoomStateFlutterApiImpl); - AnalyzerFlutterApi.setup(analyzerFlutterApiImpl); - ImageProxyFlutterApi.setup(imageProxyFlutterApiImpl); - PlaneProxyFlutterApi.setup(planeProxyFlutterApiImpl); - LiveDataFlutterApi.setup(liveDataFlutterApiImpl); - ObserverFlutterApi.setup(observerFlutterApiImpl); - CameraControlFlutterApi.setup(cameraControlFlutterApiImpl); - FocusMeteringResultFlutterApi.setup(focusMeteringResultFlutterApiImpl); - Camera2CameraInfoFlutterApi.setup(camera2CameraInfoFlutterApiImpl); - _haveBeenSetUp = true; - } - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/aspect_ratio_strategy.dart b/packages/camera/camera_android_camerax/lib/src/aspect_ratio_strategy.dart deleted file mode 100644 index 621f4ddb2ed..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/aspect_ratio_strategy.dart +++ /dev/null @@ -1,138 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// The aspect ratio of a UseCase. -/// -/// Aspect ratio is the ratio of width to height. -/// -/// See https://developer.android.com/reference/androidx/camera/core/AspectRatio. -class AspectRatio { - AspectRatio._(); - - /// 4:3 standard aspect ratio. - /// - /// See https://developer.android.com/reference/androidx/camera/core/AspectRatio#RATIO_4_3(). - static const int ratio4To3 = 0; - - /// 16:9 standard aspect ratio. - /// - /// See https://developer.android.com/reference/androidx/camera/core/AspectRatio#RATIO_16_9(). - static const int ratio16To9 = 1; - - /// The aspect ratio representing no preference for aspect ratio. - /// - /// See https://developer.android.com/reference/androidx/camera/core/AspectRatio#RATIO_DEFAULT(). - static const int ratioDefault = -1; -} - -/// The aspect ratio strategy defines the sequence of aspect ratios that are -/// used to select the best size for a particular image. -/// -/// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/AspectRatioStrategy. -@immutable -class AspectRatioStrategy extends JavaObject { - /// Construct a [AspectRatioStrategy]. - AspectRatioStrategy({ - required this.preferredAspectRatio, - required this.fallbackRule, - super.binaryMessenger, - super.instanceManager, - }) : _api = _AspectRatioStrategyHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - super.detached() { - _api.createFromInstances(this, preferredAspectRatio, fallbackRule); - } - - /// Instantiates a [AspectRatioStrategy] without creating and attaching to an - /// instance of the associated native class. - /// - /// This should only be used outside of tests by subclasses created by this - /// library or to create a copy for an [InstanceManager]. - AspectRatioStrategy.detached({ - required this.preferredAspectRatio, - required this.fallbackRule, - super.binaryMessenger, - super.instanceManager, - }) : _api = _AspectRatioStrategyHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - super.detached(); - - /// CameraX doesn't fall back to select sizes of any other aspect ratio when - /// this fallback rule is used. - /// - /// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_NONE(). - static const int fallbackRuleNone = 0; - - /// CameraX automatically chooses the next best aspect ratio which contains - /// the closest field of view (FOV) of the camera sensor, from the remaining - /// options. - /// - /// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). - static const int fallbackRuleAuto = 1; - - final _AspectRatioStrategyHostApiImpl _api; - - /// The preferred aspect ratio captured by the camera. - final int preferredAspectRatio; - - /// The specified fallback rule for choosing the aspect ratio when the - /// preferred aspect ratio is not available. - final int fallbackRule; -} - -/// Host API implementation of [AspectRatioStrategy]. -class _AspectRatioStrategyHostApiImpl extends AspectRatioStrategyHostApi { - /// Constructs an [_AspectRatioStrategyHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _AspectRatioStrategyHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - /// Creates a [AspectRatioStrategy] on the native side with the preferred - /// aspect ratio and fallback rule specified. - Future createFromInstances( - AspectRatioStrategy instance, - int preferredAspectRatio, - int fallbackRule, - ) { - return create( - instanceManager.addDartCreatedInstance( - instance, - onCopy: (AspectRatioStrategy original) => AspectRatioStrategy.detached( - preferredAspectRatio: original.preferredAspectRatio, - fallbackRule: original.fallbackRule, - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - ), - preferredAspectRatio, - fallbackRule, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camera.dart b/packages/camera/camera_android_camerax/lib/src/camera.dart deleted file mode 100644 index 1001450353b..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camera.dart +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camera_control.dart'; -import 'camera_info.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// The interface used to control the flow of data of use cases, control the -/// camera, and publich the state of the camera. -/// -/// See https://developer.android.com/reference/androidx/camera/core/Camera. -@immutable -class Camera extends JavaObject { - /// Constructs a [Camera] that is not automatically attached to a native object. - Camera.detached( - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _CameraHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _CameraHostApiImpl _api; - - /// Retrieves the [CameraInfo] instance that contains information about this - /// instance. - Future getCameraInfo() async { - return _api.getCameraInfoFromInstance(this); - } - - /// Retrieves the [CameraControl] instance that provides asynchronous - /// operations like zoom and focus & metering for this instance. - Future getCameraControl() async { - return _api.getCameraControlFromInstance(this); - } -} - -/// Host API implementation of [Camera]. -class _CameraHostApiImpl extends CameraHostApi { - /// Constructs a [_CameraHostApiImpl]. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. - _CameraHostApiImpl({this.binaryMessenger, InstanceManager? instanceManager}) - : super(binaryMessenger: binaryMessenger) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Gets the [CameraInfo] associated with the specified [Camera] instance. - Future getCameraInfoFromInstance(Camera instance) async { - final int identifier = instanceManager.getIdentifier(instance)!; - final int cameraInfoId = await getCameraInfo(identifier); - - return instanceManager - .getInstanceWithWeakReference(cameraInfoId)!; - } - - /// Gets the [CameraControl] associated with the specified [Camera] instance. - Future getCameraControlFromInstance(Camera instance) async { - final int identifier = instanceManager.getIdentifier(instance)!; - final int cameraControlId = await getCameraControl(identifier); - - return instanceManager - .getInstanceWithWeakReference(cameraControlId)!; - } -} - -/// Flutter API implementation of [Camera]. -class CameraFlutterApiImpl implements CameraFlutterApi { - /// Constructs a [CameraFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - CameraFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create(int identifier) { - _instanceManager.addHostCreatedInstance( - Camera.detached( - binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), - identifier, - onCopy: (Camera original) { - return Camera.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camera2_camera_control.dart b/packages/camera/camera_android_camerax/lib/src/camera2_camera_control.dart deleted file mode 100644 index 87fa9734a5b..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camera2_camera_control.dart +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camera_control.dart'; -import 'camerax_library.g.dart'; -import 'capture_request_options.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'system_services.dart'; - -/// Class that provides ability to interoperate with android.hardware.camera2 -/// APIs and apply options to its specific controls like capture request -/// options. -/// -/// See https://developer.android.com/reference/androidx/camera/camera2/interop/Camera2CameraControl#from(androidx.camera.core.CameraControl). -@immutable -class Camera2CameraControl extends JavaObject { - /// Creates a [Camera2CameraControl]. - Camera2CameraControl( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.cameraControl}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _Camera2CameraControlHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - _api.createFromInstances(this, cameraControl); - } - - /// Constructs a [Camera2CameraControl] that is not automatically attached to a - /// native object. - Camera2CameraControl.detached( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.cameraControl}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _Camera2CameraControlHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _Camera2CameraControlHostApiImpl _api; - - /// The [CameraControl] info that this instance is based on. - /// - /// Note that options specified with this [Camera2CameraControl] instance will - /// have higher priority than [cameraControl]. - final CameraControl cameraControl; - - /// Updates capture session with options that the specified - /// [CaptureRequestOptions] contains. - /// - /// Options will be merged with existing options, and if conflicting with what - /// was previously set, these options will override those pre-existing. Once - /// merged, these values will be submitted with every repeating and single - /// capture request issued by CameraX. - Future addCaptureRequestOptions( - CaptureRequestOptions captureRequestOptions) { - return _api.addCaptureRequestOptionsFromInstances( - this, captureRequestOptions); - } -} - -/// Host API implementation of [Camera2CameraControl]. -class _Camera2CameraControlHostApiImpl extends Camera2CameraControlHostApi { - /// Constructs a [_Camera2CameraControlHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _Camera2CameraControlHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default [BinaryMessenger] will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - /// Creates a [Camera2CameraControl] instance derived from the specified - /// [CameraControl] instance. - Future createFromInstances( - Camera2CameraControl instance, - CameraControl cameraControl, - ) { - return create( - instanceManager.addDartCreatedInstance( - instance, - onCopy: (Camera2CameraControl original) => - Camera2CameraControl.detached( - cameraControl: original.cameraControl, - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - ), - instanceManager.getIdentifier(cameraControl)!, - ); - } - - /// Updates capture session corresponding to the specified - /// [Camera2CameraControl] instance with options that the specified - /// [CaptureRequestOptions] contains. - Future addCaptureRequestOptionsFromInstances( - Camera2CameraControl instance, - CaptureRequestOptions captureRequestOptions, - ) async { - try { - return addCaptureRequestOptions( - instanceManager.getIdentifier(instance)!, - instanceManager.getIdentifier(captureRequestOptions)!, - ); - } on PlatformException catch (e) { - SystemServices.cameraErrorStreamController.add(e.message ?? - 'The camera was unable to set new capture request options due to new options being unavailable or the camera being closed.'); - } - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camera2_camera_info.dart b/packages/camera/camera_android_camerax/lib/src/camera2_camera_info.dart deleted file mode 100644 index 88b44238f3b..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camera2_camera_info.dart +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camera_info.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Interface for retrieving Camera2-related camera information. -/// -/// See https://developer.android.com/reference/androidx/camera/camera2/interop/Camera2CameraInfo. -@immutable -class Camera2CameraInfo extends JavaObject { - /// Constructs a [Camera2CameraInfo] that is not automatically attached to a native object. - Camera2CameraInfo.detached( - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _Camera2CameraInfoHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _Camera2CameraInfoHostApiImpl _api; - - /// Retrieves [Camera2CameraInfo] instance from [cameraInfo]. - static Future from(CameraInfo cameraInfo, - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) { - final _Camera2CameraInfoHostApiImpl api = _Camera2CameraInfoHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - return api.fromInstances(cameraInfo); - } - - /// Retrieves the value of `CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL` - /// for the device to which this instance pertains to. - /// - /// See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL - /// for more information. - Future getSupportedHardwareLevel() => - _api.getSupportedHardwareLevelFromInstance(this); - - /// Gets the camera ID. - /// - /// The ID may change based on the internal configuration of the camera to which - /// this instances pertains. - Future getCameraId() => _api.getCameraIdFromInstance(this); - - /// Retrieves the orientation of the camera sensor. - Future getSensorOrientation() => - _api.getSensorOrientationFromInstance(this); -} - -/// Host API implementation of [Camera2CameraInfo]. -class _Camera2CameraInfoHostApiImpl extends Camera2CameraInfoHostApi { - /// Constructs a [_Camera2CameraInfoHostApiImpl]. - _Camera2CameraInfoHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) - : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default [BinaryMessenger] will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Gets sensor orientation degrees of the specified [CameraInfo] instance. - Future fromInstances( - CameraInfo cameraInfo, - ) async { - final int? cameraInfoIdentifier = instanceManager.getIdentifier(cameraInfo); - return instanceManager.getInstanceWithWeakReference( - await createFrom(cameraInfoIdentifier!))!; - } - - Future getSupportedHardwareLevelFromInstance( - Camera2CameraInfo instance) { - final int? identifier = instanceManager.getIdentifier(instance); - return getSupportedHardwareLevel(identifier!); - } - - Future getCameraIdFromInstance(Camera2CameraInfo instance) { - final int? identifier = instanceManager.getIdentifier(instance); - return getCameraId(identifier!); - } - - Future getSensorOrientationFromInstance(Camera2CameraInfo instance) { - final int? identifier = instanceManager.getIdentifier(instance); - return getSensorOrientation(identifier!); - } -} - -/// Flutter API Implementation of [Camera2CameraInfo]. -class Camera2CameraInfoFlutterApiImpl implements Camera2CameraInfoFlutterApi { - /// Constructs an [Camera2CameraInfoFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - Camera2CameraInfoFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create(int identifier) { - _instanceManager.addHostCreatedInstance( - Camera2CameraInfo.detached( - binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), - identifier, - onCopy: (Camera2CameraInfo original) { - return Camera2CameraInfo.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camera_control.dart b/packages/camera/camera_android_camerax/lib/src/camera_control.dart deleted file mode 100644 index 0a307f3afc4..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camera_control.dart +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger, PlatformException; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'focus_metering_action.dart'; -import 'focus_metering_result.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'system_services.dart'; - -/// The interface that provides asynchronous operations like zoom and focus & -/// metering, which affects output of all [UseCase]s currently bound to the -/// corresponding [Camera] instance. -/// -/// See https://developer.android.com/reference/androidx/camera/core/CameraControl. -@immutable -class CameraControl extends JavaObject { - /// Constructs a [CameraControl] that is not automatically attached to a native object. - CameraControl.detached( - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _CameraControlHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _CameraControlHostApiImpl _api; - - /// Enables or disables the torch of related [Camera] instance. - /// - /// If the torch mode was unable to be changed, an error message will be - /// added to [SystemServices.cameraErrorStreamController]. - Future enableTorch(bool torch) async { - return _api.enableTorchFromInstance(this, torch); - } - - /// Sets zoom of related [Camera] by ratio. - /// - /// Ratio should be between what the `minZoomRatio` and `maxZoomRatio` of the - /// [ZoomState] of the [CameraInfo] instance that is retrievable from the same - /// [Camera] instance; otherwise, an error message will be added to - /// [SystemServices.cameraErrorStreamController]. - Future setZoomRatio(double ratio) async { - return _api.setZoomRatioFromInstance(this, ratio); - } - - /// Starts a focus and metering action configured by the [FocusMeteringAction]. - /// - /// Will trigger an auto focus action and enable auto focus/auto exposure/ - /// auto white balance metering regions. - /// - /// Only one [FocusMeteringAction] is allowed to run at a time; if multiple - /// are executed in a row, only the latest one will work and other actions - /// will be canceled. - /// - /// Returns null if focus and metering could not be started. - Future startFocusAndMetering( - FocusMeteringAction action) { - return _api.startFocusAndMeteringFromInstance(this, action); - } - - /// Cancels current [FocusMeteringAction] and clears auto focus/auto exposure/ - /// auto white balance regions. - Future cancelFocusAndMetering() => - _api.cancelFocusAndMeteringFromInstance(this); - - /// Sets the exposure compensation value for related [Camera] and returns the - /// new target exposure value. - /// - /// The exposure compensation value set on the camera must be within the range - /// of the current [ExposureState]'s `exposureCompensationRange` for the call - /// to succeed. - /// - /// Only one [setExposureCompensationIndex] is allowed to run at a time; if - /// multiple are executed in a row, only the latest setting will be kept in - /// the camera. - /// - /// Returns null if the exposure compensation index failed to be set. - Future setExposureCompensationIndex(int index) async { - return _api.setExposureCompensationIndexFromInstance(this, index); - } -} - -/// Host API implementation of [CameraControl]. -class _CameraControlHostApiImpl extends CameraControlHostApi { - /// Constructs a [_CameraControlHostApiImpl]. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. - _CameraControlHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) - : super(binaryMessenger: binaryMessenger) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Enables or disables the torch for the specified [CameraControl] instance. - Future enableTorchFromInstance( - CameraControl instance, bool torch) async { - final int identifier = instanceManager.getIdentifier(instance)!; - try { - await enableTorch(identifier, torch); - } on PlatformException catch (e) { - SystemServices.cameraErrorStreamController - .add(e.message ?? 'The camera was unable to change torch modes.'); - } - } - - /// Sets zoom of specified [CameraControl] instance by ratio. - Future setZoomRatioFromInstance( - CameraControl instance, double ratio) async { - final int identifier = instanceManager.getIdentifier(instance)!; - try { - await setZoomRatio(identifier, ratio); - } on PlatformException catch (e) { - SystemServices.cameraErrorStreamController.add(e.message ?? - 'Zoom ratio was unable to be set. If ratio was not out of range, newer value may have been set; otherwise, the camera may be closed.'); - } - } - - /// Starts a focus and metering action configured by the [FocusMeteringAction] - /// for the specified [CameraControl] instance. - Future startFocusAndMeteringFromInstance( - CameraControl instance, FocusMeteringAction action) async { - final int cameraControlIdentifier = - instanceManager.getIdentifier(instance)!; - final int actionIdentifier = instanceManager.getIdentifier(action)!; - try { - final int? focusMeteringResultId = await startFocusAndMetering( - cameraControlIdentifier, actionIdentifier); - if (focusMeteringResultId == null) { - SystemServices.cameraErrorStreamController.add( - 'Starting focus and metering was canceled due to the camera being closed or a new request being submitted.'); - return Future.value(); - } - return instanceManager.getInstanceWithWeakReference( - focusMeteringResultId); - } on PlatformException catch (e) { - SystemServices.cameraErrorStreamController - .add(e.message ?? 'Starting focus and metering failed.'); - // Surfacing error to differentiate an operation cancellation from an - // illegal argument exception at a plugin layer. - rethrow; - } - } - - /// Cancels current [FocusMeteringAction] and clears AF/AE/AWB regions for the - /// specified [CameraControl] instance. - Future cancelFocusAndMeteringFromInstance( - CameraControl instance) async { - final int identifier = instanceManager.getIdentifier(instance)!; - await cancelFocusAndMetering(identifier); - } - - /// Sets exposure compensation index for specified [CameraControl] instance - /// and returns the new target exposure value. - Future setExposureCompensationIndexFromInstance( - CameraControl instance, int index) async { - final int identifier = instanceManager.getIdentifier(instance)!; - try { - final int? exposureCompensationIndex = - await setExposureCompensationIndex(identifier, index); - if (exposureCompensationIndex == null) { - SystemServices.cameraErrorStreamController.add( - 'Setting exposure compensation index was canceled due to the camera being closed or a new request being submitted.'); - return Future.value(); - } - return exposureCompensationIndex; - } on PlatformException catch (e) { - SystemServices.cameraErrorStreamController.add(e.message ?? - 'Setting the camera exposure compensation index failed.'); - // Surfacing error to plugin layer to maintain consistency of - // setExposureOffset implementation across platform implementations. - rethrow; - } - } -} - -/// Flutter API implementation of [CameraControl]. -class CameraControlFlutterApiImpl extends CameraControlFlutterApi { - /// Constructs a [CameraControlFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - CameraControlFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create(int identifier) { - _instanceManager.addHostCreatedInstance( - CameraControl.detached( - binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), - identifier, - onCopy: (CameraControl original) { - return CameraControl.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camera_info.dart b/packages/camera/camera_android_camerax/lib/src/camera_info.dart deleted file mode 100644 index 6c0a62f9fd5..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camera_info.dart +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camera_state.dart'; -import 'camerax_library.g.dart'; -import 'exposure_state.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'live_data.dart'; -import 'zoom_state.dart'; - -/// The metadata of a camera. -/// -/// See https://developer.android.com/reference/androidx/camera/core/CameraInfo. -@immutable -class CameraInfo extends JavaObject { - /// Constructs a [CameraInfo] that is not automatically attached to a native object. - CameraInfo.detached( - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _CameraInfoHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _CameraInfoHostApiImpl _api; - - /// Gets sensor orientation degrees of the camera. - Future getSensorRotationDegrees() => - _api.getSensorRotationDegreesFromInstance(this); - - /// Starts listening for the camera closing. - Future> getCameraState() => - _api.getCameraStateFromInstance(this); - - /// Gets the exposure state of the camera. - Future getExposureState() => - _api.getExposureStateFromInstance(this); - - /// Gets the live zoom state of the camera. - Future> getZoomState() => - _api.getZoomStateFromInstance(this); -} - -/// Host API implementation of [CameraInfo]. -class _CameraInfoHostApiImpl extends CameraInfoHostApi { - /// Constructs a [_CameraInfoHostApiImpl]. - _CameraInfoHostApiImpl( - {super.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Gets sensor orientation degrees of the specified [CameraInfo] instance. - Future getSensorRotationDegreesFromInstance( - CameraInfo instance, - ) async { - final int sensorRotationDegrees = await getSensorRotationDegrees( - instanceManager.getIdentifier(instance)!); - return sensorRotationDegrees; - } - - /// Gets the [LiveData] that represents the state of the camera - /// to which the CameraInfo [instance] pertains. - Future> getCameraStateFromInstance( - CameraInfo instance) async { - final int? identifier = instanceManager.getIdentifier(instance); - final int liveCameraStateId = await getCameraState(identifier!); - final LiveData liveCameraState = - instanceManager.getInstanceWithWeakReference>( - liveCameraStateId)!; - return liveCameraState; - } - - /// Gets the [ExposureState] of the specified [CameraInfo] instance. - Future getExposureStateFromInstance( - CameraInfo instance) async { - final int? identifier = instanceManager.getIdentifier(instance); - final int exposureStateIdentifier = await getExposureState(identifier!); - return instanceManager - .getInstanceWithWeakReference(exposureStateIdentifier)!; - } - - /// Gets the [LiveData] of the specified [CameraInfo] instance. - Future> getZoomStateFromInstance( - CameraInfo instance) async { - final int? identifier = instanceManager.getIdentifier(instance); - final int zoomStateIdentifier = await getZoomState(identifier!); - return instanceManager.getInstanceWithWeakReference>( - zoomStateIdentifier)!; - } -} - -/// Flutter API implementation of [CameraInfo]. -class CameraInfoFlutterApiImpl extends CameraInfoFlutterApi { - /// Constructs a [CameraInfoFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - CameraInfoFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create(int identifier) { - _instanceManager.addHostCreatedInstance( - CameraInfo.detached( - binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), - identifier, - onCopy: (CameraInfo original) { - return CameraInfo.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camera_metadata.dart b/packages/camera/camera_android_camerax/lib/src/camera_metadata.dart deleted file mode 100644 index 65098b747c6..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camera_metadata.dart +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:meta/meta.dart' show immutable; - -/// Base class for camera controls and information. -/// -/// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata. -@immutable -class CameraMetadata { - /// Constant that specifies a camera device does not have enough to quality as - /// a [infoSupportedHardwareLevelFull] level device or better. - /// - /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED. - static const int infoSupportedHardwareLevelLimited = 0; - - /// Constant that specifies a camera device is capable of supporting advanced - /// imaging applications. - /// - /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_FULL. - static const int infoSupportedHardwareLevelFull = 1; - - /// Constant that specifies a camera device is running in backward - /// compatibility mode. - /// - /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY. - static const int infoSupportedHardwareLevelLegacy = 2; - - /// Constant that specifies a camera device is capable of YUV reprocessing and - /// RAW data capture in addition to [infoSupportedHardwareLevelFull] level - /// capabilities. - /// - /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. - static const int infoSupportedHardwareLevel3 = 3; - - /// Constant taht specifies a camera device is backed by an external camera - /// connected to this Android device. - /// - /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL. - static const int infoSupportedHardwareLevelExternal = 4; -} diff --git a/packages/camera/camera_android_camerax/lib/src/camera_selector.dart b/packages/camera/camera_android_camerax/lib/src/camera_selector.dart deleted file mode 100644 index 0e489d42457..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camera_selector.dart +++ /dev/null @@ -1,203 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camera_info.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Selects a camera for use. -/// -/// See https://developer.android.com/reference/androidx/camera/core/CameraSelector. -@immutable -class CameraSelector extends JavaObject { - /// Creates a [CameraSelector]. - CameraSelector( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.lensFacing}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = CameraSelectorHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - _api.createFromInstance(this, lensFacing); - } - - /// Creates a detached [CameraSelector]. - CameraSelector.detached( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.lensFacing}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = CameraSelectorHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final CameraSelectorHostApiImpl _api; - - /// ID for front facing lens. - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_FRONT(). - static const int lensFacingFront = 0; - - /// ID for back facing lens. - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). - static const int lensFacingBack = 1; - - /// ID for external lens. - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_EXTERNAL(). - static const int lensFacingExternal = 2; - - /// ID for unknown lens. - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_UNKNOWN(). - static const int lensFacingUnknown = -1; - - /// Selector for default front facing camera. - static CameraSelector getDefaultFrontCamera({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) { - return CameraSelector( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - lensFacing: lensFacingFront, - ); - } - - /// Selector for default back facing camera. - static CameraSelector getDefaultBackCamera({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) { - return CameraSelector( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - lensFacing: lensFacingBack, - ); - } - - /// Lens direction of this selector. - final int? lensFacing; - - /// Filters available cameras based on provided [CameraInfo]s. - Future> filter(List cameraInfos) { - return _api.filterFromInstance(this, cameraInfos); - } -} - -/// Host API implementation of [CameraSelector]. -class CameraSelectorHostApiImpl extends CameraSelectorHostApi { - /// Constructs a [CameraSelectorHostApiImpl]. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an `InstanceManager` is being created. - CameraSelectorHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) - : super(binaryMessenger: binaryMessenger) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Creates a [CameraSelector] with the lens direction provided if specified. - void createFromInstance(CameraSelector instance, int? lensFacing) { - int? identifier = instanceManager.getIdentifier(instance); - identifier ??= instanceManager.addDartCreatedInstance(instance, - onCopy: (CameraSelector original) { - return CameraSelector.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - lensFacing: original.lensFacing); - }); - - create(identifier, lensFacing); - } - - /// Filters a list of [CameraInfo]s based on the [CameraSelector]. - Future> filterFromInstance( - CameraSelector instance, - List cameraInfos, - ) async { - int? identifier = instanceManager.getIdentifier(instance); - identifier ??= instanceManager.addDartCreatedInstance(instance, - onCopy: (CameraSelector original) { - return CameraSelector.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - lensFacing: original.lensFacing); - }); - - final List cameraInfoIds = cameraInfos - .map((CameraInfo info) => instanceManager.getIdentifier(info)!) - .toList(); - final List filteredCameraInfoIds = - await filter(identifier, cameraInfoIds); - if (filteredCameraInfoIds.isEmpty) { - return []; - } - return filteredCameraInfoIds - .map((int? id) => - instanceManager.getInstanceWithWeakReference(id!)!) - .toList(); - } -} - -/// Flutter API implementation of [CameraSelector]. -class CameraSelectorFlutterApiImpl implements CameraSelectorFlutterApi { - /// Constructs a [CameraSelectorFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - CameraSelectorFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create(int identifier, int? lensFacing) { - _instanceManager.addHostCreatedInstance( - CameraSelector.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - lensFacing: lensFacing), - identifier, - onCopy: (CameraSelector original) { - return CameraSelector.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - lensFacing: original.lensFacing); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camera_state.dart b/packages/camera/camera_android_camerax/lib/src/camera_state.dart deleted file mode 100644 index 1e8586a4023..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camera_state.dart +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart'; - -import 'camera_state_error.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// A snapshot of the camera state. -/// -/// See https://developer.android.com/reference/androidx/camera/core/CameraState. -@immutable -class CameraState extends JavaObject { - /// Constructs a [CameraState] that is not automatically attached to a native object. - CameraState.detached( - {super.binaryMessenger, - super.instanceManager, - required this.type, - this.error}) - : super.detached(); - - /// The type of state that the camera is in. - final CameraStateType type; - - /// The error that the camera has encountered, if any. - final CameraStateError? error; - - /// Error code indicating that the camera device is already in use. - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_IN_USE() - static const int errorCameraInUse = 1; - - /// Error code indicating that the limit number of open cameras has been - /// reached. - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_MAX_CAMERAS_IN_USE() - static const int errorMaxCamerasInUse = 2; - - /// Error code indicating that the camera device has encountered a recoverable - /// error. - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_OTHER_RECOVERABLE_ERROR() - static const int errorOtherRecoverableError = 3; - - /// Error code inidcating that configuring the camera has failed. - /// - /// https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_STREAM_CONFIG() - static const int errorStreamConfig = 4; - - /// Error code indicating that the camera device could not be opened due to a - /// device policy. - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() - static const int errorCameraDisabled = 5; - - /// Error code indicating that the camera device was closed due to a fatal - /// error. - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_FATAL_ERROR() - static const int errorCameraFatalError = 6; - - /// Error code indicating that the camera could not be opened because - /// "Do Not Disturb" mode is enabled on devices affected by a bug in Android 9 - /// (API level 28). - /// - /// See https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_DO_NOT_DISTURB_MODE_ENABLED() - static const int errorDoNotDisturbModeEnabled = 7; -} - -/// Flutter API implementation for [CameraState]. -/// -/// This class may handle instantiating and adding Dart instances that are -/// attached to a native instance or receiving callback methods from an -/// overridden native class. -@protected -class CameraStateFlutterApiImpl implements CameraStateFlutterApi { - /// Constructs a [CameraStateFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - CameraStateFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create( - int identifier, - CameraStateTypeData type, - int? errorIdentifier, - ) { - _instanceManager.addHostCreatedInstance( - CameraState.detached( - type: type.value, - error: errorIdentifier == null - ? null - : _instanceManager.getInstanceWithWeakReference( - errorIdentifier, - ), - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - identifier, - onCopy: (CameraState original) => CameraState.detached( - type: original.type, - error: original.error, - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camera_state_error.dart b/packages/camera/camera_android_camerax/lib/src/camera_state_error.dart deleted file mode 100644 index fedb85c9e8a..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camera_state_error.dart +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart'; - -import 'camera_state.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// The error that a camera has encountered. -/// -/// See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. -@immutable -class CameraStateError extends JavaObject { - /// Constructs a [CameraStateError] that is not automatically attached to a native object. - CameraStateError.detached( - {super.binaryMessenger, super.instanceManager, required this.code}) - : super.detached(); - - /// The code of this error. - /// - /// Will map to one of the [CameraState] error codes that map to the CameraX - /// CameraState codes: - /// https://developer.android.com/reference/androidx/camera/core/CameraState#constants_1. - final int code; - - /// Gets a description of this error corresponding to its [code]. - /// - /// This is not directly provided by the CameraX library, but is determined - /// based on the description of the [code]. - /// - /// Provided for developers to use for error handling. - String getDescription() { - String description = ''; - switch (code) { - case CameraState.errorCameraInUse: - description = - 'The camera was already in use, possibly by a higher-priority camera client.'; - case CameraState.errorMaxCamerasInUse: - description = - 'The limit number of open cameras has been reached, and more cameras cannot be opened until other instances are closed.'; - case CameraState.errorOtherRecoverableError: - description = - 'The camera device has encountered a recoverable error. CameraX will attempt to recover from the error.'; - case CameraState.errorStreamConfig: - description = 'Configuring the camera has failed.'; - case CameraState.errorCameraDisabled: - description = - 'The camera device could not be opened due to a device policy. Thia may be caused by a client from a background process attempting to open the camera.'; - case CameraState.errorCameraFatalError: - description = - 'The camera was closed due to a fatal error. This may require the Android device be shut down and restarted to restore camera function or may indicate a persistent camera hardware problem.'; - case CameraState.errorDoNotDisturbModeEnabled: - description = - 'The camera could not be opened because "Do Not Disturb" mode is enabled. Please disable this mode, and try opening the camera again.'; - default: - description = - 'There was an unspecified issue with the current camera state.'; - } - - return '$code : $description'; - } -} - -/// Flutter API implementation for [CameraStateError]. -/// -/// This class may handle instantiating and adding Dart instances that are -/// attached to a native instance or receiving callback methods from an -/// overridden native class. -@protected -class CameraStateErrorFlutterApiImpl implements CameraStateErrorFlutterApi { - /// Constructs a [CameraStateErrorFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. If left null, it - /// will default to the global instance defined in [JavaObject]. - CameraStateErrorFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create( - int identifier, - int code, - ) { - _instanceManager.addHostCreatedInstance( - CameraStateError.detached( - code: code, - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - identifier, - onCopy: (CameraStateError original) => CameraStateError.detached( - code: original.code, - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index ccb453f9f95..d107084310c 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -126,7 +126,8 @@ class Observer extends camerax.Observer { required void Function(Observer instance, T value) onChanged, super.pigeon_binaryMessenger, super.pigeon_instanceManager, - }) : super( + }) : _genericOnChanged = onChanged, + super( onChanged: ( camerax.Observer instance, Object value, @@ -136,15 +137,25 @@ class Observer extends camerax.Observer { ); Observer.detached({ - required super.onChanged, + required void Function(Observer instance, T value) onChanged, super.pigeon_binaryMessenger, super.pigeon_instanceManager, - }) : super.pigeon_detached(); + }) : _genericOnChanged = onChanged, + super.pigeon_detached( + onChanged: ( + camerax.Observer instance, + Object value, + ) { + onChanged(instance as Observer, value as T); + }, + ); + + final void Function(Observer instance, T value) _genericOnChanged; @override Observer pigeon_copy() { return Observer.detached( - onChanged: onChanged, + onChanged: _genericOnChanged, pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, ); diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart deleted file mode 100644 index a9461eaaae0..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ /dev/null @@ -1,3689 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// Autogenerated from Pigeon (v9.2.5), do not edit directly. -// See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import - -import 'dart:async'; -import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; - -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; -import 'package:flutter/services.dart'; - -/// The states the camera can be in. -/// -/// See https://developer.android.com/reference/androidx/camera/core/CameraState.Type. -enum CameraStateType { - closed, - closing, - open, - opening, - pendingOpen, -} - -/// The types (T) properly wrapped to be used as a LiveData. -/// -/// If you need to add another type to support a type S to use a LiveData in -/// this plugin, ensure the following is done on the Dart side: -/// -/// * In `camera_android_camerax/lib/src/live_data.dart`, add new cases for S in -/// `_LiveDataHostApiImpl#getValueFromInstances` to get the current value of -/// type S from a LiveData instance and in `LiveDataFlutterApiImpl#create` -/// to create the expected type of LiveData when requested. -/// -/// On the native side, ensure the following is done: -/// -/// * Make sure `LiveDataHostApiImpl#getValue` is updated to properly return -/// identifiers for instances of type S. -/// * Update `ObserverFlutterApiWrapper#onChanged` to properly handle receiving -/// calls with instances of type S if a LiveData instance is observed. -enum LiveDataSupportedType { - cameraState, - zoomState, -} - -/// Video quality constraints that will be used by a QualitySelector to choose -/// an appropriate video resolution. -/// -/// These are pre-defined quality constants that are universally used for video. -/// -/// See https://developer.android.com/reference/androidx/camera/video/Quality. -enum VideoQuality { - SD, - HD, - FHD, - UHD, - lowest, - highest, -} - -/// Fallback rules for selecting video resolution. -/// -/// See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. -enum VideoResolutionFallbackRule { - higherQualityOrLowerThan, - higherQualityThan, - lowerQualityOrHigherThan, - lowerQualityThan, -} - -/// Video recording status. -/// -/// See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. -enum VideoRecordEvent { - start, - finalize, -} - -/// The types of capture request options this plugin currently supports. -/// -/// If you need to add another option to support, ensure the following is done -/// on the Dart side: -/// -/// * In `camera_android_camerax/lib/src/capture_request_options.dart`, add new cases for this -/// option in `_CaptureRequestOptionsHostApiImpl#createFromInstances` -/// to create the expected Map entry of option key index and value to send to -/// the native side. -/// -/// On the native side, ensure the following is done: -/// -/// * Update `CaptureRequestOptionsHostApiImpl#create` to set the correct -/// `CaptureRequest` key with a valid value type for this option. -/// -/// See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest -/// for the sorts of capture request options that can be supported via CameraX's -/// interoperability with Camera2. -enum CaptureRequestKeySupportedType { - controlAeLock, -} - -class ResolutionInfo { - ResolutionInfo({ - required this.width, - required this.height, - }); - - int width; - - int height; - - Object encode() { - return [ - width, - height, - ]; - } - - static ResolutionInfo decode(Object result) { - result as List; - return ResolutionInfo( - width: result[0]! as int, - height: result[1]! as int, - ); - } -} - -class CameraPermissionsErrorData { - CameraPermissionsErrorData({ - required this.errorCode, - required this.description, - }); - - String errorCode; - - String description; - - Object encode() { - return [ - errorCode, - description, - ]; - } - - static CameraPermissionsErrorData decode(Object result) { - result as List; - return CameraPermissionsErrorData( - errorCode: result[0]! as String, - description: result[1]! as String, - ); - } -} - -class CameraStateTypeData { - CameraStateTypeData({ - required this.value, - }); - - CameraStateType value; - - Object encode() { - return [ - value.index, - ]; - } - - static CameraStateTypeData decode(Object result) { - result as List; - return CameraStateTypeData( - value: CameraStateType.values[result[0]! as int], - ); - } -} - -class LiveDataSupportedTypeData { - LiveDataSupportedTypeData({ - required this.value, - }); - - LiveDataSupportedType value; - - Object encode() { - return [ - value.index, - ]; - } - - static LiveDataSupportedTypeData decode(Object result) { - result as List; - return LiveDataSupportedTypeData( - value: LiveDataSupportedType.values[result[0]! as int], - ); - } -} - -class ExposureCompensationRange { - ExposureCompensationRange({ - required this.minCompensation, - required this.maxCompensation, - }); - - int minCompensation; - - int maxCompensation; - - Object encode() { - return [ - minCompensation, - maxCompensation, - ]; - } - - static ExposureCompensationRange decode(Object result) { - result as List; - return ExposureCompensationRange( - minCompensation: result[0]! as int, - maxCompensation: result[1]! as int, - ); - } -} - -/// Convenience class for sending lists of [Quality]s. -class VideoQualityData { - VideoQualityData({ - required this.quality, - }); - - VideoQuality quality; - - Object encode() { - return [ - quality.index, - ]; - } - - static VideoQualityData decode(Object result) { - result as List; - return VideoQualityData( - quality: VideoQuality.values[result[0]! as int], - ); - } -} - -class VideoRecordEventData { - VideoRecordEventData({ - required this.value, - }); - - VideoRecordEvent value; - - Object encode() { - return [ - value.index, - ]; - } - - static VideoRecordEventData decode(Object result) { - result as List; - return VideoRecordEventData( - value: VideoRecordEvent.values[result[0]! as int], - ); - } -} - -/// Convenience class for building [FocusMeteringAction]s with multiple metering -/// points. -class MeteringPointInfo { - MeteringPointInfo({ - required this.meteringPointId, - this.meteringMode, - }); - - /// InstanceManager ID for a [MeteringPoint]. - int meteringPointId; - - /// The metering mode of the [MeteringPoint] whose ID is [meteringPointId]. - /// - /// Metering mode should be one of the [FocusMeteringAction] constants. - int? meteringMode; - - Object encode() { - return [ - meteringPointId, - meteringMode, - ]; - } - - static MeteringPointInfo decode(Object result) { - result as List; - return MeteringPointInfo( - meteringPointId: result[0]! as int, - meteringMode: result[1] as int?, - ); - } -} - -class InstanceManagerHostApi { - /// Constructor for [InstanceManagerHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - InstanceManagerHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - /// Clear the native `InstanceManager`. - /// - /// This is typically only used after a hot restart. - Future clear() async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.InstanceManagerHostApi.clear', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class JavaObjectHostApi { - /// Constructor for [JavaObjectHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - JavaObjectHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future dispose(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.JavaObjectHostApi.dispose', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -abstract class JavaObjectFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void dispose(int identifier); - - static void setup(JavaObjectFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.JavaObjectFlutterApi.dispose', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.JavaObjectFlutterApi.dispose was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.JavaObjectFlutterApi.dispose was null, expected non-null int.'); - api.dispose(arg_identifier!); - return; - }); - } - } - } -} - -class CameraInfoHostApi { - /// Constructor for [CameraInfoHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - CameraInfoHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future getSensorRotationDegrees(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getSensorRotationDegrees', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future getCameraState(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getCameraState', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future getExposureState(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getExposureState', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future getZoomState(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoHostApi.getZoomState', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } -} - -abstract class CameraInfoFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(CameraInfoFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraInfoFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraInfoFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraInfoFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - } -} - -class CameraSelectorHostApi { - /// Constructor for [CameraSelectorHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - CameraSelectorHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create(int arg_identifier, int? arg_lensFacing) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraSelectorHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_lensFacing]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future> filter( - int arg_identifier, List arg_cameraInfoIds) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraSelectorHostApi.filter', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_cameraInfoIds]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as List?)!.cast(); - } - } -} - -abstract class CameraSelectorFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int? lensFacing); - - static void setup(CameraSelectorFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraSelectorFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraSelectorFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraSelectorFlutterApi.create was null, expected non-null int.'); - final int? arg_lensFacing = (args[1] as int?); - api.create(arg_identifier!, arg_lensFacing); - return; - }); - } - } - } -} - -class ProcessCameraProviderHostApi { - /// Constructor for [ProcessCameraProviderHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - ProcessCameraProviderHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future getInstance() async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getInstance', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future> getAvailableCameraInfos(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.getAvailableCameraInfos', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as List?)!.cast(); - } - } - - Future bindToLifecycle(int arg_identifier, - int arg_cameraSelectorIdentifier, List arg_useCaseIds) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.bindToLifecycle', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_cameraSelectorIdentifier, - arg_useCaseIds - ]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future isBound(int arg_identifier, int arg_useCaseIdentifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.isBound', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_useCaseIdentifier]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as bool?)!; - } - } - - Future unbind(int arg_identifier, List arg_useCaseIds) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbind', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_useCaseIds]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future unbindAll(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderHostApi.unbindAll', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -abstract class ProcessCameraProviderFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(ProcessCameraProviderFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ProcessCameraProviderFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - } -} - -class CameraHostApi { - /// Constructor for [CameraHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - CameraHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future getCameraInfo(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraHostApi.getCameraInfo', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future getCameraControl(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraHostApi.getCameraControl', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } -} - -abstract class CameraFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(CameraFlutterApi? api, {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - } -} - -class _SystemServicesHostApiCodec extends StandardMessageCodec { - const _SystemServicesHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is CameraPermissionsErrorData) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return CameraPermissionsErrorData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -class SystemServicesHostApi { - /// Constructor for [SystemServicesHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - SystemServicesHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = _SystemServicesHostApiCodec(); - - Future requestCameraPermissions( - bool arg_enableAudio) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.requestCameraPermissions', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_enableAudio]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return (replyList[0] as CameraPermissionsErrorData?); - } - } - - Future getTempFilePath(String arg_prefix, String arg_suffix) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.getTempFilePath', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_prefix, arg_suffix]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as String?)!; - } - } - - Future isPreviewPreTransformed() async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesHostApi.isPreviewPreTransformed', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as bool?)!; - } - } -} - -abstract class SystemServicesFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void onCameraError(String errorDescription); - - static void setup(SystemServicesFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError was null.'); - final List args = (message as List?)!; - final String? arg_errorDescription = (args[0] as String?); - assert(arg_errorDescription != null, - 'Argument for dev.flutter.pigeon.SystemServicesFlutterApi.onCameraError was null, expected non-null String.'); - api.onCameraError(arg_errorDescription!); - return; - }); - } - } - } -} - -class DeviceOrientationManagerHostApi { - /// Constructor for [DeviceOrientationManagerHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - DeviceOrientationManagerHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future startListeningForDeviceOrientationChange( - bool arg_isFrontFacing, int arg_sensorOrientation) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.startListeningForDeviceOrientationChange', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_isFrontFacing, arg_sensorOrientation]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future stopListeningForDeviceOrientationChange() async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.stopListeningForDeviceOrientationChange', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future getDefaultDisplayRotation() async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getDefaultDisplayRotation', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future getUiOrientation() async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerHostApi.getUiOrientation', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as String?)!; - } - } -} - -abstract class DeviceOrientationManagerFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void onDeviceOrientationChanged(String orientation); - - static void setup(DeviceOrientationManagerFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null.'); - final List args = (message as List?)!; - final String? arg_orientation = (args[0] as String?); - assert(arg_orientation != null, - 'Argument for dev.flutter.pigeon.DeviceOrientationManagerFlutterApi.onDeviceOrientationChanged was null, expected non-null String.'); - api.onDeviceOrientationChanged(arg_orientation!); - return; - }); - } - } - } -} - -class _PreviewHostApiCodec extends StandardMessageCodec { - const _PreviewHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is ResolutionInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return ResolutionInfo.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -class PreviewHostApi { - /// Constructor for [PreviewHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - PreviewHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = _PreviewHostApiCodec(); - - Future create(int arg_identifier, int? arg_rotation, - int? arg_resolutionSelectorId) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send( - [arg_identifier, arg_rotation, arg_resolutionSelectorId]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future setSurfaceProvider(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.setSurfaceProvider', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future releaseFlutterSurfaceTexture() async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.releaseFlutterSurfaceTexture', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future getResolutionInfo(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.getResolutionInfo', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as ResolutionInfo?)!; - } - } - - Future setTargetRotation(int arg_identifier, int arg_rotation) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PreviewHostApi.setTargetRotation', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_rotation]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class VideoCaptureHostApi { - /// Constructor for [VideoCaptureHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - VideoCaptureHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future withOutput(int arg_videoOutputId) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoCaptureHostApi.withOutput', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_videoOutputId]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future getOutput(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoCaptureHostApi.getOutput', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future setTargetRotation(int arg_identifier, int arg_rotation) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoCaptureHostApi.setTargetRotation', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_rotation]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -abstract class VideoCaptureFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(VideoCaptureFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.VideoCaptureFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.VideoCaptureFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.VideoCaptureFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - } -} - -class RecorderHostApi { - /// Constructor for [RecorderHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - RecorderHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create(int arg_identifier, int? arg_aspectRatio, - int? arg_bitRate, int? arg_qualitySelectorId) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_aspectRatio, - arg_bitRate, - arg_qualitySelectorId - ]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future getAspectRatio(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.getAspectRatio', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future getTargetVideoEncodingBitRate(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.getTargetVideoEncodingBitRate', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future prepareRecording(int arg_identifier, String arg_path) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderHostApi.prepareRecording', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_path]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } -} - -abstract class RecorderFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int? aspectRatio, int? bitRate); - - static void setup(RecorderFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecorderFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecorderFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecorderFlutterApi.create was null, expected non-null int.'); - final int? arg_aspectRatio = (args[1] as int?); - final int? arg_bitRate = (args[2] as int?); - api.create(arg_identifier!, arg_aspectRatio, arg_bitRate); - return; - }); - } - } - } -} - -class PendingRecordingHostApi { - /// Constructor for [PendingRecordingHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - PendingRecordingHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future start(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PendingRecordingHostApi.start', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } -} - -class _PendingRecordingFlutterApiCodec extends StandardMessageCodec { - const _PendingRecordingFlutterApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is VideoRecordEventData) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return VideoRecordEventData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class PendingRecordingFlutterApi { - static const MessageCodec codec = _PendingRecordingFlutterApiCodec(); - - void create(int identifier); - - void onVideoRecordingEvent(VideoRecordEventData event); - - static void setup(PendingRecordingFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PendingRecordingFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.PendingRecordingFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.PendingRecordingFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PendingRecordingFlutterApi.onVideoRecordingEvent', - codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.PendingRecordingFlutterApi.onVideoRecordingEvent was null.'); - final List args = (message as List?)!; - final VideoRecordEventData? arg_event = - (args[0] as VideoRecordEventData?); - assert(arg_event != null, - 'Argument for dev.flutter.pigeon.PendingRecordingFlutterApi.onVideoRecordingEvent was null, expected non-null VideoRecordEventData.'); - api.onVideoRecordingEvent(arg_event!); - return; - }); - } - } - } -} - -class RecordingHostApi { - /// Constructor for [RecordingHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - RecordingHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future close(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecordingHostApi.close', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future pause(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecordingHostApi.pause', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future resume(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecordingHostApi.resume', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future stop(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecordingHostApi.stop', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -abstract class RecordingFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(RecordingFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.RecordingFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.RecordingFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.RecordingFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - } -} - -class ImageCaptureHostApi { - /// Constructor for [ImageCaptureHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - ImageCaptureHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create(int arg_identifier, int? arg_targetRotation, - int? arg_flashMode, int? arg_resolutionSelectorId) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageCaptureHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_targetRotation, - arg_flashMode, - arg_resolutionSelectorId - ]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future setFlashMode(int arg_identifier, int arg_flashMode) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageCaptureHostApi.setFlashMode', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_flashMode]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future takePicture(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageCaptureHostApi.takePicture', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as String?)!; - } - } - - Future setTargetRotation(int arg_identifier, int arg_rotation) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageCaptureHostApi.setTargetRotation', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_rotation]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class _ResolutionStrategyHostApiCodec extends StandardMessageCodec { - const _ResolutionStrategyHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is ResolutionInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return ResolutionInfo.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -class ResolutionStrategyHostApi { - /// Constructor for [ResolutionStrategyHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - ResolutionStrategyHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = _ResolutionStrategyHostApiCodec(); - - Future create(int arg_identifier, ResolutionInfo? arg_boundSize, - int? arg_fallbackRule) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ResolutionStrategyHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_boundSize, arg_fallbackRule]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class ResolutionSelectorHostApi { - /// Constructor for [ResolutionSelectorHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - ResolutionSelectorHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create( - int arg_identifier, - int? arg_resolutionStrategyIdentifier, - int? arg_resolutionSelectorIdentifier, - int? arg_aspectRatioStrategyIdentifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ResolutionSelectorHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_resolutionStrategyIdentifier, - arg_resolutionSelectorIdentifier, - arg_aspectRatioStrategyIdentifier - ]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class AspectRatioStrategyHostApi { - /// Constructor for [AspectRatioStrategyHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - AspectRatioStrategyHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create(int arg_identifier, int arg_preferredAspectRatio, - int arg_fallbackRule) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.AspectRatioStrategyHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_preferredAspectRatio, - arg_fallbackRule - ]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class _CameraStateFlutterApiCodec extends StandardMessageCodec { - const _CameraStateFlutterApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is CameraStateTypeData) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return CameraStateTypeData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class CameraStateFlutterApi { - static const MessageCodec codec = _CameraStateFlutterApiCodec(); - - void create(int identifier, CameraStateTypeData type, int? errorIdentifier); - - static void setup(CameraStateFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraStateFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null, expected non-null int.'); - final CameraStateTypeData? arg_type = - (args[1] as CameraStateTypeData?); - assert(arg_type != null, - 'Argument for dev.flutter.pigeon.CameraStateFlutterApi.create was null, expected non-null CameraStateTypeData.'); - final int? arg_errorIdentifier = (args[2] as int?); - api.create(arg_identifier!, arg_type!, arg_errorIdentifier); - return; - }); - } - } - } -} - -class _ExposureStateFlutterApiCodec extends StandardMessageCodec { - const _ExposureStateFlutterApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is ExposureCompensationRange) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return ExposureCompensationRange.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class ExposureStateFlutterApi { - static const MessageCodec codec = _ExposureStateFlutterApiCodec(); - - void create( - int identifier, - ExposureCompensationRange exposureCompensationRange, - double exposureCompensationStep); - - static void setup(ExposureStateFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ExposureStateFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null, expected non-null int.'); - final ExposureCompensationRange? arg_exposureCompensationRange = - (args[1] as ExposureCompensationRange?); - assert(arg_exposureCompensationRange != null, - 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null, expected non-null ExposureCompensationRange.'); - final double? arg_exposureCompensationStep = (args[2] as double?); - assert(arg_exposureCompensationStep != null, - 'Argument for dev.flutter.pigeon.ExposureStateFlutterApi.create was null, expected non-null double.'); - api.create(arg_identifier!, arg_exposureCompensationRange!, - arg_exposureCompensationStep!); - return; - }); - } - } - } -} - -abstract class ZoomStateFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, double minZoomRatio, double maxZoomRatio); - - static void setup(ZoomStateFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ZoomStateFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ZoomStateFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ZoomStateFlutterApi.create was null, expected non-null int.'); - final double? arg_minZoomRatio = (args[1] as double?); - assert(arg_minZoomRatio != null, - 'Argument for dev.flutter.pigeon.ZoomStateFlutterApi.create was null, expected non-null double.'); - final double? arg_maxZoomRatio = (args[2] as double?); - assert(arg_maxZoomRatio != null, - 'Argument for dev.flutter.pigeon.ZoomStateFlutterApi.create was null, expected non-null double.'); - api.create(arg_identifier!, arg_minZoomRatio!, arg_maxZoomRatio!); - return; - }); - } - } - } -} - -class ImageAnalysisHostApi { - /// Constructor for [ImageAnalysisHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - ImageAnalysisHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create(int arg_identifier, int? arg_targetRotation, - int? arg_resolutionSelectorId) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageAnalysisHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_targetRotation, - arg_resolutionSelectorId - ]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future setAnalyzer( - int arg_identifier, int arg_analyzerIdentifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageAnalysisHostApi.setAnalyzer', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_analyzerIdentifier]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future clearAnalyzer(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageAnalysisHostApi.clearAnalyzer', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future setTargetRotation(int arg_identifier, int arg_rotation) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageAnalysisHostApi.setTargetRotation', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_rotation]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class AnalyzerHostApi { - /// Constructor for [AnalyzerHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - AnalyzerHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.AnalyzerHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class ObserverHostApi { - /// Constructor for [ObserverHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - ObserverHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ObserverHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -abstract class ObserverFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void onChanged(int identifier, int valueIdentifier); - - static void setup(ObserverFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ObserverFlutterApi.onChanged', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ObserverFlutterApi.onChanged was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ObserverFlutterApi.onChanged was null, expected non-null int.'); - final int? arg_valueIdentifier = (args[1] as int?); - assert(arg_valueIdentifier != null, - 'Argument for dev.flutter.pigeon.ObserverFlutterApi.onChanged was null, expected non-null int.'); - api.onChanged(arg_identifier!, arg_valueIdentifier!); - return; - }); - } - } - } -} - -abstract class CameraStateErrorFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int code); - - static void setup(CameraStateErrorFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraStateErrorFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraStateErrorFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraStateErrorFlutterApi.create was null, expected non-null int.'); - final int? arg_code = (args[1] as int?); - assert(arg_code != null, - 'Argument for dev.flutter.pigeon.CameraStateErrorFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!, arg_code!); - return; - }); - } - } - } -} - -class _LiveDataHostApiCodec extends StandardMessageCodec { - const _LiveDataHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is LiveDataSupportedTypeData) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return LiveDataSupportedTypeData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -class LiveDataHostApi { - /// Constructor for [LiveDataHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - LiveDataHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = _LiveDataHostApiCodec(); - - Future observe(int arg_identifier, int arg_observerIdentifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.LiveDataHostApi.observe', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_observerIdentifier]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future removeObservers(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.LiveDataHostApi.removeObservers', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future getValue( - int arg_identifier, LiveDataSupportedTypeData arg_type) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.LiveDataHostApi.getValue', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_type]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return (replyList[0] as int?); - } - } -} - -class _LiveDataFlutterApiCodec extends StandardMessageCodec { - const _LiveDataFlutterApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is LiveDataSupportedTypeData) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return LiveDataSupportedTypeData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -abstract class LiveDataFlutterApi { - static const MessageCodec codec = _LiveDataFlutterApiCodec(); - - void create(int identifier, LiveDataSupportedTypeData type); - - static void setup(LiveDataFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.LiveDataFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null, expected non-null int.'); - final LiveDataSupportedTypeData? arg_type = - (args[1] as LiveDataSupportedTypeData?); - assert(arg_type != null, - 'Argument for dev.flutter.pigeon.LiveDataFlutterApi.create was null, expected non-null LiveDataSupportedTypeData.'); - api.create(arg_identifier!, arg_type!); - return; - }); - } - } - } -} - -abstract class AnalyzerFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - void analyze(int identifier, int imageProxyIdentifier); - - static void setup(AnalyzerFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.AnalyzerFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.AnalyzerFlutterApi.analyze', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.analyze was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.analyze was null, expected non-null int.'); - final int? arg_imageProxyIdentifier = (args[1] as int?); - assert(arg_imageProxyIdentifier != null, - 'Argument for dev.flutter.pigeon.AnalyzerFlutterApi.analyze was null, expected non-null int.'); - api.analyze(arg_identifier!, arg_imageProxyIdentifier!); - return; - }); - } - } - } -} - -class ImageProxyHostApi { - /// Constructor for [ImageProxyHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - ImageProxyHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future> getPlanes(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageProxyHostApi.getPlanes', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as List?)!.cast(); - } - } - - Future close(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageProxyHostApi.close', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -abstract class ImageProxyFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, int format, int height, int width); - - static void setup(ImageProxyFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ImageProxyFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.ImageProxyFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.ImageProxyFlutterApi.create was null, expected non-null int.'); - final int? arg_format = (args[1] as int?); - assert(arg_format != null, - 'Argument for dev.flutter.pigeon.ImageProxyFlutterApi.create was null, expected non-null int.'); - final int? arg_height = (args[2] as int?); - assert(arg_height != null, - 'Argument for dev.flutter.pigeon.ImageProxyFlutterApi.create was null, expected non-null int.'); - final int? arg_width = (args[3] as int?); - assert(arg_width != null, - 'Argument for dev.flutter.pigeon.ImageProxyFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!, arg_format!, arg_height!, arg_width!); - return; - }); - } - } - } -} - -abstract class PlaneProxyFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier, Uint8List buffer, int pixelStride, int rowStride); - - static void setup(PlaneProxyFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.PlaneProxyFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null, expected non-null int.'); - final Uint8List? arg_buffer = (args[1] as Uint8List?); - assert(arg_buffer != null, - 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null, expected non-null Uint8List.'); - final int? arg_pixelStride = (args[2] as int?); - assert(arg_pixelStride != null, - 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null, expected non-null int.'); - final int? arg_rowStride = (args[3] as int?); - assert(arg_rowStride != null, - 'Argument for dev.flutter.pigeon.PlaneProxyFlutterApi.create was null, expected non-null int.'); - api.create( - arg_identifier!, arg_buffer!, arg_pixelStride!, arg_rowStride!); - return; - }); - } - } - } -} - -class _QualitySelectorHostApiCodec extends StandardMessageCodec { - const _QualitySelectorHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is ResolutionInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else if (value is VideoQualityData) { - buffer.putUint8(129); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return ResolutionInfo.decode(readValue(buffer)!); - case 129: - return VideoQualityData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -class QualitySelectorHostApi { - /// Constructor for [QualitySelectorHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - QualitySelectorHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = _QualitySelectorHostApiCodec(); - - Future create( - int arg_identifier, - List arg_videoQualityDataList, - int? arg_fallbackStrategyId) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.QualitySelectorHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_videoQualityDataList, - arg_fallbackStrategyId - ]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future getResolution( - int arg_cameraInfoId, VideoQuality arg_quality) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.QualitySelectorHostApi.getResolution', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_cameraInfoId, arg_quality.index]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as ResolutionInfo?)!; - } - } -} - -class FallbackStrategyHostApi { - /// Constructor for [FallbackStrategyHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - FallbackStrategyHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create(int arg_identifier, VideoQuality arg_quality, - VideoResolutionFallbackRule arg_fallbackRule) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FallbackStrategyHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_quality.index, - arg_fallbackRule.index - ]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class CameraControlHostApi { - /// Constructor for [CameraControlHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - CameraControlHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future enableTorch(int arg_identifier, bool arg_torch) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.enableTorch', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_torch]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future setZoomRatio(int arg_identifier, double arg_ratio) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.setZoomRatio', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_ratio]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future startFocusAndMetering( - int arg_identifier, int arg_focusMeteringActionId) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.startFocusAndMetering', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_focusMeteringActionId]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return (replyList[0] as int?); - } - } - - Future cancelFocusAndMetering(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.cancelFocusAndMetering', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future setExposureCompensationIndex( - int arg_identifier, int arg_index) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlHostApi.setExposureCompensationIndex', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_index]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return (replyList[0] as int?); - } - } -} - -abstract class CameraControlFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(CameraControlFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CameraControlFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.CameraControlFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.CameraControlFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - } -} - -class _FocusMeteringActionHostApiCodec extends StandardMessageCodec { - const _FocusMeteringActionHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is MeteringPointInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return MeteringPointInfo.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -class FocusMeteringActionHostApi { - /// Constructor for [FocusMeteringActionHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - FocusMeteringActionHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = _FocusMeteringActionHostApiCodec(); - - Future create( - int arg_identifier, - List arg_meteringPointInfos, - bool? arg_disableAutoCancel) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FocusMeteringActionHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send([ - arg_identifier, - arg_meteringPointInfos, - arg_disableAutoCancel - ]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class FocusMeteringResultHostApi { - /// Constructor for [FocusMeteringResultHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - FocusMeteringResultHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future isFocusSuccessful(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FocusMeteringResultHostApi.isFocusSuccessful', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as bool?)!; - } - } -} - -abstract class FocusMeteringResultFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(FocusMeteringResultFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.FocusMeteringResultFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.FocusMeteringResultFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.FocusMeteringResultFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - } -} - -class MeteringPointHostApi { - /// Constructor for [MeteringPointHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - MeteringPointHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create(int arg_identifier, double arg_x, double arg_y, - double? arg_size, int arg_cameraInfoId) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.MeteringPointHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send( - [arg_identifier, arg_x, arg_y, arg_size, arg_cameraInfoId]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future getDefaultPointSize() async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.MeteringPointHostApi.getDefaultPointSize', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send(null) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as double?)!; - } - } -} - -class _CaptureRequestOptionsHostApiCodec extends StandardMessageCodec { - const _CaptureRequestOptionsHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is CameraPermissionsErrorData) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else if (value is CameraStateTypeData) { - buffer.putUint8(129); - writeValue(buffer, value.encode()); - } else if (value is ExposureCompensationRange) { - buffer.putUint8(130); - writeValue(buffer, value.encode()); - } else if (value is LiveDataSupportedTypeData) { - buffer.putUint8(131); - writeValue(buffer, value.encode()); - } else if (value is MeteringPointInfo) { - buffer.putUint8(132); - writeValue(buffer, value.encode()); - } else if (value is ResolutionInfo) { - buffer.putUint8(133); - writeValue(buffer, value.encode()); - } else if (value is VideoQualityData) { - buffer.putUint8(134); - writeValue(buffer, value.encode()); - } else if (value is VideoRecordEventData) { - buffer.putUint8(135); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return CameraPermissionsErrorData.decode(readValue(buffer)!); - case 129: - return CameraStateTypeData.decode(readValue(buffer)!); - case 130: - return ExposureCompensationRange.decode(readValue(buffer)!); - case 131: - return LiveDataSupportedTypeData.decode(readValue(buffer)!); - case 132: - return MeteringPointInfo.decode(readValue(buffer)!); - case 133: - return ResolutionInfo.decode(readValue(buffer)!); - case 134: - return VideoQualityData.decode(readValue(buffer)!); - case 135: - return VideoRecordEventData.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -class CaptureRequestOptionsHostApi { - /// Constructor for [CaptureRequestOptionsHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - CaptureRequestOptionsHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = - _CaptureRequestOptionsHostApiCodec(); - - Future create( - int arg_identifier, Map arg_options) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.CaptureRequestOptionsHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_options]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class Camera2CameraControlHostApi { - /// Constructor for [Camera2CameraControlHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - Camera2CameraControlHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future create( - int arg_identifier, int arg_cameraControlIdentifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraControlHostApi.create', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_identifier, arg_cameraControlIdentifier]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } - - Future addCaptureRequestOptions( - int arg_identifier, int arg_captureRequestOptionsIdentifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraControlHostApi.addCaptureRequestOptions', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel.send( - [arg_identifier, arg_captureRequestOptionsIdentifier]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class _ResolutionFilterHostApiCodec extends StandardMessageCodec { - const _ResolutionFilterHostApiCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is ResolutionInfo) { - buffer.putUint8(128); - writeValue(buffer, value.encode()); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return ResolutionInfo.decode(readValue(buffer)!); - default: - return super.readValueOfType(type, buffer); - } - } -} - -class ResolutionFilterHostApi { - /// Constructor for [ResolutionFilterHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - ResolutionFilterHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = _ResolutionFilterHostApiCodec(); - - Future createWithOnePreferredSize( - int arg_identifier, ResolutionInfo arg_preferredResolution) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.ResolutionFilterHostApi.createWithOnePreferredSize', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier, arg_preferredResolution]) - as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else { - return; - } - } -} - -class Camera2CameraInfoHostApi { - /// Constructor for [Camera2CameraInfoHostApi]. The [binaryMessenger] named argument is - /// available for dependency injection. If it is left null, the default - /// BinaryMessenger will be used which routes to the host platform. - Camera2CameraInfoHostApi({BinaryMessenger? binaryMessenger}) - : _binaryMessenger = binaryMessenger; - final BinaryMessenger? _binaryMessenger; - - static const MessageCodec codec = StandardMessageCodec(); - - Future createFrom(int arg_cameraInfoIdentifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraInfoHostApi.createFrom', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = await channel - .send([arg_cameraInfoIdentifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future getSupportedHardwareLevel(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraInfoHostApi.getSupportedHardwareLevel', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } - - Future getCameraId(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraInfoHostApi.getCameraId', codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as String?)!; - } - } - - Future getSensorOrientation(int arg_identifier) async { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraInfoHostApi.getSensorOrientation', - codec, - binaryMessenger: _binaryMessenger); - final List? replyList = - await channel.send([arg_identifier]) as List?; - if (replyList == null) { - throw PlatformException( - code: 'channel-error', - message: 'Unable to establish connection on channel.', - ); - } else if (replyList.length > 1) { - throw PlatformException( - code: replyList[0]! as String, - message: replyList[1] as String?, - details: replyList[2], - ); - } else if (replyList[0] == null) { - throw PlatformException( - code: 'null-error', - message: 'Host platform returned null value for non-null return value.', - ); - } else { - return (replyList[0] as int?)!; - } - } -} - -abstract class Camera2CameraInfoFlutterApi { - static const MessageCodec codec = StandardMessageCodec(); - - void create(int identifier); - - static void setup(Camera2CameraInfoFlutterApi? api, - {BinaryMessenger? binaryMessenger}) { - { - final BasicMessageChannel channel = BasicMessageChannel( - 'dev.flutter.pigeon.Camera2CameraInfoFlutterApi.create', codec, - binaryMessenger: binaryMessenger); - if (api == null) { - channel.setMessageHandler(null); - } else { - channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoFlutterApi.create was null.'); - final List args = (message as List?)!; - final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.Camera2CameraInfoFlutterApi.create was null, expected non-null int.'); - api.create(arg_identifier!); - return; - }); - } - } - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart deleted file mode 100644 index feae868ac40..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart +++ /dev/null @@ -1,358 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:ui' show Size; - -import 'package:flutter/services.dart' show DeviceOrientation; - -import 'analyzer.dart'; -import 'aspect_ratio_strategy.dart'; -import 'camera2_camera_control.dart'; -import 'camera2_camera_info.dart'; -import 'camera_control.dart'; -import 'camera_info.dart'; -import 'camera_selector.dart'; -import 'camera_state.dart'; -import 'camerax_library.g.dart'; -import 'capture_request_options.dart'; -import 'device_orientation_manager.dart'; -import 'fallback_strategy.dart'; -import 'focus_metering_action.dart'; -import 'image_analysis.dart'; -import 'image_capture.dart'; -import 'image_proxy.dart'; -import 'metering_point.dart'; -import 'observer.dart'; -import 'preview.dart'; -import 'process_camera_provider.dart'; -import 'quality_selector.dart'; -import 'recorder.dart'; -import 'resolution_filter.dart'; -import 'resolution_selector.dart'; -import 'resolution_strategy.dart'; -import 'system_services.dart'; -import 'video_capture.dart'; - -/// Handles `JavaObject` creation and calling their methods that require -/// testing. -/// -/// By default, each function will create `JavaObject`s attached to an -/// `InstanceManager` and call through to the appropriate method. -class CameraXProxy { - /// Constructs a [CameraXProxy]. - CameraXProxy({ - this.getProcessCameraProvider = _getProcessCameraProvider, - this.createCameraSelector = _createAttachedCameraSelector, - this.createPreview = _createAttachedPreview, - this.createImageCapture = _createAttachedImageCapture, - this.createRecorder = _createAttachedRecorder, - this.createVideoCapture = _createAttachedVideoCapture, - this.createImageAnalysis = _createAttachedImageAnalysis, - this.createAnalyzer = _createAttachedAnalyzer, - this.createCameraStateObserver = _createAttachedCameraStateObserver, - this.createResolutionStrategy = _createAttachedResolutionStrategy, - this.createResolutionSelector = _createAttachedResolutionSelector, - this.createFallbackStrategy = _createAttachedFallbackStrategy, - this.createQualitySelector = _createAttachedQualitySelector, - this.requestCameraPermissions = _requestCameraPermissions, - this.startListeningForDeviceOrientationChange = - _startListeningForDeviceOrientationChange, - this.setPreviewSurfaceProvider = _setPreviewSurfaceProvider, - this.getDefaultDisplayRotation = _getDefaultDisplayRotation, - this.getCamera2CameraControl = _getCamera2CameraControl, - this.createCaptureRequestOptions = _createAttachedCaptureRequestOptions, - this.createMeteringPoint = _createAttachedMeteringPoint, - this.createFocusMeteringAction = _createAttachedFocusMeteringAction, - this.createAspectRatioStrategy = _createAttachedAspectRatioStrategy, - this.createResolutionFilterWithOnePreferredSize = - _createAttachedResolutionFilterWithOnePreferredSize, - this.getCamera2CameraInfo = _getCamera2CameraInfo, - this.getUiOrientation = _getUiOrientation, - this.getSensorOrientation = _getSensorOrientation, - }); - - /// Returns a [ProcessCameraProvider] instance. - Future Function() getProcessCameraProvider; - - /// Returns a [CameraSelector] based on the specified camera lens direction. - CameraSelector Function(int cameraSelectorLensDirection) createCameraSelector; - - /// Returns a [Preview] configured with the specified target rotation and - /// specified [ResolutionSelector]. - Preview Function( - ResolutionSelector? resolutionSelector, - int? targetRotation, - ) createPreview; - - /// Returns an [ImageCapture] configured with specified flash mode and - /// the specified [ResolutionSelector]. - ImageCapture Function( - ResolutionSelector? resolutionSelector, int? targetRotation) - createImageCapture; - - /// Returns a [Recorder] for use in video capture configured with the - /// specified [QualitySelector]. - Recorder Function(QualitySelector? qualitySelector) createRecorder; - - /// Returns a [VideoCapture] associated with the provided [Recorder]. - Future Function(Recorder recorder) createVideoCapture; - - /// Returns an [ImageAnalysis] configured with the specified - /// [ResolutionSelector]. - ImageAnalysis Function( - ResolutionSelector? resolutionSelector, int? targetRotation) - createImageAnalysis; - - /// Returns an [Analyzer] configured with the specified callback for - /// analyzing [ImageProxy]s. - Analyzer Function(Future Function(ImageProxy imageProxy) analyze) - createAnalyzer; - - /// Returns an [Observer] of the [CameraState] with the specified callback - /// for handling changes in that state. - Observer Function(void Function(Object stateAsObject) onChanged) - createCameraStateObserver; - - /// Returns a [ResolutionStrategy] configured with the specified bounds for - /// choosing a resolution and a fallback rule if achieving a resolution within - /// those bounds is not possible. - /// - /// [highestAvailable] is used to specify whether or not the highest available - /// [ResolutionStrategy] should be returned. - ResolutionStrategy Function( - {bool highestAvailable, - Size? boundSize, - int? fallbackRule}) createResolutionStrategy; - - /// Returns a [ResolutionSelector] configured with the specified - /// [ResolutionStrategy], [ResolutionFilter], and [AspectRatioStrategy]. - ResolutionSelector Function( - ResolutionStrategy resolutionStrategy, - ResolutionFilter? resolutionFilter, - AspectRatioStrategy? aspectRatioStrategy) createResolutionSelector; - - /// Returns a [FallbackStrategy] configured with the specified [VideoQuality] - /// and [VideoResolutionFallbackRule]. - FallbackStrategy Function( - {required VideoQuality quality, - required VideoResolutionFallbackRule fallbackRule}) - createFallbackStrategy; - - /// Returns a [QualitySelector] configured with the specified [VideoQuality] - /// and [FallbackStrategy]. - QualitySelector Function( - {required VideoQuality videoQuality, - required FallbackStrategy fallbackStrategy}) createQualitySelector; - - /// Requests camera permissions. - Future Function(bool enableAudio) requestCameraPermissions; - - /// Subscribes the plugin as a listener to changes in device orientation. - void Function(bool cameraIsFrontFacing, int sensorOrientation) - startListeningForDeviceOrientationChange; - - /// Sets the surface provider of the specified [Preview] instance and returns - /// the ID corresponding to the surface it will provide. - Future Function(Preview preview) setPreviewSurfaceProvider; - - /// Returns default rotation for [UseCase]s in terms of one of the [Surface] - /// rotation constants. - Future Function() getDefaultDisplayRotation; - - /// Gets [Camera2CameraControl] instance from [cameraControl]. - Camera2CameraControl Function(CameraControl cameraControl) - getCamera2CameraControl; - - /// Creates a [CaptureRequestOptions] with specified options. - CaptureRequestOptions Function( - List<(CaptureRequestKeySupportedType, Object?)> options) - createCaptureRequestOptions; - - /// Returns a [MeteringPoint] with the specified coordinates based on - /// [cameraInfo]. - MeteringPoint Function( - double x, double y, double? size, CameraInfo cameraInfo) - createMeteringPoint; - - /// Returns a [FocusMeteringAction] based on the specified metering points - /// and their modes. - FocusMeteringAction Function(List<(MeteringPoint, int?)> meteringPointInfos, - bool? disableAutoCancel) createFocusMeteringAction; - - /// Creates an [AspectRatioStrategy] with specified aspect ratio and fallback - /// rule. - AspectRatioStrategy Function(int aspectRatio, int fallbackRule) - createAspectRatioStrategy; - - /// Creates a [ResolutionFilter] that prioritizes specified resolution. - ResolutionFilter Function(Size preferredResolution) - createResolutionFilterWithOnePreferredSize; - - /// Gets [Camera2CameraInfo] instance from [cameraInfo]. - Future Function(CameraInfo cameraInfo) - getCamera2CameraInfo; - - /// Gets current UI orientation based on device orientation and rotation. - Future Function() getUiOrientation; - - /// Gets camera sensor orientation from [camera2CameraInfo]. - Future Function(Camera2CameraInfo camera2CameraInfo) - getSensorOrientation; - - static Future _getProcessCameraProvider() { - return ProcessCameraProvider.getInstance(); - } - - static CameraSelector _createAttachedCameraSelector( - int cameraSelectorLensDirection) { - switch (cameraSelectorLensDirection) { - case CameraSelector.lensFacingFront: - return CameraSelector.getDefaultFrontCamera(); - case CameraSelector.lensFacingBack: - return CameraSelector.getDefaultBackCamera(); - default: - return CameraSelector(lensFacing: cameraSelectorLensDirection); - } - } - - static Preview _createAttachedPreview( - ResolutionSelector? resolutionSelector, int? targetRotation) { - return Preview( - initialTargetRotation: targetRotation, - resolutionSelector: resolutionSelector); - } - - static ImageCapture _createAttachedImageCapture( - ResolutionSelector? resolutionSelector, int? targetRotation) { - return ImageCapture( - resolutionSelector: resolutionSelector, - initialTargetRotation: targetRotation); - } - - static Recorder _createAttachedRecorder(QualitySelector? qualitySelector) { - return Recorder(qualitySelector: qualitySelector); - } - - static Future _createAttachedVideoCapture( - Recorder recorder) async { - return VideoCapture.withOutput(recorder); - } - - static ImageAnalysis _createAttachedImageAnalysis( - ResolutionSelector? resolutionSelector, int? targetRotation) { - return ImageAnalysis( - resolutionSelector: resolutionSelector, - initialTargetRotation: targetRotation); - } - - static Analyzer _createAttachedAnalyzer( - Future Function(ImageProxy imageProxy) analyze) { - return Analyzer(analyze: analyze); - } - - static Observer _createAttachedCameraStateObserver( - void Function(Object stateAsObject) onChanged) { - return Observer(onChanged: onChanged); - } - - static ResolutionStrategy _createAttachedResolutionStrategy( - {bool highestAvailable = false, Size? boundSize, int? fallbackRule}) { - if (highestAvailable) { - return ResolutionStrategy.highestAvailableStrategy(); - } - - return ResolutionStrategy( - boundSize: boundSize!, fallbackRule: fallbackRule); - } - - static ResolutionSelector _createAttachedResolutionSelector( - ResolutionStrategy resolutionStrategy, - ResolutionFilter? resolutionFilter, - AspectRatioStrategy? aspectRatioStrategy) { - return ResolutionSelector( - resolutionStrategy: resolutionStrategy, - resolutionFilter: resolutionFilter, - aspectRatioStrategy: aspectRatioStrategy); - } - - static FallbackStrategy _createAttachedFallbackStrategy( - {required VideoQuality quality, - required VideoResolutionFallbackRule fallbackRule}) { - return FallbackStrategy(quality: quality, fallbackRule: fallbackRule); - } - - static QualitySelector _createAttachedQualitySelector( - {required VideoQuality videoQuality, - required FallbackStrategy fallbackStrategy}) { - return QualitySelector.from( - quality: VideoQualityData(quality: videoQuality), - fallbackStrategy: fallbackStrategy); - } - - static Future _requestCameraPermissions(bool enableAudio) async { - await SystemServices.requestCameraPermissions(enableAudio); - } - - static void _startListeningForDeviceOrientationChange( - bool cameraIsFrontFacing, int sensorOrientation) { - DeviceOrientationManager.startListeningForDeviceOrientationChange( - cameraIsFrontFacing, sensorOrientation); - } - - static Future _setPreviewSurfaceProvider(Preview preview) async { - return preview.setSurfaceProvider(); - } - - static Future _getDefaultDisplayRotation() async { - return DeviceOrientationManager.getDefaultDisplayRotation(); - } - - static Camera2CameraControl _getCamera2CameraControl( - CameraControl cameraControl) { - return Camera2CameraControl(cameraControl: cameraControl); - } - - static CaptureRequestOptions _createAttachedCaptureRequestOptions( - List<(CaptureRequestKeySupportedType, Object?)> options) { - return CaptureRequestOptions(requestedOptions: options); - } - - static MeteringPoint _createAttachedMeteringPoint( - double x, double y, double? size, CameraInfo cameraInfo) { - return MeteringPoint(x: x, y: y, size: size, cameraInfo: cameraInfo); - } - - static FocusMeteringAction _createAttachedFocusMeteringAction( - List<(MeteringPoint, int?)> meteringPointInfos, bool? disableAutoCancel) { - return FocusMeteringAction( - meteringPointInfos: meteringPointInfos, - disableAutoCancel: disableAutoCancel); - } - - static AspectRatioStrategy _createAttachedAspectRatioStrategy( - int preferredAspectRatio, int fallbackRule) { - return AspectRatioStrategy( - preferredAspectRatio: preferredAspectRatio, fallbackRule: fallbackRule); - } - - static ResolutionFilter _createAttachedResolutionFilterWithOnePreferredSize( - Size preferredSize) { - return ResolutionFilter.onePreferredSize( - preferredResolution: preferredSize); - } - - static Future _getCamera2CameraInfo( - CameraInfo cameraInfo) async { - return Camera2CameraInfo.from(cameraInfo); - } - - static Future _getUiOrientation() async { - return DeviceOrientationManager.getUiOrientation(); - } - - static Future _getSensorOrientation( - Camera2CameraInfo camera2CameraInfo) async { - return camera2CameraInfo.getSensorOrientation(); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/capture_request_options.dart b/packages/camera/camera_android_camerax/lib/src/capture_request_options.dart deleted file mode 100644 index 8c3de00845e..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/capture_request_options.dart +++ /dev/null @@ -1,139 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// A bundle of Camera2 capture request options. -/// -/// See https://developer.android.com/reference/androidx/camera/camera2/interop/CaptureRequestOptions. -@immutable -class CaptureRequestOptions extends JavaObject { - /// Creates a [CaptureRequestOptions]. - /// - /// Any value specified as null for a particular - /// [CaptureRequestKeySupportedType] key will clear the pre-existing value. - CaptureRequestOptions({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.requestedOptions, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _CaptureRequestOptionsHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstances(this, requestedOptions); - } - - /// Constructs a [CaptureRequestOptions] that is not automatically attached to a - /// native object. - CaptureRequestOptions.detached({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.requestedOptions, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _CaptureRequestOptionsHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - } - - late final _CaptureRequestOptionsHostApiImpl _api; - - /// Capture request options this instance will be used to request. - final List<(CaptureRequestKeySupportedType type, Object? value)> - requestedOptions; - - /// Error message indicating a [CaptureRequestOption] was constructed with a - /// capture request key currently unsupported by the wrapping of this class. - static String getUnsupportedCaptureRequestKeyTypeErrorMessage( - CaptureRequestKeySupportedType captureRequestKeyType) => - 'The type of capture request key passed to this method ($captureRequestKeyType) is current unspported; please see CaptureRequestKeySupportedType in pigeons/camerax_library.dart if you wish to support a new type.'; -} - -/// Host API implementation of [CaptureRequestOptions]. -class _CaptureRequestOptionsHostApiImpl extends CaptureRequestOptionsHostApi { - /// Constructs a [_CaptureRequestOptionsHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _CaptureRequestOptionsHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default [BinaryMessenger] will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - /// Creates a [CaptureRequestOptions] instance based on the specified - /// capture request key and value pairs. - Future createFromInstances( - CaptureRequestOptions instance, - List<(CaptureRequestKeySupportedType type, Object? value)> options, - ) { - if (options.isEmpty) { - throw ArgumentError( - 'At least one capture request option must be specified.'); - } - - final Map captureRequestOptions = {}; - - // Validate values have type that matches paired key that is supported by - // this plugin (CaptureRequestKeySupportedType). - for (final (CaptureRequestKeySupportedType key, Object? value) option - in options) { - final CaptureRequestKeySupportedType key = option.$1; - final Object? value = option.$2; - if (value == null) { - captureRequestOptions[key.index] = null; - continue; - } - - final Type valueRuntimeType = value.runtimeType; - switch (key) { - case CaptureRequestKeySupportedType.controlAeLock: - if (valueRuntimeType != bool) { - throw ArgumentError( - 'A controlAeLock value must be specified as a bool, but a $valueRuntimeType was specified.'); - } - // This ignore statement is safe beause this error will be useful when - // a new CaptureRequestKeySupportedType is being added, but the logic in - // this method has not yet been updated. - // ignore: no_default_cases, unreachable_switch_default - default: - throw ArgumentError(CaptureRequestOptions - .getUnsupportedCaptureRequestKeyTypeErrorMessage(key)); - } - - captureRequestOptions[key.index] = value; - } - return create( - instanceManager.addDartCreatedInstance( - instance, - onCopy: (CaptureRequestOptions original) => - CaptureRequestOptions.detached( - requestedOptions: original.requestedOptions, - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - ), - captureRequestOptions, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/device_orientation_manager.dart b/packages/camera/camera_android_camerax/lib/src/device_orientation_manager.dart deleted file mode 100644 index aacddc5788a..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/device_orientation_manager.dart +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:camera_platform_interface/camera_platform_interface.dart' - show DeviceOrientationChangedEvent; -import 'package:flutter/services.dart'; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; - -// Ignoring lint indicating this class only contains static members -// as this class is a wrapper for various Android system services. -// ignore_for_file: avoid_classes_with_only_static_members - -/// Utility class that offers access to Android system services needed for -/// camera usage and other informational streams. -class DeviceOrientationManager { - /// Stream that emits the device orientation whenever it is changed. - /// - /// Values may start being added to the stream once - /// `startListeningForDeviceOrientationChange(...)` is called. - static final StreamController - deviceOrientationChangedStreamController = - StreamController.broadcast(); - - /// Requests that [deviceOrientationChangedStreamController] start - /// emitting values for any change in device orientation. - static void startListeningForDeviceOrientationChange( - bool isFrontFacing, int sensorOrientation, - {BinaryMessenger? binaryMessenger}) { - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - final DeviceOrientationManagerHostApi api = - DeviceOrientationManagerHostApi(binaryMessenger: binaryMessenger); - - api.startListeningForDeviceOrientationChange( - isFrontFacing, sensorOrientation); - } - - /// Stops the [deviceOrientationChangedStreamController] from emitting values - /// for changes in device orientation. - static void stopListeningForDeviceOrientationChange( - {BinaryMessenger? binaryMessenger}) { - final DeviceOrientationManagerHostApi api = - DeviceOrientationManagerHostApi(binaryMessenger: binaryMessenger); - - api.stopListeningForDeviceOrientationChange(); - } - - /// Retrieves the default rotation that CameraX uses for [UseCase]s in terms - /// of one of the [Surface] rotation constants. - /// - /// The default rotation that CameraX uses is the rotation of the default - /// display at the time of binding a particular [UseCase], but the default - /// display does not change in the plugin, so this default value is - /// display-agnostic. - /// - /// [startListeningForDeviceOrientationChange] must be called before calling - /// this method. - static Future getDefaultDisplayRotation( - {BinaryMessenger? binaryMessenger}) async { - final DeviceOrientationManagerHostApi api = - DeviceOrientationManagerHostApi(binaryMessenger: binaryMessenger); - - return api.getDefaultDisplayRotation(); - } - - /// Retrieves the current UI orientation based on the current device - /// orientation and screen rotation. - static Future getUiOrientation( - {BinaryMessenger? binaryMessenger}) async { - final DeviceOrientationManagerHostApi api = - DeviceOrientationManagerHostApi(binaryMessenger: binaryMessenger); - - return deserializeDeviceOrientation(await api.getUiOrientation()); - } - - /// Serializes [DeviceOrientation] into a [String]. - static String serializeDeviceOrientation(DeviceOrientation orientation) { - switch (orientation) { - case DeviceOrientation.landscapeLeft: - return 'LANDSCAPE_LEFT'; - case DeviceOrientation.landscapeRight: - return 'LANDSCAPE_RIGHT'; - case DeviceOrientation.portraitDown: - return 'PORTRAIT_DOWN'; - case DeviceOrientation.portraitUp: - return 'PORTRAIT_UP'; - } - } - - /// Deserializes device orientation in [String] format into a - /// [DeviceOrientation]. - static DeviceOrientation deserializeDeviceOrientation(String orientation) { - switch (orientation) { - case 'LANDSCAPE_LEFT': - return DeviceOrientation.landscapeLeft; - case 'LANDSCAPE_RIGHT': - return DeviceOrientation.landscapeRight; - case 'PORTRAIT_DOWN': - return DeviceOrientation.portraitDown; - case 'PORTRAIT_UP': - return DeviceOrientation.portraitUp; - default: - throw ArgumentError( - '"$orientation" is not a valid DeviceOrientation value'); - } - } -} - -/// Flutter API implementation of [DeviceOrientationManager]. -class DeviceOrientationManagerFlutterApiImpl - implements DeviceOrientationManagerFlutterApi { - /// Constructs an [DeviceOrientationManagerFlutterApiImpl]. - DeviceOrientationManagerFlutterApiImpl(); - - /// Callback method for any changes in device orientation. - /// - /// Will only be called if - /// `DeviceOrientationManager.startListeningForDeviceOrientationChange(...)` was called - /// to start listening for device orientation updates. - @override - void onDeviceOrientationChanged(String orientation) { - final DeviceOrientation deviceOrientation = - DeviceOrientationManager.deserializeDeviceOrientation(orientation); - DeviceOrientationManager.deviceOrientationChangedStreamController - .add(DeviceOrientationChangedEvent(deviceOrientation)); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/exposure_state.dart b/packages/camera/camera_android_camerax/lib/src/exposure_state.dart deleted file mode 100644 index 2376a5e4f6f..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/exposure_state.dart +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Represents exposure related information of a camera. -/// -/// See https://developer.android.com/reference/androidx/camera/core/ExposureState. -@immutable -class ExposureState extends JavaObject { - /// Constructs a [ExposureState] that is not automatically attached to a native object. - ExposureState.detached( - {super.binaryMessenger, - super.instanceManager, - required this.exposureCompensationRange, - required this.exposureCompensationStep}) - : super.detached() { - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - /// Gets the maximum and minimum exposure compensation values for the camera - /// represented by this instance. - final ExposureCompensationRange exposureCompensationRange; - - /// Gets the smallest step by which the exposure compensation can be changed for - /// the camera represented by this instance. - final double exposureCompensationStep; -} - -/// Flutter API implementation of [ExposureState]. -class ExposureStateFlutterApiImpl implements ExposureStateFlutterApi { - /// Constructs a [ExposureStateFlutterApiImpl]. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. - ExposureStateFlutterApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - @override - void create( - int identifier, - ExposureCompensationRange exposureCompensationRange, - double exposureCompensationStep) { - instanceManager.addHostCreatedInstance( - ExposureState.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - exposureCompensationRange: exposureCompensationRange, - exposureCompensationStep: exposureCompensationStep), - identifier, - onCopy: (ExposureState original) { - return ExposureState.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - exposureCompensationRange: original.exposureCompensationRange, - exposureCompensationStep: original.exposureCompensationStep); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/fallback_strategy.dart b/packages/camera/camera_android_camerax/lib/src/fallback_strategy.dart deleted file mode 100644 index ad2589dae72..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/fallback_strategy.dart +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Strategy that will be adopted when the device in use does not support all -/// of the desired quality specified for a particular QualitySelector instance. -/// -/// See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. -@immutable -class FallbackStrategy extends JavaObject { - /// Creates a [FallbackStrategy]. - FallbackStrategy( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.quality, - required this.fallbackRule}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _FallbackStrategyHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstance(this, quality, fallbackRule); - } - - /// Constructs a [FallbackStrategy] that is not automatically attached to a native object. - FallbackStrategy.detached( - {super.binaryMessenger, - super.instanceManager, - required this.quality, - required this.fallbackRule}) - : super.detached(); - - late final _FallbackStrategyHostApiImpl _api; - - /// The input quality used to specify this fallback strategy relative to. - final VideoQuality quality; - - /// The fallback rule that this strategy will follow. - final VideoResolutionFallbackRule fallbackRule; -} - -/// Host API implementation of [FallbackStrategy]. -class _FallbackStrategyHostApiImpl extends FallbackStrategyHostApi { - /// Constructs a [FallbackStrategyHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _FallbackStrategyHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default [BinaryMessenger] will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Creates a [FallbackStrategy] instance with the specified video [quality] - /// and [fallbackRule]. - void createFromInstance(FallbackStrategy instance, VideoQuality quality, - VideoResolutionFallbackRule fallbackRule) { - final int identifier = instanceManager.addDartCreatedInstance(instance, - onCopy: (FallbackStrategy original) { - return FallbackStrategy.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - quality: original.quality, - fallbackRule: original.fallbackRule, - ); - }); - create(identifier, quality, fallbackRule); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart deleted file mode 100644 index 81fa6f5abf1..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_action.dart +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'metering_point.dart'; - -/// A configuration used to trigger a focus and/or metering action. -/// -/// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringAction. -@immutable -class FocusMeteringAction extends JavaObject { - /// Creates a [FocusMeteringAction]. - FocusMeteringAction({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.meteringPointInfos, - this.disableAutoCancel, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ) { - _api = _FocusMeteringActionHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstance(this, meteringPointInfos, disableAutoCancel); - } - - /// Creates a [FocusMeteringAction] that is not automatically attached to a - /// native object. - FocusMeteringAction.detached({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.meteringPointInfos, - this.disableAutoCancel, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ) { - _api = _FocusMeteringActionHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - } - - late final _FocusMeteringActionHostApiImpl _api; - - /// The requested [MeteringPoint]s and modes that are relevant to each of those - /// points. - final List<(MeteringPoint meteringPoint, int? meteringMode)> - meteringPointInfos; - - /// Disables the auto-cancel. - /// - /// By default (and if set to false), auto-cancel is enabled with 5 seconds - /// duration. - final bool? disableAutoCancel; - - /// Flag for metering mode that indicates the auto focus region is enabled. - /// - /// An autofocus scan is also triggered when [flagAf] is assigned. - /// - /// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringAction#FLAG_AF(). - static const int flagAf = 1; - - /// Flag for metering mode that indicates the auto exposure region is enabled. - /// - /// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringAction#FLAG_AE(). - static const int flagAe = 2; - - /// Flag for metering mode that indicates the auto white balance region is - /// enabled. - /// - /// See https://developer.android.com/reference/androidx/camera/core/FocusMeteringAction#FLAG_AWB(). - static const int flagAwb = 4; -} - -/// Host API implementation of [FocusMeteringAction]. -class _FocusMeteringActionHostApiImpl extends FocusMeteringActionHostApi { - /// Constructs a [_FocusMeteringActionHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _FocusMeteringActionHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default [BinaryMessenger] will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Creates a [FocusMeteringAction] instance with the specified list of - /// [MeteringPoint]s and their modes in order of descending priority. - void createFromInstance( - FocusMeteringAction instance, - List<(MeteringPoint meteringPoint, int? meteringMode)> meteringPointInfos, - bool? disableAutoCancel) { - final int identifier = instanceManager.addDartCreatedInstance(instance, - onCopy: (FocusMeteringAction original) { - return FocusMeteringAction.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - meteringPointInfos: original.meteringPointInfos); - }); - - final List meteringPointInfosWithIds = - []; - for (final ( - MeteringPoint meteringPoint, - int? meteringMode - ) meteringPointInfo in meteringPointInfos) { - meteringPointInfosWithIds.add(MeteringPointInfo( - meteringPointId: instanceManager.getIdentifier(meteringPointInfo.$1)!, - meteringMode: meteringPointInfo.$2)); - } - - create(identifier, meteringPointInfosWithIds, disableAutoCancel); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart b/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart deleted file mode 100644 index 3a1afbd5fa5..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/focus_metering_result.dart +++ /dev/null @@ -1,108 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// The result of [CameraControl.startFocusAndMetering]. -/// -/// See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringResult. -@immutable -class FocusMeteringResult extends JavaObject { - /// Creates a [FocusMeteringResult] that is not automatically attached to a - /// native object. - FocusMeteringResult.detached({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ) { - _api = _FocusMeteringResultHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _FocusMeteringResultHostApiImpl _api; - - /// Returns whether or not auto focus is successful. - /// - /// If the current camera does not support auto focus, it will return true. If - /// auto focus is not requested, it will return false. - Future isFocusSuccessful() => _api.isFocusSuccessfulFromInstance(this); -} - -/// Host API implementation of [FocusMeteringResult]. -class _FocusMeteringResultHostApiImpl extends FocusMeteringResultHostApi { - /// Constructs a [FocusMeteringActionHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _FocusMeteringResultHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default [BinaryMessenger] will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Returns whether or not the [instance] indicates that auto focus was - /// successful. - Future isFocusSuccessfulFromInstance(FocusMeteringResult instance) { - final int identifier = instanceManager.getIdentifier(instance)!; - return isFocusSuccessful(identifier); - } -} - -/// Flutter API implementation of [FocusMeteringResult]. -class FocusMeteringResultFlutterApiImpl extends FocusMeteringResultFlutterApi { - /// Constructs a [FocusMeteringResultFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - FocusMeteringResultFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create(int identifier) { - _instanceManager.addHostCreatedInstance( - FocusMeteringResult.detached( - binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), - identifier, - onCopy: (FocusMeteringResult original) { - return FocusMeteringResult.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/image_analysis.dart b/packages/camera/camera_android_camerax/lib/src/image_analysis.dart deleted file mode 100644 index 3dc21ce2a7b..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/image_analysis.dart +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'analyzer.dart'; -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'resolution_selector.dart'; -import 'use_case.dart'; - -/// Use case for providing CPU accessible images for performing image analysis. -/// -/// See https://developer.android.com/reference/androidx/camera/core/ImageAnalysis. -@immutable -class ImageAnalysis extends UseCase { - /// Creates an [ImageAnalysis]. - ImageAnalysis( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.initialTargetRotation, - this.resolutionSelector}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _ImageAnalysisHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstances(this, initialTargetRotation, resolutionSelector); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - /// Constructs an [ImageAnalysis] that is not automatically attached to a - /// native object. - ImageAnalysis.detached( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.initialTargetRotation, - this.resolutionSelector}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _ImageAnalysisHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _ImageAnalysisHostApiImpl _api; - - /// Initial target rotation of the camera used for the preview stream. - /// - /// Should be specified in terms of one of the [Surface] - /// rotation constants that represents the counter-clockwise degrees of - /// rotation relative to [DeviceOrientation.portraitUp]. - // TODO(camsim99): Remove this parameter. https://github.com/flutter/flutter/issues/140664 - final int? initialTargetRotation; - - /// Target resolution of the camera preview stream. - /// - /// If not set, this [UseCase] will default to the behavior described in: - /// https://developer.android.com/reference/androidx/camera/core/ImageAnalysis.Builder#setResolutionSelector(androidx.camera.core.resolutionselector.ResolutionSelector). - final ResolutionSelector? resolutionSelector; - - /// Dynamically sets the target rotation of this instance. - /// - /// [rotation] should be specified in terms of one of the [Surface] - /// rotation constants that represents the counter-clockwise degrees of - /// rotation relative to [DeviceOrientation.portraitUp]. - Future setTargetRotation(int rotation) => - _api.setTargetRotationFromInstances(this, rotation); - - /// Sets an [Analyzer] to receive and analyze images. - Future setAnalyzer(Analyzer analyzer) => - _api.setAnalyzerFromInstances(this, analyzer); - - /// Removes a previously set [Analyzer]. - Future clearAnalyzer() => _api.clearAnalyzerFromInstances(this); -} - -/// Host API implementation of [ImageAnalysis]. -class _ImageAnalysisHostApiImpl extends ImageAnalysisHostApi { - /// Constructor for [_ImageAnalysisHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _ImageAnalysisHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - final BinaryMessenger? binaryMessenger; - - final InstanceManager instanceManager; - - /// Creates an [ImageAnalysis] instance with the specified target resolution - /// on the native side. - Future createFromInstances( - ImageAnalysis instance, - int? targetRotation, - ResolutionSelector? resolutionSelector, - ) { - return create( - instanceManager.addDartCreatedInstance( - instance, - onCopy: (ImageAnalysis original) => ImageAnalysis.detached( - initialTargetRotation: original.initialTargetRotation, - resolutionSelector: original.resolutionSelector, - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - ), - targetRotation, - resolutionSelector == null - ? null - : instanceManager.getIdentifier(resolutionSelector), - ); - } - - /// Dynamically sets the target rotation of [instance] to [rotation]. - Future setTargetRotationFromInstances( - ImageAnalysis instance, int rotation) { - return setTargetRotation( - instanceManager.getIdentifier(instance)!, rotation); - } - - /// Sets the [analyzer] to receive and analyze images on the [instance]. - Future setAnalyzerFromInstances( - ImageAnalysis instance, - Analyzer analyzer, - ) { - return setAnalyzer( - instanceManager.getIdentifier(instance)!, - instanceManager.getIdentifier(analyzer)!, - ); - } - - /// Removes a previously set analyzer from the [instance]. - Future clearAnalyzerFromInstances( - ImageAnalysis instance, - ) { - return clearAnalyzer( - instanceManager.getIdentifier(instance)!, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/image_capture.dart b/packages/camera/camera_android_camerax/lib/src/image_capture.dart deleted file mode 100644 index b2f8671cd9f..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/image_capture.dart +++ /dev/null @@ -1,195 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'resolution_selector.dart'; -import 'use_case.dart'; - -/// Use case for picture taking. -/// -/// See https://developer.android.com/reference/androidx/camera/core/ImageCapture. -@immutable -class ImageCapture extends UseCase { - /// Creates an [ImageCapture]. - ImageCapture({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.initialTargetRotation, - this.targetFlashMode, - this.resolutionSelector, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ) { - _api = ImageCaptureHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstance( - this, initialTargetRotation, targetFlashMode, resolutionSelector); - } - - /// Constructs an [ImageCapture] that is not automatically attached to a - /// native object. - ImageCapture.detached({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.initialTargetRotation, - this.targetFlashMode, - this.resolutionSelector, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ) { - _api = ImageCaptureHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - } - - late final ImageCaptureHostApiImpl _api; - - /// Initial target rotation of the camera used for the preview stream. - /// - /// Should be specified in terms of one of the [Surface] - /// rotation constants that represents the counter-clockwise degrees of - /// rotation relative to [DeviceOrientation.portraitUp]. - /// - // TODO(camsim99): Remove this parameter. https://github.com/flutter/flutter/issues/140664 - final int? initialTargetRotation; - - /// Flash mode used to take a picture. - final int? targetFlashMode; - - /// Target resolution of the image output from taking a picture. - /// - /// If not set, this [UseCase] will default to the behavior described in: - /// https://developer.android.com/reference/androidx/camera/core/ImageCapture.Builder#setResolutionSelector(androidx.camera.core.resolutionselector.ResolutionSelector). - final ResolutionSelector? resolutionSelector; - - /// Constant for automatic flash mode. - /// - /// See https://developer.android.com/reference/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). - static const int flashModeAuto = 0; - - /// Constant for on flash mode. - /// - /// See https://developer.android.com/reference/androidx/camera/core/ImageCapture#FLASH_MODE_ON(). - static const int flashModeOn = 1; - - /// Constant for no flash mode. - /// - /// See https://developer.android.com/reference/androidx/camera/core/ImageCapture#FLASH_MODE_OFF(). - static const int flashModeOff = 2; - - /// Dynamically sets the target rotation of this instance. - /// - /// [rotation] should be specified in terms of one of the [Surface] - /// rotation constants that represents the counter-clockwise degrees of - /// rotation relative to [DeviceOrientation.portraitUp]. - Future setTargetRotation(int rotation) => - _api.setTargetRotationFromInstances(this, rotation); - - /// Sets the flash mode to use for image capture. - Future setFlashMode(int newFlashMode) async { - return _api.setFlashModeFromInstances(this, newFlashMode); - } - - /// Takes a picture and returns the absolute path of where the capture image - /// was saved. - /// - /// This method is not a direct mapping of the takePicture method in the CameraX, - /// as it also: - /// - /// * Configures an instance of the ImageCapture.OutputFileOptions to specify - /// how to handle the captured image. - /// * Configures an instance of ImageCapture.OnImageSavedCallback to receive - /// the results of the image capture as an instance of - /// ImageCapture.OutputFileResults. - /// * Converts the ImageCapture.OutputFileResults output instance to a String - /// that represents the full path where the captured image was saved in - /// memory to return. - /// - /// See https://developer.android.com/reference/androidx/camera/core/ImageCapture - /// for more information. - Future takePicture() async { - return _api.takePictureFromInstances(this); - } -} - -/// Host API implementation of [ImageCapture]. -class ImageCaptureHostApiImpl extends ImageCaptureHostApi { - /// Constructs a [ImageCaptureHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - ImageCaptureHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default [BinaryMessenger] will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Creates an [ImageCapture] instance with the flash mode and target resolution - /// if specified. - void createFromInstance(ImageCapture instance, int? targetRotation, - int? targetFlashMode, ResolutionSelector? resolutionSelector) { - final int identifier = instanceManager.addDartCreatedInstance(instance, - onCopy: (ImageCapture original) { - return ImageCapture.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - initialTargetRotation: original.initialTargetRotation, - targetFlashMode: original.targetFlashMode, - resolutionSelector: original.resolutionSelector); - }); - create( - identifier, - targetRotation, - targetFlashMode, - resolutionSelector == null - ? null - : instanceManager.getIdentifier(resolutionSelector)); - } - - /// Dynamically sets the target rotation of [instance] to [rotation]. - Future setTargetRotationFromInstances( - ImageCapture instance, int rotation) { - return setTargetRotation( - instanceManager.getIdentifier(instance)!, rotation); - } - - /// Sets the flash mode for the specified [ImageCapture] instance to take - /// a picture with. - Future setFlashModeFromInstances( - ImageCapture instance, int flashMode) async { - final int? identifier = instanceManager.getIdentifier(instance); - assert(identifier != null, - 'No ImageCapture has the identifer of that requested to get the resolution information for.'); - - await setFlashMode(identifier!, flashMode); - } - - /// Takes a picture with the specified [ImageCapture] instance. - Future takePictureFromInstances(ImageCapture instance) async { - final int? identifier = instanceManager.getIdentifier(instance); - assert(identifier != null, - 'No ImageCapture has the identifer of that requested to get the resolution information for.'); - - final String picturePath = await takePicture(identifier!); - return picturePath; - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/image_proxy.dart b/packages/camera/camera_android_camerax/lib/src/image_proxy.dart deleted file mode 100644 index 230ece35089..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/image_proxy.dart +++ /dev/null @@ -1,146 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable, protected; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'plane_proxy.dart'; - -/// Representation of a single complete image buffer. -/// -/// See https://developer.android.com/reference/androidx/camera/core/ImageProxy. -@immutable -class ImageProxy extends JavaObject { - /// Constructs a [ImageProxy] that is not automatically attached to a native object. - ImageProxy.detached( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.format, - required this.height, - required this.width}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _ImageProxyHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - /// The image format. - final int format; - - /// The image height. - final int height; - - /// The image width. - final int width; - - late final _ImageProxyHostApiImpl _api; - - /// Returns the list of color planes of image data. - Future> getPlanes() => _api.getPlanesFromInstances(this); - - /// Closes the underlying image. - Future close() => _api.closeFromInstances(this); -} - -/// Host API implementation of [ImageProxy]. -class _ImageProxyHostApiImpl extends ImageProxyHostApi { - /// Constructor for [_ImageProxyHostApiImpl]. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an `InstanceManager` is being created. - _ImageProxyHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - final BinaryMessenger? binaryMessenger; - - final InstanceManager instanceManager; - - /// Returns the list of color planes of the image data represnted by the - /// [instance]. - Future> getPlanesFromInstances( - ImageProxy instance, - ) async { - final List planesAsObjects = await getPlanes( - instanceManager.getIdentifier(instance)!, - ); - - return planesAsObjects.map((int? planeIdentifier) { - return instanceManager - .getInstanceWithWeakReference(planeIdentifier!)!; - }).toList(); - } - - /// Closes the underlying image of the [instance]. - Future closeFromInstances( - ImageProxy instance, - ) { - return close( - instanceManager.getIdentifier(instance)!, - ); - } -} - -/// Flutter API implementation for [ImageProxy]. -/// -/// This class may handle instantiating and adding Dart instances that are -/// attached to a native instance or receiving callback methods from an -/// overridden native class. -@protected -class ImageProxyFlutterApiImpl implements ImageProxyFlutterApi { - /// Constructs a [ImageProxyFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - ImageProxyFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create( - int identifier, - int format, - int height, - int width, - ) { - _instanceManager.addHostCreatedInstance( - ImageProxy.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - format: format, - height: height, - width: width, - ), - identifier, - onCopy: (ImageProxy original) => ImageProxy.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - format: original.format, - height: original.height, - width: original.width), - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/instance_manager.dart b/packages/camera/camera_android_camerax/lib/src/instance_manager.dart deleted file mode 100644 index aeb97ec36fa..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/instance_manager.dart +++ /dev/null @@ -1,197 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -/// Maintains instances used to communicate with the native objects they -/// represent. -/// -/// Added instances are stored as weak references and their copies are stored -/// as strong references to maintain access to their variables and callback -/// methods. Both are stored with the same identifier. -/// -/// When a weak referenced instance becomes inaccessible, -/// [onWeakReferenceRemoved] is called with its associated identifier. -/// -/// If an instance is retrieved and has the possibility to be used, -/// (e.g. calling [getInstanceWithWeakReference]) a copy of the strong reference -/// is added as a weak reference with the same identifier. This prevents a -/// scenario where the weak referenced instance was released and then later -/// returned by the host platform. -class InstanceManager { - /// Constructs an [InstanceManager]. - InstanceManager({required void Function(int) onWeakReferenceRemoved}) { - this.onWeakReferenceRemoved = (int identifier) { - _weakInstances.remove(identifier); - onWeakReferenceRemoved(identifier); - }; - _finalizer = Finalizer(this.onWeakReferenceRemoved); - } - - // Identifiers are locked to a specific range to avoid collisions with objects - // created simultaneously by the host platform. - // Host uses identifiers >= 2^16 and Dart is expected to use values n where, - // 0 <= n < 2^16. - static const int _maxDartCreatedIdentifier = 65536; - - // Expando is used because it doesn't prevent its keys from becoming - // inaccessible. This allows the manager to efficiently retrieve an identifier - // of an instance without holding a strong reference to that instance. - // - // It also doesn't use `==` to search for identifiers, which would lead to an - // infinite loop when comparing an object to its copy. (i.e. which was caused - // by calling instanceManager.getIdentifier() inside of `==` while this was a - // HashMap). - final Expando _identifiers = Expando(); - final Map> _weakInstances = - >{}; - final Map _strongInstances = {}; - final Map _copyCallbacks = {}; - late final Finalizer _finalizer; - int _nextIdentifier = 0; - - /// Called when a weak referenced instance is removed by [removeWeakReference] - /// or becomes inaccessible. - late final void Function(int) onWeakReferenceRemoved; - - /// Adds a new instance that was instantiated by Dart. - /// - /// In other words, Dart wants to add a new instance that will represent - /// an object that will be instantiated on the host platform. - /// - /// Throws assertion error if the instance has already been added. - /// - /// Returns the randomly generated id of the [instance] added. - int addDartCreatedInstance( - T instance, { - required T Function(T original) onCopy, - }) { - final int identifier = _nextUniqueIdentifier(); - _addInstanceWithIdentifier(instance, identifier, onCopy: onCopy); - return identifier; - } - - /// Removes the instance, if present, and call [onWeakReferenceRemoved] with - /// its identifier. - /// - /// Returns the identifier associated with the removed instance. Otherwise, - /// `null` if the instance was not found in this manager. - /// - /// This does not remove the the strong referenced instance associated with - /// [instance]. This can be done with [remove]. - int? removeWeakReference(Object instance) { - final int? identifier = getIdentifier(instance); - if (identifier == null) { - return null; - } - - _identifiers[instance] = null; - _finalizer.detach(instance); - onWeakReferenceRemoved(identifier); - - return identifier; - } - - /// Removes [identifier] and its associated strongly referenced instance, if - /// present, from the manager. - /// - /// Returns the strong referenced instance associated with [identifier] before - /// it was removed. Returns `null` if [identifier] was not associated with - /// any strong reference. - /// - /// This does not remove the the weak referenced instance associtated with - /// [identifier]. This can be done with [removeWeakReference]. - T? remove(int identifier) { - _copyCallbacks.remove(identifier); - return _strongInstances.remove(identifier) as T?; - } - - /// Retrieves the instance associated with identifier. - /// - /// The value returned is chosen from the following order: - /// - /// 1. A weakly referenced instance associated with identifier. - /// 2. If the only instance associated with identifier is a strongly - /// referenced instance, a copy of the instance is added as a weak reference - /// with the same identifier. Returning the newly created copy. - /// 3. If no instance is associated with identifier, returns null. - /// - /// This method also expects the host `InstanceManager` to have a strong - /// reference to the instance the identifier is associated with. - T? getInstanceWithWeakReference(int identifier) { - final T? weakInstance = _weakInstances[identifier]?.target as T?; - - if (weakInstance == null) { - final T? strongInstance = _strongInstances[identifier] as T?; - if (strongInstance != null) { - final Function copyCallback = _copyCallbacks[identifier]!; - // This avoid_dynamic_calls is safe since the type of strongInstance - // matches the argument type for _addInstanceWithIdentifier, which is - // the only place _copyCallbacks is populated. - // ignore: avoid_dynamic_calls - final T copy = copyCallback(strongInstance) as T; - _identifiers[copy] = identifier; - _weakInstances[identifier] = WeakReference(copy); - _finalizer.attach(copy, identifier, detach: copy); - return copy; - } - return strongInstance; - } - - return weakInstance; - } - - /// Retrieves the identifier associated with instance. - int? getIdentifier(Object instance) { - return _identifiers[instance]; - } - - /// Adds a new instance that was instantiated by the host platform. - /// - /// In other words, the host platform wants to add a new instance that - /// represents an object on the host platform. Stored with [identifier]. - /// - /// Throws assertion error if the instance or its identifier has already been - /// added. - /// - /// Returns unique identifier of the [instance] added. - void addHostCreatedInstance( - T instance, - int identifier, { - required T Function(T original) onCopy, - }) { - _addInstanceWithIdentifier(instance, identifier, onCopy: onCopy); - } - - void _addInstanceWithIdentifier( - T instance, - int identifier, { - required T Function(T original) onCopy, - }) { - assert(!containsIdentifier(identifier)); - assert(getIdentifier(instance) == null); - assert(identifier >= 0); - _identifiers[instance] = identifier; - _weakInstances[identifier] = WeakReference(instance); - _finalizer.attach(instance, identifier, detach: instance); - - final Object copy = onCopy(instance); - _identifiers[copy] = identifier; - _strongInstances[identifier] = copy; - _copyCallbacks[identifier] = onCopy; - } - - /// Whether this manager contains the given [identifier]. - bool containsIdentifier(int identifier) { - return _weakInstances.containsKey(identifier) || - _strongInstances.containsKey(identifier); - } - - int _nextUniqueIdentifier() { - late int identifier; - do { - identifier = _nextIdentifier; - _nextIdentifier = (_nextIdentifier + 1) % _maxDartCreatedIdentifier; - } while (containsIdentifier(identifier)); - return identifier; - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/java_object.dart b/packages/camera/camera_android_camerax/lib/src/java_object.dart deleted file mode 100644 index 1cf2379ad42..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/java_object.dart +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/foundation.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; - -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; - -/// Root of the Java class hierarchy. -/// -/// See https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html. -@immutable -class JavaObject { - /// Constructs a [JavaObject] without creating the associated Java object. - /// - /// This should only be used by subclasses created by this library or to - /// create copies. - JavaObject.detached({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _api = JavaObjectHostApiImpl( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ); - - /// Global instance of [InstanceManager]. - static final InstanceManager globalInstanceManager = _initInstanceManager(); - - static InstanceManager _initInstanceManager() { - WidgetsFlutterBinding.ensureInitialized(); - // Clears the native `InstanceManager` on initial use of the Dart one. - InstanceManagerHostApi().clear(); - return InstanceManager( - onWeakReferenceRemoved: (int identifier) { - JavaObjectHostApiImpl().dispose(identifier); - }, - ); - } - - /// Release the weak reference to the [instance]. - static void dispose(JavaObject instance) { - instance._api.instanceManager.removeWeakReference(instance); - } - - // ignore: unused_field - final JavaObjectHostApiImpl _api; -} - -/// Handles methods calls to the native Java Object class. -class JavaObjectHostApiImpl extends JavaObjectHostApi { - /// Constructs a [JavaObjectHostApiImpl]. - JavaObjectHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; -} - -/// Handles callbacks methods for the native Java Object class. -class JavaObjectFlutterApiImpl implements JavaObjectFlutterApi { - /// Constructs a [JavaObjectFlutterApiImpl]. - JavaObjectFlutterApiImpl({InstanceManager? instanceManager}) - : instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - @override - void dispose(int identifier) { - instanceManager.remove(identifier); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/live_data.dart b/packages/camera/camera_android_camerax/lib/src/live_data.dart deleted file mode 100644 index 1931e8169ca..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/live_data.dart +++ /dev/null @@ -1,193 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart'; - -import 'camera_state.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'observer.dart'; -import 'zoom_state.dart'; - -/// A data holder class that can be observed. -/// -/// For this wrapped class, observation can only fall within the lifecycle of the -/// Android Activity to which this plugin is attached. -/// -/// See https://developer.android.com/reference/androidx/lifecycle/LiveData. -@immutable -class LiveData extends JavaObject { - /// Constructs a [LiveData] that is not automatically attached to a native object. - LiveData.detached({this.binaryMessenger, this.instanceManager}) - : _api = _LiveDataHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager), - super.detached( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - - final _LiveDataHostApiImpl _api; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager? instanceManager; - - /// Error message indicating a [LiveData] instance was constructed with a type - /// currently unsupported by the wrapping of this class. - static const String unsupportedLiveDataTypeErrorMessage = - 'The type of LiveData passed to this method is current unspported; please see LiveDataSupportedTypeData in pigeons/camerax_library.dart if you wish to support a new type.'; - - /// Adds specified [Observer] to the list of observers of this instance. - Future observe(Observer observer) { - return _api.observeFromInstances(this, observer); - } - - /// Removes all observers of this instance. - Future removeObservers() { - return _api.removeObserversFromInstances(this); - } - - /// Returns the current value. - Future? getValue() { - return _api.getValueFromInstances(this); - } -} - -/// Host API implementation of [LiveData]. -class _LiveDataHostApiImpl extends LiveDataHostApi { - /// Constructs a [_LiveDataHostApiImpl]. - /// - /// If [binaryMessenger] the default BinaryMessenger will be used which routes to - /// the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _LiveDataHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - /// Adds specified [Observer] to the list of observers of the specified - /// [LiveData] instance. - Future observeFromInstances( - LiveData instance, - Observer observer, - ) { - return observe( - instanceManager.getIdentifier(instance)!, - instanceManager.getIdentifier(observer)!, - ); - } - - /// Removes all observers of the specified [LiveData] instance. - Future removeObserversFromInstances( - LiveData instance, - ) { - return removeObservers( - instanceManager.getIdentifier(instance)!, - ); - } - - /// Gets current value of specified [LiveData] instance. - Future? getValueFromInstances( - LiveData instance) async { - LiveDataSupportedTypeData? typeData; - switch (T) { - case const (CameraState): - typeData = - LiveDataSupportedTypeData(value: LiveDataSupportedType.cameraState); - case const (ZoomState): - typeData = - LiveDataSupportedTypeData(value: LiveDataSupportedType.zoomState); - default: - throw ArgumentError(LiveData.unsupportedLiveDataTypeErrorMessage); - } - final int? valueIdentifier = - await getValue(instanceManager.getIdentifier(instance)!, typeData); - return valueIdentifier == null - ? null - : instanceManager.getInstanceWithWeakReference(valueIdentifier); - } -} - -/// Flutter API implementation for [LiveData]. -/// -/// This class may handle instantiating and adding Dart instances that are -/// attached to a native instance or receiving callback methods from an -/// overridden native class. -@protected -class LiveDataFlutterApiImpl implements LiveDataFlutterApi { - /// Constructs a [LiveDataFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - LiveDataFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create( - int identifier, - LiveDataSupportedTypeData typeData, - ) { - switch (typeData.value) { - case LiveDataSupportedType.cameraState: - _instanceManager.addHostCreatedInstance( - LiveData.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - identifier, - onCopy: (LiveData original) => - LiveData.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - ); - return; - case LiveDataSupportedType.zoomState: - _instanceManager.addHostCreatedInstance( - LiveData.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - identifier, - onCopy: (LiveData original) => - LiveData.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - ), - ); - return; - // This ignore statement is safe beause this error will be useful when - // a new LiveDataSupportedType is being added, but the logic in this method - // has not yet been updated. - // ignore: no_default_cases, unreachable_switch_default - default: - throw ArgumentError(LiveData.unsupportedLiveDataTypeErrorMessage); - } - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/metering_point.dart b/packages/camera/camera_android_camerax/lib/src/metering_point.dart deleted file mode 100644 index c5ee6061de9..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/metering_point.dart +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camera_info.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Representation for a region which can be converted to sensor coordinate -/// system for focus and metering purpose. -/// -/// See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. -@immutable -class MeteringPoint extends JavaObject { - /// Creates a [MeteringPoint]. - MeteringPoint({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.x, - required this.y, - this.size, - required this.cameraInfo, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ) { - _api = _MeteringPointHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstance(this, x, y, size, cameraInfo); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - /// Creates a [MeteringPoint] that is not automatically attached to a - /// native object. - MeteringPoint.detached({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.x, - required this.y, - this.size, - required this.cameraInfo, - }) : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ) { - _api = _MeteringPointHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final _MeteringPointHostApiImpl _api; - - /// X coordinate. - final double x; - - /// Y coordinate. - final double y; - - /// The size of the [MeteringPoint] width and height (ranging from 0 to 1), - /// which is a normalized percentage of the sensor width/height (or crop - /// region width/height if crop region is set). - final double? size; - - /// The [CameraInfo] used to construct the metering point with a display- - /// oriented metering point factory. - final CameraInfo cameraInfo; - - /// The default size of the [MeteringPoint] width and height (ranging from 0 - /// to 1) which is a (normalized) percentage of the sensor width/height (or - /// crop region width/height if crop region is set). - static Future getDefaultPointSize( - {BinaryMessenger? binaryMessenger}) { - final MeteringPointHostApi hostApi = - MeteringPointHostApi(binaryMessenger: binaryMessenger); - return hostApi.getDefaultPointSize(); - } -} - -/// Host API implementation of [MeteringPoint]. -class _MeteringPointHostApiImpl extends MeteringPointHostApi { - /// Constructs a [_MeteringPointHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _MeteringPointHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default [BinaryMessenger] will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Creates a [MeteringPoint] instance with the specified [x] and [y] - /// coordinates as well as [size] if non-null. - Future createFromInstance(MeteringPoint instance, double x, double y, - double? size, CameraInfo cameraInfo) { - int? identifier = instanceManager.getIdentifier(instance); - identifier ??= instanceManager.addDartCreatedInstance(instance, - onCopy: (MeteringPoint original) { - return MeteringPoint.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - x: original.x, - y: original.y, - cameraInfo: original.cameraInfo, - size: original.size); - }); - final int? camInfoId = instanceManager.getIdentifier(cameraInfo); - - return create(identifier, x, y, size, camInfoId!); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/observer.dart b/packages/camera/camera_android_camerax/lib/src/observer.dart deleted file mode 100644 index 912343b44a1..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/observer.dart +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart'; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'live_data.dart'; - -/// Callback that can receive from [LiveData]. -/// -/// See https://developer.android.com/reference/androidx/lifecycle/Observer. -@immutable -class Observer extends JavaObject { - /// Constructor for [Observer]. - Observer( - {super.binaryMessenger, - super.instanceManager, - required void Function(Object value) onChanged}) - : _api = _ObserverHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager), - super.detached() { - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - this.onChanged = (Object value) { - if (value is! T) { - throw ArgumentError( - 'The type of value observed does not match the type of Observer constructed.'); - } - onChanged(value); - }; - _api.createFromInstance(this); - } - - /// Constructs a [Observer] that is not automatically attached to a native object. - Observer.detached( - {super.binaryMessenger, - super.instanceManager, - required void Function(Object value) onChanged}) - : _api = _ObserverHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager), - super.detached() { - this.onChanged = (Object value) { - assert(value is T); - onChanged(value); - }; - } - - final _ObserverHostApiImpl _api; - - /// Callback used when the observed data is changed to a new value. - /// - /// The callback parameter cannot take type [T] directly due to the issue - /// described in https://github.com/dart-lang/sdk/issues/51461. - late final void Function(Object value) onChanged; -} - -class _ObserverHostApiImpl extends ObserverHostApi { - /// Constructs an [_ObserverHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _ObserverHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - final BinaryMessenger? binaryMessenger; - - final InstanceManager instanceManager; - - /// Adds specified [Observer] instance to instance manager and makes call - /// to native side to create the instance. - Future createFromInstance( - Observer instance, - ) { - return create( - instanceManager.addDartCreatedInstance( - instance, - onCopy: (Observer original) => Observer.detached( - onChanged: original.onChanged, - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - ), - ); - } -} - -/// Flutter API implementation for [Observer]. -/// -/// This class may handle instantiating and adding Dart instances that are -/// attached to a native instance or receiving callback methods from an -/// overridden native class. -@protected -class ObserverFlutterApiImpl implements ObserverFlutterApi { - /// Constructs an [ObserverFlutterApiImpl]. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - ObserverFlutterApiImpl({ - InstanceManager? instanceManager, - }) : _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void onChanged( - int identifier, - int valueIdentifier, - ) { - final Observer instance = - _instanceManager.getInstanceWithWeakReference(identifier)!; - - // This call is safe because the onChanged callback will check the type - // of the instance to ensure it is expected before proceeding. - // ignore: avoid_dynamic_calls, void_checks - instance.onChanged( - _instanceManager.getInstanceWithWeakReference(valueIdentifier)!, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/pending_recording.dart b/packages/camera/camera_android_camerax/lib/src/pending_recording.dart deleted file mode 100644 index 7dcb19e48c5..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/pending_recording.dart +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'recording.dart'; - -/// Dart wrapping of PendingRecording CameraX class. -/// -/// See https://developer.android.com/reference/androidx/camera/video/PendingRecording -@immutable -class PendingRecording extends JavaObject { - /// Creates a [PendingRecording] that is not automatically attached to - /// a native object. - PendingRecording.detached( - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = PendingRecordingHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final PendingRecordingHostApiImpl _api; - - /// Stream that emits an event when the corresponding video recording is finalized. - static final StreamController - videoRecordingEventStreamController = - StreamController.broadcast(); - - /// Starts the recording, making it an active recording. - Future start() { - return _api.startFromInstance(this); - } -} - -/// Host API implementation of [PendingRecording]. -class PendingRecordingHostApiImpl extends PendingRecordingHostApi { - /// Constructs a PendingRecordingHostApiImpl. - PendingRecordingHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) - : super(binaryMessenger: binaryMessenger) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Starts the recording, making it an active recording. - Future startFromInstance(PendingRecording pendingRecording) async { - int? instanceId = instanceManager.getIdentifier(pendingRecording); - instanceId ??= instanceManager.addDartCreatedInstance(pendingRecording, - onCopy: (PendingRecording original) { - return PendingRecording.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ); - }); - return instanceManager - .getInstanceWithWeakReference(await start(instanceId))! as Recording; - } -} - -/// Flutter API implementation of [PendingRecording]. -class PendingRecordingFlutterApiImpl extends PendingRecordingFlutterApi { - /// Constructs a [PendingRecordingFlutterApiImpl]. - PendingRecordingFlutterApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - @override - void create(int identifier) { - instanceManager.addHostCreatedInstance( - PendingRecording.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - identifier, onCopy: (PendingRecording original) { - return PendingRecording.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ); - }); - } - - @override - void onVideoRecordingEvent(VideoRecordEventData event) { - PendingRecording.videoRecordingEventStreamController.add(event.value); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/plane_proxy.dart b/packages/camera/camera_android_camerax/lib/src/plane_proxy.dart deleted file mode 100644 index d69892e19da..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/plane_proxy.dart +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:typed_data'; - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable, protected; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// A single color plane of image data. -/// -/// See https://developer.android.com/reference/androidx/camera/core/ImageProxy.PlaneProxy. -@immutable -class PlaneProxy extends JavaObject { - /// Constructs a [PlaneProxy] that is not automatically attached to a native object. - PlaneProxy.detached( - {super.binaryMessenger, - super.instanceManager, - required this.buffer, - required this.pixelStride, - required this.rowStride}) - : super.detached() { - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - /// Returns the pixels buffer containing frame data. - final Uint8List buffer; - - /// Returns the pixel stride, the distance between adjacent pixel samples, in - /// bytes. - final int pixelStride; - - /// Returns the row stride, the distance between the start of two consecutive - /// rows of pixels in the image, in bytes. - final int rowStride; -} - -/// Flutter API implementation for [PlaneProxy]. -/// -/// This class may handle instantiating and adding Dart instances that are -/// attached to a native instance or receiving callback methods from an -/// overridden native class. -@protected -class PlaneProxyFlutterApiImpl implements PlaneProxyFlutterApi { - /// Constructs an [PlaneProxyFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - PlaneProxyFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create( - int identifier, - Uint8List buffer, - int pixelStride, - int rowStride, - ) { - _instanceManager.addHostCreatedInstance( - PlaneProxy.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - buffer: buffer, - pixelStride: pixelStride, - rowStride: rowStride, - ), - identifier, - onCopy: (PlaneProxy original) => PlaneProxy.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager, - buffer: buffer, - pixelStride: pixelStride, - rowStride: rowStride), - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/preview.dart b/packages/camera/camera_android_camerax/lib/src/preview.dart deleted file mode 100644 index 8990313817b..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/preview.dart +++ /dev/null @@ -1,159 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'resolution_selector.dart'; -import 'use_case.dart'; - -/// Use case that provides a camera preview stream for display. -/// -/// See https://developer.android.com/reference/androidx/camera/core/Preview. -@immutable -class Preview extends UseCase { - /// Creates a [Preview]. - Preview( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.initialTargetRotation, - this.resolutionSelector}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = PreviewHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstance(this, initialTargetRotation, resolutionSelector); - } - - /// Constructs a [Preview] that is not automatically attached to a native object. - Preview.detached( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.initialTargetRotation, - this.resolutionSelector}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = PreviewHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - } - - late final PreviewHostApiImpl _api; - - /// Target rotation of the camera used for the preview stream. - /// - /// Should be specified in terms of one of the [Surface] - /// rotation constants that represents the counter-clockwise degrees of - /// rotation relative to [DeviceOrientation.portraitUp]. - /// - // TODO(camsim99): Remove this parameter. https://github.com/flutter/flutter/issues/140664 - final int? initialTargetRotation; - - /// Target resolution of the camera preview stream. - /// - /// If not set, this [UseCase] will default to the behavior described in: - /// https://developer.android.com/reference/androidx/camera/core/Preview.Builder#setResolutionSelector(androidx.camera.core.resolutionselector.ResolutionSelector). - final ResolutionSelector? resolutionSelector; - - /// Dynamically sets the target rotation of this instance. - /// - /// [rotation] should be specified in terms of one of the [Surface] - /// rotation constants that represents the counter-clockwise degrees of - /// rotation relative to [DeviceOrientation.portraitUp]. - Future setTargetRotation(int rotation) => - _api.setTargetRotationFromInstances(this, rotation); - - /// Sets the surface provider for the preview stream. - /// - /// Returns the ID of the FlutterSurfaceTextureEntry used on the native end - /// used to display the preview stream on a [Texture] of the same ID. - Future setSurfaceProvider() { - return _api.setSurfaceProviderFromInstance(this); - } - - /// Releases Flutter surface texture used to provide a surface for the preview - /// stream. - void releaseFlutterSurfaceTexture() { - _api.releaseFlutterSurfaceTextureFromInstance(); - } - - /// Retrieves the selected resolution information of this [Preview]. - Future getResolutionInfo() { - return _api.getResolutionInfoFromInstance(this); - } -} - -/// Host API implementation of [Preview]. -class PreviewHostApiImpl extends PreviewHostApi { - /// Constructs an [PreviewHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - PreviewHostApiImpl({this.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Creates a [Preview] with the target rotation and target resolution if - /// specified. - void createFromInstance(Preview instance, int? targetRotation, - ResolutionSelector? resolutionSelector) { - final int identifier = instanceManager.addDartCreatedInstance(instance, - onCopy: (Preview original) { - return Preview.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - initialTargetRotation: original.initialTargetRotation, - resolutionSelector: original.resolutionSelector); - }); - create( - identifier, - targetRotation, - resolutionSelector == null - ? null - : instanceManager.getIdentifier(resolutionSelector)); - } - - /// Dynamically sets the target rotation of [instance] to [rotation]. - Future setTargetRotationFromInstances(Preview instance, int rotation) { - return setTargetRotation( - instanceManager.getIdentifier(instance)!, rotation); - } - - /// Sets the surface provider of the specified [Preview] instance and returns - /// the ID corresponding to the surface it will provide. - Future setSurfaceProviderFromInstance(Preview instance) async { - final int? identifier = instanceManager.getIdentifier(instance); - final int surfaceTextureEntryId = await setSurfaceProvider(identifier!); - - return surfaceTextureEntryId; - } - - /// Releases Flutter surface texture used to provide a surface for the preview - /// stream if a surface provider was set for a [Preview] instance. - void releaseFlutterSurfaceTextureFromInstance() { - releaseFlutterSurfaceTexture(); - } - - /// Gets the resolution information of the specified [Preview] instance. - Future getResolutionInfoFromInstance(Preview instance) async { - final int? identifier = instanceManager.getIdentifier(instance); - final ResolutionInfo resolutionInfo = await getResolutionInfo(identifier!); - - return resolutionInfo; - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/process_camera_provider.dart b/packages/camera/camera_android_camerax/lib/src/process_camera_provider.dart deleted file mode 100644 index a2f8a1634ce..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/process_camera_provider.dart +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camera.dart'; -import 'camera_info.dart'; -import 'camera_selector.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'use_case.dart'; - -/// Provides an object to manage the camera. -/// -/// See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. -@immutable -class ProcessCameraProvider extends JavaObject { - /// Creates a detached [ProcessCameraProvider]. - ProcessCameraProvider.detached( - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = ProcessCameraProviderHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final ProcessCameraProviderHostApiImpl _api; - - /// Gets an instance of [ProcessCameraProvider]. - static Future getInstance( - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) { - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - final ProcessCameraProviderHostApiImpl api = - ProcessCameraProviderHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - - return api.getInstancefromInstances(); - } - - /// Retrieves the cameras available to the device. - Future> getAvailableCameraInfos() { - return _api.getAvailableCameraInfosFromInstances(this); - } - - /// Binds the specified [UseCase]s to the lifecycle of the camera that it - /// returns. - Future bindToLifecycle( - CameraSelector cameraSelector, List useCases) { - return _api.bindToLifecycleFromInstances(this, cameraSelector, useCases); - } - - /// Returns whether or not the specified [UseCase] has been bound to the - /// lifecycle of the camera that this instance tracks. - Future isBound(UseCase useCase) { - return _api.isBoundFromInstances(this, useCase); - } - - /// Unbinds specified [UseCase]s from the lifecycle of the camera that this - /// instance tracks. - void unbind(List useCases) { - _api.unbindFromInstances(this, useCases); - } - - /// Unbinds all previously bound [UseCase]s from the lifecycle of the camera - /// that this tracks. - void unbindAll() { - _api.unbindAllFromInstances(this); - } -} - -/// Host API implementation of [ProcessCameraProvider]. -class ProcessCameraProviderHostApiImpl extends ProcessCameraProviderHostApi { - /// Constructs an [ProcessCameraProviderHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - ProcessCameraProviderHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) - : super(binaryMessenger: binaryMessenger) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Retrieves an instance of a ProcessCameraProvider from the context of - /// the FlutterActivity. - Future getInstancefromInstances() async { - return instanceManager.getInstanceWithWeakReference( - await getInstance())!; - } - - /// Gets identifier that the [instanceManager] has set for - /// the [ProcessCameraProvider] instance. - int getProcessCameraProviderIdentifier(ProcessCameraProvider instance) { - final int? identifier = instanceManager.getIdentifier(instance); - return identifier!; - } - - /// Retrives the list of CameraInfos corresponding to the available cameras. - Future> getAvailableCameraInfosFromInstances( - ProcessCameraProvider instance) async { - final int identifier = getProcessCameraProviderIdentifier(instance); - final List cameraInfos = await getAvailableCameraInfos(identifier); - return cameraInfos - .map((int? id) => - instanceManager.getInstanceWithWeakReference(id!)!) - .toList(); - } - - /// Binds the specified [UseCase]s to the lifecycle of the camera which - /// the provided [ProcessCameraProvider] instance tracks. - /// - /// The instance of the camera whose lifecycle the [UseCase]s are bound to - /// is returned. - Future bindToLifecycleFromInstances( - ProcessCameraProvider instance, - CameraSelector cameraSelector, - List useCases, - ) async { - final int identifier = getProcessCameraProviderIdentifier(instance); - final List useCaseIds = useCases - .map((UseCase useCase) => instanceManager.getIdentifier(useCase)!) - .toList(); - - final int cameraIdentifier = await bindToLifecycle( - identifier, - instanceManager.getIdentifier(cameraSelector)!, - useCaseIds, - ); - return instanceManager - .getInstanceWithWeakReference(cameraIdentifier)!; - } - - /// Returns whether or not the specified [UseCase] has been bound to the - /// lifecycle of the camera that this instance tracks. - Future isBoundFromInstances( - ProcessCameraProvider instance, - UseCase useCase, - ) async { - final int identifier = getProcessCameraProviderIdentifier(instance); - final int? useCaseId = instanceManager.getIdentifier(useCase); - - assert(useCaseId != null, - 'UseCase must have been created in order for this check to be valid.'); - - final bool useCaseIsBound = await isBound(identifier, useCaseId!); - return useCaseIsBound; - } - - /// Unbinds specified [UseCase]s from the lifecycle of the camera which the - /// provided [ProcessCameraProvider] instance tracks. - void unbindFromInstances( - ProcessCameraProvider instance, - List useCases, - ) { - final int identifier = getProcessCameraProviderIdentifier(instance); - final List useCaseIds = useCases - .map((UseCase useCase) => instanceManager.getIdentifier(useCase)!) - .toList(); - - unbind(identifier, useCaseIds); - } - - /// Unbinds all previously bound [UseCase]s from the lifecycle of the camera - /// which the provided [ProcessCameraProvider] instance tracks. - void unbindAllFromInstances(ProcessCameraProvider instance) { - final int identifier = getProcessCameraProviderIdentifier(instance); - unbindAll(identifier); - } -} - -/// Flutter API Implementation of [ProcessCameraProvider]. -class ProcessCameraProviderFlutterApiImpl - implements ProcessCameraProviderFlutterApi { - /// Constructs an [ProcessCameraProviderFlutterApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - ProcessCameraProviderFlutterApiImpl({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) : _binaryMessenger = binaryMessenger, - _instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? _binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager _instanceManager; - - @override - void create(int identifier) { - _instanceManager.addHostCreatedInstance( - ProcessCameraProvider.detached( - binaryMessenger: _binaryMessenger, instanceManager: _instanceManager), - identifier, - onCopy: (ProcessCameraProvider original) { - return ProcessCameraProvider.detached( - binaryMessenger: _binaryMessenger, - instanceManager: _instanceManager); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/quality_selector.dart b/packages/camera/camera_android_camerax/lib/src/quality_selector.dart deleted file mode 100644 index 6daff7d0682..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/quality_selector.dart +++ /dev/null @@ -1,145 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'camera_info.dart'; -import 'camerax_library.g.dart'; -import 'fallback_strategy.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Quality setting used to configure components with quality setting -/// requirements such as creating a Recorder. -/// -/// See https://developer.android.com/reference/androidx/camera/video/QualitySelector. -@immutable -class QualitySelector extends JavaObject { - /// Creates a [QualitySelector] with the desired quality and fallback - /// strategy, if specified. - QualitySelector.from( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required VideoQualityData quality, - this.fallbackStrategy}) - : qualityList = [quality], - super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _QualitySelectorHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstance(this, qualityList, fallbackStrategy); - } - - /// Creates a [QualitySelector] with ordered desired qualities and fallback - /// strategy, if specified. - /// - /// The final quality will be selected according to the order in which they are - /// specified. - QualitySelector.fromOrderedList( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - required this.qualityList, - this.fallbackStrategy}) - : assert(qualityList.isNotEmpty, - 'Quality list specified must be non-empty.'), - super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = _QualitySelectorHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstance(this, qualityList, fallbackStrategy); - } - - /// Creates a [QualitySelector] that is not automatically attached to a - /// native object. - QualitySelector.detached({ - super.binaryMessenger, - super.instanceManager, - required this.qualityList, - this.fallbackStrategy, - }) : super.detached(); - - late final _QualitySelectorHostApiImpl _api; - - /// Desired qualities for this selector instance. - final List qualityList; - - /// Desired fallback strategy for this selector instance. - final FallbackStrategy? fallbackStrategy; - - /// Retrieves the corresponding resolution from the input [quality] for the - /// camera represented by [cameraInfo]. - static Future getResolution( - CameraInfo cameraInfo, VideoQuality quality, - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) { - final _QualitySelectorHostApiImpl api = _QualitySelectorHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - return api.getResolutionFromInstance(cameraInfo, quality); - } -} - -/// Host API implementation of [QualitySelector]. -class _QualitySelectorHostApiImpl extends QualitySelectorHostApi { - /// Constructs a [QualitySelectorHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _QualitySelectorHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default [BinaryMessenger] will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Creates a [QualitySelector] instance with the desired qualities and - /// fallback strategy specified. - void createFromInstance(QualitySelector instance, - List qualityList, FallbackStrategy? fallbackStrategy) { - final int identifier = instanceManager.addDartCreatedInstance(instance, - onCopy: (QualitySelector original) { - return QualitySelector.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - qualityList: original.qualityList, - fallbackStrategy: original.fallbackStrategy, - ); - }); - - create( - identifier, - qualityList, - fallbackStrategy == null - ? null - : instanceManager.getIdentifier(fallbackStrategy)); - } - - /// Retrieves the corresponding resolution from the input [quality] for the - /// camera represented by [cameraInfo]. - Future getResolutionFromInstance( - CameraInfo cameraInfo, VideoQuality quality) async { - final int? cameraInfoIdentifier = instanceManager.getIdentifier(cameraInfo); - - if (cameraInfoIdentifier == null) { - throw ArgumentError( - 'The CameraInfo instance specified needs to be added to the InstanceManager instance in use.'); - } - - final ResolutionInfo resolution = - await getResolution(cameraInfoIdentifier, quality); - return resolution; - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/recorder.dart b/packages/camera/camera_android_camerax/lib/src/recorder.dart deleted file mode 100644 index 1fd93ec1b6e..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/recorder.dart +++ /dev/null @@ -1,179 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'fallback_strategy.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'pending_recording.dart'; -import 'quality_selector.dart'; - -/// A dart wrapping of the CameraX Recorder class. -/// -/// See https://developer.android.com/reference/androidx/camera/video/Recorder. -@immutable -class Recorder extends JavaObject { - /// Creates a [Recorder]. - Recorder( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.aspectRatio, - this.bitRate, - this.qualitySelector}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - _api = RecorderHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - _api.createFromInstance(this, aspectRatio, bitRate, qualitySelector); - } - - /// Creates a [Recorder] that is not automatically attached to a native object - Recorder.detached( - {BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - this.aspectRatio, - this.bitRate, - this.qualitySelector}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = RecorderHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - /// Returns default [QualitySelector] for recordings. - /// - /// See https://developer.android.com/reference/androidx/camera/video/Recorder#DEFAULT_QUALITY_SELECTOR(). - static QualitySelector getDefaultQualitySelector({ - BinaryMessenger? binaryMessenger, - InstanceManager? instanceManager, - }) { - return QualitySelector.fromOrderedList( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - qualityList: [ - VideoQualityData(quality: VideoQuality.FHD), - VideoQualityData(quality: VideoQuality.HD), - VideoQualityData(quality: VideoQuality.SD), - ], - fallbackStrategy: FallbackStrategy( - quality: VideoQuality.FHD, - fallbackRule: VideoResolutionFallbackRule.higherQualityOrLowerThan), - ); - } - - late final RecorderHostApiImpl _api; - - /// The video aspect ratio of this [Recorder]. - final int? aspectRatio; - - /// The intended video encoding bitrate for recording. - final int? bitRate; - - /// The [QualitySelector] of this [Recorder] used to select the resolution of - /// the recording depending on the resoutions supported by the camera. - /// - /// Default selector is that returned by [getDefaultQualitySelector], and it - /// is compatible with setting the aspect ratio. - final QualitySelector? qualitySelector; - - /// Prepare a recording that will be saved to a file. - Future prepareRecording(String path) { - return _api.prepareRecordingFromInstance(this, path); - } -} - -/// Host API implementation of [Recorder]. -class RecorderHostApiImpl extends RecorderHostApi { - /// Constructs a [RecorderHostApiImpl]. - RecorderHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Creates a [Recorder] with the provided aspect ratio and bitrate if specified. - void createFromInstance(Recorder instance, int? aspectRatio, int? bitRate, - QualitySelector? qualitySelector) { - int? identifier = instanceManager.getIdentifier(instance); - identifier ??= instanceManager.addDartCreatedInstance(instance, - onCopy: (Recorder original) { - return Recorder.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - aspectRatio: aspectRatio, - bitRate: bitRate, - qualitySelector: qualitySelector); - }); - create( - identifier, - aspectRatio, - bitRate, - qualitySelector == null - ? null - : instanceManager.getIdentifier(qualitySelector)!); - } - - /// Prepares a [Recording] using this recorder. The output file will be saved - /// at the provided path. - Future prepareRecordingFromInstance( - Recorder instance, String path) async { - final int pendingRecordingId = - await prepareRecording(instanceManager.getIdentifier(instance)!, path); - - return instanceManager.getInstanceWithWeakReference(pendingRecordingId)!; - } -} - -/// Flutter API implementation of [Recorder]. -class RecorderFlutterApiImpl extends RecorderFlutterApi { - /// Constructs a [RecorderFlutterApiImpl]. - RecorderFlutterApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - @override - void create(int identifier, int? aspectRatio, int? bitRate) { - instanceManager.addHostCreatedInstance( - Recorder.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - aspectRatio: aspectRatio, - bitRate: bitRate, - ), - identifier, onCopy: (Recorder original) { - return Recorder.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - aspectRatio: aspectRatio, - bitRate: bitRate, - ); - }); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/recording.dart b/packages/camera/camera_android_camerax/lib/src/recording.dart deleted file mode 100644 index ece29b3fa83..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/recording.dart +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Wraps a CameraX recording class. -/// -/// See https://developer.android.com/reference/androidx/camera/video/Recording. -@immutable -class Recording extends JavaObject { - /// Constructs a detached [Recording] - Recording.detached( - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ) { - _api = RecordingHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final RecordingHostApiImpl _api; - - /// Closes this recording. - Future close() { - return _api.closeFromInstance(this); - } - - /// Pauses this recording if active. - Future pause() { - return _api.pauseFromInstance(this); - } - - /// Resumes the current recording if paused. - Future resume() { - return _api.resumeFromInstance(this); - } - - /// Stops the recording, as if calling close(). - Future stop() { - return _api.stopFromInstance(this); - } -} - -/// Host API implementation of [Recording]. -class RecordingHostApiImpl extends RecordingHostApi { - /// Creates a [RecordingHostApiImpl]. - RecordingHostApiImpl({this.binaryMessenger, InstanceManager? instanceManager}) - : super(binaryMessenger: binaryMessenger) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Closes the specified recording instance. - Future closeFromInstance(Recording recording) async { - await close(instanceManager.getIdentifier(recording)!); - } - - /// Pauses the specified recording instance if active. - Future pauseFromInstance(Recording recording) async { - await pause(instanceManager.getIdentifier(recording)!); - } - - /// Resumes the specified recording instance if paused. - Future resumeFromInstance(Recording recording) async { - await resume(instanceManager.getIdentifier(recording)!); - } - - /// Stops the specified recording instance, as if calling closeFromInstance(). - Future stopFromInstance(Recording recording) async { - await stop(instanceManager.getIdentifier(recording)!); - } -} - -/// Flutter API implementation of [Recording]. -class RecordingFlutterApiImpl extends RecordingFlutterApi { - /// Constructs a [RecordingFlutterApiImpl]. - RecordingFlutterApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - @override - void create(int identifier) { - instanceManager.addHostCreatedInstance( - Recording.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - identifier, onCopy: (Recording original) { - return Recording.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ); - }); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/resolution_filter.dart b/packages/camera/camera_android_camerax/lib/src/resolution_filter.dart deleted file mode 100644 index 3a428a00e73..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/resolution_filter.dart +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Filterer for applications to specify preferred resolutions. -/// -/// This is an indirect wrapping of the native Android `ResolutionFilter`, -/// an interface that requires a synchronous response. Achieving such is not -/// possible through pigeon. Thus, constructing a [ResolutionFilter] with a -/// particular constructor will create a native `ResolutionFilter` with the -/// characteristics described in the documentation for that constructor, -/// respectively. -/// -/// If the provided constructors do not meet your needs, feel free to add a new -/// constructor; see CONTRIBUTING.MD for more information on how to do so. -/// -/// See https://developer.android.com/reference/androidx/camera/core/ResolutionFilter/ResolutionFilter. -@immutable -class ResolutionFilter extends JavaObject { - /// Constructs a [ResolutionFilter]. - /// - /// This will construct a native `ResolutionFilter` that will prioritize the - /// specified [preferredResolution] (if supported) over other supported - /// resolutions, whose priorities (as determined by CameraX) will remain the - /// same. - ResolutionFilter.onePreferredSize({ - required this.preferredResolution, - super.binaryMessenger, - super.instanceManager, - }) : _api = _ResolutionFilterHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - super.detached() { - _api.createWithOnePreferredSizeFromInstances(this, preferredResolution); - } - - /// Instantiates a [ResolutionFilter.onePreferredSize] that is not - /// automatically attached to a native object. - ResolutionFilter.onePreferredSizeDetached({ - required this.preferredResolution, - super.binaryMessenger, - super.instanceManager, - }) : _api = _ResolutionFilterHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - super.detached(); - - final _ResolutionFilterHostApiImpl _api; - - /// The resolution for a [ResolutionFilter.onePreferredSize] to prioritize. - final Size preferredResolution; -} - -/// Host API implementation of [ResolutionFilter]. -class _ResolutionFilterHostApiImpl extends ResolutionFilterHostApi { - /// Constructs an [_ResolutionFilterHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _ResolutionFilterHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - /// Creates a [ResolutionFilter] on the native side that will prioritize - /// the specified [preferredResolution]. - Future createWithOnePreferredSizeFromInstances( - ResolutionFilter instance, - Size preferredResolution, - ) { - return createWithOnePreferredSize( - instanceManager.addDartCreatedInstance( - instance, - onCopy: (ResolutionFilter original) => - ResolutionFilter.onePreferredSizeDetached( - preferredResolution: original.preferredResolution, - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - ), - ResolutionInfo( - width: preferredResolution.width.toInt(), - height: preferredResolution.height.toInt(), - ), - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/resolution_selector.dart b/packages/camera/camera_android_camerax/lib/src/resolution_selector.dart deleted file mode 100644 index 3017daab811..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/resolution_selector.dart +++ /dev/null @@ -1,120 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'aspect_ratio_strategy.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'resolution_filter.dart'; -import 'resolution_strategy.dart'; - -/// A set of requirements and priorities used to select a resolution for a -/// UseCase. -/// -/// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/ResolutionSelector. -@immutable -class ResolutionSelector extends JavaObject { - /// Construct a [ResolutionSelector]. - ResolutionSelector({ - this.resolutionStrategy, - this.resolutionFilter, - this.aspectRatioStrategy, - super.binaryMessenger, - super.instanceManager, - }) : _api = _ResolutionSelectorHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - super.detached() { - _api.createFromInstances( - this, resolutionStrategy, resolutionFilter, aspectRatioStrategy); - } - - /// Instantiates a [ResolutionSelector] without creating and attaching to an - /// instance of the associated native class. - /// - /// This should only be used outside of tests by subclasses created by this - /// library or to create a copy for an [InstanceManager]. - ResolutionSelector.detached({ - this.resolutionStrategy, - this.resolutionFilter, - this.aspectRatioStrategy, - super.binaryMessenger, - super.instanceManager, - }) : _api = _ResolutionSelectorHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - super.detached(); - - final _ResolutionSelectorHostApiImpl _api; - - /// Determines how the UseCase will choose the resolution of the captured - /// image. - final ResolutionStrategy? resolutionStrategy; - - /// Filter for CameraX to automatically select a desirable resolution. - final ResolutionFilter? resolutionFilter; - - /// Determines how the UseCase will choose the aspect ratio of the captured - /// image. - final AspectRatioStrategy? aspectRatioStrategy; -} - -/// Host API implementation of [ResolutionSelector]. -class _ResolutionSelectorHostApiImpl extends ResolutionSelectorHostApi { - /// Constructs an [_ResolutionSelectorHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _ResolutionSelectorHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - /// Creates a [ResolutionSelector] on the native side with the - /// [ResolutionStrategy], [ResolutionFilter], and [AspectRatioStrategy] if - /// specified. - Future createFromInstances( - ResolutionSelector instance, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - AspectRatioStrategy? aspectRatioStrategy, - ) { - return create( - instanceManager.addDartCreatedInstance( - instance, - onCopy: (ResolutionSelector original) => ResolutionSelector.detached( - resolutionStrategy: original.resolutionStrategy, - aspectRatioStrategy: original.aspectRatioStrategy, - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - ), - resolutionStrategy == null - ? null - : instanceManager.getIdentifier(resolutionStrategy)!, - resolutionFilter == null - ? null - : instanceManager.getIdentifier(resolutionFilter)!, - aspectRatioStrategy == null - ? null - : instanceManager.getIdentifier(aspectRatioStrategy)!, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/resolution_strategy.dart b/packages/camera/camera_android_camerax/lib/src/resolution_strategy.dart deleted file mode 100644 index 80669f3f8d5..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/resolution_strategy.dart +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// The resolution strategy defines the resolution selection sequence to select -/// the best size. -/// -/// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/ResolutionStrategy. -@immutable -class ResolutionStrategy extends JavaObject { - /// Constructs a [ResolutionStrategy]. - ResolutionStrategy({ - required Size this.boundSize, - this.fallbackRule, - super.binaryMessenger, - super.instanceManager, - }) : _api = _ResolutionStrategyHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - super.detached() { - _api.createFromInstances(this, boundSize, fallbackRule); - } - - /// Constructs a [ResolutionStrategy] that represents the strategy that - /// chooses the highest available resolution. - /// - /// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/ResolutionStrategy#HIGHEST_AVAILABLE_STRATEGY(). - ResolutionStrategy.highestAvailableStrategy({ - super.binaryMessenger, - super.instanceManager, - }) : _api = _ResolutionStrategyHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - boundSize = null, - fallbackRule = null, - super.detached() { - _api.createFromInstances(this, boundSize, fallbackRule); - } - - /// Instantiates a [ResolutionStrategy] without creating and attaching to an - /// instance of the associated native class. - /// - /// This should only be used outside of tests by subclasses created by this - /// library or to create a copy for an [InstanceManager]. - ResolutionStrategy.detached({ - required this.boundSize, - this.fallbackRule, - super.binaryMessenger, - super.instanceManager, - }) : _api = _ResolutionStrategyHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - super.detached(); - - /// Instantiates a [ResolutionStrategy] that represents the strategy that - /// chooses the highest available resolution without creating and attaching to - /// an instance of the associated native class. - /// - /// This should only be used outside of tests by subclasses created by this - /// library or to create a copy for an [InstanceManager]. - ResolutionStrategy.detachedHighestAvailableStrategy({ - super.binaryMessenger, - super.instanceManager, - }) : _api = _ResolutionStrategyHostApiImpl( - instanceManager: instanceManager, - binaryMessenger: binaryMessenger, - ), - boundSize = null, - fallbackRule = null, - super.detached(); - - /// CameraX doesn't select an alternate size when the specified bound size is - /// unavailable. - /// - /// Applications will receive [PlatformException] when binding the [UseCase]s - /// with this fallback rule if the device doesn't support the specified bound - /// size. - /// - /// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/ResolutionStrategy#FALLBACK_RULE_NONE(). - static const int fallbackRuleNone = 0; - - /// When the specified bound size is unavailable, CameraX falls back to select - /// the closest higher resolution size. - /// - /// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/ResolutionStrategy#FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER(). - static const int fallbackRuleClosestHigherThenLower = 1; - - /// When the specified bound size is unavailable, CameraX falls back to the - /// closest higher resolution size. - /// - /// If CameraX still cannot find any available resolution, it will fallback to - /// select other lower resolutions. - /// - /// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/ResolutionStrategy#FALLBACK_RULE_CLOSEST_HIGHER(). - static const int fallbackRuleClosestHigher = 2; - - /// When the specified bound size is unavailable, CameraX falls back to select - /// the closest lower resolution size. - /// - /// If CameraX still cannot find any available resolution, it will fallback to - /// select other higher resolutions. - /// - /// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/ResolutionStrategy#FALLBACK_RULE_CLOSEST_LOWER_THEN_HIGHER(). - static const int fallbackRuleClosestLowerThenHigher = 3; - - /// When the specified bound size is unavailable, CameraX falls back to the - /// closest lower resolution size. - /// - /// See https://developer.android.com/reference/androidx/camera/core/resolutionselector/ResolutionStrategy#FALLBACK_RULE_CLOSEST_LOWER(). - static const int fallbackRuleClosestLower = 4; - - final _ResolutionStrategyHostApiImpl _api; - - /// The specified bound size for the desired resolution of the camera. - /// - /// If left null, [fallbackRule] must also be left null in order to create a - /// valid [ResolutionStrategy]. This will create the [ResolutionStrategy] - /// that chooses the highest available resolution, which can also be retrieved - /// by calling [getHighestAvailableStrategy]. - final Size? boundSize; - - /// The fallback rule for choosing an alternate size when the specified bound - /// size is unavailable. - /// - /// Must be left null if [boundSize] is specified as null. This will create - /// the [ResolutionStrategy] that chooses the highest available resolution, - /// which can also be retrieved by calling [getHighestAvailableStrategy]. - final int? fallbackRule; -} - -/// Host API implementation of [ResolutionStrategy]. -class _ResolutionStrategyHostApiImpl extends ResolutionStrategyHostApi { - /// Constructs an [_ResolutionStrategyHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. If left null, it - /// will default to the global instance defined in [JavaObject]. - _ResolutionStrategyHostApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager, - super(binaryMessenger: binaryMessenger); - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - /// Creates a [ResolutionStrategy] on the native side with the bound [Size] - /// and fallback rule, if specified. - Future createFromInstances( - ResolutionStrategy instance, - Size? boundSize, - int? fallbackRule, - ) { - return create( - instanceManager.addDartCreatedInstance( - instance, - onCopy: (ResolutionStrategy original) => ResolutionStrategy.detached( - boundSize: original.boundSize, - fallbackRule: original.fallbackRule, - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - ), - boundSize == null - ? null - : ResolutionInfo( - width: boundSize.width.toInt(), - height: boundSize.height.toInt(), - ), - fallbackRule, - ); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/surface.dart b/packages/camera/camera_android_camerax/lib/src/surface.dart deleted file mode 100644 index 925b43bf3c0..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/surface.dart +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:meta/meta.dart' show immutable; - -import 'java_object.dart'; - -/// Handle onto the raw buffer managed by screen compositor. -/// -/// See https://developer.android.com/reference/android/view/Surface.html. -@immutable -class Surface extends JavaObject { - /// Creates a detached [Surface]. - Surface.detached({super.binaryMessenger, super.instanceManager}) - : super.detached(); - - /// Rotation constant to signify the natural orientation. - /// - /// See https://developer.android.com/reference/android/view/Surface.html#ROTATION_0. - static const int rotation0 = 0; - - /// Rotation constant to signify a 90 degrees rotation. - /// - /// See https://developer.android.com/reference/android/view/Surface.html#ROTATION_90. - static const int rotation90 = 1; - - /// Rotation constant to signify a 180 degrees rotation. - /// - /// See https://developer.android.com/reference/android/view/Surface.html#ROTATION_180. - static const int rotation180 = 2; - - /// Rotation constant to signify a 270 degrees rotation. - /// - /// See https://developer.android.com/reference/android/view/Surface.html#ROTATION_270. - static const int rotation270 = 3; -} diff --git a/packages/camera/camera_android_camerax/lib/src/system_services.dart b/packages/camera/camera_android_camerax/lib/src/system_services.dart deleted file mode 100644 index 5f59bd2f4c6..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/system_services.dart +++ /dev/null @@ -1,107 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:async'; - -import 'package:camera_platform_interface/camera_platform_interface.dart' - show CameraException; -import 'package:flutter/services.dart'; - -import 'camerax_library.g.dart'; - -// Ignoring lint indicating this class only contains static members -// as this class is a wrapper for various Android system services. -// ignore_for_file: avoid_classes_with_only_static_members - -/// Utility class that offers access to Android system services needed for -/// camera usage and other informational streams. -class SystemServices { - /// Stream that emits the errors caused by camera usage on the native side. - static final StreamController cameraErrorStreamController = - StreamController.broadcast(); - - /// Requests permission to access the camera and audio if specified. - static Future requestCameraPermissions(bool enableAudio, - {BinaryMessenger? binaryMessenger}) { - final SystemServicesHostApiImpl api = - SystemServicesHostApiImpl(binaryMessenger: binaryMessenger); - - return api.sendCameraPermissionsRequest(enableAudio); - } - - /// Returns a file path which was used to create a temporary file. - /// Prefix is a part of the file name, and suffix is the file extension. - /// - /// The file and path constraints are determined by the implementation of - /// File.createTempFile(prefix, suffix, cacheDir), on the android side, where - /// where cacheDir is the cache directory identified by the current application - /// context using context.getCacheDir(). - /// - /// Ex: getTempFilePath('prefix', 'suffix') would return a string of the form - /// '/prefix3213453.suffix', where the numbers after prefix and - /// before suffix are determined by the call to File.createTempFile and - /// therefore random. - static Future getTempFilePath(String prefix, String suffix, - {BinaryMessenger? binaryMessenger}) { - final SystemServicesHostApi api = - SystemServicesHostApi(binaryMessenger: binaryMessenger); - return api.getTempFilePath(prefix, suffix); - } - - /// Returns whether or not the Android Surface used to display the camera - /// preview is backed by a SurfaceTexture, to which the transformation to - /// correctly rotate the preview has been applied. - /// - /// This is used to determine the correct rotation of the camera preview - /// because Surfaces not backed by a SurfaceTexture are not transformed by - /// CameraX to the expected rotation based on that of the device and must - /// be corrected by the plugin. - static Future isPreviewPreTransformed( - {BinaryMessenger? binaryMessenger}) { - final SystemServicesHostApi api = - SystemServicesHostApi(binaryMessenger: binaryMessenger); - return api.isPreviewPreTransformed(); - } -} - -/// Host API implementation of [SystemServices]. -class SystemServicesHostApiImpl extends SystemServicesHostApi { - /// Constructs an [SystemServicesHostApiImpl]. - /// - /// If [binaryMessenger] is null, the default [BinaryMessenger] will be used, - /// which routes to the host platform. - SystemServicesHostApiImpl({this.binaryMessenger}) - : super(binaryMessenger: binaryMessenger); - - /// Receives binary data across the Flutter platform barrier. - final BinaryMessenger? binaryMessenger; - - /// Requests permission to access the camera and audio if specified. - /// - /// Will complete normally if permissions are successfully granted; otherwise, - /// will throw a [CameraException]. - Future sendCameraPermissionsRequest(bool enableAudio) async { - final CameraPermissionsErrorData? error = - await requestCameraPermissions(enableAudio); - - if (error != null) { - throw CameraException( - error.errorCode, - error.description, - ); - } - } -} - -/// Flutter API implementation of [SystemServices]. -class SystemServicesFlutterApiImpl implements SystemServicesFlutterApi { - /// Constructs an [SystemServicesFlutterApiImpl]. - SystemServicesFlutterApiImpl(); - - /// Callback method for any errors caused by camera usage on the Java side. - @override - void onCameraError(String errorDescription) { - SystemServices.cameraErrorStreamController.add(errorDescription); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/use_case.dart b/packages/camera/camera_android_camerax/lib/src/use_case.dart deleted file mode 100644 index bb305c91a22..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/use_case.dart +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:meta/meta.dart' show immutable; - -import 'java_object.dart'; - -/// An object representing the different functionalities of the camera. -/// -/// See https://developer.android.com/reference/androidx/camera/core/UseCase. -@immutable -class UseCase extends JavaObject { - /// Creates a detached [UseCase]. - UseCase.detached({super.binaryMessenger, super.instanceManager}) - : super.detached(); -} diff --git a/packages/camera/camera_android_camerax/lib/src/video_capture.dart b/packages/camera/camera_android_camerax/lib/src/video_capture.dart deleted file mode 100644 index c3d4403a6ca..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/video_capture.dart +++ /dev/null @@ -1,134 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart'; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; -import 'recorder.dart'; -import 'use_case.dart'; - -/// Dart wrapping of CameraX VideoCapture class. -/// -/// See https://developer.android.com/reference/androidx/camera/video/VideoCapture. -@immutable -class VideoCapture extends UseCase { - /// Creates a [VideoCapture] that is not automatically attached to a native - /// object. - VideoCapture.detached( - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) - : super.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager) { - _api = VideoCaptureHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - late final VideoCaptureHostApiImpl _api; - - /// Creates a [VideoCapture] associated with the given [Recorder]. - static Future withOutput(Recorder recorder, - {BinaryMessenger? binaryMessenger, InstanceManager? instanceManager}) { - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - final VideoCaptureHostApiImpl api = VideoCaptureHostApiImpl( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - - return api.withOutputFromInstance(recorder); - } - - /// Dynamically sets the target rotation of this instance. - /// - /// [rotation] should be specified in terms of one of the [Surface] - /// rotation constants that represents the counter-clockwise degrees of - /// rotation relative to [DeviceOrientation.portraitUp]. - Future setTargetRotation(int rotation) => - _api.setTargetRotationFromInstances(this, rotation); - - /// Gets the [Recorder] associated with this VideoCapture. - Future getOutput() { - return _api.getOutputFromInstance(this); - } -} - -/// Host API implementation of [VideoCapture]. -class VideoCaptureHostApiImpl extends VideoCaptureHostApi { - /// Constructs a [VideoCaptureHostApiImpl]. - VideoCaptureHostApiImpl( - {this.binaryMessenger, InstanceManager? instanceManager}) { - this.instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - } - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - late final InstanceManager instanceManager; - - /// Creates a [VideoCapture] associated with the provided [Recorder] instance. - Future withOutputFromInstance(Recorder recorder) async { - int? identifier = instanceManager.getIdentifier(recorder); - identifier ??= instanceManager.addDartCreatedInstance(recorder, - onCopy: (Recorder original) { - return Recorder( - binaryMessenger: binaryMessenger, instanceManager: instanceManager); - }); - final int videoCaptureId = await withOutput(identifier); - return instanceManager - .getInstanceWithWeakReference(videoCaptureId)!; - } - - /// Dynamically sets the target rotation of [instance] to [rotation]. - Future setTargetRotationFromInstances( - VideoCapture instance, int rotation) { - return setTargetRotation( - instanceManager.getIdentifier(instance)!, rotation); - } - - /// Gets the [Recorder] associated with the provided [VideoCapture] instance. - Future getOutputFromInstance(VideoCapture instance) async { - final int? identifier = instanceManager.getIdentifier(instance); - final int recorderId = await getOutput(identifier!); - return instanceManager.getInstanceWithWeakReference(recorderId)!; - } -} - -/// Flutter API implementation of [VideoCapture]. -class VideoCaptureFlutterApiImpl implements VideoCaptureFlutterApi { - /// Constructs a [VideoCaptureFlutterApiImpl]. - VideoCaptureFlutterApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - @override - void create(int identifier) { - instanceManager.addHostCreatedInstance( - VideoCapture.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ), - identifier, onCopy: (VideoCapture original) { - return VideoCapture.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - ); - }); - } -} diff --git a/packages/camera/camera_android_camerax/lib/src/zoom_state.dart b/packages/camera/camera_android_camerax/lib/src/zoom_state.dart deleted file mode 100644 index 6fe5321389b..00000000000 --- a/packages/camera/camera_android_camerax/lib/src/zoom_state.dart +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:flutter/services.dart' show BinaryMessenger; -import 'package:meta/meta.dart' show immutable; - -import 'android_camera_camerax_flutter_api_impls.dart'; -import 'camerax_library.g.dart'; -import 'instance_manager.dart'; -import 'java_object.dart'; - -/// Represents zoom related information of a camera. -/// -/// See https://developer.android.com/reference/androidx/camera/core/ZoomState. -@immutable -class ZoomState extends JavaObject { - /// Constructs a [ZoomState] that is not automatically attached to a native object. - ZoomState.detached( - {super.binaryMessenger, - super.instanceManager, - required this.minZoomRatio, - required this.maxZoomRatio}) - : super.detached() { - AndroidCameraXCameraFlutterApis.instance.ensureSetUp(); - } - - /// The minimum zoom ratio of the camera represented by this instance. - final double minZoomRatio; - - /// The maximum zoom ratio of the camera represented by this instance. - final double maxZoomRatio; -} - -/// Flutter API implementation of [ZoomState]. -class ZoomStateFlutterApiImpl implements ZoomStateFlutterApi { - /// Constructs a [ZoomStateFlutterApiImpl]. - /// - /// An [instanceManager] is typically passed when a copy of an instance - /// contained by an [InstanceManager] is being created. - ZoomStateFlutterApiImpl({ - this.binaryMessenger, - InstanceManager? instanceManager, - }) : instanceManager = instanceManager ?? JavaObject.globalInstanceManager; - - /// Receives binary data across the Flutter platform barrier. - /// - /// If it is null, the default BinaryMessenger will be used which routes to - /// the host platform. - final BinaryMessenger? binaryMessenger; - - /// Maintains instances stored to communicate with native language objects. - final InstanceManager instanceManager; - - @override - void create(int identifier, double minZoomRatio, double maxZoomRatio) { - instanceManager.addHostCreatedInstance( - ZoomState.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - minZoomRatio: minZoomRatio, - maxZoomRatio: maxZoomRatio), - identifier, - onCopy: (ZoomState original) { - return ZoomState.detached( - binaryMessenger: binaryMessenger, - instanceManager: instanceManager, - minZoomRatio: original.minZoomRatio, - maxZoomRatio: original.maxZoomRatio); - }, - ); - } -} diff --git a/packages/camera/camera_android_camerax/test/analyzer_test.dart b/packages/camera/camera_android_camerax/test/analyzer_test.dart deleted file mode 100644 index 9729a5bd562..00000000000 --- a/packages/camera/camera_android_camerax/test/analyzer_test.dart +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/analyzer.dart'; -import 'package:camera_android_camerax/src/image_proxy.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'analyzer_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestAnalyzerHostApi, TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('Analyzer', () { - setUp(() {}); - - tearDown(() { - TestAnalyzerHostApi.setup(null); - }); - - test('HostApi create', () { - final MockTestAnalyzerHostApi mockApi = MockTestAnalyzerHostApi(); - TestAnalyzerHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Analyzer instance = Analyzer( - analyze: (ImageProxy imageProxy) async {}, - instanceManager: instanceManager, - ); - - verify(mockApi.create( - instanceManager.getIdentifier(instance), - )); - }); - - test('FlutterAPI create', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final AnalyzerFlutterApiImpl api = AnalyzerFlutterApiImpl( - instanceManager: instanceManager, - ); - - const int instanceIdentifier = 0; - - api.create( - instanceIdentifier, - ); - - expect( - instanceManager.getInstanceWithWeakReference(instanceIdentifier), - isA(), - ); - }); - - test('analyze', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const int instanceIdentifier = 0; - const int imageProxyIdentifier = 44; - late final Object callbackParameter; - final Analyzer instance = Analyzer.detached( - analyze: ( - ImageProxy imageProxy, - ) async { - callbackParameter = imageProxy; - }, - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - instance, - instanceIdentifier, - onCopy: (Analyzer original) => Analyzer.detached( - analyze: original.analyze, - instanceManager: instanceManager, - ), - ); - final ImageProxy imageProxy = ImageProxy.detached( - instanceManager: instanceManager, format: 3, height: 4, width: 5); - instanceManager.addHostCreatedInstance(imageProxy, imageProxyIdentifier, - onCopy: (ImageProxy original) => ImageProxy.detached( - instanceManager: instanceManager, - format: original.format, - height: original.height, - width: original.width)); - - final AnalyzerFlutterApiImpl flutterApi = AnalyzerFlutterApiImpl( - instanceManager: instanceManager, - ); - - flutterApi.analyze( - instanceIdentifier, - imageProxyIdentifier, - ); - - expect( - callbackParameter, - imageProxy, - ); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/analyzer_test.mocks.dart b/packages/camera/camera_android_camerax/test/analyzer_test.mocks.dart deleted file mode 100644 index d4800f14839..00000000000 --- a/packages/camera/camera_android_camerax/test/analyzer_test.mocks.dart +++ /dev/null @@ -1,59 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/analyzer_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestAnalyzerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestAnalyzerHostApi extends _i1.Mock - implements _i2.TestAnalyzerHostApi { - MockTestAnalyzerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create(int? identifier) => super.noSuchMethod( - Invocation.method( - #create, - [identifier], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 1f9ea762ce2..d662add864c 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -7,49 +7,11 @@ import 'dart:math' show Point; import 'package:async/async.dart'; import 'package:camera_android_camerax/camera_android_camerax.dart'; -import 'package:camera_android_camerax/src/analyzer.dart'; -import 'package:camera_android_camerax/src/aspect_ratio_strategy.dart'; -import 'package:camera_android_camerax/src/camera.dart'; -import 'package:camera_android_camerax/src/camera2_camera_control.dart'; -import 'package:camera_android_camerax/src/camera2_camera_info.dart'; -import 'package:camera_android_camerax/src/camera_control.dart'; -import 'package:camera_android_camerax/src/camera_info.dart'; -import 'package:camera_android_camerax/src/camera_metadata.dart'; -import 'package:camera_android_camerax/src/camera_selector.dart'; -import 'package:camera_android_camerax/src/camera_state.dart'; -import 'package:camera_android_camerax/src/camera_state_error.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/camerax_proxy.dart'; -import 'package:camera_android_camerax/src/capture_request_options.dart'; -import 'package:camera_android_camerax/src/device_orientation_manager.dart'; -import 'package:camera_android_camerax/src/exposure_state.dart'; -import 'package:camera_android_camerax/src/fallback_strategy.dart'; -import 'package:camera_android_camerax/src/focus_metering_action.dart'; -import 'package:camera_android_camerax/src/focus_metering_result.dart'; -import 'package:camera_android_camerax/src/image_analysis.dart'; -import 'package:camera_android_camerax/src/image_capture.dart'; -import 'package:camera_android_camerax/src/image_proxy.dart'; -import 'package:camera_android_camerax/src/live_data.dart'; -import 'package:camera_android_camerax/src/metering_point.dart'; -import 'package:camera_android_camerax/src/observer.dart'; -import 'package:camera_android_camerax/src/pending_recording.dart'; -import 'package:camera_android_camerax/src/plane_proxy.dart'; -import 'package:camera_android_camerax/src/preview.dart'; -import 'package:camera_android_camerax/src/process_camera_provider.dart'; -import 'package:camera_android_camerax/src/quality_selector.dart'; -import 'package:camera_android_camerax/src/recorder.dart'; -import 'package:camera_android_camerax/src/recording.dart'; -import 'package:camera_android_camerax/src/resolution_filter.dart'; -import 'package:camera_android_camerax/src/resolution_selector.dart'; -import 'package:camera_android_camerax/src/resolution_strategy.dart'; -import 'package:camera_android_camerax/src/surface.dart'; -import 'package:camera_android_camerax/src/system_services.dart'; -import 'package:camera_android_camerax/src/use_case.dart'; -import 'package:camera_android_camerax/src/video_capture.dart'; -import 'package:camera_android_camerax/src/zoom_state.dart'; +import 'package:camera_android_camerax/src/camerax_library.dart'; +import 'package:camera_android_camerax/src/camerax_proxy2.dart'; import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart' - show DeviceOrientation, PlatformException, Uint8List; + show BinaryMessenger, DeviceOrientation, PlatformException, Uint8List; import 'package:flutter/widgets.dart' show BuildContext, RotatedBox, Size, Texture, Widget; import 'package:flutter_test/flutter_test.dart'; @@ -57,12 +19,10 @@ import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; import 'android_camera_camerax_test.mocks.dart'; -import 'test_camerax_library.g.dart'; @GenerateNiceMocks(>[ MockSpec(), MockSpec(), - MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -70,6 +30,7 @@ import 'test_camerax_library.g.dart'; MockSpec(), MockSpec(), MockSpec(), + MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -87,8 +48,7 @@ import 'test_camerax_library.g.dart'; MockSpec(), MockSpec(), MockSpec(), - MockSpec(), - MockSpec(), + MockSpec(), MockSpec(), MockSpec(), ]) @@ -99,149 +59,146 @@ import 'test_camerax_library.g.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - /// Helper method for testing sending/receiving CameraErrorEvents. - Future testCameraClosingObserver(AndroidCameraCameraX camera, - int cameraId, Observer observer) async { - final CameraStateError testCameraStateError = - CameraStateError.detached(code: 0); - final Stream cameraClosingEventStream = - camera.onCameraClosing(cameraId); - final StreamQueue cameraClosingStreamQueue = - StreamQueue(cameraClosingEventStream); - final Stream cameraErrorEventStream = - camera.onCameraError(cameraId); - final StreamQueue cameraErrorStreamQueue = - StreamQueue(cameraErrorEventStream); - - observer.onChanged(CameraState.detached( - type: CameraStateType.closing, error: testCameraStateError)); - - final bool cameraClosingEventSent = - await cameraClosingStreamQueue.next == CameraClosingEvent(cameraId); - final bool cameraErrorSent = await cameraErrorStreamQueue.next == - CameraErrorEvent(cameraId, testCameraStateError.getDescription()); - - await cameraClosingStreamQueue.cancel(); - await cameraErrorStreamQueue.cancel(); - - return cameraClosingEventSent && cameraErrorSent; - } - - /// CameraXProxy for testing functionality related to the camera resolution - /// preset (setting expected ResolutionSelectors, QualitySelectors, etc.). - CameraXProxy getProxyForTestingResolutionPreset( - MockProcessCameraProvider mockProcessCameraProvider) => - CameraXProxy( - getProcessCameraProvider: () => - Future.value(mockProcessCameraProvider), - createCameraSelector: (int cameraSelectorLensDirection) => - MockCameraSelector(), - createPreview: - (ResolutionSelector? resolutionSelector, int? targetRotation) => - Preview.detached( - initialTargetRotation: targetRotation, - resolutionSelector: resolutionSelector), - createImageCapture: - (ResolutionSelector? resolutionSelector, int? targetRotation) => - ImageCapture.detached( - resolutionSelector: resolutionSelector, - initialTargetRotation: targetRotation), - createRecorder: (QualitySelector? qualitySelector) => - Recorder.detached(qualitySelector: qualitySelector), - createVideoCapture: (_) => - Future.value(MockVideoCapture()), - createImageAnalysis: - (ResolutionSelector? resolutionSelector, int? targetRotation) => - ImageAnalysis.detached( - resolutionSelector: resolutionSelector, - initialTargetRotation: targetRotation), - createResolutionStrategy: ( - {bool highestAvailable = false, - Size? boundSize, - int? fallbackRule}) { - if (highestAvailable) { - return ResolutionStrategy.detachedHighestAvailableStrategy(); - } - return ResolutionStrategy.detached( - boundSize: boundSize, fallbackRule: fallbackRule); - }, - createResolutionSelector: (ResolutionStrategy resolutionStrategy, - ResolutionFilter? resolutionFilter, - AspectRatioStrategy? aspectRatioStrategy) => - ResolutionSelector.detached( - resolutionStrategy: resolutionStrategy, - resolutionFilter: resolutionFilter, - aspectRatioStrategy: aspectRatioStrategy), - createFallbackStrategy: ( - {required VideoQuality quality, - required VideoResolutionFallbackRule fallbackRule}) => - FallbackStrategy.detached( - quality: quality, fallbackRule: fallbackRule), - createQualitySelector: ( - {required VideoQuality videoQuality, - required FallbackStrategy fallbackStrategy}) => - QualitySelector.detached(qualityList: [ - VideoQualityData(quality: videoQuality) - ], fallbackStrategy: fallbackStrategy), - createCameraStateObserver: (_) => MockObserver(), - requestCameraPermissions: (_) => Future.value(), - startListeningForDeviceOrientationChange: (_, __) {}, - setPreviewSurfaceProvider: (_) => Future.value( - 3), // 3 is a random Flutter SurfaceTexture ID for testing, - createAspectRatioStrategy: (int aspectRatio, int fallbackRule) => - AspectRatioStrategy.detached( - preferredAspectRatio: aspectRatio, fallbackRule: fallbackRule), - createResolutionFilterWithOnePreferredSize: - (Size preferredResolution) => - ResolutionFilter.onePreferredSizeDetached( - preferredResolution: preferredResolution), - getCamera2CameraInfo: (_) => - Future.value(MockCamera2CameraInfo()), - getUiOrientation: () => - Future.value(DeviceOrientation.portraitUp), - ); - - /// CameraXProxy for testing exposure and focus related controls. - /// - /// Modifies the creation of [MeteringPoint]s and [FocusMeteringAction]s to - /// return objects detached from a native object. - CameraXProxy getProxyForExposureAndFocus() => CameraXProxy( - createMeteringPoint: - (double x, double y, double? size, CameraInfo cameraInfo) => - MeteringPoint.detached( - x: x, y: y, size: size, cameraInfo: cameraInfo), - createFocusMeteringAction: - (List<(MeteringPoint, int?)> meteringPointInfos, - bool? disableAutoCancel) => - FocusMeteringAction.detached( - meteringPointInfos: meteringPointInfos, - disableAutoCancel: disableAutoCancel), - ); - - /// CameraXProxy for testing setting focus and exposure points. - /// - /// Modifies the retrieval of a [Camera2CameraControl] instance to depend on - /// interaction with expected [cameraControl] instance and modifies creation - /// of [CaptureRequestOptions] to return objects detached from a native object. - CameraXProxy getProxyForSettingFocusandExposurePoints( - CameraControl cameraControlForComparison, - Camera2CameraControl camera2cameraControl) { - final CameraXProxy proxy = getProxyForExposureAndFocus(); - - proxy.getCamera2CameraControl = (CameraControl cameraControl) => - cameraControl == cameraControlForComparison - ? camera2cameraControl - : Camera2CameraControl.detached(cameraControl: cameraControl); - - proxy.createCaptureRequestOptions = - (List<(CaptureRequestKeySupportedType, Object?)> options) => - CaptureRequestOptions.detached(requestedOptions: options); - - return proxy; - } + // /// Helper method for testing sending/receiving CameraErrorEvents. + // Future testCameraClosingObserver(AndroidCameraCameraX camera, + // int cameraId, Observer observer) async { + // final CameraStateError testCameraStateError = + // CameraStateError.detached(code: 0); + // final Stream cameraClosingEventStream = + // camera.onCameraClosing(cameraId); + // final StreamQueue cameraClosingStreamQueue = + // StreamQueue(cameraClosingEventStream); + // final Stream cameraErrorEventStream = + // camera.onCameraError(cameraId); + // final StreamQueue cameraErrorStreamQueue = + // StreamQueue(cameraErrorEventStream); + // + // observer.onChanged(CameraState.detached( + // type: CameraStateType.closing, error: testCameraStateError)); + // + // final bool cameraClosingEventSent = + // await cameraClosingStreamQueue.next == CameraClosingEvent(cameraId); + // final bool cameraErrorSent = await cameraErrorStreamQueue.next == + // CameraErrorEvent(cameraId, testCameraStateError.getDescription()); + // + // await cameraClosingStreamQueue.cancel(); + // await cameraErrorStreamQueue.cancel(); + // + // return cameraClosingEventSent && cameraErrorSent; + // } + // + // /// CameraXProxy for testing functionality related to the camera resolution + // /// preset (setting expected ResolutionSelectors, QualitySelectors, etc.). + // CameraXProxy getProxyForTestingResolutionPreset( + // MockProcessCameraProvider mockProcessCameraProvider) => + // CameraXProxy( + // getProcessCameraProvider: () => + // Future.value(mockProcessCameraProvider), + // createCameraSelector: (int cameraSelectorLensDirection) => + // MockCameraSelector(), + // createPreview: + // (ResolutionSelector? resolutionSelector, int? targetRotation) => + // Preview.detached( + // initialTargetRotation: targetRotation, + // resolutionSelector: resolutionSelector), + // createImageCapture: + // (ResolutionSelector? resolutionSelector, int? targetRotation) => + // ImageCapture.detached( + // resolutionSelector: resolutionSelector, + // initialTargetRotation: targetRotation), + // createRecorder: (QualitySelector? qualitySelector) => + // Recorder.detached(qualitySelector: qualitySelector), + // createVideoCapture: (_) => + // Future.value(MockVideoCapture()), + // createImageAnalysis: + // (ResolutionSelector? resolutionSelector, int? targetRotation) => + // ImageAnalysis.detached( + // resolutionSelector: resolutionSelector, + // initialTargetRotation: targetRotation), + // createResolutionStrategy: ( + // {bool highestAvailable = false, + // Size? boundSize, + // int? fallbackRule}) { + // if (highestAvailable) { + // return ResolutionStrategy.detachedHighestAvailableStrategy(); + // } + // return ResolutionStrategy.detached( + // boundSize: boundSize, fallbackRule: fallbackRule); + // }, + // createResolutionSelector: (ResolutionStrategy resolutionStrategy, + // ResolutionFilter? resolutionFilter, + // AspectRatioStrategy? aspectRatioStrategy) => + // ResolutionSelector.detached( + // resolutionStrategy: resolutionStrategy, + // resolutionFilter: resolutionFilter, + // aspectRatioStrategy: aspectRatioStrategy), + // createFallbackStrategy: ( + // {required VideoQuality quality, + // required VideoResolutionFallbackRule fallbackRule}) => + // FallbackStrategy.detached( + // quality: quality, fallbackRule: fallbackRule), + // createQualitySelector: ( + // {required VideoQuality videoQuality, + // required FallbackStrategy fallbackStrategy}) => + // QualitySelector.detached(qualityList: [ + // VideoQualityData(quality: videoQuality) + // ], fallbackStrategy: fallbackStrategy), + // createCameraStateObserver: (_) => MockObserver(), + // requestCameraPermissions: (_) => Future.value(), + // startListeningForDeviceOrientationChange: (_, __) {}, + // setPreviewSurfaceProvider: (_) => Future.value( + // 3), // 3 is a random Flutter SurfaceTexture ID for testing, + // createAspectRatioStrategy: (int aspectRatio, int fallbackRule) => + // AspectRatioStrategy.detached( + // preferredAspectRatio: aspectRatio, fallbackRule: fallbackRule), + // createResolutionFilterWithOnePreferredSize: + // (Size preferredResolution) => + // ResolutionFilter.onePreferredSizeDetached( + // preferredResolution: preferredResolution), + // getCamera2CameraInfo: (_) => + // Future.value(MockCamera2CameraInfo()), + // getUiOrientation: () => + // Future.value(DeviceOrientation.portraitUp), + // ); + // + // /// CameraXProxy for testing exposure and focus related controls. + // /// + // /// Modifies the creation of [MeteringPoint]s and [FocusMeteringAction]s to + // /// return objects detached from a native object. + // CameraXProxy getProxyForExposureAndFocus() => CameraXProxy( + // createMeteringPoint: + // (double x, double y, double? size, CameraInfo cameraInfo) => + // MeteringPoint.detached( + // x: x, y: y, size: size, cameraInfo: cameraInfo), + // createFocusMeteringAction: + // (List<(MeteringPoint, int?)> meteringPointInfos, + // bool? disableAutoCancel) => + // FocusMeteringAction.detached( + // meteringPointInfos: meteringPointInfos, + // disableAutoCancel: disableAutoCancel), + // ); + // + // /// CameraXProxy for testing setting focus and exposure points. + // /// + // /// Modifies the retrieval of a [Camera2CameraControl] instance to depend on + // /// interaction with expected [cameraControl] instance and modifies creation + // /// of [CaptureRequestOptions] to return objects detached from a native object. + // CameraXProxy getProxyForSettingFocusandExposurePoints( + // CameraControl cameraControlForComparison, + // Camera2CameraControl camera2cameraControl) { + // final CameraXProxy proxy = getProxyForExposureAndFocus(); + // + // proxy.getCamera2CameraControl = (CameraControl cameraControl) => + // cameraControl == cameraControlForComparison + // ? camera2cameraControl + // : Camera2CameraControl.detached(cameraControl: cameraControl); + // + // proxy.createCaptureRequestOptions = + // (List<(CaptureRequestKeySupportedType, Object?)> options) => + // CaptureRequestOptions.detached(requestedOptions: options); + // + // return proxy; + // } test('Should fetch CameraDescription instances for available cameras', () async { @@ -270,16 +227,26 @@ void main() { // Tell plugin to create mock CameraSelectors for testing. camera.proxy = CameraXProxy( - getProcessCameraProvider: () => + getInstanceProcessCameraProvider: ({ + dynamic pigeon_binaryMessenger, + dynamic pigeon_instanceManager, + }) => Future.value(mockProcessCameraProvider), - createCameraSelector: (int cameraSelectorLensDirection) { - switch (cameraSelectorLensDirection) { - case CameraSelector.lensFacingFront: + newCameraSelector: ({ + LensFacing? requireLensFacing, + dynamic pigeon_binaryMessenger, + dynamic pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: return mockFrontCameraSelector; - case CameraSelector.lensFacingBack: - default: - return mockBackCameraSelector; + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: } + + return mockBackCameraSelector; }, ); @@ -294,10 +261,8 @@ void main() { .thenAnswer((_) async => []); when(mockFrontCameraSelector.filter([mockFrontCameraInfo])) .thenAnswer((_) async => [mockFrontCameraInfo]); - when(mockBackCameraInfo.getSensorRotationDegrees()) - .thenAnswer((_) async => 0); - when(mockFrontCameraInfo.getSensorRotationDegrees()) - .thenAnswer((_) async => 90); + when(mockBackCameraInfo.sensorRotationDegrees).thenReturn(0); + when(mockFrontCameraInfo.sensorRotationDegrees).thenReturn(90); final List cameraDescriptions = await camera.availableCameras(); @@ -343,9 +308,8 @@ void main() { final MockCamera mockCamera = MockCamera(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); bool cameraPermissionsRequested = false; bool startedListeningForDeviceOrientationChanges = false; @@ -353,31 +317,83 @@ void main() { // Tell plugin to create mock/detached objects and stub method calls for the // testing of createCamera. camera.proxy = CameraXProxy( - getProcessCameraProvider: () => + getInstanceProcessCameraProvider: ({ + dynamic pigeon_binaryMessenger, + dynamic pigeon_instanceManager, + }) => Future.value(mockProcessCameraProvider), - createCameraSelector: (int cameraSelectorLensDirection) { - switch (cameraSelectorLensDirection) { - case CameraSelector.lensFacingFront: + newCameraSelector: ({ + LensFacing? requireLensFacing, + dynamic pigeon_binaryMessenger, + dynamic pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: return MockCameraSelector(); - case CameraSelector.lensFacingBack: - default: - return mockBackCameraSelector; + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: } + + return mockBackCameraSelector; }, - createPreview: (_, __) => mockPreview, - createImageCapture: (_, __) => mockImageCapture, - createRecorder: (_) => mockRecorder, - createVideoCapture: (_) => Future.value(mockVideoCapture), - createImageAnalysis: (_, __) => mockImageAnalysis, - createResolutionStrategy: ( - {bool highestAvailable = false, - Size? boundSize, - int? fallbackRule}) => + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockPreview, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockImageCapture, + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockRecorder, + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockVideoCapture, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockImageAnalysis, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => MockResolutionStrategy(), - createResolutionSelector: (_, __, ___) => MockResolutionSelector(), - createFallbackStrategy: ( - {required VideoQuality quality, - required VideoResolutionFallbackRule fallbackRule}) => + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockResolutionSelector(), + lowerQualityThanFallbackStrategy: ({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => MockFallbackStrategy(), createQualitySelector: ( {required VideoQuality videoQuality, @@ -453,3928 +469,4079 @@ void main() { as Observer), isTrue); }); + // + // test( + // 'createCamera binds Preview and ImageCapture use cases to ProcessCameraProvider instance', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const CameraLensDirection testLensDirection = CameraLensDirection.back; + // const int testSensorOrientation = 90; + // const CameraDescription testCameraDescription = CameraDescription( + // name: 'cameraName', + // lensDirection: testLensDirection, + // sensorOrientation: testSensorOrientation); + // const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; + // const bool enableAudio = true; + // + // // Mock/Detached objects for (typically attached) objects created by + // // createCamera. + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockPreview mockPreview = MockPreview(); + // final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); + // final MockImageCapture mockImageCapture = MockImageCapture(); + // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + // final MockRecorder mockRecorder = MockRecorder(); + // final MockVideoCapture mockVideoCapture = MockVideoCapture(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Tell plugin to create mock/detached objects and stub method calls for the + // // testing of createCamera. + // camera.proxy = CameraXProxy( + // getProcessCameraProvider: () => + // Future.value(mockProcessCameraProvider), + // createCameraSelector: (int cameraSelectorLensDirection) { + // switch (cameraSelectorLensDirection) { + // case CameraSelector.lensFacingFront: + // return MockCameraSelector(); + // case CameraSelector.lensFacingBack: + // default: + // return mockBackCameraSelector; + // } + // }, + // createPreview: (_, __) => mockPreview, + // createImageCapture: (_, __) => mockImageCapture, + // createRecorder: (_) => mockRecorder, + // createVideoCapture: (_) => Future.value(mockVideoCapture), + // createImageAnalysis: (_, __) => mockImageAnalysis, + // createResolutionStrategy: ( + // {bool highestAvailable = false, + // Size? boundSize, + // int? fallbackRule}) => + // MockResolutionStrategy(), + // createResolutionSelector: (_, __, ___) => MockResolutionSelector(), + // createFallbackStrategy: ( + // {required VideoQuality quality, + // required VideoResolutionFallbackRule fallbackRule}) => + // MockFallbackStrategy(), + // createQualitySelector: ( + // {required VideoQuality videoQuality, + // required FallbackStrategy fallbackStrategy}) => + // MockQualitySelector(), + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // requestCameraPermissions: (_) => Future.value(), + // startListeningForDeviceOrientationChange: (_, __) {}, + // createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), + // createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), + // getCamera2CameraInfo: (CameraInfo cameraInfo) => + // cameraInfo == mockCameraInfo + // ? Future.value(mockCamera2CameraInfo) + // : Future.value(MockCamera2CameraInfo()), + // getUiOrientation: () => + // Future.value(DeviceOrientation.portraitUp), + // ); + // + // when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, + // [mockPreview, mockImageCapture, mockImageAnalysis])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(mockCamera.getCameraControl()) + // .thenAnswer((_) async => mockCameraControl); + // + // camera.processCameraProvider = mockProcessCameraProvider; + // + // await camera.createCameraWithSettings( + // testCameraDescription, + // const MediaSettings( + // resolutionPreset: testResolutionPreset, + // fps: 15, + // videoBitrate: 2000000, + // audioBitrate: 64000, + // enableAudio: enableAudio, + // )); + // + // // Verify expected UseCases were bound. + // verify(camera.processCameraProvider!.bindToLifecycle(camera.cameraSelector!, + // [mockPreview, mockImageCapture, mockImageAnalysis])); + // + // // Verify the camera's CameraInfo instance got updated. + // expect(camera.cameraInfo, equals(mockCameraInfo)); + // + // // Verify camera's CameraControl instance got updated. + // expect(camera.cameraControl, equals(mockCameraControl)); + // + // // Verify preview has been marked as bound to the camera lifecycle by + // // createCamera. + // expect(camera.previewInitiallyBound, isTrue); + // }); + // + // test( + // 'createCamera properly sets preset resolution selection strategy for non-video capture use cases', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const CameraLensDirection testLensDirection = CameraLensDirection.back; + // const int testSensorOrientation = 90; + // const CameraDescription testCameraDescription = CameraDescription( + // name: 'cameraName', + // lensDirection: testLensDirection, + // sensorOrientation: testSensorOrientation); + // const bool enableAudio = true; + // final MockCamera mockCamera = MockCamera(); + // + // // Mock/Detached objects for (typically attached) objects created by + // // createCamera. + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Tell plugin to create mock/detached objects for testing createCamera + // // as needed. + // camera.proxy = + // getProxyForTestingResolutionPreset(mockProcessCameraProvider); + // + // when(mockProcessCameraProvider.bindToLifecycle(any, any)) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // camera.processCameraProvider = mockProcessCameraProvider; + // + // // Test non-null resolution presets. + // for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + // await camera.createCamera( + // testCameraDescription, + // resolutionPreset, + // enableAudio: enableAudio, + // ); + // + // Size? expectedBoundSize; + // ResolutionStrategy? expectedResolutionStrategy; + // switch (resolutionPreset) { + // case ResolutionPreset.low: + // expectedBoundSize = const Size(320, 240); + // case ResolutionPreset.medium: + // expectedBoundSize = const Size(720, 480); + // case ResolutionPreset.high: + // expectedBoundSize = const Size(1280, 720); + // case ResolutionPreset.veryHigh: + // expectedBoundSize = const Size(1920, 1080); + // case ResolutionPreset.ultraHigh: + // expectedBoundSize = const Size(3840, 2160); + // case ResolutionPreset.max: + // expectedResolutionStrategy = + // ResolutionStrategy.detachedHighestAvailableStrategy(); + // } + // + // // We expect the strategy to be the highest available or correspond to the + // // expected bound size, with fallback to the closest and highest available + // // resolution. + // expectedResolutionStrategy ??= ResolutionStrategy.detached( + // boundSize: expectedBoundSize, + // fallbackRule: ResolutionStrategy.fallbackRuleClosestLowerThenHigher); + // + // expect(camera.preview!.resolutionSelector!.resolutionStrategy!.boundSize, + // equals(expectedResolutionStrategy.boundSize)); + // expect( + // camera + // .imageCapture!.resolutionSelector!.resolutionStrategy!.boundSize, + // equals(expectedResolutionStrategy.boundSize)); + // expect( + // camera + // .imageAnalysis!.resolutionSelector!.resolutionStrategy!.boundSize, + // equals(expectedResolutionStrategy.boundSize)); + // expect( + // camera.preview!.resolutionSelector!.resolutionStrategy!.fallbackRule, + // equals(expectedResolutionStrategy.fallbackRule)); + // expect( + // camera.imageCapture!.resolutionSelector!.resolutionStrategy! + // .fallbackRule, + // equals(expectedResolutionStrategy.fallbackRule)); + // expect( + // camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! + // .fallbackRule, + // equals(expectedResolutionStrategy.fallbackRule)); + // } + // + // // Test null case. + // await camera.createCamera(testCameraDescription, null); + // expect(camera.preview!.resolutionSelector, isNull); + // expect(camera.imageCapture!.resolutionSelector, isNull); + // expect(camera.imageAnalysis!.resolutionSelector, isNull); + // }); + // + // test( + // 'createCamera properly sets filter for resolution preset for non-video capture use cases', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const CameraLensDirection testLensDirection = CameraLensDirection.front; + // const int testSensorOrientation = 180; + // const CameraDescription testCameraDescription = CameraDescription( + // name: 'cameraName', + // lensDirection: testLensDirection, + // sensorOrientation: testSensorOrientation); + // const bool enableAudio = true; + // final MockCamera mockCamera = MockCamera(); + // + // // Mock/Detached objects for (typically attached) objects created by + // // createCamera. + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // + // // Tell plugin to create mock/detached objects for testing createCamera + // // as needed. + // camera.proxy = + // getProxyForTestingResolutionPreset(mockProcessCameraProvider); + // + // when(mockProcessCameraProvider.bindToLifecycle(any, any)) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // camera.processCameraProvider = mockProcessCameraProvider; + // + // // Test non-null resolution presets. + // for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + // await camera.createCamera(testCameraDescription, resolutionPreset, + // enableAudio: enableAudio); + // + // Size? expectedPreferredResolution; + // switch (resolutionPreset) { + // case ResolutionPreset.low: + // expectedPreferredResolution = const Size(320, 240); + // case ResolutionPreset.medium: + // expectedPreferredResolution = const Size(720, 480); + // case ResolutionPreset.high: + // expectedPreferredResolution = const Size(1280, 720); + // case ResolutionPreset.veryHigh: + // expectedPreferredResolution = const Size(1920, 1080); + // case ResolutionPreset.ultraHigh: + // expectedPreferredResolution = const Size(3840, 2160); + // case ResolutionPreset.max: + // expectedPreferredResolution = null; + // } + // + // if (expectedPreferredResolution == null) { + // expect(camera.preview!.resolutionSelector!.resolutionFilter, isNull); + // expect( + // camera.imageCapture!.resolutionSelector!.resolutionFilter, isNull); + // expect( + // camera.imageAnalysis!.resolutionSelector!.resolutionFilter, isNull); + // continue; + // } + // + // expect( + // camera.preview!.resolutionSelector!.resolutionFilter! + // .preferredResolution, + // equals(expectedPreferredResolution)); + // expect( + // camera + // .imageCapture!.resolutionSelector!.resolutionStrategy!.boundSize, + // equals(expectedPreferredResolution)); + // expect( + // camera + // .imageAnalysis!.resolutionSelector!.resolutionStrategy!.boundSize, + // equals(expectedPreferredResolution)); + // } + // + // // Test null case. + // await camera.createCamera(testCameraDescription, null); + // expect(camera.preview!.resolutionSelector, isNull); + // expect(camera.imageCapture!.resolutionSelector, isNull); + // expect(camera.imageAnalysis!.resolutionSelector, isNull); + // }); + // + // test( + // 'createCamera properly sets aspect ratio based on preset resolution for non-video capture use cases', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const CameraLensDirection testLensDirection = CameraLensDirection.back; + // const int testSensorOrientation = 90; + // const CameraDescription testCameraDescription = CameraDescription( + // name: 'cameraName', + // lensDirection: testLensDirection, + // sensorOrientation: testSensorOrientation); + // const bool enableAudio = true; + // final MockCamera mockCamera = MockCamera(); + // + // // Mock/Detached objects for (typically attached) objects created by + // // createCamera. + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // + // // Tell plugin to create mock/detached objects for testing createCamera + // // as needed. + // camera.proxy = + // getProxyForTestingResolutionPreset(mockProcessCameraProvider); + // when(mockProcessCameraProvider.bindToLifecycle(any, any)) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // camera.processCameraProvider = mockProcessCameraProvider; + // + // // Test non-null resolution presets. + // for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + // await camera.createCamera(testCameraDescription, resolutionPreset, + // enableAudio: enableAudio); + // + // int? expectedAspectRatio; + // AspectRatioStrategy? expectedAspectRatioStrategy; + // switch (resolutionPreset) { + // case ResolutionPreset.low: + // expectedAspectRatio = AspectRatio.ratio4To3; + // case ResolutionPreset.high: + // case ResolutionPreset.veryHigh: + // case ResolutionPreset.ultraHigh: + // expectedAspectRatio = AspectRatio.ratio16To9; + // case ResolutionPreset.medium: + // // Medium resolution preset uses aspect ratio 3:2 which is unsupported + // // by CameraX. + // case ResolutionPreset.max: + // expectedAspectRatioStrategy = null; + // } + // + // expectedAspectRatioStrategy = expectedAspectRatio == null + // ? null + // : AspectRatioStrategy.detached( + // preferredAspectRatio: expectedAspectRatio, + // fallbackRule: AspectRatioStrategy.fallbackRuleAuto); + // + // if (expectedAspectRatio == null) { + // expect(camera.preview!.resolutionSelector!.aspectRatioStrategy, isNull); + // expect(camera.imageCapture!.resolutionSelector!.aspectRatioStrategy, + // isNull); + // expect(camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy, + // isNull); + // continue; + // } + // + // // Check aspect ratio. + // expect( + // camera.preview!.resolutionSelector!.aspectRatioStrategy! + // .preferredAspectRatio, + // equals(expectedAspectRatioStrategy!.preferredAspectRatio)); + // expect( + // camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! + // .preferredAspectRatio, + // equals(expectedAspectRatioStrategy.preferredAspectRatio)); + // expect( + // camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! + // .preferredAspectRatio, + // equals(expectedAspectRatioStrategy.preferredAspectRatio)); + // + // // Check fallback rule. + // expect( + // camera.preview!.resolutionSelector!.aspectRatioStrategy!.fallbackRule, + // equals(expectedAspectRatioStrategy.fallbackRule)); + // expect( + // camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! + // .fallbackRule, + // equals(expectedAspectRatioStrategy.fallbackRule)); + // expect( + // camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! + // .fallbackRule, + // equals(expectedAspectRatioStrategy.fallbackRule)); + // } + // + // // Test null case. + // await camera.createCamera(testCameraDescription, null); + // expect(camera.preview!.resolutionSelector, isNull); + // expect(camera.imageCapture!.resolutionSelector, isNull); + // expect(camera.imageAnalysis!.resolutionSelector, isNull); + // }); + // + // test( + // 'createCamera properly sets preset resolution for video capture use case', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const CameraLensDirection testLensDirection = CameraLensDirection.back; + // const int testSensorOrientation = 90; + // const CameraDescription testCameraDescription = CameraDescription( + // name: 'cameraName', + // lensDirection: testLensDirection, + // sensorOrientation: testSensorOrientation); + // const bool enableAudio = true; + // final MockCamera mockCamera = MockCamera(); + // + // // Mock/Detached objects for (typically attached) objects created by + // // createCamera. + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // + // // Tell plugin to create mock/detached objects for testing createCamera + // // as needed. + // camera.proxy = + // getProxyForTestingResolutionPreset(mockProcessCameraProvider); + // + // when(mockProcessCameraProvider.bindToLifecycle(any, any)) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // + // // Test non-null resolution presets. + // for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + // await camera.createCamera(testCameraDescription, resolutionPreset, + // enableAudio: enableAudio); + // + // VideoQuality? expectedVideoQuality; + // switch (resolutionPreset) { + // case ResolutionPreset.low: + // // 240p is not supported by CameraX. + // case ResolutionPreset.medium: + // expectedVideoQuality = VideoQuality.SD; + // case ResolutionPreset.high: + // expectedVideoQuality = VideoQuality.HD; + // case ResolutionPreset.veryHigh: + // expectedVideoQuality = VideoQuality.FHD; + // case ResolutionPreset.ultraHigh: + // expectedVideoQuality = VideoQuality.UHD; + // case ResolutionPreset.max: + // expectedVideoQuality = VideoQuality.highest; + // } + // + // const VideoResolutionFallbackRule expectedFallbackRule = + // VideoResolutionFallbackRule.lowerQualityOrHigherThan; + // final FallbackStrategy expectedFallbackStrategy = + // FallbackStrategy.detached( + // quality: expectedVideoQuality, + // fallbackRule: expectedFallbackRule); + // + // expect(camera.recorder!.qualitySelector!.qualityList.length, equals(1)); + // expect(camera.recorder!.qualitySelector!.qualityList.first.quality, + // equals(expectedVideoQuality)); + // expect(camera.recorder!.qualitySelector!.fallbackStrategy!.quality, + // equals(expectedFallbackStrategy.quality)); + // expect(camera.recorder!.qualitySelector!.fallbackStrategy!.fallbackRule, + // equals(expectedFallbackStrategy.fallbackRule)); + // } + // + // // Test null case. + // await camera.createCamera(testCameraDescription, null); + // expect(camera.recorder!.qualitySelector, isNull); + // }); + // + // test( + // 'createCamera sets sensor and device orientations needed to correct preview rotation as expected', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const CameraLensDirection testLensDirection = CameraLensDirection.back; + // const int testSensorOrientation = 270; + // const CameraDescription testCameraDescription = CameraDescription( + // name: 'cameraName', + // lensDirection: testLensDirection, + // sensorOrientation: testSensorOrientation); + // const bool enableAudio = true; + // const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; + // const DeviceOrientation testUiOrientation = DeviceOrientation.portraitDown; + // const DeviceOrientation testCurrentOrientation = + // DeviceOrientation.portraitUp; + // + // // Mock/Detached objects for (typically attached) objects created by + // // createCamera. + // final MockCamera mockCamera = MockCamera(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // The proxy needed for this test is the same as testing resolution + // // presets except for mocking the retrievall of the sensor and current + // // UI orientation. + // camera.proxy = + // getProxyForTestingResolutionPreset(mockProcessCameraProvider); + // camera.proxy.getSensorOrientation = + // (_) async => Future.value(testSensorOrientation); + // camera.proxy.getUiOrientation = + // () async => Future.value(testUiOrientation); + // + // when(mockProcessCameraProvider.bindToLifecycle(any, any)) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // + // await camera.createCamera(testCameraDescription, testResolutionPreset, + // enableAudio: enableAudio); + // + // const DeviceOrientationChangedEvent testEvent = + // DeviceOrientationChangedEvent(testCurrentOrientation); + // + // DeviceOrientationManager.deviceOrientationChangedStreamController + // .add(testEvent); + // + // // Wait for currentDeviceOrientation to update. + // await Future.value(); + // + // expect(camera.naturalOrientation, testUiOrientation); + // expect(camera.sensorOrientation, testSensorOrientation); + // expect(camera.currentDeviceOrientation, testCurrentOrientation); + // }); + // + // test( + // 'initializeCamera throws a CameraException when createCamera has not been called before initializedCamera', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // await expectLater(() async { + // await camera.initializeCamera(3); + // }, throwsA(isA())); + // }); + // + // test('initializeCamera sends expected CameraInitializedEvent', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // + // const int cameraId = 10; + // const CameraLensDirection testLensDirection = CameraLensDirection.back; + // const int testSensorOrientation = 90; + // const CameraDescription testCameraDescription = CameraDescription( + // name: 'cameraName', + // lensDirection: testLensDirection, + // sensorOrientation: testSensorOrientation); + // const int resolutionWidth = 350; + // const int resolutionHeight = 750; + // final Camera mockCamera = MockCamera(); + // final ResolutionInfo testResolutionInfo = + // ResolutionInfo(width: resolutionWidth, height: resolutionHeight); + // + // // Mocks for (typically attached) objects created by createCamera. + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final CameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); + // final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); + // final MockPreview mockPreview = MockPreview(); + // final MockImageCapture mockImageCapture = MockImageCapture(); + // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Tell plugin to create mock/detached objects for testing createCamera + // // as needed. + // camera.proxy = CameraXProxy( + // getProcessCameraProvider: () => + // Future.value(mockProcessCameraProvider), + // createCameraSelector: (int cameraSelectorLensDirection) { + // switch (cameraSelectorLensDirection) { + // case CameraSelector.lensFacingFront: + // return mockFrontCameraSelector; + // case CameraSelector.lensFacingBack: + // default: + // return mockBackCameraSelector; + // } + // }, + // createPreview: (_, __) => mockPreview, + // createImageCapture: (_, __) => mockImageCapture, + // createRecorder: (QualitySelector? qualitySelector) => MockRecorder(), + // createVideoCapture: (_) => Future.value(MockVideoCapture()), + // createImageAnalysis: (_, __) => mockImageAnalysis, + // createResolutionStrategy: ( + // {bool highestAvailable = false, + // Size? boundSize, + // int? fallbackRule}) => + // MockResolutionStrategy(), + // createResolutionSelector: (_, __, ___) => MockResolutionSelector(), + // createFallbackStrategy: ( + // {required VideoQuality quality, + // required VideoResolutionFallbackRule fallbackRule}) => + // MockFallbackStrategy(), + // createQualitySelector: ( + // {required VideoQuality videoQuality, + // required FallbackStrategy fallbackStrategy}) => + // MockQualitySelector(), + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // requestCameraPermissions: (_) => Future.value(), + // startListeningForDeviceOrientationChange: (_, __) {}, + // createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), + // createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), + // getCamera2CameraInfo: (_) => + // Future.value(MockCamera2CameraInfo()), + // getUiOrientation: () => + // Future.value(DeviceOrientation.portraitUp), + // ); + // + // final CameraInitializedEvent testCameraInitializedEvent = + // CameraInitializedEvent( + // cameraId, + // resolutionWidth.toDouble(), + // resolutionHeight.toDouble(), + // ExposureMode.auto, + // true, + // FocusMode.auto, + // true); + // + // // Call createCamera. + // when(mockPreview.setSurfaceProvider()).thenAnswer((_) async => cameraId); + // + // when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, + // [mockPreview, mockImageCapture, mockImageAnalysis])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(mockPreview.getResolutionInfo()) + // .thenAnswer((_) async => testResolutionInfo); + // + // await camera.createCameraWithSettings( + // testCameraDescription, + // const MediaSettings( + // resolutionPreset: ResolutionPreset.medium, + // fps: 15, + // videoBitrate: 200000, + // audioBitrate: 32000, + // enableAudio: true, + // ), + // ); + // + // // Start listening to camera events stream to verify the proper CameraInitializedEvent is sent. + // camera.cameraEventStreamController.stream.listen((CameraEvent event) { + // expect(event, const TypeMatcher()); + // expect(event, equals(testCameraInitializedEvent)); + // }); + // + // await camera.initializeCamera(cameraId); + // + // // Check camera instance was received. + // expect(camera.camera, isNotNull); + // }); + // + // test( + // 'dispose releases Flutter surface texture, removes camera state observers, and unbinds all use cases', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // + // camera.preview = MockPreview(); + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.liveCameraState = MockLiveCameraState(); + // camera.imageAnalysis = MockImageAnalysis(); + // + // await camera.dispose(3); + // + // verify(camera.preview!.releaseFlutterSurfaceTexture()); + // verify(camera.liveCameraState!.removeObservers()); + // verify(camera.processCameraProvider!.unbindAll()); + // verify(camera.imageAnalysis!.clearAnalyzer()); + // }); + // + // test('onCameraInitialized stream emits CameraInitializedEvents', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 16; + // final Stream eventStream = + // camera.onCameraInitialized(cameraId); + // final StreamQueue streamQueue = + // StreamQueue(eventStream); + // const CameraInitializedEvent testEvent = CameraInitializedEvent( + // cameraId, 320, 80, ExposureMode.auto, false, FocusMode.auto, false); + // + // camera.cameraEventStreamController.add(testEvent); + // + // expect(await streamQueue.next, testEvent); + // await streamQueue.cancel(); + // }); + // + // test( + // 'onCameraClosing stream emits camera closing event when cameraEventStreamController emits a camera closing event', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 99; + // const CameraClosingEvent cameraClosingEvent = CameraClosingEvent(cameraId); + // final Stream eventStream = + // camera.onCameraClosing(cameraId); + // final StreamQueue streamQueue = + // StreamQueue(eventStream); + // + // camera.cameraEventStreamController.add(cameraClosingEvent); + // + // expect(await streamQueue.next, equals(cameraClosingEvent)); + // await streamQueue.cancel(); + // }); + // + // test( + // 'onCameraError stream emits errors caught by system services or added to stream within plugin', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 27; + // const String firstTestErrorDescription = 'Test error description 1!'; + // const String secondTestErrorDescription = 'Test error description 2!'; + // const CameraErrorEvent secondCameraErrorEvent = + // CameraErrorEvent(cameraId, secondTestErrorDescription); + // final Stream eventStream = camera.onCameraError(cameraId); + // final StreamQueue streamQueue = + // StreamQueue(eventStream); + // + // SystemServices.cameraErrorStreamController.add(firstTestErrorDescription); + // expect(await streamQueue.next, + // equals(const CameraErrorEvent(cameraId, firstTestErrorDescription))); + // + // camera.cameraEventStreamController.add(secondCameraErrorEvent); + // expect(await streamQueue.next, equals(secondCameraErrorEvent)); + // + // await streamQueue.cancel(); + // }); + // + // test( + // 'onDeviceOrientationChanged stream emits changes in device orientation detected by system services', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final Stream eventStream = + // camera.onDeviceOrientationChanged(); + // final StreamQueue streamQueue = + // StreamQueue(eventStream); + // const DeviceOrientationChangedEvent testEvent = + // DeviceOrientationChangedEvent(DeviceOrientation.portraitDown); + // + // DeviceOrientationManager.deviceOrientationChangedStreamController + // .add(testEvent); + // + // expect(await streamQueue.next, testEvent); + // await streamQueue.cancel(); + // }); + // + // test( + // 'pausePreview unbinds preview from lifecycle when preview is nonnull and has been bound to lifecycle', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.preview = MockPreview(); + // + // when(camera.processCameraProvider!.isBound(camera.preview!)) + // .thenAnswer((_) async => true); + // + // await camera.pausePreview(579); + // + // verify(camera.processCameraProvider!.unbind([camera.preview!])); + // }); + // + // test( + // 'pausePreview does not unbind preview from lifecycle when preview has not been bound to lifecycle', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.preview = MockPreview(); + // + // await camera.pausePreview(632); + // + // verifyNever( + // camera.processCameraProvider!.unbind([camera.preview!])); + // }); + // + // test( + // 'resumePreview does not bind preview to lifecycle or update camera state observers if already bound', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = mockProcessCameraProvider; + // camera.cameraSelector = MockCameraSelector(); + // camera.preview = MockPreview(); + // + // when(camera.processCameraProvider!.isBound(camera.preview!)) + // .thenAnswer((_) async => true); + // + // when(mockProcessCameraProvider + // .bindToLifecycle(camera.cameraSelector, [camera.preview!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => mockLiveCameraState); + // + // await camera.resumePreview(78); + // + // verifyNever(camera.processCameraProvider! + // .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); + // verifyNever(mockLiveCameraState.observe(any)); + // expect(camera.cameraInfo, isNot(mockCameraInfo)); + // }); + // + // test( + // 'resumePreview binds preview to lifecycle and updates camera state observers if not already bound', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = mockProcessCameraProvider; + // camera.cameraSelector = MockCameraSelector(); + // camera.preview = MockPreview(); + // + // // Tell plugin to create a detached Observer, that is created to + // // track camera state once preview is bound to the lifecycle and needed to + // // test for expected updates. + // camera.proxy = CameraXProxy( + // createCameraStateObserver: + // (void Function(Object stateAsObject) onChanged) => + // Observer.detached(onChanged: onChanged)); + // + // when(mockProcessCameraProvider + // .bindToLifecycle(camera.cameraSelector, [camera.preview!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => mockLiveCameraState); + // when(mockCamera.getCameraControl()) + // .thenAnswer((_) async => mockCameraControl); + // + // await camera.resumePreview(78); + // + // verify(camera.processCameraProvider! + // .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); + // expect( + // await testCameraClosingObserver( + // camera, + // 78, + // verify(mockLiveCameraState.observe(captureAny)).captured.single + // as Observer), + // isTrue); + // expect(camera.cameraInfo, equals(mockCameraInfo)); + // expect(camera.cameraControl, equals(mockCameraControl)); + // }); + // + // test( + // 'buildPreview throws an exception if the preview is not bound to the lifecycle', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 73; + // + // // Tell camera that createCamera has not been called and thus, preview has + // // not been bound to the lifecycle of the camera. + // camera.previewInitiallyBound = false; + // + // expect( + // () => camera.buildPreview(cameraId), throwsA(isA())); + // }); + // + // test( + // 'buildPreview returns a Texture once the preview is bound to the lifecycle if it is backed by a SurfaceTexture', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 37; + // + // // Tell camera that createCamera has been called and thus, preview has been + // // bound to the lifecycle of the camera. + // camera.previewInitiallyBound = true; + // + // // Tell camera the Surface used to build camera preview is backed by a + // // SurfaceTexture. + // camera.isPreviewPreTransformed = true; + // + // camera.naturalOrientation = DeviceOrientation.portraitDown; + // + // final Widget widget = camera.buildPreview(cameraId); + // + // expect(widget is Texture, isTrue); + // expect((widget as Texture).textureId, cameraId); + // }); + // + // test( + // 'buildPreview returns preview with expected rotation if camera is not front facing and the preview is not backed by a SurfaceTexture', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 33; + // + // // Tell camera that createCamera has been called and thus, preview has been + // // bound to the lifecycle of the camera. + // camera.previewInitiallyBound = true; + // + // // Tell camera the Surface used to build camera preview is not backed by a + // // SurfaceTexture. + // camera.isPreviewPreTransformed = false; + // + // // Mock sensor and device orientation. + // camera.sensorOrientation = 270; + // camera.cameraIsFrontFacing = false; + // camera.naturalOrientation = DeviceOrientation.portraitUp; + // + // final double expectedRotation = (camera.sensorOrientation + + // 0 /* the natural orientation in clockwise degrees */ * + // -1 /* camera is not front facing */ + + // 360) % + // 360; + // final int expectedQuarterTurns = (expectedRotation / 90).toInt(); + // + // final Widget widget = camera.buildPreview(cameraId); + // + // expect(widget is RotatedBox, isTrue); + // expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); + // expect(widget.child is Texture, isTrue); + // expect((widget.child! as Texture).textureId, cameraId); + // }); + // + // test( + // 'buildPreview returns preview with expected rotation if camera is front facing, the current orientation is landscape, and the preview is not backed by a SurfaceTexture', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 7; + // + // // Tell camera that createCamera has been called and thus, preview has been + // // bound to the lifecycle of the camera. + // camera.previewInitiallyBound = true; + // + // // Tell camera the Surface used to build camera preview is not backed by a + // // SurfaceTexture. + // camera.isPreviewPreTransformed = false; + // + // // Mock sensor and device orientation. + // camera.sensorOrientation = 270; + // camera.naturalOrientation = DeviceOrientation.portraitUp; + // camera.cameraIsFrontFacing = true; + // + // // Calculate expected rotation with offset due to counter-clockwise rotation + // // of the image with th efront camera in use. + // final double expectedRotation = ((camera.sensorOrientation + + // 0 /* the natural orientation in clockwise degrees */ * + // 1 /* camera is front facing */ + + // 360) % + // 360) + + // 180; + // final int expectedQuarterTurns = (expectedRotation / 90).toInt() % 4; + // + // // Test landscape left. + // camera.currentDeviceOrientation = DeviceOrientation.landscapeLeft; + // Widget widget = camera.buildPreview(cameraId); + // + // expect(widget is RotatedBox, isTrue); + // expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); + // expect(widget.child is Texture, isTrue); + // expect((widget.child! as Texture).textureId, cameraId); + // + // // Test landscape right. + // camera.currentDeviceOrientation = DeviceOrientation.landscapeRight; + // widget = camera.buildPreview(cameraId); + // + // expect(widget is RotatedBox, isTrue); + // expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); + // expect(widget.child is Texture, isTrue); + // expect((widget.child! as Texture).textureId, cameraId); + // }); + // + // test( + // 'buildPreview returns preview with expected rotation if camera is front facing, the current orientation is not landscape, and the preview is not backed by a SurfaceTexture', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 733; + // + // // Tell camera that createCamera has been called and thus, preview has been + // // bound to the lifecycle of the camera. + // camera.previewInitiallyBound = true; + // + // // Tell camera the Surface used to build camera preview is not backed by a + // // SurfaceTexture. + // camera.isPreviewPreTransformed = false; + // + // // Mock sensor and device orientation. + // camera.sensorOrientation = 270; + // camera.naturalOrientation = DeviceOrientation.portraitUp; + // camera.cameraIsFrontFacing = true; + // + // // Calculate expected rotation without offset needed for landscape orientations + // // due to counter-clockwise rotation of the image with th efront camera in use. + // final double expectedRotation = (camera.sensorOrientation + + // 0 /* the natural orientation in clockwise degrees */ * + // 1 /* camera is front facing */ + + // 360) % + // 360; + // + // final int expectedQuarterTurns = (expectedRotation / 90).toInt() % 4; + // + // // Test portrait up. + // camera.currentDeviceOrientation = DeviceOrientation.portraitUp; + // Widget widget = camera.buildPreview(cameraId); + // + // expect(widget is RotatedBox, isTrue); + // expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); + // expect(widget.child is Texture, isTrue); + // expect((widget.child! as Texture).textureId, cameraId); + // + // // Test portrait down. + // camera.currentDeviceOrientation = DeviceOrientation.portraitDown; + // widget = camera.buildPreview(cameraId); + // + // expect(widget is RotatedBox, isTrue); + // expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); + // expect(widget.child is Texture, isTrue); + // expect((widget.child! as Texture).textureId, cameraId); + // }); + // + // group('video recording', () { + // test( + // 'startVideoCapturing binds video capture use case, updates saved camera instance and its properties, and starts the recording', + // () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockRecording mockRecording = MockRecording(); + // final MockCamera mockCamera = MockCamera(); + // final MockCamera newMockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + // final MockLiveCameraState newMockLiveCameraState = MockLiveCameraState(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = + // MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.camera = mockCamera; + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.cameraSelector = MockCameraSelector(); + // camera.liveCameraState = mockLiveCameraState; + // camera.cameraInfo = MockCameraInfo(); + // camera.imageAnalysis = MockImageAnalysis(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached Observer when camera info updated. + // camera.proxy = CameraXProxy( + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // getCamera2CameraInfo: (CameraInfo cameraInfo) => + // Future.value(mockCamera2CameraInfo)); + // + // const int cameraId = 17; + // const String outputPath = '/temp/REC123.temp'; + // + // // Mock method calls. + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => false); + // when(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])) + // .thenAnswer((_) async => newMockCamera); + // when(newMockCamera.getCameraInfo()) + // .thenAnswer((_) async => mockCameraInfo); + // when(newMockCamera.getCameraControl()) + // .thenAnswer((_) async => mockCameraControl); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => newMockLiveCameraState); + // when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( + // (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // + // // Verify VideoCapture UseCase is bound and camera & its properties + // // are updated. + // verify(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])); + // expect(camera.camera, equals(newMockCamera)); + // expect(camera.cameraInfo, equals(mockCameraInfo)); + // expect(camera.cameraControl, equals(mockCameraControl)); + // verify(mockLiveCameraState.removeObservers()); + // expect( + // await testCameraClosingObserver( + // camera, + // cameraId, + // verify(newMockLiveCameraState.observe(captureAny)).captured.single + // as Observer), + // isTrue); + // + // // Verify recording is started. + // expect(camera.pendingRecording, equals(mockPendingRecording)); + // expect(camera.recording, mockRecording); + // }); + // + // test( + // 'startVideoCapturing binds video capture use case and starts the recording' + // ' on first call, and does nothing on second call', () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockRecording mockRecording = MockRecording(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = + // MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.cameraSelector = MockCameraSelector(); + // camera.cameraInfo = MockCameraInfo(); + // camera.imageAnalysis = MockImageAnalysis(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached Observer when camera info updated. + // camera.proxy = CameraXProxy( + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // getCamera2CameraInfo: (CameraInfo cameraInfo) => + // Future.value(mockCamera2CameraInfo)); + // + // const int cameraId = 17; + // const String outputPath = '/temp/REC123.temp'; + // + // // Mock method calls. + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => false); + // when(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()) + // .thenAnswer((_) => Future.value(mockCameraInfo)); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( + // (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // + // verify(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])); + // expect(camera.pendingRecording, equals(mockPendingRecording)); + // expect(camera.recording, mockRecording); + // + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // // Verify that each of these calls happened only once. + // verify(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .called(1); + // verifyNoMoreInteractions(mockSystemServicesApi); + // verify(camera.recorder!.prepareRecording(outputPath)).called(1); + // verifyNoMoreInteractions(camera.recorder); + // verify(mockPendingRecording.start()).called(1); + // verifyNoMoreInteractions(mockPendingRecording); + // }); + // + // test( + // 'startVideoCapturing called with stream options starts image streaming', + // () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final Recorder mockRecorder = MockRecorder(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockCameraInfo initialCameraInfo = MockCameraInfo(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = + // MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Set directly for test versus calling createCamera. + // + // camera.processCameraProvider = mockProcessCameraProvider; + // camera.cameraSelector = MockCameraSelector(); + // camera.videoCapture = MockVideoCapture(); + // camera.imageAnalysis = MockImageAnalysis(); + // camera.camera = MockCamera(); + // camera.recorder = mockRecorder; + // camera.cameraInfo = initialCameraInfo; + // camera.imageCapture = MockImageCapture(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached Analyzer for testing. + // camera.proxy = CameraXProxy( + // createAnalyzer: + // (Future Function(ImageProxy imageProxy) analyze) => + // Analyzer.detached(analyze: analyze), + // getCamera2CameraInfo: (CameraInfo cameraInfo) async => + // cameraInfo == initialCameraInfo + // ? mockCamera2CameraInfo + // : MockCamera2CameraInfo()); + // + // const int cameraId = 17; + // const String outputPath = '/temp/REC123.temp'; + // final Completer imageDataCompleter = + // Completer(); + // final VideoCaptureOptions videoCaptureOptions = VideoCaptureOptions( + // cameraId, + // streamCallback: (CameraImageData imageData) => + // imageDataCompleter.complete(imageData)); + // + // // Mock method calls. + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => true); + // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + // .thenAnswer((_) async => true); + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockProcessCameraProvider.bindToLifecycle(any, any)) + // .thenAnswer((_) => Future.value(camera.camera)); + // when(camera.camera!.getCameraInfo()) + // .thenAnswer((_) => Future.value(MockCameraInfo())); + // when(mockCamera2CameraInfo.getSupportedHardwareLevel()) + // .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // await camera.startVideoCapturing(videoCaptureOptions); + // + // final CameraImageData mockCameraImageData = MockCameraImageData(); + // camera.cameraImageDataStreamController!.add(mockCameraImageData); + // + // expect(imageDataCompleter.future, isNotNull); + // await camera.cameraImageDataStreamController!.close(); + // }); + // + // test( + // 'startVideoCapturing sets VideoCapture target rotation to current video orientation if orientation unlocked', + // () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockRecording mockRecording = MockRecording(); + // final MockVideoCapture mockVideoCapture = MockVideoCapture(); + // final MockCameraInfo initialCameraInfo = MockCameraInfo(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = + // MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // const int defaultTargetRotation = Surface.rotation270; + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.camera = MockCamera(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = mockVideoCapture; + // camera.cameraSelector = MockCameraSelector(); + // camera.imageAnalysis = MockImageAnalysis(); + // camera.cameraInfo = initialCameraInfo; + // + // // Tell plugin to mock call to get current video orientation and mock Camera2CameraInfo retrieval. + // camera.proxy = CameraXProxy( + // getDefaultDisplayRotation: () => + // Future.value(defaultTargetRotation), + // getCamera2CameraInfo: (CameraInfo cameraInfo) async => + // cameraInfo == initialCameraInfo + // ? mockCamera2CameraInfo + // : MockCamera2CameraInfo()); + // + // const int cameraId = 87; + // const String outputPath = '/temp/REC123.temp'; + // + // // Mock method calls. + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => true); + // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + // .thenAnswer((_) async => false); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // // Orientation is unlocked and plugin does not need to set default target + // // rotation manually. + // camera.recording = null; + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // verifyNever(mockVideoCapture.setTargetRotation(any)); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // // Orientation is locked and plugin does not need to set default target + // // rotation manually. + // camera.recording = null; + // camera.captureOrientationLocked = true; + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // verifyNever(mockVideoCapture.setTargetRotation(any)); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // // Orientation is locked and plugin does need to set default target + // // rotation manually. + // camera.recording = null; + // camera.captureOrientationLocked = true; + // camera.shouldSetDefaultRotation = true; + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // verifyNever(mockVideoCapture.setTargetRotation(any)); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // // Orientation is unlocked and plugin does need to set default target + // // rotation manually. + // camera.recording = null; + // camera.captureOrientationLocked = false; + // camera.shouldSetDefaultRotation = true; + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // verify(mockVideoCapture.setTargetRotation(defaultTargetRotation)); + // }); + // + // test('pauseVideoRecording pauses the recording', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockRecording recording = MockRecording(); + // + // // Set directly for test versus calling startVideoCapturing. + // camera.recording = recording; + // + // await camera.pauseVideoRecording(0); + // verify(recording.pause()); + // verifyNoMoreInteractions(recording); + // }); + // + // test('resumeVideoRecording resumes the recording', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockRecording recording = MockRecording(); + // + // // Set directly for test versus calling startVideoCapturing. + // camera.recording = recording; + // + // await camera.resumeVideoRecording(0); + // verify(recording.resume()); + // verifyNoMoreInteractions(recording); + // }); + // + // test('stopVideoRecording stops the recording', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockRecording recording = MockRecording(); + // final MockProcessCameraProvider processCameraProvider = + // MockProcessCameraProvider(); + // final MockVideoCapture videoCapture = MockVideoCapture(); + // const String videoOutputPath = '/test/output/path'; + // + // // Set directly for test versus calling createCamera and startVideoCapturing. + // camera.processCameraProvider = processCameraProvider; + // camera.recording = recording; + // camera.videoCapture = videoCapture; + // camera.videoOutputPath = videoOutputPath; + // + // // Tell plugin that videoCapture use case was bound to start recording. + // when(camera.processCameraProvider!.isBound(videoCapture)) + // .thenAnswer((_) async => true); + // + // // Simulate video recording being finalized so stopVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.finalize); + // + // final XFile file = await camera.stopVideoRecording(0); + // expect(file.path, videoOutputPath); + // + // // Verify that recording stops. + // verify(recording.close()); + // verifyNoMoreInteractions(recording); + // }); + // + // test( + // 'stopVideoRecording throws a camera exception if ' + // 'no recording is in progress', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const String videoOutputPath = '/test/output/path'; + // + // // Set directly for test versus calling startVideoCapturing. + // camera.recording = null; + // camera.videoOutputPath = videoOutputPath; + // + // await expectLater(() async { + // await camera.stopVideoRecording(0); + // }, throwsA(isA())); + // }); + // + // test( + // 'stopVideoRecording throws a camera exception if ' + // 'videoOutputPath is null, and sets recording to null', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockRecording mockRecording = MockRecording(); + // final MockVideoCapture mockVideoCapture = MockVideoCapture(); + // + // // Set directly for test versus calling startVideoCapturing. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recording = mockRecording; + // camera.videoOutputPath = null; + // camera.videoCapture = mockVideoCapture; + // + // // Tell plugin that videoCapture use case was bound to start recording. + // when(camera.processCameraProvider!.isBound(mockVideoCapture)) + // .thenAnswer((_) async => true); + // + // await expectLater(() async { + // // Simulate video recording being finalized so stopVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.finalize); + // await camera.stopVideoRecording(0); + // }, throwsA(isA())); + // expect(camera.recording, null); + // }); + // + // test( + // 'calling stopVideoRecording twice stops the recording ' + // 'and then throws a CameraException', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockRecording recording = MockRecording(); + // final MockProcessCameraProvider processCameraProvider = + // MockProcessCameraProvider(); + // final MockVideoCapture videoCapture = MockVideoCapture(); + // const String videoOutputPath = '/test/output/path'; + // + // // Set directly for test versus calling createCamera and startVideoCapturing. + // camera.processCameraProvider = processCameraProvider; + // camera.recording = recording; + // camera.videoCapture = videoCapture; + // camera.videoOutputPath = videoOutputPath; + // + // // Simulate video recording being finalized so stopVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.finalize); + // + // final XFile file = await camera.stopVideoRecording(0); + // expect(file.path, videoOutputPath); + // + // await expectLater(() async { + // await camera.stopVideoRecording(0); + // }, throwsA(isA())); + // }); + // + // test( + // 'VideoCapture use case is unbound from lifecycle when video recording stops', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockRecording recording = MockRecording(); + // final MockProcessCameraProvider processCameraProvider = + // MockProcessCameraProvider(); + // final MockVideoCapture videoCapture = MockVideoCapture(); + // const String videoOutputPath = '/test/output/path'; + // + // // Set directly for test versus calling createCamera and startVideoCapturing. + // camera.processCameraProvider = processCameraProvider; + // camera.recording = recording; + // camera.videoCapture = videoCapture; + // camera.videoOutputPath = videoOutputPath; + // + // // Tell plugin that videoCapture use case was bound to start recording. + // when(camera.processCameraProvider!.isBound(videoCapture)) + // .thenAnswer((_) async => true); + // + // // Simulate video recording being finalized so stopVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.finalize); + // + // await camera.stopVideoRecording(90); + // verify(processCameraProvider.unbind([videoCapture])); + // + // // Verify that recording stops. + // verify(recording.close()); + // verifyNoMoreInteractions(recording); + // }); + // + // test( + // 'setDescriptionWhileRecording does not make any calls involving starting video recording', + // () async { + // // TODO(camsim99): Modify test when implemented, see https://github.com/flutter/flutter/issues/148013. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.camera = MockCamera(); + // + // await camera.setDescriptionWhileRecording(const CameraDescription( + // name: 'fakeCameraName', + // lensDirection: CameraLensDirection.back, + // sensorOrientation: 90)); + // verifyNoMoreInteractions(camera.processCameraProvider); + // verifyNoMoreInteractions(camera.recorder); + // verifyNoMoreInteractions(camera.videoCapture); + // verifyNoMoreInteractions(camera.camera); + // }); + // }); + // + // test( + // 'takePicture binds ImageCapture to lifecycle and makes call to take a picture', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // const String testPicturePath = 'test/absolute/path/to/picture'; + // + // // Set directly for test versus calling createCamera. + // camera.imageCapture = MockImageCapture(); + // camera.processCameraProvider = mockProcessCameraProvider; + // camera.cameraSelector = MockCameraSelector(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached camera state observers. + // camera.proxy = CameraXProxy( + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged)); + // + // when(mockProcessCameraProvider.isBound(camera.imageCapture)) + // .thenAnswer((_) async => false); + // when(mockProcessCameraProvider.bindToLifecycle( + // camera.cameraSelector, [camera.imageCapture!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(camera.imageCapture!.takePicture()) + // .thenAnswer((_) async => testPicturePath); + // + // final XFile imageFile = await camera.takePicture(3); + // + // expect(imageFile.path, equals(testPicturePath)); + // }); + // + // test( + // 'takePicture sets ImageCapture target rotation to currrent photo rotation when orientation unlocked', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockImageCapture mockImageCapture = MockImageCapture(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // + // const int cameraId = 3; + // const int defaultTargetRotation = Surface.rotation180; + // + // // Set directly for test versus calling createCamera. + // camera.imageCapture = mockImageCapture; + // camera.processCameraProvider = mockProcessCameraProvider; + // + // // Tell plugin to mock call to get current photo orientation. + // camera.proxy = CameraXProxy( + // getDefaultDisplayRotation: () => + // Future.value(defaultTargetRotation)); + // + // when(mockProcessCameraProvider.isBound(camera.imageCapture)) + // .thenAnswer((_) async => true); + // when(camera.imageCapture!.takePicture()) + // .thenAnswer((_) async => 'test/absolute/path/to/picture'); + // + // // Orientation is unlocked and plugin does not need to set default target + // // rotation manually. + // await camera.takePicture(cameraId); + // verifyNever(mockImageCapture.setTargetRotation(any)); + // + // // Orientation is locked and plugin does not need to set default target + // // rotation manually. + // camera.captureOrientationLocked = true; + // await camera.takePicture(cameraId); + // verifyNever(mockImageCapture.setTargetRotation(any)); + // + // // Orientation is locked and plugin does need to set default target + // // rotation manually. + // camera.captureOrientationLocked = true; + // camera.shouldSetDefaultRotation = true; + // await camera.takePicture(cameraId); + // verifyNever(mockImageCapture.setTargetRotation(any)); + // + // // Orientation is unlocked and plugin does need to set default target + // // rotation manually. + // camera.captureOrientationLocked = false; + // camera.shouldSetDefaultRotation = true; + // await camera.takePicture(cameraId); + // verify(mockImageCapture.setTargetRotation(defaultTargetRotation)); + // }); + // + // test('takePicture turns non-torch flash mode off when torch mode enabled', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // const int cameraId = 77; + // + // // Set directly for test versus calling createCamera. + // camera.imageCapture = MockImageCapture(); + // camera.cameraControl = MockCameraControl(); + // camera.processCameraProvider = mockProcessCameraProvider; + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // when(mockProcessCameraProvider.isBound(camera.imageCapture)) + // .thenAnswer((_) async => true); + // + // await camera.setFlashMode(cameraId, FlashMode.torch); + // await camera.takePicture(cameraId); + // verify(camera.imageCapture!.setFlashMode(ImageCapture.flashModeOff)); + // }); + // + // test( + // 'setFlashMode configures ImageCapture with expected non-torch flash mode', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 22; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // + // // Set directly for test versus calling createCamera. + // camera.imageCapture = MockImageCapture(); + // camera.cameraControl = mockCameraControl; + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // camera.processCameraProvider = mockProcessCameraProvider; + // + // when(mockProcessCameraProvider.isBound(camera.imageCapture)) + // .thenAnswer((_) async => true); + // + // for (final FlashMode flashMode in FlashMode.values) { + // await camera.setFlashMode(cameraId, flashMode); + // + // int? expectedFlashMode; + // switch (flashMode) { + // case FlashMode.off: + // expectedFlashMode = ImageCapture.flashModeOff; + // case FlashMode.auto: + // expectedFlashMode = ImageCapture.flashModeAuto; + // case FlashMode.always: + // expectedFlashMode = ImageCapture.flashModeOn; + // case FlashMode.torch: + // expectedFlashMode = null; + // } + // + // if (expectedFlashMode == null) { + // // Torch mode enabled and won't be used for configuring image capture. + // continue; + // } + // + // verifyNever(mockCameraControl.enableTorch(true)); + // expect(camera.torchEnabled, isFalse); + // await camera.takePicture(cameraId); + // verify(camera.imageCapture!.setFlashMode(expectedFlashMode)); + // } + // }); + // + // test('setFlashMode turns on torch mode as expected', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 44; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // + // await camera.setFlashMode(cameraId, FlashMode.torch); + // + // verify(mockCameraControl.enableTorch(true)); + // expect(camera.torchEnabled, isTrue); + // }); + // + // test('setFlashMode turns off torch mode when non-torch flash modes set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 33; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // + // for (final FlashMode flashMode in FlashMode.values) { + // camera.torchEnabled = true; + // await camera.setFlashMode(cameraId, flashMode); + // + // switch (flashMode) { + // case FlashMode.off: + // case FlashMode.auto: + // case FlashMode.always: + // verify(mockCameraControl.enableTorch(false)); + // expect(camera.torchEnabled, isFalse); + // case FlashMode.torch: + // verifyNever(mockCameraControl.enableTorch(true)); + // expect(camera.torchEnabled, true); + // } + // } + // }); + // + // test('getMinExposureOffset returns expected exposure offset', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final ExposureState exposureState = ExposureState.detached( + // exposureCompensationRange: + // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + // exposureCompensationStep: 0.2); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // + // when(mockCameraInfo.getExposureState()) + // .thenAnswer((_) async => exposureState); + // + // // We expect the minimum exposure to be the minimum exposure compensation * exposure compensation step. + // // Delta is included due to avoid catching rounding errors. + // expect(await camera.getMinExposureOffset(35), closeTo(0.6, 0.0000000001)); + // }); + // + // test('getMaxExposureOffset returns expected exposure offset', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final ExposureState exposureState = ExposureState.detached( + // exposureCompensationRange: + // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + // exposureCompensationStep: 0.2); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // + // when(mockCameraInfo.getExposureState()) + // .thenAnswer((_) async => exposureState); + // + // // We expect the maximum exposure to be the maximum exposure compensation * exposure compensation step. + // expect(await camera.getMaxExposureOffset(35), 0.8); + // }); + // + // test('getExposureOffsetStepSize returns expected exposure offset', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final ExposureState exposureState = ExposureState.detached( + // exposureCompensationRange: + // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + // exposureCompensationStep: 0.2); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // + // when(mockCameraInfo.getExposureState()) + // .thenAnswer((_) async => exposureState); + // + // expect(await camera.getExposureOffsetStepSize(55), 0.2); + // }); + // + // test( + // 'getExposureOffsetStepSize returns -1 when exposure compensation not supported on device', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final ExposureState exposureState = ExposureState.detached( + // exposureCompensationRange: + // ExposureCompensationRange(minCompensation: 0, maxCompensation: 0), + // exposureCompensationStep: 0); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // + // when(mockCameraInfo.getExposureState()) + // .thenAnswer((_) async => exposureState); + // + // expect(await camera.getExposureOffsetStepSize(55), -1); + // }); + // + // test('getMaxZoomLevel returns expected exposure offset', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // const double maxZoomRatio = 1; + // final LiveData mockLiveZoomState = MockLiveZoomState(); + // final ZoomState zoomState = + // ZoomState.detached(maxZoomRatio: maxZoomRatio, minZoomRatio: 0); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // + // when(mockCameraInfo.getZoomState()) + // .thenAnswer((_) async => mockLiveZoomState); + // when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); + // + // expect(await camera.getMaxZoomLevel(55), maxZoomRatio); + // }); + // + // test('getMinZoomLevel returns expected exposure offset', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // const double minZoomRatio = 0; + // final LiveData mockLiveZoomState = MockLiveZoomState(); + // final ZoomState zoomState = + // ZoomState.detached(maxZoomRatio: 1, minZoomRatio: minZoomRatio); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // + // when(mockCameraInfo.getZoomState()) + // .thenAnswer((_) async => mockLiveZoomState); + // when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); + // + // expect(await camera.getMinZoomLevel(55), minZoomRatio); + // }); + // + // test('setZoomLevel sets zoom ratio as expected', () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 44; + // const double zoomRatio = 0.3; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // + // await camera.setZoomLevel(cameraId, zoomRatio); + // + // verify(mockCameraControl.setZoomRatio(zoomRatio)); + // }); + // + // test( + // 'onStreamedFrameAvailable emits CameraImageData when picked up from CameraImageData stream controller', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // const int cameraId = 22; + // + // // Tell plugin to create detached Analyzer for testing. + // camera.proxy = CameraXProxy( + // createAnalyzer: + // (Future Function(ImageProxy imageProxy) analyze) => + // Analyzer.detached(analyze: analyze)); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = mockProcessCameraProvider; + // camera.cameraSelector = MockCameraSelector(); + // camera.imageAnalysis = MockImageAnalysis(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // when(mockProcessCameraProvider.bindToLifecycle(any, any)) + // .thenAnswer((_) => Future.value(mockCamera)); + // when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) + // .thenAnswer((_) async => true); + // when(mockCamera.getCameraInfo()) + // .thenAnswer((_) => Future.value(mockCameraInfo)); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // + // final CameraImageData mockCameraImageData = MockCameraImageData(); + // final Stream imageStream = + // camera.onStreamedFrameAvailable(cameraId); + // final StreamQueue streamQueue = + // StreamQueue(imageStream); + // + // camera.cameraImageDataStreamController!.add(mockCameraImageData); + // + // expect(await streamQueue.next, equals(mockCameraImageData)); + // await streamQueue.cancel(); + // }); + // + // test( + // 'onStreamedFrameAvailable emits CameraImageData when listened to after cancelation', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // const int cameraId = 22; + // + // // Tell plugin to create detached Analyzer for testing. + // camera.proxy = CameraXProxy( + // createAnalyzer: + // (Future Function(ImageProxy imageProxy) analyze) => + // Analyzer.detached(analyze: analyze)); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = mockProcessCameraProvider; + // camera.cameraSelector = MockCameraSelector(); + // camera.imageAnalysis = MockImageAnalysis(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) + // .thenAnswer((_) async => true); + // + // final CameraImageData mockCameraImageData = MockCameraImageData(); + // final Stream imageStream = + // camera.onStreamedFrameAvailable(cameraId); + // + // // Listen to image stream. + // final StreamSubscription imageStreamSubscription = + // imageStream.listen((CameraImageData data) {}); + // + // // Cancel subscription to image stream. + // await imageStreamSubscription.cancel(); + // final Stream imageStream2 = + // camera.onStreamedFrameAvailable(cameraId); + // + // // Listen to image stream again. + // final StreamQueue streamQueue = + // StreamQueue(imageStream2); + // camera.cameraImageDataStreamController!.add(mockCameraImageData); + // + // expect(await streamQueue.next, equals(mockCameraImageData)); + // await streamQueue.cancel(); + // }); + // + // test( + // 'onStreamedFrameAvailable returns stream that responds expectedly to being listened to', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 33; + // final ProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final CameraSelector mockCameraSelector = MockCameraSelector(); + // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + // final Camera mockCamera = MockCamera(); + // final CameraInfo mockCameraInfo = MockCameraInfo(); + // final MockImageProxy mockImageProxy = MockImageProxy(); + // final MockPlaneProxy mockPlane = MockPlaneProxy(); + // final List mockPlanes = [mockPlane]; + // final Uint8List buffer = Uint8List(0); + // const int pixelStride = 27; + // const int rowStride = 58; + // const int imageFormat = 582; + // const int imageHeight = 100; + // const int imageWidth = 200; + // + // // Tell plugin to create detached Analyzer for testing. + // camera.proxy = CameraXProxy( + // createAnalyzer: + // (Future Function(ImageProxy imageProxy) analyze) => + // Analyzer.detached(analyze: analyze), + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged)); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = mockProcessCameraProvider; + // camera.cameraSelector = mockCameraSelector; + // camera.imageAnalysis = mockImageAnalysis; + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // when(mockProcessCameraProvider.isBound(mockImageAnalysis)) + // .thenAnswer((_) async => false); + // when(mockProcessCameraProvider + // .bindToLifecycle(mockCameraSelector, [mockImageAnalysis])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(mockImageProxy.getPlanes()) + // .thenAnswer((_) async => Future>.value(mockPlanes)); + // when(mockPlane.buffer).thenReturn(buffer); + // when(mockPlane.rowStride).thenReturn(rowStride); + // when(mockPlane.pixelStride).thenReturn(pixelStride); + // when(mockImageProxy.format).thenReturn(imageFormat); + // when(mockImageProxy.height).thenReturn(imageHeight); + // when(mockImageProxy.width).thenReturn(imageWidth); + // + // final Completer imageDataCompleter = + // Completer(); + // final StreamSubscription + // onStreamedFrameAvailableSubscription = camera + // .onStreamedFrameAvailable(cameraId) + // .listen((CameraImageData imageData) { + // imageDataCompleter.complete(imageData); + // }); + // + // // Test ImageAnalysis use case is bound to ProcessCameraProvider. + // await untilCalled(mockImageAnalysis.setAnalyzer(any)); + // final Analyzer capturedAnalyzer = + // verify(mockImageAnalysis.setAnalyzer(captureAny)).captured.single + // as Analyzer; + // + // await capturedAnalyzer.analyze(mockImageProxy); + // + // final CameraImageData imageData = await imageDataCompleter.future; + // + // // Test Analyzer correctly process ImageProxy instances. + // expect(imageData.planes.length, equals(1)); + // expect(imageData.planes[0].bytes, equals(buffer)); + // expect(imageData.planes[0].bytesPerRow, equals(rowStride)); + // expect(imageData.planes[0].bytesPerPixel, equals(pixelStride)); + // expect(imageData.format.raw, equals(imageFormat)); + // expect(imageData.height, equals(imageHeight)); + // expect(imageData.width, equals(imageWidth)); + // + // await onStreamedFrameAvailableSubscription.cancel(); + // }); + // + // test( + // 'onStreamedFrameAvailable returns stream that responds expectedly to being canceled', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 32; + // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // + // // Set directly for test versus calling createCamera. + // camera.imageAnalysis = mockImageAnalysis; + // camera.processCameraProvider = mockProcessCameraProvider; + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create a detached analyzer for testing purposes. + // camera.proxy = CameraXProxy(createAnalyzer: (_) => MockAnalyzer()); + // + // when(mockProcessCameraProvider.isBound(mockImageAnalysis)) + // .thenAnswer((_) async => true); + // + // final StreamSubscription imageStreamSubscription = camera + // .onStreamedFrameAvailable(cameraId) + // .listen((CameraImageData data) {}); + // + // await imageStreamSubscription.cancel(); + // + // verify(mockImageAnalysis.clearAnalyzer()); + // }); + // + // test( + // 'onStreamedFrameAvailable sets ImageAnalysis target rotation to current photo orientation when orientation unlocked', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 35; + // const int defaultTargetRotation = Surface.rotation90; + // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // + // // Set directly for test versus calling createCamera. + // camera.imageAnalysis = mockImageAnalysis; + // camera.processCameraProvider = mockProcessCameraProvider; + // + // // Tell plugin to create a detached analyzer for testing purposes and mock + // // call to get current photo orientation. + // camera.proxy = CameraXProxy( + // createAnalyzer: (_) => MockAnalyzer(), + // getDefaultDisplayRotation: () => + // Future.value(defaultTargetRotation)); + // + // when(mockProcessCameraProvider.isBound(mockImageAnalysis)) + // .thenAnswer((_) async => true); + // + // // Orientation is unlocked and plugin does not need to set default target + // // rotation manually. + // StreamSubscription imageStreamSubscription = camera + // .onStreamedFrameAvailable(cameraId) + // .listen((CameraImageData data) {}); + // await untilCalled(mockImageAnalysis.setAnalyzer(any)); + // verifyNever(mockImageAnalysis.setTargetRotation(any)); + // await imageStreamSubscription.cancel(); + // + // // Orientation is locked and plugin does not need to set default target + // // rotation manually. + // camera.captureOrientationLocked = true; + // imageStreamSubscription = camera + // .onStreamedFrameAvailable(cameraId) + // .listen((CameraImageData data) {}); + // await untilCalled(mockImageAnalysis.setAnalyzer(any)); + // verifyNever(mockImageAnalysis.setTargetRotation(any)); + // await imageStreamSubscription.cancel(); + // + // // Orientation is locked and plugin does need to set default target + // // rotation manually. + // camera.captureOrientationLocked = true; + // camera.shouldSetDefaultRotation = true; + // imageStreamSubscription = camera + // .onStreamedFrameAvailable(cameraId) + // .listen((CameraImageData data) {}); + // await untilCalled(mockImageAnalysis.setAnalyzer(any)); + // verifyNever(mockImageAnalysis.setTargetRotation(any)); + // await imageStreamSubscription.cancel(); + // + // // Orientation is unlocked and plugin does need to set default target + // // rotation manually. + // camera.captureOrientationLocked = false; + // camera.shouldSetDefaultRotation = true; + // imageStreamSubscription = camera + // .onStreamedFrameAvailable(cameraId) + // .listen((CameraImageData data) {}); + // await untilCalled( + // mockImageAnalysis.setTargetRotation(defaultTargetRotation)); + // await imageStreamSubscription.cancel(); + // }); + // + // test( + // 'lockCaptureOrientation sets capture-related use case target rotations to correct orientation', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 44; + // + // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + // final MockImageCapture mockImageCapture = MockImageCapture(); + // final MockVideoCapture mockVideoCapture = MockVideoCapture(); + // + // // Set directly for test versus calling createCamera. + // camera.imageAnalysis = mockImageAnalysis; + // camera.imageCapture = mockImageCapture; + // camera.videoCapture = mockVideoCapture; + // + // for (final DeviceOrientation orientation in DeviceOrientation.values) { + // int? expectedTargetRotation; + // switch (orientation) { + // case DeviceOrientation.portraitUp: + // expectedTargetRotation = Surface.rotation0; + // case DeviceOrientation.landscapeLeft: + // expectedTargetRotation = Surface.rotation90; + // case DeviceOrientation.portraitDown: + // expectedTargetRotation = Surface.rotation180; + // case DeviceOrientation.landscapeRight: + // expectedTargetRotation = Surface.rotation270; + // } + // + // await camera.lockCaptureOrientation(cameraId, orientation); + // + // verify(mockImageAnalysis.setTargetRotation(expectedTargetRotation)); + // verify(mockImageCapture.setTargetRotation(expectedTargetRotation)); + // verify(mockVideoCapture.setTargetRotation(expectedTargetRotation)); + // expect(camera.captureOrientationLocked, isTrue); + // expect(camera.shouldSetDefaultRotation, isTrue); + // + // // Reset flags for testing. + // camera.captureOrientationLocked = false; + // camera.shouldSetDefaultRotation = false; + // } + // }); + // + // test( + // 'unlockCaptureOrientation sets capture-related use case target rotations to current photo/video orientation', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 57; + // + // camera.captureOrientationLocked = true; + // await camera.unlockCaptureOrientation(cameraId); + // expect(camera.captureOrientationLocked, isFalse); + // }); + // + // test('setExposureMode sets expected controlAeLock value via Camera2 interop', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 78; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCamera2CameraControl mockCamera2CameraControl = + // MockCamera2CameraControl(); + // + // // Set directly for test versus calling createCamera. + // camera.camera = MockCamera(); + // camera.cameraControl = mockCameraControl; + // + // // Tell plugin to create detached Camera2CameraControl and + // // CaptureRequestOptions instances for testing. + // camera.proxy = CameraXProxy( + // getCamera2CameraControl: (CameraControl cameraControl) => + // cameraControl == mockCameraControl + // ? mockCamera2CameraControl + // : Camera2CameraControl.detached(cameraControl: cameraControl), + // createCaptureRequestOptions: + // (List<(CaptureRequestKeySupportedType, Object?)> options) => + // CaptureRequestOptions.detached(requestedOptions: options), + // ); + // + // // Test auto mode. + // await camera.setExposureMode(cameraId, ExposureMode.auto); + // + // VerificationResult verificationResult = + // verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); + // CaptureRequestOptions capturedCaptureRequestOptions = + // verificationResult.captured.single as CaptureRequestOptions; + // List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = + // capturedCaptureRequestOptions.requestedOptions; + // expect(requestedOptions.length, equals(1)); + // expect(requestedOptions.first.$1, + // equals(CaptureRequestKeySupportedType.controlAeLock)); + // expect(requestedOptions.first.$2, equals(false)); + // + // // Test locked mode. + // clearInteractions(mockCamera2CameraControl); + // await camera.setExposureMode(cameraId, ExposureMode.locked); + // + // verificationResult = + // verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); + // capturedCaptureRequestOptions = + // verificationResult.captured.single as CaptureRequestOptions; + // requestedOptions = capturedCaptureRequestOptions.requestedOptions; + // expect(requestedOptions.length, equals(1)); + // expect(requestedOptions.first.$1, + // equals(CaptureRequestKeySupportedType.controlAeLock)); + // expect(requestedOptions.first.$2, equals(true)); + // }); + // + // test( + // 'setExposurePoint clears current auto-exposure metering point as expected', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 93; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = mockCameraInfo; + // + // camera.proxy = getProxyForExposureAndFocus(); + // + // // Verify nothing happens if no current focus and metering action has been + // // enabled. + // await camera.setExposurePoint(cameraId, null); + // verifyNever(mockCameraControl.startFocusAndMetering(any)); + // verifyNever(mockCameraControl.cancelFocusAndMetering()); + // + // // Verify current auto-exposure metering point is removed if previously set. + // final (MeteringPoint, int?) autofocusMeteringPointInfo = ( + // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAf + // ); + // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ + // ( + // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAe + // ), + // autofocusMeteringPointInfo + // ]; + // + // camera.currentFocusMeteringAction = + // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // + // await camera.setExposurePoint(cameraId, null); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(1)); + // expect( + // capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); + // + // // Verify current focus and metering action is cleared if only previously + // // set metering point was for auto-exposure. + // meteringPointInfos = <(MeteringPoint, int?)>[ + // ( + // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAe + // ) + // ]; + // camera.currentFocusMeteringAction = + // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // + // await camera.setExposurePoint(cameraId, null); + // + // verify(mockCameraControl.cancelFocusAndMetering()); + // }); + // + // test('setExposurePoint throws CameraException if invalid point specified', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 23; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // const Point invalidExposurePoint = Point(3, -1); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // + // camera.proxy = getProxyForExposureAndFocus(); + // + // expect(() => camera.setExposurePoint(cameraId, invalidExposurePoint), + // throwsA(isA())); + // }); + // + // test( + // 'setExposurePoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 9; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = mockCameraInfo; + // + // camera.proxy = getProxyForExposureAndFocus(); + // + // // Verify current auto-exposure metering point is removed if previously set. + // double exposurePointX = 0.8; + // double exposurePointY = 0.1; + // Point exposurePoint = Point(exposurePointX, exposurePointY); + // final (MeteringPoint, int?) autofocusMeteringPointInfo = ( + // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAf + // ); + // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ + // ( + // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAe + // ), + // autofocusMeteringPointInfo + // ]; + // + // camera.currentFocusMeteringAction = + // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // + // await camera.setExposurePoint(cameraId, exposurePoint); + // + // VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(2)); + // expect( + // capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); + // expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); + // expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); + // expect( + // capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); + // + // // Verify exposure point is set when no auto-exposure metering point + // // previously set, but an auto-focus point metering point has been. + // exposurePointX = 0.2; + // exposurePointY = 0.9; + // exposurePoint = Point(exposurePointX, exposurePointY); + // meteringPointInfos = <(MeteringPoint, int?)>[autofocusMeteringPointInfo]; + // + // camera.currentFocusMeteringAction = + // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // + // await camera.setExposurePoint(cameraId, exposurePoint); + // + // verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // capturedAction = verificationResult.captured.single as FocusMeteringAction; + // capturedMeteringPointInfos = capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(2)); + // expect( + // capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); + // expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); + // expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); + // expect( + // capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); + // }); + // + // test( + // 'setExposurePoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 19; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // const double exposurePointX = 0.8; + // const double exposurePointY = 0.1; + // const Point exposurePoint = + // Point(exposurePointX, exposurePointY); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // camera.currentFocusMeteringAction = null; + // + // camera.proxy = getProxyForExposureAndFocus(); + // + // await camera.setExposurePoint(cameraId, exposurePoint); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(1)); + // expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); + // expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); + // expect(capturedMeteringPointInfos.first.$2, + // equals(FocusMeteringAction.flagAe)); + // }); + // + // test( + // 'setExposurePoint disables auto-cancel for focus and metering as expected', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 2; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final FocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // const Point exposurePoint = Point(0.1, 0.2); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, MockCamera2CameraControl()); + // + // // Make setting focus and metering action successful for test. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(true)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Test not disabling auto cancel. + // await camera.setFocusMode(cameraId, FocusMode.auto); + // clearInteractions(mockCameraControl); + // await camera.setExposurePoint(cameraId, exposurePoint); + // VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isFalse); + // + // clearInteractions(mockCameraControl); + // + // // Test disabling auto cancel. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // clearInteractions(mockCameraControl); + // await camera.setExposurePoint(cameraId, exposurePoint); + // verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // capturedAction = verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isTrue); + // }); + // + // test( + // 'setExposureOffset throws exception if exposure compensation not supported', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 6; + // const double offset = 2; + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final ExposureState exposureState = ExposureState.detached( + // exposureCompensationRange: + // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + // exposureCompensationStep: 0); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // + // when(mockCameraInfo.getExposureState()) + // .thenAnswer((_) async => exposureState); + // + // expect(() => camera.setExposureOffset(cameraId, offset), + // throwsA(isA())); + // }); + // + // test( + // 'setExposureOffset throws exception if exposure compensation could not be set for unknown reason', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 11; + // const double offset = 3; + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final CameraControl mockCameraControl = MockCameraControl(); + // final ExposureState exposureState = ExposureState.detached( + // exposureCompensationRange: + // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + // exposureCompensationStep: 0.2); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // camera.cameraControl = mockCameraControl; + // + // when(mockCameraInfo.getExposureState()) + // .thenAnswer((_) async => exposureState); + // when(mockCameraControl.setExposureCompensationIndex(15)).thenThrow( + // PlatformException( + // code: 'TEST_ERROR', + // message: + // 'This is a test error message indicating exposure offset could not be set.')); + // + // expect(() => camera.setExposureOffset(cameraId, offset), + // throwsA(isA())); + // }); + // + // test( + // 'setExposureOffset throws exception if exposure compensation could not be set due to camera being closed or newer value being set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 21; + // const double offset = 5; + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final CameraControl mockCameraControl = MockCameraControl(); + // final ExposureState exposureState = ExposureState.detached( + // exposureCompensationRange: + // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + // exposureCompensationStep: 0.1); + // final int expectedExposureCompensationIndex = + // (offset / exposureState.exposureCompensationStep).round(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // camera.cameraControl = mockCameraControl; + // + // when(mockCameraInfo.getExposureState()) + // .thenAnswer((_) async => exposureState); + // when(mockCameraControl + // .setExposureCompensationIndex(expectedExposureCompensationIndex)) + // .thenAnswer((_) async => Future.value()); + // + // expect(() => camera.setExposureOffset(cameraId, offset), + // throwsA(isA())); + // }); + // + // test( + // 'setExposureOffset behaves as expected to successful attempt to set exposure compensation index', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 11; + // const double offset = 3; + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final CameraControl mockCameraControl = MockCameraControl(); + // final ExposureState exposureState = ExposureState.detached( + // exposureCompensationRange: + // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + // exposureCompensationStep: 0.2); + // final int expectedExposureCompensationIndex = + // (offset / exposureState.exposureCompensationStep).round(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = mockCameraInfo; + // camera.cameraControl = mockCameraControl; + // + // when(mockCameraInfo.getExposureState()) + // .thenAnswer((_) async => exposureState); + // when(mockCameraControl + // .setExposureCompensationIndex(expectedExposureCompensationIndex)) + // .thenAnswer((_) async => Future.value( + // (expectedExposureCompensationIndex * + // exposureState.exposureCompensationStep) + // .round())); + // + // // Exposure index * exposure offset step size = exposure offset, i.e. + // // 15 * 0.2 = 3. + // expect(await camera.setExposureOffset(cameraId, offset), equals(3)); + // }); + // + // test('setFocusPoint clears current auto-exposure metering point as expected', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 93; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = mockCameraInfo; + // + // camera.proxy = getProxyForExposureAndFocus(); + // + // // Verify nothing happens if no current focus and metering action has been + // // enabled. + // await camera.setFocusPoint(cameraId, null); + // verifyNever(mockCameraControl.startFocusAndMetering(any)); + // verifyNever(mockCameraControl.cancelFocusAndMetering()); + // + // // Verify current auto-exposure metering point is removed if previously set. + // final (MeteringPoint, int?) autoexposureMeteringPointInfo = ( + // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAe + // ); + // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ + // ( + // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAf + // ), + // autoexposureMeteringPointInfo + // ]; + // + // camera.currentFocusMeteringAction = + // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // + // await camera.setFocusPoint(cameraId, null); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(1)); + // expect(capturedMeteringPointInfos.first, + // equals(autoexposureMeteringPointInfo)); + // + // // Verify current focus and metering action is cleared if only previously + // // set metering point was for auto-exposure. + // meteringPointInfos = <(MeteringPoint, int?)>[ + // ( + // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAf + // ) + // ]; + // camera.currentFocusMeteringAction = + // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // + // await camera.setFocusPoint(cameraId, null); + // + // verify(mockCameraControl.cancelFocusAndMetering()); + // }); + // + // test('setFocusPoint throws CameraException if invalid point specified', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 23; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // const Point invalidFocusPoint = Point(-3, 1); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // + // camera.proxy = getProxyForExposureAndFocus(); + // + // expect(() => camera.setFocusPoint(cameraId, invalidFocusPoint), + // throwsA(isA())); + // }); + // + // test( + // 'setFocusPoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 9; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = mockCameraInfo; + // + // camera.proxy = getProxyForExposureAndFocus(); + // + // // Verify current auto-exposure metering point is removed if previously set. + // double focusPointX = 0.8; + // double focusPointY = 0.1; + // Point exposurePoint = Point(focusPointX, focusPointY); + // final (MeteringPoint, int?) autoExposureMeteringPointInfo = ( + // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAe + // ); + // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ + // ( + // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAf + // ), + // autoExposureMeteringPointInfo + // ]; + // + // camera.currentFocusMeteringAction = + // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // + // await camera.setFocusPoint(cameraId, exposurePoint); + // + // VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(2)); + // expect(capturedMeteringPointInfos.first, + // equals(autoExposureMeteringPointInfo)); + // expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); + // expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); + // expect( + // capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); + // + // // Verify exposure point is set when no auto-exposure metering point + // // previously set, but an auto-focus point metering point has been. + // focusPointX = 0.2; + // focusPointY = 0.9; + // exposurePoint = Point(focusPointX, focusPointY); + // meteringPointInfos = <(MeteringPoint, int?)>[autoExposureMeteringPointInfo]; + // + // camera.currentFocusMeteringAction = + // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // + // await camera.setFocusPoint(cameraId, exposurePoint); + // + // verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // capturedAction = verificationResult.captured.single as FocusMeteringAction; + // capturedMeteringPointInfos = capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(2)); + // expect(capturedMeteringPointInfos.first, + // equals(autoExposureMeteringPointInfo)); + // expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); + // expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); + // expect( + // capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); + // }); + // + // test( + // 'setFocusPoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 19; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // const double focusPointX = 0.8; + // const double focusPointY = 0.1; + // const Point exposurePoint = Point(focusPointX, focusPointY); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // camera.currentFocusMeteringAction = null; + // + // camera.proxy = getProxyForExposureAndFocus(); + // + // await camera.setFocusPoint(cameraId, exposurePoint); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(1)); + // expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); + // expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); + // expect(capturedMeteringPointInfos.first.$2, + // equals(FocusMeteringAction.flagAf)); + // }); + // + // test('setFocusPoint disables auto-cancel for focus and metering as expected', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 2; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockFocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // const Point exposurePoint = Point(0.1, 0.2); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, MockCamera2CameraControl()); + // + // // Make setting focus and metering action successful for test. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(true)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Test not disabling auto cancel. + // await camera.setFocusMode(cameraId, FocusMode.auto); + // clearInteractions(mockCameraControl); + // + // await camera.setFocusPoint(cameraId, exposurePoint); + // VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isFalse); + // + // clearInteractions(mockCameraControl); + // + // // Test disabling auto cancel. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // clearInteractions(mockCameraControl); + // + // await camera.setFocusPoint(cameraId, exposurePoint); + // verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // capturedAction = verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isTrue); + // }); + // + // test( + // 'setFocusMode does nothing if setting auto-focus mode and is already using auto-focus mode', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 4; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockFocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, MockCamera2CameraControl()); + // + // // Make setting focus and metering action successful for test. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(true)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Set locked focus mode and then try to re-set it. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // clearInteractions(mockCameraControl); + // + // await camera.setFocusMode(cameraId, FocusMode.locked); + // verifyNoMoreInteractions(mockCameraControl); + // }); + // + // test( + // 'setFocusMode does nothing if setting locked focus mode and is already using locked focus mode', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 4; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // + // // Camera uses auto-focus by default, so try setting auto mode again. + // await camera.setFocusMode(cameraId, FocusMode.auto); + // + // verifyNoMoreInteractions(mockCameraControl); + // }); + // + // test( + // 'setFocusMode removes default auto-focus point if previously set and setting auto-focus mode', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 5; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockFocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // final MockCamera2CameraControl mockCamera2CameraControl = + // MockCamera2CameraControl(); + // const double exposurePointX = 0.2; + // const double exposurePointY = 0.7; + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = MockCameraInfo(); + // camera.cameraControl = mockCameraControl; + // + // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + // .thenAnswer((_) async => Future.value()); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, mockCamera2CameraControl); + // + // // Make setting focus and metering action successful for test. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(true)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Set exposure points. + // await camera.setExposurePoint( + // cameraId, const Point(exposurePointX, exposurePointY)); + // + // // Lock focus default focus point. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // + // clearInteractions(mockCameraControl); + // + // // Test removal of default focus point. + // await camera.setFocusMode(cameraId, FocusMode.auto); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isFalse); + // + // // We expect only the previously set exposure point to be re-set. + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(1)); + // expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); + // expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); + // expect(capturedMeteringPointInfos.first.$1.size, isNull); + // expect(capturedMeteringPointInfos.first.$2, + // equals(FocusMeteringAction.flagAe)); + // }); + // + // test( + // 'setFocusMode cancels focus and metering if only focus point previously set is a focus point', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 5; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final FocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // final MockCamera2CameraControl mockCamera2CameraControl = + // MockCamera2CameraControl(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = MockCameraInfo(); + // camera.cameraControl = mockCameraControl; + // + // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + // .thenAnswer((_) async => Future.value()); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, mockCamera2CameraControl); + // + // // Make setting focus and metering action successful for test. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(true)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Lock focus default focus point. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // + // // Test removal of default focus point. + // await camera.setFocusMode(cameraId, FocusMode.auto); + // + // verify(mockCameraControl.cancelFocusAndMetering()); + // }); + // + // test( + // 'setFocusMode re-focuses on previously set auto-focus point with auto-canceled enabled if setting auto-focus mode', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 6; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final FocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // final MockCamera2CameraControl mockCamera2CameraControl = + // MockCamera2CameraControl(); + // const double focusPointX = 0.1; + // const double focusPointY = 0.2; + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = MockCameraInfo(); + // camera.cameraControl = mockCameraControl; + // + // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + // .thenAnswer((_) async => Future.value()); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, mockCamera2CameraControl); + // + // // Make setting focus and metering action successful for test. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(true)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Lock a focus point. + // await camera.setFocusPoint( + // cameraId, const Point(focusPointX, focusPointY)); + // await camera.setFocusMode(cameraId, FocusMode.locked); + // + // clearInteractions(mockCameraControl); + // + // // Test re-focusing on previously set auto-focus point with auto-cancel enabled. + // await camera.setFocusMode(cameraId, FocusMode.auto); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isFalse); + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(1)); + // expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); + // expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); + // expect(capturedMeteringPointInfos.first.$1.size, isNull); + // expect(capturedMeteringPointInfos.first.$2, + // equals(FocusMeteringAction.flagAf)); + // }); + // + // test( + // 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 7; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCamera2CameraControl mockCamera2CameraControl = + // MockCamera2CameraControl(); + // const double focusPointX = 0.88; + // const double focusPointY = 0.33; + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = MockCameraInfo(); + // camera.cameraControl = mockCameraControl; + // + // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + // .thenAnswer((_) async => Future.value()); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, mockCamera2CameraControl); + // + // // Set a focus point. + // await camera.setFocusPoint( + // cameraId, const Point(focusPointX, focusPointY)); + // clearInteractions(mockCameraControl); + // + // // Lock focus point. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isTrue); + // + // // We expect the set focus point to be locked. + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(1)); + // expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); + // expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); + // expect(capturedMeteringPointInfos.first.$1.size, isNull); + // expect(capturedMeteringPointInfos.first.$2, + // equals(FocusMeteringAction.flagAf)); + // }); + // + // test( + // 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point amongst others', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 8; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCamera2CameraControl mockCamera2CameraControl = + // MockCamera2CameraControl(); + // const double focusPointX = 0.38; + // const double focusPointY = 0.38; + // const double exposurePointX = 0.54; + // const double exposurePointY = 0.45; + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = MockCameraInfo(); + // camera.cameraControl = mockCameraControl; + // + // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + // .thenAnswer((_) async => Future.value()); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, mockCamera2CameraControl); + // + // // Set focus and exposure points. + // await camera.setFocusPoint( + // cameraId, const Point(focusPointX, focusPointY)); + // await camera.setExposurePoint( + // cameraId, const Point(exposurePointX, exposurePointY)); + // clearInteractions(mockCameraControl); + // + // // Lock focus point. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isTrue); + // + // // We expect two MeteringPoints, the set focus point and the set exposure + // // point. + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(2)); + // + // final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos + // .where(((MeteringPoint, int?) meteringPointInfo) => + // meteringPointInfo.$2 == FocusMeteringAction.flagAf) + // .toList(); + // expect(focusPoints.length, equals(1)); + // expect(focusPoints.first.$1.x, equals(focusPointX)); + // expect(focusPoints.first.$1.y, equals(focusPointY)); + // expect(focusPoints.first.$1.size, isNull); + // + // final List<(MeteringPoint, int?)> exposurePoints = + // capturedMeteringPointInfos + // .where(((MeteringPoint, int?) meteringPointInfo) => + // meteringPointInfo.$2 == FocusMeteringAction.flagAe) + // .toList(); + // expect(exposurePoints.length, equals(1)); + // expect(exposurePoints.first.$1.x, equals(exposurePointX)); + // expect(exposurePoints.first.$1.y, equals(exposurePointY)); + // expect(exposurePoints.first.$1.size, isNull); + // }); + // + // test( + // 'setFocusMode starts expected focus and metering action if setting locked focus mode and current focus and metering action does not contain an auto-focus point', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 9; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCamera2CameraControl mockCamera2CameraControl = + // MockCamera2CameraControl(); + // const double exposurePointX = 0.8; + // const double exposurePointY = 0.3; + // const double defaultFocusPointX = 0.5; + // const double defaultFocusPointY = 0.5; + // const double defaultFocusPointSize = 1; + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = MockCameraInfo(); + // camera.cameraControl = mockCameraControl; + // + // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + // .thenAnswer((_) async => Future.value()); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, mockCamera2CameraControl); + // + // // Set an exposure point (creates a current focus and metering action + // // without a focus point). + // await camera.setExposurePoint( + // cameraId, const Point(exposurePointX, exposurePointY)); + // clearInteractions(mockCameraControl); + // + // // Lock focus point. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isTrue); + // + // // We expect two MeteringPoints, the default focus point and the set + // //exposure point. + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(2)); + // + // final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos + // .where(((MeteringPoint, int?) meteringPointInfo) => + // meteringPointInfo.$2 == FocusMeteringAction.flagAf) + // .toList(); + // expect(focusPoints.length, equals(1)); + // expect(focusPoints.first.$1.x, equals(defaultFocusPointX)); + // expect(focusPoints.first.$1.y, equals(defaultFocusPointY)); + // expect(focusPoints.first.$1.size, equals(defaultFocusPointSize)); + // + // final List<(MeteringPoint, int?)> exposurePoints = + // capturedMeteringPointInfos + // .where(((MeteringPoint, int?) meteringPointInfo) => + // meteringPointInfo.$2 == FocusMeteringAction.flagAe) + // .toList(); + // expect(exposurePoints.length, equals(1)); + // expect(exposurePoints.first.$1.x, equals(exposurePointX)); + // expect(exposurePoints.first.$1.y, equals(exposurePointY)); + // expect(exposurePoints.first.$1.size, isNull); + // }); + // + // test( + // 'setFocusMode starts expected focus and metering action if there is no current focus and metering action', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 10; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockCamera2CameraControl mockCamera2CameraControl = + // MockCamera2CameraControl(); + // const double defaultFocusPointX = 0.5; + // const double defaultFocusPointY = 0.5; + // const double defaultFocusPointSize = 1; + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = MockCameraInfo(); + // camera.cameraControl = mockCameraControl; + // + // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + // .thenAnswer((_) async => Future.value()); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, mockCamera2CameraControl); + // + // // Lock focus point. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isTrue); + // + // // We expect only the default focus point to be set. + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(1)); + // expect(capturedMeteringPointInfos.first.$1.x, equals(defaultFocusPointX)); + // expect(capturedMeteringPointInfos.first.$1.y, equals(defaultFocusPointY)); + // expect(capturedMeteringPointInfos.first.$1.size, + // equals(defaultFocusPointSize)); + // expect(capturedMeteringPointInfos.first.$2, + // equals(FocusMeteringAction.flagAf)); + // }); + // + // test( + // 'setFocusMode re-sets exposure mode if setting locked focus mode while using auto exposure mode', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 11; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final FocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // final MockCamera2CameraControl mockCamera2CameraControl = + // MockCamera2CameraControl(); + // + // // Set directly for test versus calling createCamera. + // camera.cameraInfo = MockCameraInfo(); + // camera.cameraControl = mockCameraControl; + // + // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + // .thenAnswer((_) async => Future.value()); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, mockCamera2CameraControl); + // + // // Make setting focus and metering action successful for test. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(true)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Set auto exposure mode. + // await camera.setExposureMode(cameraId, ExposureMode.auto); + // clearInteractions(mockCamera2CameraControl); + // + // // Lock focus point. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // + // final VerificationResult verificationResult = + // verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); + // final CaptureRequestOptions capturedCaptureRequestOptions = + // verificationResult.captured.single as CaptureRequestOptions; + // final List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = + // capturedCaptureRequestOptions.requestedOptions; + // expect(requestedOptions.length, equals(1)); + // expect(requestedOptions.first.$1, + // equals(CaptureRequestKeySupportedType.controlAeLock)); + // expect(requestedOptions.first.$2, equals(false)); + // }); + // + // test( + // 'setFocusPoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 22; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockFocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // const Point focusPoint = Point(0.21, 0.21); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, MockCamera2CameraControl()); + // + // // Make setting focus and metering action successful to set locked focus + // // mode. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(true)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Set exposure point to later mock failed call to set an exposure point ( + // // otherwise, focus and metering will be canceled altogether, which is + // //considered a successful call). + // await camera.setExposurePoint(cameraId, const Point(0.3, 0.4)); + // + // // Set locked focus mode so we can set auto mode (cannot set auto mode + // // directly since it is the default). + // await camera.setFocusMode(cameraId, FocusMode.locked); + // clearInteractions(mockCameraControl); + // + // // Make setting focus and metering action fail to test that auto-cancel is + // // still disabled. + // reset(mockFocusMeteringResult); + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(false)); + // + // // Test disabling auto cancel. + // await camera.setFocusMode(cameraId, FocusMode.auto); + // clearInteractions(mockCameraControl); + // + // await camera.setFocusPoint(cameraId, focusPoint); + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isTrue); + // }); + // + // test( + // 'setExposurePoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 342; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockFocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // const Point exposurePoint = Point(0.23, 0.32); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, MockCamera2CameraControl()); + // + // // Make setting focus and metering action successful to set locked focus + // // mode. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(true)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Set exposure point to later mock failed call to set an exposure point ( + // // otherwise, focus and metering will be canceled altogether, which is + // //considered a successful call). + // await camera.setExposurePoint(cameraId, const Point(0.4, 0.3)); + // + // // Set locked focus mode so we can set auto mode (cannot set auto mode + // // directly since it is the default). + // await camera.setFocusMode(cameraId, FocusMode.locked); + // clearInteractions(mockCameraControl); + // + // // Make setting focus and metering action fail to test that auto-cancel is + // // still disabled. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(false)); + // + // // Test disabling auto cancel. + // await camera.setFocusMode(cameraId, FocusMode.auto); + // clearInteractions(mockCameraControl); + // + // await camera.setExposurePoint(cameraId, exposurePoint); + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isTrue); + // }); + // + // test( + // 'setFocusPoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 232; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockFocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // const Point focusPoint = Point(0.221, 0.211); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, MockCamera2CameraControl()); + // + // // Make setting focus and metering action fail to test auto-cancel is not + // // disabled. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(false)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Set exposure point to later mock failed call to set an exposure point. + // await camera.setExposurePoint(cameraId, const Point(0.43, 0.34)); + // + // // Test failing to set locked focus mode. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // clearInteractions(mockCameraControl); + // + // await camera.setFocusPoint(cameraId, focusPoint); + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isFalse); + // }); + // + // test( + // 'setExposurePoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 323; + // final MockCameraControl mockCameraControl = MockCameraControl(); + // final MockFocusMeteringResult mockFocusMeteringResult = + // MockFocusMeteringResult(); + // const Point exposurePoint = Point(0.223, 0.332); + // + // // Set directly for test versus calling createCamera. + // camera.cameraControl = mockCameraControl; + // camera.cameraInfo = MockCameraInfo(); + // + // camera.proxy = getProxyForSettingFocusandExposurePoints( + // mockCameraControl, MockCamera2CameraControl()); + // + // // Make setting focus and metering action fail to test auto-cancel is not + // // disabled. + // when(mockFocusMeteringResult.isFocusSuccessful()) + // .thenAnswer((_) async => Future.value(false)); + // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + // Future.value(mockFocusMeteringResult)); + // + // // Set exposure point to later mock failed call to set an exposure point. + // await camera.setExposurePoint(cameraId, const Point(0.5, 0.2)); + // + // // Test failing to set locked focus mode. + // await camera.setFocusMode(cameraId, FocusMode.locked); + // clearInteractions(mockCameraControl); + // + // await camera.setExposurePoint(cameraId, exposurePoint); + // final VerificationResult verificationResult = + // verify(mockCameraControl.startFocusAndMetering(captureAny)); + // final FocusMeteringAction capturedAction = + // verificationResult.captured.single as FocusMeteringAction; + // expect(capturedAction.disableAutoCancel, isFalse); + // }); + // + // test( + // 'onStreamedFrameAvailable binds ImageAnalysis use case when not already bound', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // const int cameraId = 22; + // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + // final MockProcessCameraProvider mockProcessCameraProvider = + // MockProcessCameraProvider(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // + // // Set directly for test versus calling createCamera. + // camera.imageAnalysis = mockImageAnalysis; + // camera.processCameraProvider = mockProcessCameraProvider; + // camera.cameraSelector = MockCameraSelector(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create a detached analyzer for testing purposes. + // camera.proxy = CameraXProxy( + // createAnalyzer: (_) => MockAnalyzer(), + // createCameraStateObserver: (_) => MockObserver(), + // ); + // + // when(mockProcessCameraProvider.isBound(mockImageAnalysis)) + // .thenAnswer((_) async => false); + // when(mockProcessCameraProvider.bindToLifecycle( + // any, [mockImageAnalysis])).thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // + // final StreamSubscription imageStreamSubscription = camera + // .onStreamedFrameAvailable(cameraId) + // .listen((CameraImageData data) {}); + // + // await untilCalled(mockImageAnalysis.setAnalyzer(any)); + // verify(mockProcessCameraProvider + // .bindToLifecycle(camera.cameraSelector, [mockImageAnalysis])); + // + // await imageStreamSubscription.cancel(); + // }); + // + // test( + // 'startVideoCapturing unbinds ImageAnalysis use case when camera device is not at least level 3, no image streaming callback is specified, and preview is not paused', + // () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockRecording mockRecording = MockRecording(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.cameraSelector = MockCameraSelector(); + // camera.cameraInfo = MockCameraInfo(); + // camera.imageAnalysis = MockImageAnalysis(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached Observer when camera info updated. + // camera.proxy = CameraXProxy( + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // getCamera2CameraInfo: (CameraInfo cameraInfo) => + // Future.value(mockCamera2CameraInfo)); + // + // const int cameraId = 7; + // const String outputPath = '/temp/REC123.temp'; + // + // // Mock method calls. + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => false); + // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + // .thenAnswer((_) async => true); + // when(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()) + // .thenAnswer((_) => Future.value(mockCameraInfo)); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(mockCamera2CameraInfo.getSupportedHardwareLevel()) + // .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevelFull); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // + // verify( + // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + // }); + // + // test( + // 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback not specified, camera device is level 3, and preview is not paused', + // () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockRecording mockRecording = MockRecording(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.cameraSelector = MockCameraSelector(); + // camera.cameraInfo = MockCameraInfo(); + // camera.imageAnalysis = MockImageAnalysis(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached Observer when camera info updated. + // camera.proxy = CameraXProxy( + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // getCamera2CameraInfo: (CameraInfo cameraInfo) => + // Future.value(mockCamera2CameraInfo)); + // + // const int cameraId = 77; + // const String outputPath = '/temp/REC123.temp'; + // + // // Mock method calls. + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => false); + // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + // .thenAnswer((_) async => true); + // when(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()) + // .thenAnswer((_) => Future.value(mockCameraInfo)); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(mockCamera2CameraInfo.getSupportedHardwareLevel()) + // .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // + // verify( + // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + // }); + // + // test( + // 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback is specified, camera device is not at least level 3, and preview is not paused', + // () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockRecording mockRecording = MockRecording(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.cameraSelector = MockCameraSelector(); + // camera.cameraInfo = MockCameraInfo(); + // camera.imageAnalysis = MockImageAnalysis(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached Observer when camera info updated. + // camera.proxy = CameraXProxy( + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // getCamera2CameraInfo: (CameraInfo cameraInfo) => + // Future.value(mockCamera2CameraInfo)); + // + // const int cameraId = 87; + // const String outputPath = '/temp/REC123.temp'; + // + // // Mock method calls. + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => false); + // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + // .thenAnswer((_) async => true); + // when(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()) + // .thenAnswer((_) => Future.value(mockCameraInfo)); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( + // (_) async => CameraMetadata.infoSupportedHardwareLevelExternal); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // await camera.startVideoCapturing(VideoCaptureOptions(cameraId, + // streamCallback: (CameraImageData image) {})); + // verify( + // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + // }); + // + // test( + // 'startVideoCapturing unbinds ImageCapture use case when image streaming callback is specified, camera device is at least level 3, and preview is not paused', + // () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockRecording mockRecording = MockRecording(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.cameraSelector = MockCameraSelector(); + // camera.cameraInfo = MockCameraInfo(); + // camera.imageAnalysis = MockImageAnalysis(); + // camera.imageCapture = MockImageCapture(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached Observer when camera info updated. + // camera.proxy = CameraXProxy( + // createAnalyzer: + // (Future Function(ImageProxy imageProxy) analyze) => + // Analyzer.detached(analyze: analyze), + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // getCamera2CameraInfo: (CameraInfo cameraInfo) => + // Future.value(mockCamera2CameraInfo)); + // + // const int cameraId = 107; + // const String outputPath = '/temp/REC123.temp'; + // + // // Mock method calls. + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => false); + // when(camera.processCameraProvider!.isBound(camera.imageCapture!)) + // .thenAnswer((_) async => true); + // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + // .thenAnswer((_) async => true); + // when(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()) + // .thenAnswer((_) => Future.value(mockCameraInfo)); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(mockCamera2CameraInfo.getSupportedHardwareLevel()) + // .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // await camera.startVideoCapturing(VideoCaptureOptions(cameraId, + // streamCallback: (CameraImageData image) {})); + // verify( + // camera.processCameraProvider!.unbind([camera.imageCapture!])); + // }); + // + // test( + // 'startVideoCapturing does not unbind ImageCapture or ImageAnalysis use cases when preview is paused', + // () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockRecording mockRecording = MockRecording(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.cameraSelector = MockCameraSelector(); + // camera.cameraInfo = MockCameraInfo(); + // camera.imageAnalysis = MockImageAnalysis(); + // camera.imageCapture = MockImageCapture(); + // camera.preview = MockPreview(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached Observer when camera info updated. + // camera.proxy = CameraXProxy( + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // getCamera2CameraInfo: (CameraInfo cameraInfo) => + // Future.value(mockCamera2CameraInfo)); + // + // const int cameraId = 97; + // const String outputPath = '/temp/REC123.temp'; + // + // // Mock method calls. + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => false); + // when(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()) + // .thenAnswer((_) => Future.value(mockCameraInfo)); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // + // await camera.pausePreview(cameraId); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // + // verifyNever( + // camera.processCameraProvider!.unbind([camera.imageCapture!])); + // verifyNever( + // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + // }); + // + // test( + // 'startVideoCapturing unbinds ImageCapture and ImageAnalysis use cases when running on a legacy hardware device', + // () async { + // // Set up mocks and constants. + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // final MockPendingRecording mockPendingRecording = MockPendingRecording(); + // final MockRecording mockRecording = MockRecording(); + // final MockCamera mockCamera = MockCamera(); + // final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + // final TestSystemServicesHostApi mockSystemServicesApi = + // MockTestSystemServicesHostApi(); + // TestSystemServicesHostApi.setup(mockSystemServicesApi); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.cameraSelector = MockCameraSelector(); + // camera.cameraInfo = MockCameraInfo(); + // camera.imageAnalysis = MockImageAnalysis(); + // camera.imageCapture = MockImageCapture(); + // camera.preview = MockPreview(); + // + // // Ignore setting target rotation for this test; tested seprately. + // camera.captureOrientationLocked = true; + // + // // Tell plugin to create detached Observer when camera info updated. + // camera.proxy = CameraXProxy( + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // getCamera2CameraInfo: (CameraInfo cameraInfo) => + // Future.value(mockCamera2CameraInfo)); + // + // const int cameraId = 44; + // const String outputPath = '/temp/REC123.temp'; + // + // // Mock method calls. + // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + // .thenReturn(outputPath); + // when(camera.recorder!.prepareRecording(outputPath)) + // .thenAnswer((_) async => mockPendingRecording); + // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + // .thenAnswer((_) async => false); + // when(camera.processCameraProvider!.isBound(camera.imageCapture!)) + // .thenAnswer((_) async => true); + // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + // .thenAnswer((_) async => true); + // when(camera.processCameraProvider!.bindToLifecycle( + // camera.cameraSelector!, [camera.videoCapture!])) + // .thenAnswer((_) async => mockCamera); + // when(mockCamera.getCameraInfo()) + // .thenAnswer((_) => Future.value(mockCameraInfo)); + // when(mockCameraInfo.getCameraState()) + // .thenAnswer((_) async => MockLiveCameraState()); + // when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( + // (_) async => CameraMetadata.infoSupportedHardwareLevelLegacy); + // + // // Simulate video recording being started so startVideoRecording completes. + // PendingRecording.videoRecordingEventStreamController + // .add(VideoRecordEvent.start); + // + // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // + // verify( + // camera.processCameraProvider!.unbind([camera.imageCapture!])); + // verify( + // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + // }); + // + // test( + // 'prepareForVideoRecording does not make any calls involving starting video recording', + // () async { + // final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // + // // Set directly for test versus calling createCamera. + // camera.processCameraProvider = MockProcessCameraProvider(); + // camera.recorder = MockRecorder(); + // camera.videoCapture = MockVideoCapture(); + // camera.camera = MockCamera(); + // + // await camera.prepareForVideoRecording(); + // verifyNoMoreInteractions(camera.processCameraProvider); + // verifyNoMoreInteractions(camera.recorder); + // verifyNoMoreInteractions(camera.videoCapture); + // verifyNoMoreInteractions(camera.camera); + // }); +} - test( - 'createCamera binds Preview and ImageCapture use cases to ProcessCameraProvider instance', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( - name: 'cameraName', - lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; - const bool enableAudio = true; - - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockPreview mockPreview = MockPreview(); - final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); - final MockImageCapture mockImageCapture = MockImageCapture(); - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockRecorder mockRecorder = MockRecorder(); - final MockVideoCapture mockVideoCapture = MockVideoCapture(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Tell plugin to create mock/detached objects and stub method calls for the - // testing of createCamera. - camera.proxy = CameraXProxy( - getProcessCameraProvider: () => - Future.value(mockProcessCameraProvider), - createCameraSelector: (int cameraSelectorLensDirection) { - switch (cameraSelectorLensDirection) { - case CameraSelector.lensFacingFront: - return MockCameraSelector(); - case CameraSelector.lensFacingBack: - default: - return mockBackCameraSelector; - } - }, - createPreview: (_, __) => mockPreview, - createImageCapture: (_, __) => mockImageCapture, - createRecorder: (_) => mockRecorder, - createVideoCapture: (_) => Future.value(mockVideoCapture), - createImageAnalysis: (_, __) => mockImageAnalysis, - createResolutionStrategy: ( - {bool highestAvailable = false, - Size? boundSize, - int? fallbackRule}) => - MockResolutionStrategy(), - createResolutionSelector: (_, __, ___) => MockResolutionSelector(), - createFallbackStrategy: ( - {required VideoQuality quality, - required VideoResolutionFallbackRule fallbackRule}) => - MockFallbackStrategy(), - createQualitySelector: ( - {required VideoQuality videoQuality, - required FallbackStrategy fallbackStrategy}) => - MockQualitySelector(), - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - requestCameraPermissions: (_) => Future.value(), - startListeningForDeviceOrientationChange: (_, __) {}, - createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), - createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - cameraInfo == mockCameraInfo - ? Future.value(mockCamera2CameraInfo) - : Future.value(MockCamera2CameraInfo()), - getUiOrientation: () => - Future.value(DeviceOrientation.portraitUp), - ); - - when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, - [mockPreview, mockImageCapture, mockImageAnalysis])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera.getCameraControl()) - .thenAnswer((_) async => mockCameraControl); - - camera.processCameraProvider = mockProcessCameraProvider; - - await camera.createCameraWithSettings( - testCameraDescription, - const MediaSettings( - resolutionPreset: testResolutionPreset, - fps: 15, - videoBitrate: 2000000, - audioBitrate: 64000, - enableAudio: enableAudio, - )); - - // Verify expected UseCases were bound. - verify(camera.processCameraProvider!.bindToLifecycle(camera.cameraSelector!, - [mockPreview, mockImageCapture, mockImageAnalysis])); - - // Verify the camera's CameraInfo instance got updated. - expect(camera.cameraInfo, equals(mockCameraInfo)); - - // Verify camera's CameraControl instance got updated. - expect(camera.cameraControl, equals(mockCameraControl)); +MockCameraXProxy createProxyWithMocks() { + final MockCameraXProxy mockProxy = MockCameraXProxy(); - // Verify preview has been marked as bound to the camera lifecycle by - // createCamera. - expect(camera.previewInitiallyBound, isTrue); + when(mockProxy.newAnalyzer).thenReturn(({ + required void Function(Analyzer, ImageProxy) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAnalyzer(); }); - - test( - 'createCamera properly sets preset resolution selection strategy for non-video capture use cases', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( - name: 'cameraName', - lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - final MockCamera mockCamera = MockCamera(); - - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - camera.proxy = - getProxyForTestingResolutionPreset(mockProcessCameraProvider); - - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - camera.processCameraProvider = mockProcessCameraProvider; - - // Test non-null resolution presets. - for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - await camera.createCamera( - testCameraDescription, - resolutionPreset, - enableAudio: enableAudio, - ); - - Size? expectedBoundSize; - ResolutionStrategy? expectedResolutionStrategy; - switch (resolutionPreset) { - case ResolutionPreset.low: - expectedBoundSize = const Size(320, 240); - case ResolutionPreset.medium: - expectedBoundSize = const Size(720, 480); - case ResolutionPreset.high: - expectedBoundSize = const Size(1280, 720); - case ResolutionPreset.veryHigh: - expectedBoundSize = const Size(1920, 1080); - case ResolutionPreset.ultraHigh: - expectedBoundSize = const Size(3840, 2160); - case ResolutionPreset.max: - expectedResolutionStrategy = - ResolutionStrategy.detachedHighestAvailableStrategy(); - } - - // We expect the strategy to be the highest available or correspond to the - // expected bound size, with fallback to the closest and highest available - // resolution. - expectedResolutionStrategy ??= ResolutionStrategy.detached( - boundSize: expectedBoundSize, - fallbackRule: ResolutionStrategy.fallbackRuleClosestLowerThenHigher); - - expect(camera.preview!.resolutionSelector!.resolutionStrategy!.boundSize, - equals(expectedResolutionStrategy.boundSize)); - expect( - camera - .imageCapture!.resolutionSelector!.resolutionStrategy!.boundSize, - equals(expectedResolutionStrategy.boundSize)); - expect( - camera - .imageAnalysis!.resolutionSelector!.resolutionStrategy!.boundSize, - equals(expectedResolutionStrategy.boundSize)); - expect( - camera.preview!.resolutionSelector!.resolutionStrategy!.fallbackRule, - equals(expectedResolutionStrategy.fallbackRule)); - expect( - camera.imageCapture!.resolutionSelector!.resolutionStrategy! - .fallbackRule, - equals(expectedResolutionStrategy.fallbackRule)); - expect( - camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! - .fallbackRule, - equals(expectedResolutionStrategy.fallbackRule)); - } - - // Test null case. - await camera.createCamera(testCameraDescription, null); - expect(camera.preview!.resolutionSelector, isNull); - expect(camera.imageCapture!.resolutionSelector, isNull); - expect(camera.imageAnalysis!.resolutionSelector, isNull); + when(mockProxy.newAspectRatioStrategy).thenReturn(({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAspectRatioStrategy(); }); - - test( - 'createCamera properly sets filter for resolution preset for non-video capture use cases', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.front; - const int testSensorOrientation = 180; - const CameraDescription testCameraDescription = CameraDescription( - name: 'cameraName', - lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - final MockCamera mockCamera = MockCamera(); - - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - camera.proxy = - getProxyForTestingResolutionPreset(mockProcessCameraProvider); - - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - camera.processCameraProvider = mockProcessCameraProvider; - - // Test non-null resolution presets. - for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - await camera.createCamera(testCameraDescription, resolutionPreset, - enableAudio: enableAudio); - - Size? expectedPreferredResolution; - switch (resolutionPreset) { - case ResolutionPreset.low: - expectedPreferredResolution = const Size(320, 240); - case ResolutionPreset.medium: - expectedPreferredResolution = const Size(720, 480); - case ResolutionPreset.high: - expectedPreferredResolution = const Size(1280, 720); - case ResolutionPreset.veryHigh: - expectedPreferredResolution = const Size(1920, 1080); - case ResolutionPreset.ultraHigh: - expectedPreferredResolution = const Size(3840, 2160); - case ResolutionPreset.max: - expectedPreferredResolution = null; - } - - if (expectedPreferredResolution == null) { - expect(camera.preview!.resolutionSelector!.resolutionFilter, isNull); - expect( - camera.imageCapture!.resolutionSelector!.resolutionFilter, isNull); - expect( - camera.imageAnalysis!.resolutionSelector!.resolutionFilter, isNull); - continue; - } - - expect( - camera.preview!.resolutionSelector!.resolutionFilter! - .preferredResolution, - equals(expectedPreferredResolution)); - expect( - camera - .imageCapture!.resolutionSelector!.resolutionStrategy!.boundSize, - equals(expectedPreferredResolution)); - expect( - camera - .imageAnalysis!.resolutionSelector!.resolutionStrategy!.boundSize, - equals(expectedPreferredResolution)); - } - - // Test null case. - await camera.createCamera(testCameraDescription, null); - expect(camera.preview!.resolutionSelector, isNull); - expect(camera.imageCapture!.resolutionSelector, isNull); - expect(camera.imageAnalysis!.resolutionSelector, isNull); + when(mockProxy.getInstanceProcessCameraProvider).thenReturn(({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) async { + return MockProcessCameraProvider(); }); - - test( - 'createCamera properly sets aspect ratio based on preset resolution for non-video capture use cases', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( - name: 'cameraName', - lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - final MockCamera mockCamera = MockCamera(); - - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - camera.proxy = - getProxyForTestingResolutionPreset(mockProcessCameraProvider); - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - camera.processCameraProvider = mockProcessCameraProvider; - - // Test non-null resolution presets. - for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - await camera.createCamera(testCameraDescription, resolutionPreset, - enableAudio: enableAudio); - - int? expectedAspectRatio; - AspectRatioStrategy? expectedAspectRatioStrategy; - switch (resolutionPreset) { - case ResolutionPreset.low: - expectedAspectRatio = AspectRatio.ratio4To3; - case ResolutionPreset.high: - case ResolutionPreset.veryHigh: - case ResolutionPreset.ultraHigh: - expectedAspectRatio = AspectRatio.ratio16To9; - case ResolutionPreset.medium: - // Medium resolution preset uses aspect ratio 3:2 which is unsupported - // by CameraX. - case ResolutionPreset.max: - expectedAspectRatioStrategy = null; - } - - expectedAspectRatioStrategy = expectedAspectRatio == null - ? null - : AspectRatioStrategy.detached( - preferredAspectRatio: expectedAspectRatio, - fallbackRule: AspectRatioStrategy.fallbackRuleAuto); - - if (expectedAspectRatio == null) { - expect(camera.preview!.resolutionSelector!.aspectRatioStrategy, isNull); - expect(camera.imageCapture!.resolutionSelector!.aspectRatioStrategy, - isNull); - expect(camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy, - isNull); - continue; - } - - // Check aspect ratio. - expect( - camera.preview!.resolutionSelector!.aspectRatioStrategy! - .preferredAspectRatio, - equals(expectedAspectRatioStrategy!.preferredAspectRatio)); - expect( - camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! - .preferredAspectRatio, - equals(expectedAspectRatioStrategy.preferredAspectRatio)); - expect( - camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! - .preferredAspectRatio, - equals(expectedAspectRatioStrategy.preferredAspectRatio)); - - // Check fallback rule. - expect( - camera.preview!.resolutionSelector!.aspectRatioStrategy!.fallbackRule, - equals(expectedAspectRatioStrategy.fallbackRule)); - expect( - camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! - .fallbackRule, - equals(expectedAspectRatioStrategy.fallbackRule)); - expect( - camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! - .fallbackRule, - equals(expectedAspectRatioStrategy.fallbackRule)); - } - - // Test null case. - await camera.createCamera(testCameraDescription, null); - expect(camera.preview!.resolutionSelector, isNull); - expect(camera.imageCapture!.resolutionSelector, isNull); - expect(camera.imageAnalysis!.resolutionSelector, isNull); + when(mockProxy.newCameraSelector).thenReturn(({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockCameraSelector(); }); - - test( - 'createCamera properly sets preset resolution for video capture use case', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( - name: 'cameraName', - lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - final MockCamera mockCamera = MockCamera(); - - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - camera.proxy = - getProxyForTestingResolutionPreset(mockProcessCameraProvider); - - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - - // Test non-null resolution presets. - for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - await camera.createCamera(testCameraDescription, resolutionPreset, - enableAudio: enableAudio); - - VideoQuality? expectedVideoQuality; - switch (resolutionPreset) { - case ResolutionPreset.low: - // 240p is not supported by CameraX. - case ResolutionPreset.medium: - expectedVideoQuality = VideoQuality.SD; - case ResolutionPreset.high: - expectedVideoQuality = VideoQuality.HD; - case ResolutionPreset.veryHigh: - expectedVideoQuality = VideoQuality.FHD; - case ResolutionPreset.ultraHigh: - expectedVideoQuality = VideoQuality.UHD; - case ResolutionPreset.max: - expectedVideoQuality = VideoQuality.highest; - } - - const VideoResolutionFallbackRule expectedFallbackRule = - VideoResolutionFallbackRule.lowerQualityOrHigherThan; - final FallbackStrategy expectedFallbackStrategy = - FallbackStrategy.detached( - quality: expectedVideoQuality, - fallbackRule: expectedFallbackRule); - - expect(camera.recorder!.qualitySelector!.qualityList.length, equals(1)); - expect(camera.recorder!.qualitySelector!.qualityList.first.quality, - equals(expectedVideoQuality)); - expect(camera.recorder!.qualitySelector!.fallbackStrategy!.quality, - equals(expectedFallbackStrategy.quality)); - expect(camera.recorder!.qualitySelector!.fallbackStrategy!.fallbackRule, - equals(expectedFallbackStrategy.fallbackRule)); - } - - // Test null case. - await camera.createCamera(testCameraDescription, null); - expect(camera.recorder!.qualitySelector, isNull); + when(mockProxy.newPreview).thenReturn(({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockPreview(); }); - - test( - 'createCamera sets sensor and device orientations needed to correct preview rotation as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 270; - const CameraDescription testCameraDescription = CameraDescription( - name: 'cameraName', - lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; - const DeviceOrientation testUiOrientation = DeviceOrientation.portraitDown; - const DeviceOrientation testCurrentOrientation = - DeviceOrientation.portraitUp; - - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockCamera mockCamera = MockCamera(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // The proxy needed for this test is the same as testing resolution - // presets except for mocking the retrievall of the sensor and current - // UI orientation. - camera.proxy = - getProxyForTestingResolutionPreset(mockProcessCameraProvider); - camera.proxy.getSensorOrientation = - (_) async => Future.value(testSensorOrientation); - camera.proxy.getUiOrientation = - () async => Future.value(testUiOrientation); - - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - - await camera.createCamera(testCameraDescription, testResolutionPreset, - enableAudio: enableAudio); - - const DeviceOrientationChangedEvent testEvent = - DeviceOrientationChangedEvent(testCurrentOrientation); - - DeviceOrientationManager.deviceOrientationChangedStreamController - .add(testEvent); - - // Wait for currentDeviceOrientation to update. - await Future.value(); - - expect(camera.naturalOrientation, testUiOrientation); - expect(camera.sensorOrientation, testSensorOrientation); - expect(camera.currentDeviceOrientation, testCurrentOrientation); + when(mockProxy.newImageCapture).thenReturn(({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockImageCapture(); }); - - test( - 'initializeCamera throws a CameraException when createCamera has not been called before initializedCamera', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - await expectLater(() async { - await camera.initializeCamera(3); - }, throwsA(isA())); + when(mockProxy.newRecorder).thenReturn(({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockRecorder(); + }); + when(mockProxy.withOutputVideoCapture).thenReturn(({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockVideoCapture(); + }); + when(mockProxy.newImageAnalysis).thenReturn(({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockImageAnalysis(); + }); + when(mockProxy.newResolutionStrategy).thenReturn(({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }); + when(mockProxy.newResolutionSelector).thenReturn(({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }); + when(mockProxy.lowerQualityThanFallbackStrategy).thenReturn(({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }); + when(mockProxy.fromQualitySelector).thenReturn(({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }); + when(mockProxy.newObserver).thenReturn(Observer.detached); + when(mockProxy.createWithOnePreferredSizeResolutionFilter).thenReturn(({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }); + when(mockProxy.fromCamera2CameraInfo).thenReturn(({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockCamera2CameraInfo(); + }); + when(mockProxy.newDeviceOrientationManager).thenReturn(({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockDeviceOrientationManager(); + }); + when(mockProxy.newSystemServicesManager).thenReturn(({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); }); - test('initializeCamera sends expected CameraInitializedEvent', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - - const int cameraId = 10; - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( - name: 'cameraName', - lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const int resolutionWidth = 350; - const int resolutionHeight = 750; - final Camera mockCamera = MockCamera(); - final ResolutionInfo testResolutionInfo = - ResolutionInfo(width: resolutionWidth, height: resolutionHeight); - - // Mocks for (typically attached) objects created by createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final CameraInfo mockCameraInfo = MockCameraInfo(); - final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); - final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); - final MockPreview mockPreview = MockPreview(); - final MockImageCapture mockImageCapture = MockImageCapture(); - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); + // return CameraXProxy( + // startListeningForDeviceOrientationChange: (_, __) { + // startedListeningForDeviceOrientationChanges = true; + // }, + // getUiOrientation: () => + // Future.value(DeviceOrientation.portraitUp), + // ); - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - camera.proxy = CameraXProxy( - getProcessCameraProvider: () => - Future.value(mockProcessCameraProvider), - createCameraSelector: (int cameraSelectorLensDirection) { - switch (cameraSelectorLensDirection) { - case CameraSelector.lensFacingFront: - return mockFrontCameraSelector; - case CameraSelector.lensFacingBack: - default: - return mockBackCameraSelector; - } - }, - createPreview: (_, __) => mockPreview, - createImageCapture: (_, __) => mockImageCapture, - createRecorder: (QualitySelector? qualitySelector) => MockRecorder(), - createVideoCapture: (_) => Future.value(MockVideoCapture()), - createImageAnalysis: (_, __) => mockImageAnalysis, - createResolutionStrategy: ( - {bool highestAvailable = false, - Size? boundSize, - int? fallbackRule}) => - MockResolutionStrategy(), - createResolutionSelector: (_, __, ___) => MockResolutionSelector(), - createFallbackStrategy: ( - {required VideoQuality quality, - required VideoResolutionFallbackRule fallbackRule}) => - MockFallbackStrategy(), - createQualitySelector: ( - {required VideoQuality videoQuality, - required FallbackStrategy fallbackStrategy}) => - MockQualitySelector(), - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - requestCameraPermissions: (_) => Future.value(), - startListeningForDeviceOrientationChange: (_, __) {}, - createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), - createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), - getCamera2CameraInfo: (_) => - Future.value(MockCamera2CameraInfo()), - getUiOrientation: () => - Future.value(DeviceOrientation.portraitUp), - ); - - final CameraInitializedEvent testCameraInitializedEvent = - CameraInitializedEvent( - cameraId, - resolutionWidth.toDouble(), - resolutionHeight.toDouble(), - ExposureMode.auto, - true, - FocusMode.auto, - true); - - // Call createCamera. - when(mockPreview.setSurfaceProvider()).thenAnswer((_) async => cameraId); - - when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, - [mockPreview, mockImageCapture, mockImageAnalysis])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockPreview.getResolutionInfo()) - .thenAnswer((_) async => testResolutionInfo); - - await camera.createCameraWithSettings( - testCameraDescription, - const MediaSettings( - resolutionPreset: ResolutionPreset.medium, - fps: 15, - videoBitrate: 200000, - audioBitrate: 32000, - enableAudio: true, - ), - ); - - // Start listening to camera events stream to verify the proper CameraInitializedEvent is sent. - camera.cameraEventStreamController.stream.listen((CameraEvent event) { - expect(event, const TypeMatcher()); - expect(event, equals(testCameraInitializedEvent)); - }); - - await camera.initializeCamera(cameraId); - - // Check camera instance was received. - expect(camera.camera, isNotNull); - }); - - test( - 'dispose releases Flutter surface texture, removes camera state observers, and unbinds all use cases', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - - camera.preview = MockPreview(); - camera.processCameraProvider = MockProcessCameraProvider(); - camera.liveCameraState = MockLiveCameraState(); - camera.imageAnalysis = MockImageAnalysis(); - - await camera.dispose(3); - - verify(camera.preview!.releaseFlutterSurfaceTexture()); - verify(camera.liveCameraState!.removeObservers()); - verify(camera.processCameraProvider!.unbindAll()); - verify(camera.imageAnalysis!.clearAnalyzer()); - }); - - test('onCameraInitialized stream emits CameraInitializedEvents', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 16; - final Stream eventStream = - camera.onCameraInitialized(cameraId); - final StreamQueue streamQueue = - StreamQueue(eventStream); - const CameraInitializedEvent testEvent = CameraInitializedEvent( - cameraId, 320, 80, ExposureMode.auto, false, FocusMode.auto, false); - - camera.cameraEventStreamController.add(testEvent); - - expect(await streamQueue.next, testEvent); - await streamQueue.cancel(); - }); - - test( - 'onCameraClosing stream emits camera closing event when cameraEventStreamController emits a camera closing event', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 99; - const CameraClosingEvent cameraClosingEvent = CameraClosingEvent(cameraId); - final Stream eventStream = - camera.onCameraClosing(cameraId); - final StreamQueue streamQueue = - StreamQueue(eventStream); - - camera.cameraEventStreamController.add(cameraClosingEvent); - - expect(await streamQueue.next, equals(cameraClosingEvent)); - await streamQueue.cancel(); - }); - - test( - 'onCameraError stream emits errors caught by system services or added to stream within plugin', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 27; - const String firstTestErrorDescription = 'Test error description 1!'; - const String secondTestErrorDescription = 'Test error description 2!'; - const CameraErrorEvent secondCameraErrorEvent = - CameraErrorEvent(cameraId, secondTestErrorDescription); - final Stream eventStream = camera.onCameraError(cameraId); - final StreamQueue streamQueue = - StreamQueue(eventStream); - - SystemServices.cameraErrorStreamController.add(firstTestErrorDescription); - expect(await streamQueue.next, - equals(const CameraErrorEvent(cameraId, firstTestErrorDescription))); - - camera.cameraEventStreamController.add(secondCameraErrorEvent); - expect(await streamQueue.next, equals(secondCameraErrorEvent)); - - await streamQueue.cancel(); - }); - - test( - 'onDeviceOrientationChanged stream emits changes in device orientation detected by system services', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final Stream eventStream = - camera.onDeviceOrientationChanged(); - final StreamQueue streamQueue = - StreamQueue(eventStream); - const DeviceOrientationChangedEvent testEvent = - DeviceOrientationChangedEvent(DeviceOrientation.portraitDown); - - DeviceOrientationManager.deviceOrientationChangedStreamController - .add(testEvent); - - expect(await streamQueue.next, testEvent); - await streamQueue.cancel(); - }); - - test( - 'pausePreview unbinds preview from lifecycle when preview is nonnull and has been bound to lifecycle', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.preview = MockPreview(); - - when(camera.processCameraProvider!.isBound(camera.preview!)) - .thenAnswer((_) async => true); - - await camera.pausePreview(579); - - verify(camera.processCameraProvider!.unbind([camera.preview!])); - }); - - test( - 'pausePreview does not unbind preview from lifecycle when preview has not been bound to lifecycle', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.preview = MockPreview(); - - await camera.pausePreview(632); - - verifyNever( - camera.processCameraProvider!.unbind([camera.preview!])); - }); - - test( - 'resumePreview does not bind preview to lifecycle or update camera state observers if already bound', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.preview = MockPreview(); - - when(camera.processCameraProvider!.isBound(camera.preview!)) - .thenAnswer((_) async => true); - - when(mockProcessCameraProvider - .bindToLifecycle(camera.cameraSelector, [camera.preview!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => mockLiveCameraState); - - await camera.resumePreview(78); - - verifyNever(camera.processCameraProvider! - .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); - verifyNever(mockLiveCameraState.observe(any)); - expect(camera.cameraInfo, isNot(mockCameraInfo)); - }); - - test( - 'resumePreview binds preview to lifecycle and updates camera state observers if not already bound', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.preview = MockPreview(); - - // Tell plugin to create a detached Observer, that is created to - // track camera state once preview is bound to the lifecycle and needed to - // test for expected updates. - camera.proxy = CameraXProxy( - createCameraStateObserver: - (void Function(Object stateAsObject) onChanged) => - Observer.detached(onChanged: onChanged)); - - when(mockProcessCameraProvider - .bindToLifecycle(camera.cameraSelector, [camera.preview!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => mockLiveCameraState); - when(mockCamera.getCameraControl()) - .thenAnswer((_) async => mockCameraControl); - - await camera.resumePreview(78); - - verify(camera.processCameraProvider! - .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); - expect( - await testCameraClosingObserver( - camera, - 78, - verify(mockLiveCameraState.observe(captureAny)).captured.single - as Observer), - isTrue); - expect(camera.cameraInfo, equals(mockCameraInfo)); - expect(camera.cameraControl, equals(mockCameraControl)); - }); - - test( - 'buildPreview throws an exception if the preview is not bound to the lifecycle', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 73; - - // Tell camera that createCamera has not been called and thus, preview has - // not been bound to the lifecycle of the camera. - camera.previewInitiallyBound = false; - - expect( - () => camera.buildPreview(cameraId), throwsA(isA())); - }); - - test( - 'buildPreview returns a Texture once the preview is bound to the lifecycle if it is backed by a SurfaceTexture', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 37; - - // Tell camera that createCamera has been called and thus, preview has been - // bound to the lifecycle of the camera. - camera.previewInitiallyBound = true; - - // Tell camera the Surface used to build camera preview is backed by a - // SurfaceTexture. - camera.isPreviewPreTransformed = true; - - camera.naturalOrientation = DeviceOrientation.portraitDown; - - final Widget widget = camera.buildPreview(cameraId); - - expect(widget is Texture, isTrue); - expect((widget as Texture).textureId, cameraId); - }); - - test( - 'buildPreview returns preview with expected rotation if camera is not front facing and the preview is not backed by a SurfaceTexture', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 33; - - // Tell camera that createCamera has been called and thus, preview has been - // bound to the lifecycle of the camera. - camera.previewInitiallyBound = true; - - // Tell camera the Surface used to build camera preview is not backed by a - // SurfaceTexture. - camera.isPreviewPreTransformed = false; - - // Mock sensor and device orientation. - camera.sensorOrientation = 270; - camera.cameraIsFrontFacing = false; - camera.naturalOrientation = DeviceOrientation.portraitUp; - - final double expectedRotation = (camera.sensorOrientation + - 0 /* the natural orientation in clockwise degrees */ * - -1 /* camera is not front facing */ + - 360) % - 360; - final int expectedQuarterTurns = (expectedRotation / 90).toInt(); - - final Widget widget = camera.buildPreview(cameraId); - - expect(widget is RotatedBox, isTrue); - expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); - expect(widget.child is Texture, isTrue); - expect((widget.child! as Texture).textureId, cameraId); - }); - - test( - 'buildPreview returns preview with expected rotation if camera is front facing, the current orientation is landscape, and the preview is not backed by a SurfaceTexture', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 7; - - // Tell camera that createCamera has been called and thus, preview has been - // bound to the lifecycle of the camera. - camera.previewInitiallyBound = true; - - // Tell camera the Surface used to build camera preview is not backed by a - // SurfaceTexture. - camera.isPreviewPreTransformed = false; - - // Mock sensor and device orientation. - camera.sensorOrientation = 270; - camera.naturalOrientation = DeviceOrientation.portraitUp; - camera.cameraIsFrontFacing = true; - - // Calculate expected rotation with offset due to counter-clockwise rotation - // of the image with th efront camera in use. - final double expectedRotation = ((camera.sensorOrientation + - 0 /* the natural orientation in clockwise degrees */ * - 1 /* camera is front facing */ + - 360) % - 360) + - 180; - final int expectedQuarterTurns = (expectedRotation / 90).toInt() % 4; - - // Test landscape left. - camera.currentDeviceOrientation = DeviceOrientation.landscapeLeft; - Widget widget = camera.buildPreview(cameraId); - - expect(widget is RotatedBox, isTrue); - expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); - expect(widget.child is Texture, isTrue); - expect((widget.child! as Texture).textureId, cameraId); - - // Test landscape right. - camera.currentDeviceOrientation = DeviceOrientation.landscapeRight; - widget = camera.buildPreview(cameraId); - - expect(widget is RotatedBox, isTrue); - expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); - expect(widget.child is Texture, isTrue); - expect((widget.child! as Texture).textureId, cameraId); - }); - - test( - 'buildPreview returns preview with expected rotation if camera is front facing, the current orientation is not landscape, and the preview is not backed by a SurfaceTexture', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 733; - - // Tell camera that createCamera has been called and thus, preview has been - // bound to the lifecycle of the camera. - camera.previewInitiallyBound = true; - - // Tell camera the Surface used to build camera preview is not backed by a - // SurfaceTexture. - camera.isPreviewPreTransformed = false; - - // Mock sensor and device orientation. - camera.sensorOrientation = 270; - camera.naturalOrientation = DeviceOrientation.portraitUp; - camera.cameraIsFrontFacing = true; - - // Calculate expected rotation without offset needed for landscape orientations - // due to counter-clockwise rotation of the image with th efront camera in use. - final double expectedRotation = (camera.sensorOrientation + - 0 /* the natural orientation in clockwise degrees */ * - 1 /* camera is front facing */ + - 360) % - 360; - - final int expectedQuarterTurns = (expectedRotation / 90).toInt() % 4; - - // Test portrait up. - camera.currentDeviceOrientation = DeviceOrientation.portraitUp; - Widget widget = camera.buildPreview(cameraId); - - expect(widget is RotatedBox, isTrue); - expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); - expect(widget.child is Texture, isTrue); - expect((widget.child! as Texture).textureId, cameraId); - - // Test portrait down. - camera.currentDeviceOrientation = DeviceOrientation.portraitDown; - widget = camera.buildPreview(cameraId); - - expect(widget is RotatedBox, isTrue); - expect((widget as RotatedBox).quarterTurns, expectedQuarterTurns); - expect(widget.child is Texture, isTrue); - expect((widget.child! as Texture).textureId, cameraId); - }); - - group('video recording', () { - test( - 'startVideoCapturing binds video capture use case, updates saved camera instance and its properties, and starts the recording', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCamera newMockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - final MockLiveCameraState newMockLiveCameraState = MockLiveCameraState(); - final MockCamera2CameraInfo mockCamera2CameraInfo = - MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.camera = mockCamera; - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.liveCameraState = mockLiveCameraState; - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); - - const int cameraId = 17; - const String outputPath = '/temp/REC123.temp'; - - // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => newMockCamera); - when(newMockCamera.getCameraInfo()) - .thenAnswer((_) async => mockCameraInfo); - when(newMockCamera.getCameraControl()) - .thenAnswer((_) async => mockCameraControl); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => newMockLiveCameraState); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - - // Verify VideoCapture UseCase is bound and camera & its properties - // are updated. - verify(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])); - expect(camera.camera, equals(newMockCamera)); - expect(camera.cameraInfo, equals(mockCameraInfo)); - expect(camera.cameraControl, equals(mockCameraControl)); - verify(mockLiveCameraState.removeObservers()); - expect( - await testCameraClosingObserver( - camera, - cameraId, - verify(newMockLiveCameraState.observe(captureAny)).captured.single - as Observer), - isTrue); - - // Verify recording is started. - expect(camera.pendingRecording, equals(mockPendingRecording)); - expect(camera.recording, mockRecording); - }); - - test( - 'startVideoCapturing binds video capture use case and starts the recording' - ' on first call, and does nothing on second call', () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = - MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); - - const int cameraId = 17; - const String outputPath = '/temp/REC123.temp'; - - // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - - verify(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])); - expect(camera.pendingRecording, equals(mockPendingRecording)); - expect(camera.recording, mockRecording); - - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // Verify that each of these calls happened only once. - verify(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .called(1); - verifyNoMoreInteractions(mockSystemServicesApi); - verify(camera.recorder!.prepareRecording(outputPath)).called(1); - verifyNoMoreInteractions(camera.recorder); - verify(mockPendingRecording.start()).called(1); - verifyNoMoreInteractions(mockPendingRecording); - }); - - test( - 'startVideoCapturing called with stream options starts image streaming', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final Recorder mockRecorder = MockRecorder(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockCameraInfo initialCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = - MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Set directly for test versus calling createCamera. - - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.videoCapture = MockVideoCapture(); - camera.imageAnalysis = MockImageAnalysis(); - camera.camera = MockCamera(); - camera.recorder = mockRecorder; - camera.cameraInfo = initialCameraInfo; - camera.imageCapture = MockImageCapture(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Analyzer for testing. - camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze), - getCamera2CameraInfo: (CameraInfo cameraInfo) async => - cameraInfo == initialCameraInfo - ? mockCamera2CameraInfo - : MockCamera2CameraInfo()); - - const int cameraId = 17; - const String outputPath = '/temp/REC123.temp'; - final Completer imageDataCompleter = - Completer(); - final VideoCaptureOptions videoCaptureOptions = VideoCaptureOptions( - cameraId, - streamCallback: (CameraImageData imageData) => - imageDataCompleter.complete(imageData)); - - // Mock method calls. - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) => Future.value(camera.camera)); - when(camera.camera!.getCameraInfo()) - .thenAnswer((_) => Future.value(MockCameraInfo())); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - await camera.startVideoCapturing(videoCaptureOptions); - - final CameraImageData mockCameraImageData = MockCameraImageData(); - camera.cameraImageDataStreamController!.add(mockCameraImageData); - - expect(imageDataCompleter.future, isNotNull); - await camera.cameraImageDataStreamController!.close(); - }); - - test( - 'startVideoCapturing sets VideoCapture target rotation to current video orientation if orientation unlocked', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockVideoCapture mockVideoCapture = MockVideoCapture(); - final MockCameraInfo initialCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = - MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - const int defaultTargetRotation = Surface.rotation270; - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.camera = MockCamera(); - camera.recorder = MockRecorder(); - camera.videoCapture = mockVideoCapture; - camera.cameraSelector = MockCameraSelector(); - camera.imageAnalysis = MockImageAnalysis(); - camera.cameraInfo = initialCameraInfo; - - // Tell plugin to mock call to get current video orientation and mock Camera2CameraInfo retrieval. - camera.proxy = CameraXProxy( - getDefaultDisplayRotation: () => - Future.value(defaultTargetRotation), - getCamera2CameraInfo: (CameraInfo cameraInfo) async => - cameraInfo == initialCameraInfo - ? mockCamera2CameraInfo - : MockCamera2CameraInfo()); - - const int cameraId = 87; - const String outputPath = '/temp/REC123.temp'; - - // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => false); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - // Orientation is unlocked and plugin does not need to set default target - // rotation manually. - camera.recording = null; - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verifyNever(mockVideoCapture.setTargetRotation(any)); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - // Orientation is locked and plugin does not need to set default target - // rotation manually. - camera.recording = null; - camera.captureOrientationLocked = true; - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verifyNever(mockVideoCapture.setTargetRotation(any)); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - // Orientation is locked and plugin does need to set default target - // rotation manually. - camera.recording = null; - camera.captureOrientationLocked = true; - camera.shouldSetDefaultRotation = true; - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verifyNever(mockVideoCapture.setTargetRotation(any)); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - // Orientation is unlocked and plugin does need to set default target - // rotation manually. - camera.recording = null; - camera.captureOrientationLocked = false; - camera.shouldSetDefaultRotation = true; - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verify(mockVideoCapture.setTargetRotation(defaultTargetRotation)); - }); - - test('pauseVideoRecording pauses the recording', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); - - // Set directly for test versus calling startVideoCapturing. - camera.recording = recording; - - await camera.pauseVideoRecording(0); - verify(recording.pause()); - verifyNoMoreInteractions(recording); - }); - - test('resumeVideoRecording resumes the recording', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); - - // Set directly for test versus calling startVideoCapturing. - camera.recording = recording; - - await camera.resumeVideoRecording(0); - verify(recording.resume()); - verifyNoMoreInteractions(recording); - }); - - test('stopVideoRecording stops the recording', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); - final MockProcessCameraProvider processCameraProvider = - MockProcessCameraProvider(); - final MockVideoCapture videoCapture = MockVideoCapture(); - const String videoOutputPath = '/test/output/path'; - - // Set directly for test versus calling createCamera and startVideoCapturing. - camera.processCameraProvider = processCameraProvider; - camera.recording = recording; - camera.videoCapture = videoCapture; - camera.videoOutputPath = videoOutputPath; - - // Tell plugin that videoCapture use case was bound to start recording. - when(camera.processCameraProvider!.isBound(videoCapture)) - .thenAnswer((_) async => true); - - // Simulate video recording being finalized so stopVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.finalize); - - final XFile file = await camera.stopVideoRecording(0); - expect(file.path, videoOutputPath); - - // Verify that recording stops. - verify(recording.close()); - verifyNoMoreInteractions(recording); - }); - - test( - 'stopVideoRecording throws a camera exception if ' - 'no recording is in progress', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const String videoOutputPath = '/test/output/path'; - - // Set directly for test versus calling startVideoCapturing. - camera.recording = null; - camera.videoOutputPath = videoOutputPath; - - await expectLater(() async { - await camera.stopVideoRecording(0); - }, throwsA(isA())); - }); - - test( - 'stopVideoRecording throws a camera exception if ' - 'videoOutputPath is null, and sets recording to null', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording mockRecording = MockRecording(); - final MockVideoCapture mockVideoCapture = MockVideoCapture(); - - // Set directly for test versus calling startVideoCapturing. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recording = mockRecording; - camera.videoOutputPath = null; - camera.videoCapture = mockVideoCapture; - - // Tell plugin that videoCapture use case was bound to start recording. - when(camera.processCameraProvider!.isBound(mockVideoCapture)) - .thenAnswer((_) async => true); - - await expectLater(() async { - // Simulate video recording being finalized so stopVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.finalize); - await camera.stopVideoRecording(0); - }, throwsA(isA())); - expect(camera.recording, null); - }); - - test( - 'calling stopVideoRecording twice stops the recording ' - 'and then throws a CameraException', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); - final MockProcessCameraProvider processCameraProvider = - MockProcessCameraProvider(); - final MockVideoCapture videoCapture = MockVideoCapture(); - const String videoOutputPath = '/test/output/path'; - - // Set directly for test versus calling createCamera and startVideoCapturing. - camera.processCameraProvider = processCameraProvider; - camera.recording = recording; - camera.videoCapture = videoCapture; - camera.videoOutputPath = videoOutputPath; - - // Simulate video recording being finalized so stopVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.finalize); - - final XFile file = await camera.stopVideoRecording(0); - expect(file.path, videoOutputPath); - - await expectLater(() async { - await camera.stopVideoRecording(0); - }, throwsA(isA())); - }); - - test( - 'VideoCapture use case is unbound from lifecycle when video recording stops', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); - final MockProcessCameraProvider processCameraProvider = - MockProcessCameraProvider(); - final MockVideoCapture videoCapture = MockVideoCapture(); - const String videoOutputPath = '/test/output/path'; - - // Set directly for test versus calling createCamera and startVideoCapturing. - camera.processCameraProvider = processCameraProvider; - camera.recording = recording; - camera.videoCapture = videoCapture; - camera.videoOutputPath = videoOutputPath; - - // Tell plugin that videoCapture use case was bound to start recording. - when(camera.processCameraProvider!.isBound(videoCapture)) - .thenAnswer((_) async => true); - - // Simulate video recording being finalized so stopVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.finalize); - - await camera.stopVideoRecording(90); - verify(processCameraProvider.unbind([videoCapture])); - - // Verify that recording stops. - verify(recording.close()); - verifyNoMoreInteractions(recording); - }); - - test( - 'setDescriptionWhileRecording does not make any calls involving starting video recording', - () async { - // TODO(camsim99): Modify test when implemented, see https://github.com/flutter/flutter/issues/148013. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.camera = MockCamera(); - - await camera.setDescriptionWhileRecording(const CameraDescription( - name: 'fakeCameraName', - lensDirection: CameraLensDirection.back, - sensorOrientation: 90)); - verifyNoMoreInteractions(camera.processCameraProvider); - verifyNoMoreInteractions(camera.recorder); - verifyNoMoreInteractions(camera.videoCapture); - verifyNoMoreInteractions(camera.camera); - }); - }); - - test( - 'takePicture binds ImageCapture to lifecycle and makes call to take a picture', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - const String testPicturePath = 'test/absolute/path/to/picture'; - - // Set directly for test versus calling createCamera. - camera.imageCapture = MockImageCapture(); - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached camera state observers. - camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged)); - - when(mockProcessCameraProvider.isBound(camera.imageCapture)) - .thenAnswer((_) async => false); - when(mockProcessCameraProvider.bindToLifecycle( - camera.cameraSelector, [camera.imageCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(camera.imageCapture!.takePicture()) - .thenAnswer((_) async => testPicturePath); - - final XFile imageFile = await camera.takePicture(3); - - expect(imageFile.path, equals(testPicturePath)); - }); - - test( - 'takePicture sets ImageCapture target rotation to currrent photo rotation when orientation unlocked', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockImageCapture mockImageCapture = MockImageCapture(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - - const int cameraId = 3; - const int defaultTargetRotation = Surface.rotation180; - - // Set directly for test versus calling createCamera. - camera.imageCapture = mockImageCapture; - camera.processCameraProvider = mockProcessCameraProvider; - - // Tell plugin to mock call to get current photo orientation. - camera.proxy = CameraXProxy( - getDefaultDisplayRotation: () => - Future.value(defaultTargetRotation)); - - when(mockProcessCameraProvider.isBound(camera.imageCapture)) - .thenAnswer((_) async => true); - when(camera.imageCapture!.takePicture()) - .thenAnswer((_) async => 'test/absolute/path/to/picture'); - - // Orientation is unlocked and plugin does not need to set default target - // rotation manually. - await camera.takePicture(cameraId); - verifyNever(mockImageCapture.setTargetRotation(any)); - - // Orientation is locked and plugin does not need to set default target - // rotation manually. - camera.captureOrientationLocked = true; - await camera.takePicture(cameraId); - verifyNever(mockImageCapture.setTargetRotation(any)); - - // Orientation is locked and plugin does need to set default target - // rotation manually. - camera.captureOrientationLocked = true; - camera.shouldSetDefaultRotation = true; - await camera.takePicture(cameraId); - verifyNever(mockImageCapture.setTargetRotation(any)); - - // Orientation is unlocked and plugin does need to set default target - // rotation manually. - camera.captureOrientationLocked = false; - camera.shouldSetDefaultRotation = true; - await camera.takePicture(cameraId); - verify(mockImageCapture.setTargetRotation(defaultTargetRotation)); - }); - - test('takePicture turns non-torch flash mode off when torch mode enabled', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - const int cameraId = 77; - - // Set directly for test versus calling createCamera. - camera.imageCapture = MockImageCapture(); - camera.cameraControl = MockCameraControl(); - camera.processCameraProvider = mockProcessCameraProvider; - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - when(mockProcessCameraProvider.isBound(camera.imageCapture)) - .thenAnswer((_) async => true); - - await camera.setFlashMode(cameraId, FlashMode.torch); - await camera.takePicture(cameraId); - verify(camera.imageCapture!.setFlashMode(ImageCapture.flashModeOff)); - }); - - test( - 'setFlashMode configures ImageCapture with expected non-torch flash mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 22; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - - // Set directly for test versus calling createCamera. - camera.imageCapture = MockImageCapture(); - camera.cameraControl = mockCameraControl; - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - camera.processCameraProvider = mockProcessCameraProvider; - - when(mockProcessCameraProvider.isBound(camera.imageCapture)) - .thenAnswer((_) async => true); - - for (final FlashMode flashMode in FlashMode.values) { - await camera.setFlashMode(cameraId, flashMode); - - int? expectedFlashMode; - switch (flashMode) { - case FlashMode.off: - expectedFlashMode = ImageCapture.flashModeOff; - case FlashMode.auto: - expectedFlashMode = ImageCapture.flashModeAuto; - case FlashMode.always: - expectedFlashMode = ImageCapture.flashModeOn; - case FlashMode.torch: - expectedFlashMode = null; - } - - if (expectedFlashMode == null) { - // Torch mode enabled and won't be used for configuring image capture. - continue; - } - - verifyNever(mockCameraControl.enableTorch(true)); - expect(camera.torchEnabled, isFalse); - await camera.takePicture(cameraId); - verify(camera.imageCapture!.setFlashMode(expectedFlashMode)); - } - }); - - test('setFlashMode turns on torch mode as expected', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 44; - final MockCameraControl mockCameraControl = MockCameraControl(); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - - await camera.setFlashMode(cameraId, FlashMode.torch); - - verify(mockCameraControl.enableTorch(true)); - expect(camera.torchEnabled, isTrue); - }); - - test('setFlashMode turns off torch mode when non-torch flash modes set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 33; - final MockCameraControl mockCameraControl = MockCameraControl(); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - - for (final FlashMode flashMode in FlashMode.values) { - camera.torchEnabled = true; - await camera.setFlashMode(cameraId, flashMode); - - switch (flashMode) { - case FlashMode.off: - case FlashMode.auto: - case FlashMode.always: - verify(mockCameraControl.enableTorch(false)); - expect(camera.torchEnabled, isFalse); - case FlashMode.torch: - verifyNever(mockCameraControl.enableTorch(true)); - expect(camera.torchEnabled, true); - } - } - }); - - test('getMinExposureOffset returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); - - // We expect the minimum exposure to be the minimum exposure compensation * exposure compensation step. - // Delta is included due to avoid catching rounding errors. - expect(await camera.getMinExposureOffset(35), closeTo(0.6, 0.0000000001)); - }); - - test('getMaxExposureOffset returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); - - // We expect the maximum exposure to be the maximum exposure compensation * exposure compensation step. - expect(await camera.getMaxExposureOffset(35), 0.8); - }); - - test('getExposureOffsetStepSize returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); - - expect(await camera.getExposureOffsetStepSize(55), 0.2); - }); - - test( - 'getExposureOffsetStepSize returns -1 when exposure compensation not supported on device', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 0, maxCompensation: 0), - exposureCompensationStep: 0); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); - - expect(await camera.getExposureOffsetStepSize(55), -1); - }); - - test('getMaxZoomLevel returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - const double maxZoomRatio = 1; - final LiveData mockLiveZoomState = MockLiveZoomState(); - final ZoomState zoomState = - ZoomState.detached(maxZoomRatio: maxZoomRatio, minZoomRatio: 0); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - - when(mockCameraInfo.getZoomState()) - .thenAnswer((_) async => mockLiveZoomState); - when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); - - expect(await camera.getMaxZoomLevel(55), maxZoomRatio); - }); - - test('getMinZoomLevel returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - const double minZoomRatio = 0; - final LiveData mockLiveZoomState = MockLiveZoomState(); - final ZoomState zoomState = - ZoomState.detached(maxZoomRatio: 1, minZoomRatio: minZoomRatio); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - - when(mockCameraInfo.getZoomState()) - .thenAnswer((_) async => mockLiveZoomState); - when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); - - expect(await camera.getMinZoomLevel(55), minZoomRatio); - }); - - test('setZoomLevel sets zoom ratio as expected', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 44; - const double zoomRatio = 0.3; - final MockCameraControl mockCameraControl = MockCameraControl(); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - - await camera.setZoomLevel(cameraId, zoomRatio); - - verify(mockCameraControl.setZoomRatio(zoomRatio)); - }); - - test( - 'onStreamedFrameAvailable emits CameraImageData when picked up from CameraImageData stream controller', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - const int cameraId = 22; - - // Tell plugin to create detached Analyzer for testing. - camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze)); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) => Future.value(mockCamera)); - when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) - .thenAnswer((_) async => true); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - - final CameraImageData mockCameraImageData = MockCameraImageData(); - final Stream imageStream = - camera.onStreamedFrameAvailable(cameraId); - final StreamQueue streamQueue = - StreamQueue(imageStream); - - camera.cameraImageDataStreamController!.add(mockCameraImageData); - - expect(await streamQueue.next, equals(mockCameraImageData)); - await streamQueue.cancel(); - }); - - test( - 'onStreamedFrameAvailable emits CameraImageData when listened to after cancelation', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - const int cameraId = 22; - - // Tell plugin to create detached Analyzer for testing. - camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze)); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) - .thenAnswer((_) async => true); - - final CameraImageData mockCameraImageData = MockCameraImageData(); - final Stream imageStream = - camera.onStreamedFrameAvailable(cameraId); - - // Listen to image stream. - final StreamSubscription imageStreamSubscription = - imageStream.listen((CameraImageData data) {}); - - // Cancel subscription to image stream. - await imageStreamSubscription.cancel(); - final Stream imageStream2 = - camera.onStreamedFrameAvailable(cameraId); - - // Listen to image stream again. - final StreamQueue streamQueue = - StreamQueue(imageStream2); - camera.cameraImageDataStreamController!.add(mockCameraImageData); - - expect(await streamQueue.next, equals(mockCameraImageData)); - await streamQueue.cancel(); - }); - - test( - 'onStreamedFrameAvailable returns stream that responds expectedly to being listened to', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 33; - final ProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final CameraSelector mockCameraSelector = MockCameraSelector(); - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final Camera mockCamera = MockCamera(); - final CameraInfo mockCameraInfo = MockCameraInfo(); - final MockImageProxy mockImageProxy = MockImageProxy(); - final MockPlaneProxy mockPlane = MockPlaneProxy(); - final List mockPlanes = [mockPlane]; - final Uint8List buffer = Uint8List(0); - const int pixelStride = 27; - const int rowStride = 58; - const int imageFormat = 582; - const int imageHeight = 100; - const int imageWidth = 200; - - // Tell plugin to create detached Analyzer for testing. - camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze), - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged)); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = mockCameraSelector; - camera.imageAnalysis = mockImageAnalysis; - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - .thenAnswer((_) async => false); - when(mockProcessCameraProvider - .bindToLifecycle(mockCameraSelector, [mockImageAnalysis])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockImageProxy.getPlanes()) - .thenAnswer((_) async => Future>.value(mockPlanes)); - when(mockPlane.buffer).thenReturn(buffer); - when(mockPlane.rowStride).thenReturn(rowStride); - when(mockPlane.pixelStride).thenReturn(pixelStride); - when(mockImageProxy.format).thenReturn(imageFormat); - when(mockImageProxy.height).thenReturn(imageHeight); - when(mockImageProxy.width).thenReturn(imageWidth); - - final Completer imageDataCompleter = - Completer(); - final StreamSubscription - onStreamedFrameAvailableSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData imageData) { - imageDataCompleter.complete(imageData); - }); - - // Test ImageAnalysis use case is bound to ProcessCameraProvider. - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - final Analyzer capturedAnalyzer = - verify(mockImageAnalysis.setAnalyzer(captureAny)).captured.single - as Analyzer; - - await capturedAnalyzer.analyze(mockImageProxy); - - final CameraImageData imageData = await imageDataCompleter.future; - - // Test Analyzer correctly process ImageProxy instances. - expect(imageData.planes.length, equals(1)); - expect(imageData.planes[0].bytes, equals(buffer)); - expect(imageData.planes[0].bytesPerRow, equals(rowStride)); - expect(imageData.planes[0].bytesPerPixel, equals(pixelStride)); - expect(imageData.format.raw, equals(imageFormat)); - expect(imageData.height, equals(imageHeight)); - expect(imageData.width, equals(imageWidth)); - - await onStreamedFrameAvailableSubscription.cancel(); - }); - - test( - 'onStreamedFrameAvailable returns stream that responds expectedly to being canceled', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 32; - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - - // Set directly for test versus calling createCamera. - camera.imageAnalysis = mockImageAnalysis; - camera.processCameraProvider = mockProcessCameraProvider; - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create a detached analyzer for testing purposes. - camera.proxy = CameraXProxy(createAnalyzer: (_) => MockAnalyzer()); - - when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - .thenAnswer((_) async => true); - - final StreamSubscription imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - - await imageStreamSubscription.cancel(); - - verify(mockImageAnalysis.clearAnalyzer()); - }); - - test( - 'onStreamedFrameAvailable sets ImageAnalysis target rotation to current photo orientation when orientation unlocked', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 35; - const int defaultTargetRotation = Surface.rotation90; - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - - // Set directly for test versus calling createCamera. - camera.imageAnalysis = mockImageAnalysis; - camera.processCameraProvider = mockProcessCameraProvider; - - // Tell plugin to create a detached analyzer for testing purposes and mock - // call to get current photo orientation. - camera.proxy = CameraXProxy( - createAnalyzer: (_) => MockAnalyzer(), - getDefaultDisplayRotation: () => - Future.value(defaultTargetRotation)); - - when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - .thenAnswer((_) async => true); - - // Orientation is unlocked and plugin does not need to set default target - // rotation manually. - StreamSubscription imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - verifyNever(mockImageAnalysis.setTargetRotation(any)); - await imageStreamSubscription.cancel(); - - // Orientation is locked and plugin does not need to set default target - // rotation manually. - camera.captureOrientationLocked = true; - imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - verifyNever(mockImageAnalysis.setTargetRotation(any)); - await imageStreamSubscription.cancel(); - - // Orientation is locked and plugin does need to set default target - // rotation manually. - camera.captureOrientationLocked = true; - camera.shouldSetDefaultRotation = true; - imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - verifyNever(mockImageAnalysis.setTargetRotation(any)); - await imageStreamSubscription.cancel(); - - // Orientation is unlocked and plugin does need to set default target - // rotation manually. - camera.captureOrientationLocked = false; - camera.shouldSetDefaultRotation = true; - imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - await untilCalled( - mockImageAnalysis.setTargetRotation(defaultTargetRotation)); - await imageStreamSubscription.cancel(); - }); - - test( - 'lockCaptureOrientation sets capture-related use case target rotations to correct orientation', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 44; - - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockImageCapture mockImageCapture = MockImageCapture(); - final MockVideoCapture mockVideoCapture = MockVideoCapture(); - - // Set directly for test versus calling createCamera. - camera.imageAnalysis = mockImageAnalysis; - camera.imageCapture = mockImageCapture; - camera.videoCapture = mockVideoCapture; - - for (final DeviceOrientation orientation in DeviceOrientation.values) { - int? expectedTargetRotation; - switch (orientation) { - case DeviceOrientation.portraitUp: - expectedTargetRotation = Surface.rotation0; - case DeviceOrientation.landscapeLeft: - expectedTargetRotation = Surface.rotation90; - case DeviceOrientation.portraitDown: - expectedTargetRotation = Surface.rotation180; - case DeviceOrientation.landscapeRight: - expectedTargetRotation = Surface.rotation270; - } - - await camera.lockCaptureOrientation(cameraId, orientation); - - verify(mockImageAnalysis.setTargetRotation(expectedTargetRotation)); - verify(mockImageCapture.setTargetRotation(expectedTargetRotation)); - verify(mockVideoCapture.setTargetRotation(expectedTargetRotation)); - expect(camera.captureOrientationLocked, isTrue); - expect(camera.shouldSetDefaultRotation, isTrue); - - // Reset flags for testing. - camera.captureOrientationLocked = false; - camera.shouldSetDefaultRotation = false; - } - }); - - test( - 'unlockCaptureOrientation sets capture-related use case target rotations to current photo/video orientation', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 57; - - camera.captureOrientationLocked = true; - await camera.unlockCaptureOrientation(cameraId); - expect(camera.captureOrientationLocked, isFalse); - }); - - test('setExposureMode sets expected controlAeLock value via Camera2 interop', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 78; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - - // Set directly for test versus calling createCamera. - camera.camera = MockCamera(); - camera.cameraControl = mockCameraControl; - - // Tell plugin to create detached Camera2CameraControl and - // CaptureRequestOptions instances for testing. - camera.proxy = CameraXProxy( - getCamera2CameraControl: (CameraControl cameraControl) => - cameraControl == mockCameraControl - ? mockCamera2CameraControl - : Camera2CameraControl.detached(cameraControl: cameraControl), - createCaptureRequestOptions: - (List<(CaptureRequestKeySupportedType, Object?)> options) => - CaptureRequestOptions.detached(requestedOptions: options), - ); - - // Test auto mode. - await camera.setExposureMode(cameraId, ExposureMode.auto); - - VerificationResult verificationResult = - verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); - CaptureRequestOptions capturedCaptureRequestOptions = - verificationResult.captured.single as CaptureRequestOptions; - List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = - capturedCaptureRequestOptions.requestedOptions; - expect(requestedOptions.length, equals(1)); - expect(requestedOptions.first.$1, - equals(CaptureRequestKeySupportedType.controlAeLock)); - expect(requestedOptions.first.$2, equals(false)); - - // Test locked mode. - clearInteractions(mockCamera2CameraControl); - await camera.setExposureMode(cameraId, ExposureMode.locked); - - verificationResult = - verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); - capturedCaptureRequestOptions = - verificationResult.captured.single as CaptureRequestOptions; - requestedOptions = capturedCaptureRequestOptions.requestedOptions; - expect(requestedOptions.length, equals(1)); - expect(requestedOptions.first.$1, - equals(CaptureRequestKeySupportedType.controlAeLock)); - expect(requestedOptions.first.$2, equals(true)); - }); - - test( - 'setExposurePoint clears current auto-exposure metering point as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 93; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = mockCameraInfo; - - camera.proxy = getProxyForExposureAndFocus(); - - // Verify nothing happens if no current focus and metering action has been - // enabled. - await camera.setExposurePoint(cameraId, null); - verifyNever(mockCameraControl.startFocusAndMetering(any)); - verifyNever(mockCameraControl.cancelFocusAndMetering()); - - // Verify current auto-exposure metering point is removed if previously set. - final (MeteringPoint, int?) autofocusMeteringPointInfo = ( - MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf - ); - List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe - ), - autofocusMeteringPointInfo - ]; - - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - - await camera.setExposurePoint(cameraId, null); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect( - capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); - - // Verify current focus and metering action is cleared if only previously - // set metering point was for auto-exposure. - meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe - ) - ]; - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - - await camera.setExposurePoint(cameraId, null); - - verify(mockCameraControl.cancelFocusAndMetering()); - }); - - test('setExposurePoint throws CameraException if invalid point specified', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 23; - final MockCameraControl mockCameraControl = MockCameraControl(); - const Point invalidExposurePoint = Point(3, -1); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForExposureAndFocus(); - - expect(() => camera.setExposurePoint(cameraId, invalidExposurePoint), - throwsA(isA())); - }); - - test( - 'setExposurePoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 9; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = mockCameraInfo; - - camera.proxy = getProxyForExposureAndFocus(); - - // Verify current auto-exposure metering point is removed if previously set. - double exposurePointX = 0.8; - double exposurePointY = 0.1; - Point exposurePoint = Point(exposurePointX, exposurePointY); - final (MeteringPoint, int?) autofocusMeteringPointInfo = ( - MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf - ); - List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe - ), - autofocusMeteringPointInfo - ]; - - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - - await camera.setExposurePoint(cameraId, exposurePoint); - - VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - expect( - capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); - expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); - expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); - expect( - capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); - - // Verify exposure point is set when no auto-exposure metering point - // previously set, but an auto-focus point metering point has been. - exposurePointX = 0.2; - exposurePointY = 0.9; - exposurePoint = Point(exposurePointX, exposurePointY); - meteringPointInfos = <(MeteringPoint, int?)>[autofocusMeteringPointInfo]; - - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - - await camera.setExposurePoint(cameraId, exposurePoint); - - verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - capturedAction = verificationResult.captured.single as FocusMeteringAction; - capturedMeteringPointInfos = capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - expect( - capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); - expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); - expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); - expect( - capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); - }); - - test( - 'setExposurePoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 19; - final MockCameraControl mockCameraControl = MockCameraControl(); - const double exposurePointX = 0.8; - const double exposurePointY = 0.1; - const Point exposurePoint = - Point(exposurePointX, exposurePointY); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - camera.currentFocusMeteringAction = null; - - camera.proxy = getProxyForExposureAndFocus(); - - await camera.setExposurePoint(cameraId, exposurePoint); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAe)); - }); - - test( - 'setExposurePoint disables auto-cancel for focus and metering as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 2; - final MockCameraControl mockCameraControl = MockCameraControl(); - final FocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point exposurePoint = Point(0.1, 0.2); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Test not disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.auto); - clearInteractions(mockCameraControl); - await camera.setExposurePoint(cameraId, exposurePoint); - VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); - - clearInteractions(mockCameraControl); - - // Test disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - await camera.setExposurePoint(cameraId, exposurePoint); - verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); - }); - - test( - 'setExposureOffset throws exception if exposure compensation not supported', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 6; - const double offset = 2; - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); - - expect(() => camera.setExposureOffset(cameraId, offset), - throwsA(isA())); - }); - - test( - 'setExposureOffset throws exception if exposure compensation could not be set for unknown reason', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 11; - const double offset = 3; - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final CameraControl mockCameraControl = MockCameraControl(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - camera.cameraControl = mockCameraControl; - - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); - when(mockCameraControl.setExposureCompensationIndex(15)).thenThrow( - PlatformException( - code: 'TEST_ERROR', - message: - 'This is a test error message indicating exposure offset could not be set.')); - - expect(() => camera.setExposureOffset(cameraId, offset), - throwsA(isA())); - }); - - test( - 'setExposureOffset throws exception if exposure compensation could not be set due to camera being closed or newer value being set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 21; - const double offset = 5; - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final CameraControl mockCameraControl = MockCameraControl(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.1); - final int expectedExposureCompensationIndex = - (offset / exposureState.exposureCompensationStep).round(); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - camera.cameraControl = mockCameraControl; - - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); - when(mockCameraControl - .setExposureCompensationIndex(expectedExposureCompensationIndex)) - .thenAnswer((_) async => Future.value()); - - expect(() => camera.setExposureOffset(cameraId, offset), - throwsA(isA())); - }); - - test( - 'setExposureOffset behaves as expected to successful attempt to set exposure compensation index', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 11; - const double offset = 3; - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final CameraControl mockCameraControl = MockCameraControl(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); - final int expectedExposureCompensationIndex = - (offset / exposureState.exposureCompensationStep).round(); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - camera.cameraControl = mockCameraControl; - - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); - when(mockCameraControl - .setExposureCompensationIndex(expectedExposureCompensationIndex)) - .thenAnswer((_) async => Future.value( - (expectedExposureCompensationIndex * - exposureState.exposureCompensationStep) - .round())); - - // Exposure index * exposure offset step size = exposure offset, i.e. - // 15 * 0.2 = 3. - expect(await camera.setExposureOffset(cameraId, offset), equals(3)); - }); - - test('setFocusPoint clears current auto-exposure metering point as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 93; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = mockCameraInfo; - - camera.proxy = getProxyForExposureAndFocus(); - - // Verify nothing happens if no current focus and metering action has been - // enabled. - await camera.setFocusPoint(cameraId, null); - verifyNever(mockCameraControl.startFocusAndMetering(any)); - verifyNever(mockCameraControl.cancelFocusAndMetering()); - - // Verify current auto-exposure metering point is removed if previously set. - final (MeteringPoint, int?) autoexposureMeteringPointInfo = ( - MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe - ); - List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf - ), - autoexposureMeteringPointInfo - ]; - - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - - await camera.setFocusPoint(cameraId, null); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first, - equals(autoexposureMeteringPointInfo)); - - // Verify current focus and metering action is cleared if only previously - // set metering point was for auto-exposure. - meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf - ) - ]; - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - - await camera.setFocusPoint(cameraId, null); - - verify(mockCameraControl.cancelFocusAndMetering()); - }); - - test('setFocusPoint throws CameraException if invalid point specified', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 23; - final MockCameraControl mockCameraControl = MockCameraControl(); - const Point invalidFocusPoint = Point(-3, 1); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForExposureAndFocus(); - - expect(() => camera.setFocusPoint(cameraId, invalidFocusPoint), - throwsA(isA())); - }); - - test( - 'setFocusPoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 9; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = mockCameraInfo; - - camera.proxy = getProxyForExposureAndFocus(); - - // Verify current auto-exposure metering point is removed if previously set. - double focusPointX = 0.8; - double focusPointY = 0.1; - Point exposurePoint = Point(focusPointX, focusPointY); - final (MeteringPoint, int?) autoExposureMeteringPointInfo = ( - MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe - ); - List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf - ), - autoExposureMeteringPointInfo - ]; - - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - - await camera.setFocusPoint(cameraId, exposurePoint); - - VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - expect(capturedMeteringPointInfos.first, - equals(autoExposureMeteringPointInfo)); - expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); - expect( - capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); - - // Verify exposure point is set when no auto-exposure metering point - // previously set, but an auto-focus point metering point has been. - focusPointX = 0.2; - focusPointY = 0.9; - exposurePoint = Point(focusPointX, focusPointY); - meteringPointInfos = <(MeteringPoint, int?)>[autoExposureMeteringPointInfo]; - - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - - await camera.setFocusPoint(cameraId, exposurePoint); - - verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - capturedAction = verificationResult.captured.single as FocusMeteringAction; - capturedMeteringPointInfos = capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - expect(capturedMeteringPointInfos.first, - equals(autoExposureMeteringPointInfo)); - expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); - expect( - capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); - }); - - test( - 'setFocusPoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 19; - final MockCameraControl mockCameraControl = MockCameraControl(); - const double focusPointX = 0.8; - const double focusPointY = 0.1; - const Point exposurePoint = Point(focusPointX, focusPointY); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - camera.currentFocusMeteringAction = null; - - camera.proxy = getProxyForExposureAndFocus(); - - await camera.setFocusPoint(cameraId, exposurePoint); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAf)); - }); - - test('setFocusPoint disables auto-cancel for focus and metering as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 2; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point exposurePoint = Point(0.1, 0.2); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Test not disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.auto); - clearInteractions(mockCameraControl); - - await camera.setFocusPoint(cameraId, exposurePoint); - VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); - - clearInteractions(mockCameraControl); - - // Test disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - await camera.setFocusPoint(cameraId, exposurePoint); - verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); - }); - - test( - 'setFocusMode does nothing if setting auto-focus mode and is already using auto-focus mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 4; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set locked focus mode and then try to re-set it. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - await camera.setFocusMode(cameraId, FocusMode.locked); - verifyNoMoreInteractions(mockCameraControl); - }); - - test( - 'setFocusMode does nothing if setting locked focus mode and is already using locked focus mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 4; - final MockCameraControl mockCameraControl = MockCameraControl(); - - // Camera uses auto-focus by default, so try setting auto mode again. - await camera.setFocusMode(cameraId, FocusMode.auto); - - verifyNoMoreInteractions(mockCameraControl); - }); - - test( - 'setFocusMode removes default auto-focus point if previously set and setting auto-focus mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 5; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double exposurePointX = 0.2; - const double exposurePointY = 0.7; - - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; - - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set exposure points. - await camera.setExposurePoint( - cameraId, const Point(exposurePointX, exposurePointY)); - - // Lock focus default focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); - - clearInteractions(mockCameraControl); - - // Test removal of default focus point. - await camera.setFocusMode(cameraId, FocusMode.auto); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); - - // We expect only the previously set exposure point to be re-set. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); - expect(capturedMeteringPointInfos.first.$1.size, isNull); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAe)); - }); - - test( - 'setFocusMode cancels focus and metering if only focus point previously set is a focus point', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 5; - final MockCameraControl mockCameraControl = MockCameraControl(); - final FocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; - - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Lock focus default focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); - - // Test removal of default focus point. - await camera.setFocusMode(cameraId, FocusMode.auto); - - verify(mockCameraControl.cancelFocusAndMetering()); - }); - - test( - 'setFocusMode re-focuses on previously set auto-focus point with auto-canceled enabled if setting auto-focus mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 6; - final MockCameraControl mockCameraControl = MockCameraControl(); - final FocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double focusPointX = 0.1; - const double focusPointY = 0.2; - - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; - - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Lock a focus point. - await camera.setFocusPoint( - cameraId, const Point(focusPointX, focusPointY)); - await camera.setFocusMode(cameraId, FocusMode.locked); - - clearInteractions(mockCameraControl); - - // Test re-focusing on previously set auto-focus point with auto-cancel enabled. - await camera.setFocusMode(cameraId, FocusMode.auto); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); - expect(capturedMeteringPointInfos.first.$1.size, isNull); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAf)); - }); - - test( - 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 7; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double focusPointX = 0.88; - const double focusPointY = 0.33; - - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; - - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Set a focus point. - await camera.setFocusPoint( - cameraId, const Point(focusPointX, focusPointY)); - clearInteractions(mockCameraControl); - - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); - - // We expect the set focus point to be locked. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); - expect(capturedMeteringPointInfos.first.$1.size, isNull); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAf)); - }); - - test( - 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point amongst others', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 8; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double focusPointX = 0.38; - const double focusPointY = 0.38; - const double exposurePointX = 0.54; - const double exposurePointY = 0.45; - - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; - - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Set focus and exposure points. - await camera.setFocusPoint( - cameraId, const Point(focusPointX, focusPointY)); - await camera.setExposurePoint( - cameraId, const Point(exposurePointX, exposurePointY)); - clearInteractions(mockCameraControl); - - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); - - // We expect two MeteringPoints, the set focus point and the set exposure - // point. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - - final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAf) - .toList(); - expect(focusPoints.length, equals(1)); - expect(focusPoints.first.$1.x, equals(focusPointX)); - expect(focusPoints.first.$1.y, equals(focusPointY)); - expect(focusPoints.first.$1.size, isNull); - - final List<(MeteringPoint, int?)> exposurePoints = - capturedMeteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAe) - .toList(); - expect(exposurePoints.length, equals(1)); - expect(exposurePoints.first.$1.x, equals(exposurePointX)); - expect(exposurePoints.first.$1.y, equals(exposurePointY)); - expect(exposurePoints.first.$1.size, isNull); - }); - - test( - 'setFocusMode starts expected focus and metering action if setting locked focus mode and current focus and metering action does not contain an auto-focus point', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 9; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double exposurePointX = 0.8; - const double exposurePointY = 0.3; - const double defaultFocusPointX = 0.5; - const double defaultFocusPointY = 0.5; - const double defaultFocusPointSize = 1; - - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; - - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Set an exposure point (creates a current focus and metering action - // without a focus point). - await camera.setExposurePoint( - cameraId, const Point(exposurePointX, exposurePointY)); - clearInteractions(mockCameraControl); - - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); - - // We expect two MeteringPoints, the default focus point and the set - //exposure point. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - - final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAf) - .toList(); - expect(focusPoints.length, equals(1)); - expect(focusPoints.first.$1.x, equals(defaultFocusPointX)); - expect(focusPoints.first.$1.y, equals(defaultFocusPointY)); - expect(focusPoints.first.$1.size, equals(defaultFocusPointSize)); - - final List<(MeteringPoint, int?)> exposurePoints = - capturedMeteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAe) - .toList(); - expect(exposurePoints.length, equals(1)); - expect(exposurePoints.first.$1.x, equals(exposurePointX)); - expect(exposurePoints.first.$1.y, equals(exposurePointY)); - expect(exposurePoints.first.$1.size, isNull); - }); - - test( - 'setFocusMode starts expected focus and metering action if there is no current focus and metering action', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 10; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double defaultFocusPointX = 0.5; - const double defaultFocusPointY = 0.5; - const double defaultFocusPointSize = 1; - - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; - - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); - - // We expect only the default focus point to be set. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(defaultFocusPointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(defaultFocusPointY)); - expect(capturedMeteringPointInfos.first.$1.size, - equals(defaultFocusPointSize)); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAf)); - }); - - test( - 'setFocusMode re-sets exposure mode if setting locked focus mode while using auto exposure mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 11; - final MockCameraControl mockCameraControl = MockCameraControl(); - final FocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; - - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set auto exposure mode. - await camera.setExposureMode(cameraId, ExposureMode.auto); - clearInteractions(mockCamera2CameraControl); - - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); - - final VerificationResult verificationResult = - verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); - final CaptureRequestOptions capturedCaptureRequestOptions = - verificationResult.captured.single as CaptureRequestOptions; - final List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = - capturedCaptureRequestOptions.requestedOptions; - expect(requestedOptions.length, equals(1)); - expect(requestedOptions.first.$1, - equals(CaptureRequestKeySupportedType.controlAeLock)); - expect(requestedOptions.first.$2, equals(false)); - }); - - test( - 'setFocusPoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 22; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point focusPoint = Point(0.21, 0.21); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action successful to set locked focus - // mode. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set exposure point to later mock failed call to set an exposure point ( - // otherwise, focus and metering will be canceled altogether, which is - //considered a successful call). - await camera.setExposurePoint(cameraId, const Point(0.3, 0.4)); - - // Set locked focus mode so we can set auto mode (cannot set auto mode - // directly since it is the default). - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - // Make setting focus and metering action fail to test that auto-cancel is - // still disabled. - reset(mockFocusMeteringResult); - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(false)); - - // Test disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.auto); - clearInteractions(mockCameraControl); - - await camera.setFocusPoint(cameraId, focusPoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); - }); - - test( - 'setExposurePoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 342; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point exposurePoint = Point(0.23, 0.32); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action successful to set locked focus - // mode. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set exposure point to later mock failed call to set an exposure point ( - // otherwise, focus and metering will be canceled altogether, which is - //considered a successful call). - await camera.setExposurePoint(cameraId, const Point(0.4, 0.3)); - - // Set locked focus mode so we can set auto mode (cannot set auto mode - // directly since it is the default). - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - // Make setting focus and metering action fail to test that auto-cancel is - // still disabled. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(false)); - - // Test disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.auto); - clearInteractions(mockCameraControl); - - await camera.setExposurePoint(cameraId, exposurePoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); - }); - - test( - 'setFocusPoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 232; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point focusPoint = Point(0.221, 0.211); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action fail to test auto-cancel is not - // disabled. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(false)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set exposure point to later mock failed call to set an exposure point. - await camera.setExposurePoint(cameraId, const Point(0.43, 0.34)); - - // Test failing to set locked focus mode. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - await camera.setFocusPoint(cameraId, focusPoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); - }); - - test( - 'setExposurePoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 323; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point exposurePoint = Point(0.223, 0.332); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action fail to test auto-cancel is not - // disabled. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(false)); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set exposure point to later mock failed call to set an exposure point. - await camera.setExposurePoint(cameraId, const Point(0.5, 0.2)); - - // Test failing to set locked focus mode. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - await camera.setExposurePoint(cameraId, exposurePoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); - }); - - test( - 'onStreamedFrameAvailable binds ImageAnalysis use case when not already bound', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 22; - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - - // Set directly for test versus calling createCamera. - camera.imageAnalysis = mockImageAnalysis; - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create a detached analyzer for testing purposes. - camera.proxy = CameraXProxy( - createAnalyzer: (_) => MockAnalyzer(), - createCameraStateObserver: (_) => MockObserver(), - ); - - when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - .thenAnswer((_) async => false); - when(mockProcessCameraProvider.bindToLifecycle( - any, [mockImageAnalysis])).thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - - final StreamSubscription imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - verify(mockProcessCameraProvider - .bindToLifecycle(camera.cameraSelector, [mockImageAnalysis])); - - await imageStreamSubscription.cancel(); - }); - - test( - 'startVideoCapturing unbinds ImageAnalysis use case when camera device is not at least level 3, no image streaming callback is specified, and preview is not paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); - - const int cameraId = 7; - const String outputPath = '/temp/REC123.temp'; - - // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevelFull); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - - verify( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); - - test( - 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback not specified, camera device is level 3, and preview is not paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); - - const int cameraId = 77; - const String outputPath = '/temp/REC123.temp'; - - // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - - verify( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); - - test( - 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback is specified, camera device is not at least level 3, and preview is not paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); - - const int cameraId = 87; - const String outputPath = '/temp/REC123.temp'; - - // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - (_) async => CameraMetadata.infoSupportedHardwareLevelExternal); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - await camera.startVideoCapturing(VideoCaptureOptions(cameraId, - streamCallback: (CameraImageData image) {})); - verify( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); - - test( - 'startVideoCapturing unbinds ImageCapture use case when image streaming callback is specified, camera device is at least level 3, and preview is not paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - camera.imageCapture = MockImageCapture(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze), - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); - - const int cameraId = 107; - const String outputPath = '/temp/REC123.temp'; - - // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageCapture!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - await camera.startVideoCapturing(VideoCaptureOptions(cameraId, - streamCallback: (CameraImageData image) {})); - verify( - camera.processCameraProvider!.unbind([camera.imageCapture!])); - }); - - test( - 'startVideoCapturing does not unbind ImageCapture or ImageAnalysis use cases when preview is paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - camera.imageCapture = MockImageCapture(); - camera.preview = MockPreview(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); - - const int cameraId = 97; - const String outputPath = '/temp/REC123.temp'; - - // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - - await camera.pausePreview(cameraId); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - - verifyNever( - camera.processCameraProvider!.unbind([camera.imageCapture!])); - verifyNever( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); - - test( - 'startVideoCapturing unbinds ImageCapture and ImageAnalysis use cases when running on a legacy hardware device', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - camera.imageCapture = MockImageCapture(); - camera.preview = MockPreview(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); - - const int cameraId = 44; - const String outputPath = '/temp/REC123.temp'; - - // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageCapture!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - (_) async => CameraMetadata.infoSupportedHardwareLevelLegacy); - - // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); - - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - - verify( - camera.processCameraProvider!.unbind([camera.imageCapture!])); - verify( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); - - test( - 'prepareForVideoRecording does not make any calls involving starting video recording', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.camera = MockCamera(); - - await camera.prepareForVideoRecording(); - verifyNoMoreInteractions(camera.processCameraProvider); - verifyNoMoreInteractions(camera.recorder); - verifyNoMoreInteractions(camera.videoCapture); - verifyNoMoreInteractions(camera.camera); - }); + return mockProxy; } diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index 316b1275969..dca9a8a50a3 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -1,56 +1,19 @@ -// Mocks generated by Mockito 5.4.4 from annotations +// Mocks generated by Mockito 5.4.5 from annotations // in camera_android_camerax/test/android_camera_camerax_test.dart. // Do not manually edit this file. // ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i17; -import 'dart:typed_data' as _i34; -import 'dart:ui' as _i14; - -import 'package:camera_android_camerax/src/analyzer.dart' as _i16; -import 'package:camera_android_camerax/src/aspect_ratio_strategy.dart' as _i19; -import 'package:camera_android_camerax/src/camera.dart' as _i12; -import 'package:camera_android_camerax/src/camera2_camera_control.dart' as _i24; -import 'package:camera_android_camerax/src/camera2_camera_info.dart' as _i26; -import 'package:camera_android_camerax/src/camera_control.dart' as _i6; -import 'package:camera_android_camerax/src/camera_info.dart' as _i5; -import 'package:camera_android_camerax/src/camera_selector.dart' as _i28; -import 'package:camera_android_camerax/src/camera_state.dart' as _i20; -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i10; -import 'package:camera_android_camerax/src/capture_request_options.dart' - as _i25; -import 'package:camera_android_camerax/src/exposure_state.dart' as _i8; -import 'package:camera_android_camerax/src/fallback_strategy.dart' as _i29; -import 'package:camera_android_camerax/src/focus_metering_action.dart' as _i23; -import 'package:camera_android_camerax/src/focus_metering_result.dart' as _i22; -import 'package:camera_android_camerax/src/image_analysis.dart' as _i30; -import 'package:camera_android_camerax/src/image_capture.dart' as _i31; -import 'package:camera_android_camerax/src/image_proxy.dart' as _i18; -import 'package:camera_android_camerax/src/live_data.dart' as _i7; -import 'package:camera_android_camerax/src/observer.dart' as _i33; -import 'package:camera_android_camerax/src/pending_recording.dart' as _i13; -import 'package:camera_android_camerax/src/plane_proxy.dart' as _i32; -import 'package:camera_android_camerax/src/preview.dart' as _i35; -import 'package:camera_android_camerax/src/process_camera_provider.dart' - as _i36; -import 'package:camera_android_camerax/src/quality_selector.dart' as _i38; -import 'package:camera_android_camerax/src/recorder.dart' as _i15; -import 'package:camera_android_camerax/src/recording.dart' as _i11; -import 'package:camera_android_camerax/src/resolution_filter.dart' as _i39; -import 'package:camera_android_camerax/src/resolution_selector.dart' as _i40; -import 'package:camera_android_camerax/src/resolution_strategy.dart' as _i41; -import 'package:camera_android_camerax/src/use_case.dart' as _i37; -import 'package:camera_android_camerax/src/video_capture.dart' as _i43; -import 'package:camera_android_camerax/src/zoom_state.dart' as _i21; +import 'dart:async' as _i5; +import 'dart:typed_data' as _i9; + +import 'package:camera_android_camerax/src/camerax_library.dart' as _i3; +import 'package:camera_android_camerax/src/camerax_library2.g.dart' as _i2; +import 'package:camera_android_camerax/src/camerax_proxy2.dart' as _i7; import 'package:camera_platform_interface/camera_platform_interface.dart' - as _i9; -import 'package:flutter/foundation.dart' as _i4; -import 'package:flutter/services.dart' as _i3; -import 'package:flutter/widgets.dart' as _i2; + as _i4; +import 'package:flutter/services.dart' as _i8; import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i27; - -import 'test_camerax_library.g.dart' as _i42; +import 'package:mockito/src/dummies.dart' as _i6; // ignore_for_file: type=lint // ignore_for_file: avoid_redundant_argument_values @@ -60,60 +23,76 @@ import 'test_camerax_library.g.dart' as _i42; // ignore_for_file: deprecated_member_use_from_same_package // ignore_for_file: implementation_imports // ignore_for_file: invalid_use_of_visible_for_testing_member +// ignore_for_file: must_be_immutable // ignore_for_file: prefer_const_constructors // ignore_for_file: unnecessary_parenthesis // ignore_for_file: camel_case_types // ignore_for_file: subtype_of_sealed_class -class _FakeWidget_0 extends _i1.SmartFake implements _i2.Widget { - _FakeWidget_0( +class _FakePigeonInstanceManager_0 extends _i1.SmartFake + implements _i2.PigeonInstanceManager { + _FakePigeonInstanceManager_0( Object parent, Invocation parentInvocation, ) : super( parent, parentInvocation, ); +} - @override - String toString({_i3.DiagnosticLevel? minLevel = _i3.DiagnosticLevel.info}) => - super.toString(); +class _FakeAnalyzer_1 extends _i1.SmartFake implements _i2.Analyzer { + _FakeAnalyzer_1( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); } -class _FakeInheritedWidget_1 extends _i1.SmartFake - implements _i2.InheritedWidget { - _FakeInheritedWidget_1( +class _FakeAspectRatioStrategy_2 extends _i1.SmartFake + implements _i2.AspectRatioStrategy { + _FakeAspectRatioStrategy_2( Object parent, Invocation parentInvocation, ) : super( parent, parentInvocation, ); +} - @override - String toString({_i3.DiagnosticLevel? minLevel = _i3.DiagnosticLevel.info}) => - super.toString(); +class _FakeCameraControl_3 extends _i1.SmartFake implements _i2.CameraControl { + _FakeCameraControl_3( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); } -class _FakeDiagnosticsNode_2 extends _i1.SmartFake - implements _i4.DiagnosticsNode { - _FakeDiagnosticsNode_2( +class _FakeCameraInfo_4 extends _i1.SmartFake implements _i2.CameraInfo { + _FakeCameraInfo_4( Object parent, Invocation parentInvocation, ) : super( parent, parentInvocation, ); +} - @override - String toString({ - _i4.TextTreeConfiguration? parentConfiguration, - _i3.DiagnosticLevel? minLevel = _i3.DiagnosticLevel.info, - }) => - super.toString(); +class _FakeCamera_5 extends _i1.SmartFake implements _i2.Camera { + _FakeCamera_5( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); } -class _FakeCameraInfo_3 extends _i1.SmartFake implements _i5.CameraInfo { - _FakeCameraInfo_3( +class _FakeExposureState_6 extends _i1.SmartFake implements _i2.ExposureState { + _FakeExposureState_6( Object parent, Invocation parentInvocation, ) : super( @@ -122,8 +101,8 @@ class _FakeCameraInfo_3 extends _i1.SmartFake implements _i5.CameraInfo { ); } -class _FakeCameraControl_4 extends _i1.SmartFake implements _i6.CameraControl { - _FakeCameraControl_4( +class _FakeLiveData_7 extends _i1.SmartFake implements _i3.LiveData { + _FakeLiveData_7( Object parent, Invocation parentInvocation, ) : super( @@ -132,9 +111,8 @@ class _FakeCameraControl_4 extends _i1.SmartFake implements _i6.CameraControl { ); } -class _FakeLiveData_5 extends _i1.SmartFake - implements _i7.LiveData { - _FakeLiveData_5( +class _FakeCameraInfo_8 extends _i1.SmartFake implements _i3.CameraInfo { + _FakeCameraInfo_8( Object parent, Invocation parentInvocation, ) : super( @@ -143,8 +121,9 @@ class _FakeLiveData_5 extends _i1.SmartFake ); } -class _FakeExposureState_6 extends _i1.SmartFake implements _i8.ExposureState { - _FakeExposureState_6( +class _FakeCamera2CameraControl_9 extends _i1.SmartFake + implements _i2.Camera2CameraControl { + _FakeCamera2CameraControl_9( Object parent, Invocation parentInvocation, ) : super( @@ -153,9 +132,9 @@ class _FakeExposureState_6 extends _i1.SmartFake implements _i8.ExposureState { ); } -class _FakeCameraImageFormat_7 extends _i1.SmartFake - implements _i9.CameraImageFormat { - _FakeCameraImageFormat_7( +class _FakeCamera2CameraInfo_10 extends _i1.SmartFake + implements _i2.Camera2CameraInfo { + _FakeCamera2CameraInfo_10( Object parent, Invocation parentInvocation, ) : super( @@ -164,9 +143,9 @@ class _FakeCameraImageFormat_7 extends _i1.SmartFake ); } -class _FakeExposureCompensationRange_8 extends _i1.SmartFake - implements _i10.ExposureCompensationRange { - _FakeExposureCompensationRange_8( +class _FakeCameraImageFormat_11 extends _i1.SmartFake + implements _i4.CameraImageFormat { + _FakeCameraImageFormat_11( Object parent, Invocation parentInvocation, ) : super( @@ -175,8 +154,9 @@ class _FakeExposureCompensationRange_8 extends _i1.SmartFake ); } -class _FakeRecording_9 extends _i1.SmartFake implements _i11.Recording { - _FakeRecording_9( +class _FakeCameraSelector_12 extends _i1.SmartFake + implements _i2.CameraSelector { + _FakeCameraSelector_12( Object parent, Invocation parentInvocation, ) : super( @@ -185,9 +165,8 @@ class _FakeRecording_9 extends _i1.SmartFake implements _i11.Recording { ); } -class _FakeResolutionInfo_10 extends _i1.SmartFake - implements _i10.ResolutionInfo { - _FakeResolutionInfo_10( +class _FakeCameraSize_13 extends _i1.SmartFake implements _i2.CameraSize { + _FakeCameraSize_13( Object parent, Invocation parentInvocation, ) : super( @@ -196,8 +175,9 @@ class _FakeResolutionInfo_10 extends _i1.SmartFake ); } -class _FakeCamera_11 extends _i1.SmartFake implements _i12.Camera { - _FakeCamera_11( +class _FakeCameraIntegerRange_14 extends _i1.SmartFake + implements _i2.CameraIntegerRange { + _FakeCameraIntegerRange_14( Object parent, Invocation parentInvocation, ) : super( @@ -206,9 +186,8 @@ class _FakeCamera_11 extends _i1.SmartFake implements _i12.Camera { ); } -class _FakePendingRecording_12 extends _i1.SmartFake - implements _i13.PendingRecording { - _FakePendingRecording_12( +class _FakeObserver_15 extends _i1.SmartFake implements _i3.Observer { + _FakeObserver_15( Object parent, Invocation parentInvocation, ) : super( @@ -217,8 +196,9 @@ class _FakePendingRecording_12 extends _i1.SmartFake ); } -class _FakeSize_13 extends _i1.SmartFake implements _i14.Size { - _FakeSize_13( +class _FakeSystemServicesManager_16 extends _i1.SmartFake + implements _i2.SystemServicesManager { + _FakeSystemServicesManager_16( Object parent, Invocation parentInvocation, ) : super( @@ -227,8 +207,9 @@ class _FakeSize_13 extends _i1.SmartFake implements _i14.Size { ); } -class _FakeRecorder_14 extends _i1.SmartFake implements _i15.Recorder { - _FakeRecorder_14( +class _FakeDeviceOrientationManager_17 extends _i1.SmartFake + implements _i2.DeviceOrientationManager { + _FakeDeviceOrientationManager_17( Object parent, Invocation parentInvocation, ) : super( @@ -237,238 +218,397 @@ class _FakeRecorder_14 extends _i1.SmartFake implements _i15.Recorder { ); } -/// A class which mocks [Analyzer]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockAnalyzer extends _i1.Mock implements _i16.Analyzer { - @override - _i17.Future Function(_i18.ImageProxy) get analyze => - (super.noSuchMethod( - Invocation.getter(#analyze), - returnValue: (_i18.ImageProxy imageProxy) => _i17.Future.value(), - returnValueForMissingStub: (_i18.ImageProxy imageProxy) => - _i17.Future.value(), - ) as _i17.Future Function(_i18.ImageProxy)); +class _FakePreview_18 extends _i1.SmartFake implements _i2.Preview { + _FakePreview_18( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); } -/// A class which mocks [AspectRatioStrategy]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockAspectRatioStrategy extends _i1.Mock - implements _i19.AspectRatioStrategy { - @override - int get preferredAspectRatio => (super.noSuchMethod( - Invocation.getter(#preferredAspectRatio), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); +class _FakeVideoCapture_19 extends _i1.SmartFake implements _i2.VideoCapture { + _FakeVideoCapture_19( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} - @override - int get fallbackRule => (super.noSuchMethod( - Invocation.getter(#fallbackRule), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); +class _FakeRecorder_20 extends _i1.SmartFake implements _i2.Recorder { + _FakeRecorder_20( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeVideoRecordEventListener_21 extends _i1.SmartFake + implements _i2.VideoRecordEventListener { + _FakeVideoRecordEventListener_21( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); } -/// A class which mocks [BuildContext]. +class _FakeImageCapture_22 extends _i1.SmartFake implements _i2.ImageCapture { + _FakeImageCapture_22( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeResolutionStrategy_23 extends _i1.SmartFake + implements _i2.ResolutionStrategy { + _FakeResolutionStrategy_23( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeResolutionSelector_24 extends _i1.SmartFake + implements _i2.ResolutionSelector { + _FakeResolutionSelector_24( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeImageAnalysis_25 extends _i1.SmartFake implements _i2.ImageAnalysis { + _FakeImageAnalysis_25( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeQualitySelector_26 extends _i1.SmartFake + implements _i2.QualitySelector { + _FakeQualitySelector_26( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeFallbackStrategy_27 extends _i1.SmartFake + implements _i2.FallbackStrategy { + _FakeFallbackStrategy_27( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeFocusMeteringActionBuilder_28 extends _i1.SmartFake + implements _i2.FocusMeteringActionBuilder { + _FakeFocusMeteringActionBuilder_28( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeCaptureRequestOptions_29 extends _i1.SmartFake + implements _i2.CaptureRequestOptions { + _FakeCaptureRequestOptions_29( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeResolutionFilter_30 extends _i1.SmartFake + implements _i2.ResolutionFilter { + _FakeResolutionFilter_30( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeDisplayOrientedMeteringPointFactory_31 extends _i1.SmartFake + implements _i2.DisplayOrientedMeteringPointFactory { + _FakeDisplayOrientedMeteringPointFactory_31( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeProcessCameraProvider_32 extends _i1.SmartFake + implements _i2.ProcessCameraProvider { + _FakeProcessCameraProvider_32( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeCaptureRequestKey_33 extends _i1.SmartFake + implements _i2.CaptureRequestKey { + _FakeCaptureRequestKey_33( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeCameraCharacteristicsKey_34 extends _i1.SmartFake + implements _i2.CameraCharacteristicsKey { + _FakeCameraCharacteristicsKey_34( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeFocusMeteringResult_35 extends _i1.SmartFake + implements _i2.FocusMeteringResult { + _FakeFocusMeteringResult_35( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeImageProxy_36 extends _i1.SmartFake implements _i2.ImageProxy { + _FakeImageProxy_36( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeRecording_37 extends _i1.SmartFake implements _i2.Recording { + _FakeRecording_37( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakePendingRecording_38 extends _i1.SmartFake + implements _i2.PendingRecording { + _FakePendingRecording_38( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakePlaneProxy_39 extends _i1.SmartFake implements _i2.PlaneProxy { + _FakePlaneProxy_39( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeVideoOutput_40 extends _i1.SmartFake implements _i2.VideoOutput { + _FakeVideoOutput_40( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeZoomState_41 extends _i1.SmartFake implements _i2.ZoomState { + _FakeZoomState_41( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +/// A class which mocks [Analyzer]. /// /// See the documentation for Mockito's code generation for more information. -class MockBuildContext extends _i1.Mock implements _i2.BuildContext { +class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { @override - _i2.Widget get widget => (super.noSuchMethod( - Invocation.getter(#widget), - returnValue: _FakeWidget_0( + void Function( + _i2.Analyzer, + _i2.ImageProxy, + ) get analyze => (super.noSuchMethod( + Invocation.getter(#analyze), + returnValue: ( + _i2.Analyzer pigeon_instance, + _i2.ImageProxy image, + ) {}, + returnValueForMissingStub: ( + _i2.Analyzer pigeon_instance, + _i2.ImageProxy image, + ) {}, + ) as void Function( + _i2.Analyzer, + _i2.ImageProxy, + )); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( this, - Invocation.getter(#widget), + Invocation.getter(#pigeon_instanceManager), ), - returnValueForMissingStub: _FakeWidget_0( + returnValueForMissingStub: _FakePigeonInstanceManager_0( this, - Invocation.getter(#widget), + Invocation.getter(#pigeon_instanceManager), ), - ) as _i2.Widget); - - @override - bool get mounted => (super.noSuchMethod( - Invocation.getter(#mounted), - returnValue: false, - returnValueForMissingStub: false, - ) as bool); - - @override - bool get debugDoingBuild => (super.noSuchMethod( - Invocation.getter(#debugDoingBuild), - returnValue: false, - returnValueForMissingStub: false, - ) as bool); + ) as _i2.PigeonInstanceManager); @override - _i2.InheritedWidget dependOnInheritedElement( - _i2.InheritedElement? ancestor, { - Object? aspect, - }) => - (super.noSuchMethod( + _i2.Analyzer pigeon_copy() => (super.noSuchMethod( Invocation.method( - #dependOnInheritedElement, - [ancestor], - {#aspect: aspect}, + #pigeon_copy, + [], ), - returnValue: _FakeInheritedWidget_1( + returnValue: _FakeAnalyzer_1( this, Invocation.method( - #dependOnInheritedElement, - [ancestor], - {#aspect: aspect}, + #pigeon_copy, + [], ), ), - returnValueForMissingStub: _FakeInheritedWidget_1( + returnValueForMissingStub: _FakeAnalyzer_1( this, Invocation.method( - #dependOnInheritedElement, - [ancestor], - {#aspect: aspect}, + #pigeon_copy, + [], ), ), - ) as _i2.InheritedWidget); - - @override - void visitAncestorElements(_i2.ConditionalElementVisitor? visitor) => - super.noSuchMethod( - Invocation.method( - #visitAncestorElements, - [visitor], - ), - returnValueForMissingStub: null, - ); + ) as _i2.Analyzer); +} +/// A class which mocks [AspectRatioStrategy]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockAspectRatioStrategy extends _i1.Mock + implements _i2.AspectRatioStrategy { @override - void visitChildElements(_i2.ElementVisitor? visitor) => super.noSuchMethod( - Invocation.method( - #visitChildElements, - [visitor], + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), ), - returnValueForMissingStub: null, - ); - - @override - void dispatchNotification(_i2.Notification? notification) => - super.noSuchMethod( - Invocation.method( - #dispatchNotification, - [notification], + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), ), - returnValueForMissingStub: null, - ); + ) as _i2.PigeonInstanceManager); @override - _i4.DiagnosticsNode describeElement( - String? name, { - _i4.DiagnosticsTreeStyle? style = _i4.DiagnosticsTreeStyle.errorProperty, - }) => - (super.noSuchMethod( + _i2.AspectRatioStrategy pigeon_copy() => (super.noSuchMethod( Invocation.method( - #describeElement, - [name], - {#style: style}, + #pigeon_copy, + [], ), - returnValue: _FakeDiagnosticsNode_2( + returnValue: _FakeAspectRatioStrategy_2( this, Invocation.method( - #describeElement, - [name], - {#style: style}, + #pigeon_copy, + [], ), ), - returnValueForMissingStub: _FakeDiagnosticsNode_2( + returnValueForMissingStub: _FakeAspectRatioStrategy_2( this, Invocation.method( - #describeElement, - [name], - {#style: style}, + #pigeon_copy, + [], ), ), - ) as _i4.DiagnosticsNode); + ) as _i2.AspectRatioStrategy); +} +/// A class which mocks [Camera]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockCamera extends _i1.Mock implements _i2.Camera { @override - _i4.DiagnosticsNode describeWidget( - String? name, { - _i4.DiagnosticsTreeStyle? style = _i4.DiagnosticsTreeStyle.errorProperty, - }) => - (super.noSuchMethod( - Invocation.method( - #describeWidget, - [name], - {#style: style}, - ), - returnValue: _FakeDiagnosticsNode_2( + _i2.CameraControl get cameraControl => (super.noSuchMethod( + Invocation.getter(#cameraControl), + returnValue: _FakeCameraControl_3( this, - Invocation.method( - #describeWidget, - [name], - {#style: style}, - ), + Invocation.getter(#cameraControl), ), - returnValueForMissingStub: _FakeDiagnosticsNode_2( + returnValueForMissingStub: _FakeCameraControl_3( this, - Invocation.method( - #describeWidget, - [name], - {#style: style}, - ), - ), - ) as _i4.DiagnosticsNode); - - @override - List<_i4.DiagnosticsNode> describeMissingAncestor( - {required Type? expectedAncestorType}) => - (super.noSuchMethod( - Invocation.method( - #describeMissingAncestor, - [], - {#expectedAncestorType: expectedAncestorType}, + Invocation.getter(#cameraControl), ), - returnValue: <_i4.DiagnosticsNode>[], - returnValueForMissingStub: <_i4.DiagnosticsNode>[], - ) as List<_i4.DiagnosticsNode>); + ) as _i2.CameraControl); @override - _i4.DiagnosticsNode describeOwnershipChain(String? name) => - (super.noSuchMethod( - Invocation.method( - #describeOwnershipChain, - [name], - ), - returnValue: _FakeDiagnosticsNode_2( + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( this, - Invocation.method( - #describeOwnershipChain, - [name], - ), + Invocation.getter(#pigeon_instanceManager), ), - returnValueForMissingStub: _FakeDiagnosticsNode_2( + returnValueForMissingStub: _FakePigeonInstanceManager_0( this, - Invocation.method( - #describeOwnershipChain, - [name], - ), + Invocation.getter(#pigeon_instanceManager), ), - ) as _i4.DiagnosticsNode); -} + ) as _i2.PigeonInstanceManager); -/// A class which mocks [Camera]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCamera extends _i1.Mock implements _i12.Camera { @override - _i17.Future<_i5.CameraInfo> getCameraInfo() => (super.noSuchMethod( + _i5.Future<_i2.CameraInfo> getCameraInfo() => (super.noSuchMethod( Invocation.method( #getCameraInfo, [], ), - returnValue: _i17.Future<_i5.CameraInfo>.value(_FakeCameraInfo_3( + returnValue: _i5.Future<_i2.CameraInfo>.value(_FakeCameraInfo_4( this, Invocation.method( #getCameraInfo, @@ -476,63 +616,84 @@ class MockCamera extends _i1.Mock implements _i12.Camera { ), )), returnValueForMissingStub: - _i17.Future<_i5.CameraInfo>.value(_FakeCameraInfo_3( + _i5.Future<_i2.CameraInfo>.value(_FakeCameraInfo_4( this, Invocation.method( #getCameraInfo, [], ), )), - ) as _i17.Future<_i5.CameraInfo>); + ) as _i5.Future<_i2.CameraInfo>); @override - _i17.Future<_i6.CameraControl> getCameraControl() => (super.noSuchMethod( + _i2.Camera pigeon_copy() => (super.noSuchMethod( Invocation.method( - #getCameraControl, + #pigeon_copy, [], ), - returnValue: _i17.Future<_i6.CameraControl>.value(_FakeCameraControl_4( + returnValue: _FakeCamera_5( this, Invocation.method( - #getCameraControl, + #pigeon_copy, [], ), - )), - returnValueForMissingStub: - _i17.Future<_i6.CameraControl>.value(_FakeCameraControl_4( + ), + returnValueForMissingStub: _FakeCamera_5( this, Invocation.method( - #getCameraControl, + #pigeon_copy, [], ), - )), - ) as _i17.Future<_i6.CameraControl>); + ), + ) as _i2.Camera); } /// A class which mocks [CameraInfo]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCameraInfo extends _i1.Mock implements _i5.CameraInfo { +class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { @override - _i17.Future getSensorRotationDegrees() => (super.noSuchMethod( - Invocation.method( - #getSensorRotationDegrees, - [], + int get sensorRotationDegrees => (super.noSuchMethod( + Invocation.getter(#sensorRotationDegrees), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.ExposureState get exposureState => (super.noSuchMethod( + Invocation.getter(#exposureState), + returnValue: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + ) as _i2.ExposureState); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), ), - returnValue: _i17.Future.value(0), - returnValueForMissingStub: _i17.Future.value(0), - ) as _i17.Future); + ) as _i2.PigeonInstanceManager); @override - _i17.Future<_i7.LiveData<_i20.CameraState>> getCameraState() => + _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => (super.noSuchMethod( Invocation.method( #getCameraState, [], ), - returnValue: _i17.Future<_i7.LiveData<_i20.CameraState>>.value( - _FakeLiveData_5<_i20.CameraState>( + returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( this, Invocation.method( #getCameraState, @@ -540,180 +701,234 @@ class MockCameraInfo extends _i1.Mock implements _i5.CameraInfo { ), )), returnValueForMissingStub: - _i17.Future<_i7.LiveData<_i20.CameraState>>.value( - _FakeLiveData_5<_i20.CameraState>( + _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( this, Invocation.method( #getCameraState, [], ), )), - ) as _i17.Future<_i7.LiveData<_i20.CameraState>>); + ) as _i5.Future<_i3.LiveData<_i2.CameraState>>); @override - _i17.Future<_i8.ExposureState> getExposureState() => (super.noSuchMethod( + _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => (super.noSuchMethod( Invocation.method( - #getExposureState, + #getZoomState, [], ), - returnValue: _i17.Future<_i8.ExposureState>.value(_FakeExposureState_6( + returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( this, Invocation.method( - #getExposureState, + #getZoomState, [], ), )), returnValueForMissingStub: - _i17.Future<_i8.ExposureState>.value(_FakeExposureState_6( + _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( this, Invocation.method( - #getExposureState, + #getZoomState, [], ), )), - ) as _i17.Future<_i8.ExposureState>); + ) as _i5.Future<_i3.LiveData<_i2.ZoomState>>); @override - _i17.Future<_i7.LiveData<_i21.ZoomState>> getZoomState() => - (super.noSuchMethod( + _i3.CameraInfo pigeon_copy() => (super.noSuchMethod( Invocation.method( - #getZoomState, + #pigeon_copy, [], ), - returnValue: _i17.Future<_i7.LiveData<_i21.ZoomState>>.value( - _FakeLiveData_5<_i21.ZoomState>( + returnValue: _FakeCameraInfo_8( this, Invocation.method( - #getZoomState, + #pigeon_copy, [], ), - )), - returnValueForMissingStub: - _i17.Future<_i7.LiveData<_i21.ZoomState>>.value( - _FakeLiveData_5<_i21.ZoomState>( + ), + returnValueForMissingStub: _FakeCameraInfo_8( this, Invocation.method( - #getZoomState, + #pigeon_copy, [], ), - )), - ) as _i17.Future<_i7.LiveData<_i21.ZoomState>>); + ), + ) as _i3.CameraInfo); } /// A class which mocks [CameraControl]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCameraControl extends _i1.Mock implements _i6.CameraControl { +class MockCameraControl extends _i1.Mock implements _i2.CameraControl { @override - _i17.Future enableTorch(bool? torch) => (super.noSuchMethod( + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future enableTorch(bool? torch) => (super.noSuchMethod( Invocation.method( #enableTorch, [torch], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future setZoomRatio(double? ratio) => (super.noSuchMethod( + _i5.Future setZoomRatio(double? ratio) => (super.noSuchMethod( Invocation.method( #setZoomRatio, [ratio], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future<_i22.FocusMeteringResult?> startFocusAndMetering( - _i23.FocusMeteringAction? action) => + _i5.Future<_i2.FocusMeteringResult?> startFocusAndMetering( + _i2.FocusMeteringAction? action) => (super.noSuchMethod( Invocation.method( #startFocusAndMetering, [action], ), - returnValue: _i17.Future<_i22.FocusMeteringResult?>.value(), - returnValueForMissingStub: - _i17.Future<_i22.FocusMeteringResult?>.value(), - ) as _i17.Future<_i22.FocusMeteringResult?>); + returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), + returnValueForMissingStub: _i5.Future<_i2.FocusMeteringResult?>.value(), + ) as _i5.Future<_i2.FocusMeteringResult?>); @override - _i17.Future cancelFocusAndMetering() => (super.noSuchMethod( + _i5.Future cancelFocusAndMetering() => (super.noSuchMethod( Invocation.method( #cancelFocusAndMetering, [], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future setExposureCompensationIndex(int? index) => + _i5.Future setExposureCompensationIndex(int? index) => (super.noSuchMethod( Invocation.method( #setExposureCompensationIndex, [index], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.CameraControl pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeCameraControl_3( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.CameraControl); } /// A class which mocks [Camera2CameraControl]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable class MockCamera2CameraControl extends _i1.Mock - implements _i24.Camera2CameraControl { + implements _i2.Camera2CameraControl { @override - _i6.CameraControl get cameraControl => (super.noSuchMethod( - Invocation.getter(#cameraControl), - returnValue: _FakeCameraControl_4( + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( this, - Invocation.getter(#cameraControl), + Invocation.getter(#pigeon_instanceManager), ), - returnValueForMissingStub: _FakeCameraControl_4( + returnValueForMissingStub: _FakePigeonInstanceManager_0( this, - Invocation.getter(#cameraControl), + Invocation.getter(#pigeon_instanceManager), ), - ) as _i6.CameraControl); + ) as _i2.PigeonInstanceManager); @override - _i17.Future addCaptureRequestOptions( - _i25.CaptureRequestOptions? captureRequestOptions) => + _i5.Future addCaptureRequestOptions( + _i2.CaptureRequestOptions? bundle) => (super.noSuchMethod( Invocation.method( #addCaptureRequestOptions, - [captureRequestOptions], + [bundle], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.Camera2CameraControl pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeCamera2CameraControl_9( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeCamera2CameraControl_9( + this, + Invocation.method( + #pigeon_copy, + [], + ), ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + ) as _i2.Camera2CameraControl); } /// A class which mocks [Camera2CameraInfo]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCamera2CameraInfo extends _i1.Mock implements _i26.Camera2CameraInfo { +class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { @override - _i17.Future getSupportedHardwareLevel() => (super.noSuchMethod( - Invocation.method( - #getSupportedHardwareLevel, - [], + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), ), - returnValue: _i17.Future.value(0), - returnValueForMissingStub: _i17.Future.value(0), - ) as _i17.Future); + ) as _i2.PigeonInstanceManager); @override - _i17.Future getCameraId() => (super.noSuchMethod( + _i5.Future getCameraId() => (super.noSuchMethod( Invocation.method( #getCameraId, [], ), - returnValue: _i17.Future.value(_i27.dummyValue( + returnValue: _i5.Future.value(_i6.dummyValue( this, Invocation.method( #getCameraId, @@ -721,43 +936,67 @@ class MockCamera2CameraInfo extends _i1.Mock implements _i26.Camera2CameraInfo { ), )), returnValueForMissingStub: - _i17.Future.value(_i27.dummyValue( + _i5.Future.value(_i6.dummyValue( this, Invocation.method( #getCameraId, [], ), )), - ) as _i17.Future); + ) as _i5.Future); + + @override + _i5.Future getCameraCharacteristic( + _i2.CameraCharacteristicsKey? key) => + (super.noSuchMethod( + Invocation.method( + #getCameraCharacteristic, + [key], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future getSensorOrientation() => (super.noSuchMethod( + _i2.Camera2CameraInfo pigeon_copy() => (super.noSuchMethod( Invocation.method( - #getSensorOrientation, + #pigeon_copy, [], ), - returnValue: _i17.Future.value(0), - returnValueForMissingStub: _i17.Future.value(0), - ) as _i17.Future); + returnValue: _FakeCamera2CameraInfo_10( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeCamera2CameraInfo_10( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.Camera2CameraInfo); } /// A class which mocks [CameraImageData]. /// /// See the documentation for Mockito's code generation for more information. // ignore: must_be_immutable -class MockCameraImageData extends _i1.Mock implements _i9.CameraImageData { +class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { @override - _i9.CameraImageFormat get format => (super.noSuchMethod( + _i4.CameraImageFormat get format => (super.noSuchMethod( Invocation.getter(#format), - returnValue: _FakeCameraImageFormat_7( + returnValue: _FakeCameraImageFormat_11( this, Invocation.getter(#format), ), - returnValueForMissingStub: _FakeCameraImageFormat_7( + returnValueForMissingStub: _FakeCameraImageFormat_11( this, Invocation.getter(#format), ), - ) as _i9.CameraImageFormat); + ) as _i4.CameraImageFormat); @override int get height => (super.noSuchMethod( @@ -774,50 +1013,1305 @@ class MockCameraImageData extends _i1.Mock implements _i9.CameraImageData { ) as int); @override - List<_i9.CameraImagePlane> get planes => (super.noSuchMethod( + List<_i4.CameraImagePlane> get planes => (super.noSuchMethod( Invocation.getter(#planes), - returnValue: <_i9.CameraImagePlane>[], - returnValueForMissingStub: <_i9.CameraImagePlane>[], - ) as List<_i9.CameraImagePlane>); + returnValue: <_i4.CameraImagePlane>[], + returnValueForMissingStub: <_i4.CameraImagePlane>[], + ) as List<_i4.CameraImagePlane>); } /// A class which mocks [CameraSelector]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCameraSelector extends _i1.Mock implements _i28.CameraSelector { +class MockCameraSelector extends _i1.Mock implements _i2.CameraSelector { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + @override - _i17.Future> filter(List<_i5.CameraInfo>? cameraInfos) => + _i5.Future> filter(List<_i2.CameraInfo>? cameraInfos) => (super.noSuchMethod( Invocation.method( #filter, [cameraInfos], ), - returnValue: - _i17.Future>.value(<_i5.CameraInfo>[]), + returnValue: _i5.Future>.value(<_i2.CameraInfo>[]), returnValueForMissingStub: - _i17.Future>.value(<_i5.CameraInfo>[]), - ) as _i17.Future>); + _i5.Future>.value(<_i2.CameraInfo>[]), + ) as _i5.Future>); + + @override + _i2.CameraSelector pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeCameraSelector_12( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeCameraSelector_12( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.CameraSelector); } -/// A class which mocks [ExposureState]. +/// A class which mocks [CameraXProxy]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockExposureState extends _i1.Mock implements _i8.ExposureState { +class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { + @override + void Function({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) get setUpGenericsProxy => (super.noSuchMethod( + Invocation.getter(#setUpGenericsProxy), + returnValue: ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + ) as void Function({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + })); + + @override + _i2.CameraSize Function({ + required int height, + required int width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newCameraSize => (super.noSuchMethod( + Invocation.getter(#newCameraSize), + returnValue: ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_13( + this, + Invocation.getter(#newCameraSize), + ), + returnValueForMissingStub: ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_13( + this, + Invocation.getter(#newCameraSize), + ), + ) as _i2.CameraSize Function({ + required int height, + required int width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.CameraIntegerRange Function({ + required int lower, + required int upper, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newCameraIntegerRange => (super.noSuchMethod( + Invocation.getter(#newCameraIntegerRange), + returnValue: ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => + _FakeCameraIntegerRange_14( + this, + Invocation.getter(#newCameraIntegerRange), + ), + returnValueForMissingStub: ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => + _FakeCameraIntegerRange_14( + this, + Invocation.getter(#newCameraIntegerRange), + ), + ) as _i2.CameraIntegerRange Function({ + required int lower, + required int upper, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i3.Observer Function({ + required void Function( + _i3.Observer, + T, + ) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newObserver => (super.noSuchMethod( + Invocation.getter(#newObserver), + returnValue: ({ + required void Function( + _i3.Observer, + T, + ) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_15( + this, + Invocation.getter(#newObserver), + ), + returnValueForMissingStub: ({ + required void Function( + _i3.Observer, + T, + ) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_15( + this, + Invocation.getter(#newObserver), + ), + ) as _i3.Observer Function({ + required void Function( + _i3.Observer, + T, + ) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.CameraSelector Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) get newCameraSelector => (super.noSuchMethod( + Invocation.getter(#newCameraSelector), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => + _FakeCameraSelector_12( + this, + Invocation.getter(#newCameraSelector), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => + _FakeCameraSelector_12( + this, + Invocation.getter(#newCameraSelector), + ), + ) as _i2.CameraSelector Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + })); + + @override + _i2.SystemServicesManager Function({ + required void Function( + _i2.SystemServicesManager, + String, + ) onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newSystemServicesManager => (super.noSuchMethod( + Invocation.getter(#newSystemServicesManager), + returnValue: ({ + required void Function( + _i2.SystemServicesManager, + String, + ) onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeSystemServicesManager_16( + this, + Invocation.getter(#newSystemServicesManager), + ), + returnValueForMissingStub: ({ + required void Function( + _i2.SystemServicesManager, + String, + ) onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeSystemServicesManager_16( + this, + Invocation.getter(#newSystemServicesManager), + ), + ) as _i2.SystemServicesManager Function({ + required void Function( + _i2.SystemServicesManager, + String, + ) onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.DeviceOrientationManager Function({ + required void Function( + _i2.DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newDeviceOrientationManager => (super.noSuchMethod( + Invocation.getter(#newDeviceOrientationManager), + returnValue: ({ + required void Function( + _i2.DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeDeviceOrientationManager_17( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + returnValueForMissingStub: ({ + required void Function( + _i2.DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeDeviceOrientationManager_17( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + ) as _i2.DeviceOrientationManager Function({ + required void Function( + _i2.DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.Preview Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) get newPreview => (super.noSuchMethod( + Invocation.getter(#newPreview), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakePreview_18( + this, + Invocation.getter(#newPreview), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakePreview_18( + this, + Invocation.getter(#newPreview), + ), + ) as _i2.Preview Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); + + @override + _i2.VideoCapture Function({ + required _i2.VideoOutput videoOutput, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get withOutputVideoCapture => (super.noSuchMethod( + Invocation.getter(#withOutputVideoCapture), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => + _FakeVideoCapture_19( + this, + Invocation.getter(#withOutputVideoCapture), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => + _FakeVideoCapture_19( + this, + Invocation.getter(#withOutputVideoCapture), + ), + ) as _i2.VideoCapture Function({ + required _i2.VideoOutput videoOutput, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.Recorder Function({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) get newRecorder => (super.noSuchMethod( + Invocation.getter(#newRecorder), + returnValue: ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => + _FakeRecorder_20( + this, + Invocation.getter(#newRecorder), + ), + returnValueForMissingStub: ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => + _FakeRecorder_20( + this, + Invocation.getter(#newRecorder), + ), + ) as _i2.Recorder Function({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + })); + + @override + _i2.VideoRecordEventListener Function({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newVideoRecordEventListener => (super.noSuchMethod( + Invocation.getter(#newVideoRecordEventListener), + returnValue: ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeVideoRecordEventListener_21( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + returnValueForMissingStub: ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeVideoRecordEventListener_21( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + ) as _i2.VideoRecordEventListener Function({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.ImageCapture Function({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) get newImageCapture => (super.noSuchMethod( + Invocation.getter(#newImageCapture), + returnValue: ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageCapture_22( + this, + Invocation.getter(#newImageCapture), + ), + returnValueForMissingStub: ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageCapture_22( + this, + Invocation.getter(#newImageCapture), + ), + ) as _i2.ImageCapture Function({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); + + @override + _i2.ResolutionStrategy Function({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newResolutionStrategy => (super.noSuchMethod( + Invocation.getter(#newResolutionStrategy), + returnValue: ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeResolutionStrategy_23( + this, + Invocation.getter(#newResolutionStrategy), + ), + returnValueForMissingStub: ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeResolutionStrategy_23( + this, + Invocation.getter(#newResolutionStrategy), + ), + ) as _i2.ResolutionStrategy Function({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.ResolutionSelector Function({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) get newResolutionSelector => (super.noSuchMethod( + Invocation.getter(#newResolutionSelector), + returnValue: ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => + _FakeResolutionSelector_24( + this, + Invocation.getter(#newResolutionSelector), + ), + returnValueForMissingStub: ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => + _FakeResolutionSelector_24( + this, + Invocation.getter(#newResolutionSelector), + ), + ) as _i2.ResolutionSelector Function({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + })); + + @override + _i2.AspectRatioStrategy Function({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + required _i2.AspectRatio preferredAspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newAspectRatioStrategy => (super.noSuchMethod( + Invocation.getter(#newAspectRatioStrategy), + returnValue: ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => + _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + returnValueForMissingStub: ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => + _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + ) as _i2.AspectRatioStrategy Function({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + required _i2.AspectRatio preferredAspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.ImageAnalysis Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) get newImageAnalysis => (super.noSuchMethod( + Invocation.getter(#newImageAnalysis), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageAnalysis_25( + this, + Invocation.getter(#newImageAnalysis), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageAnalysis_25( + this, + Invocation.getter(#newImageAnalysis), + ), + ) as _i2.ImageAnalysis Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); + + @override + _i2.Analyzer Function({ + required void Function( + _i2.Analyzer, + _i2.ImageProxy, + ) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newAnalyzer => (super.noSuchMethod( + Invocation.getter(#newAnalyzer), + returnValue: ({ + required void Function( + _i2.Analyzer, + _i2.ImageProxy, + ) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeAnalyzer_1( + this, + Invocation.getter(#newAnalyzer), + ), + returnValueForMissingStub: ({ + required void Function( + _i2.Analyzer, + _i2.ImageProxy, + ) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeAnalyzer_1( + this, + Invocation.getter(#newAnalyzer), + ), + ) as _i2.Analyzer Function({ + required void Function( + _i2.Analyzer, + _i2.ImageProxy, + ) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.QualitySelector Function({ + required _i2.VideoQuality quality, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get fromQualitySelector => (super.noSuchMethod( + Invocation.getter(#fromQualitySelector), + returnValue: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeQualitySelector_26( + this, + Invocation.getter(#fromQualitySelector), + ), + returnValueForMissingStub: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeQualitySelector_26( + this, + Invocation.getter(#fromQualitySelector), + ), + ) as _i2.QualitySelector Function({ + required _i2.VideoQuality quality, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.QualitySelector Function({ + required List<_i2.VideoQuality> qualities, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get fromOrderedListQualitySelector => (super.noSuchMethod( + Invocation.getter(#fromOrderedListQualitySelector), + returnValue: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => + _FakeQualitySelector_26( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + returnValueForMissingStub: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => + _FakeQualitySelector_26( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + ) as _i2.QualitySelector Function({ + required List<_i2.VideoQuality> qualities, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get higherQualityOrLowerThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_27( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_27( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get higherQualityThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#higherQualityThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_27( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_27( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get lowerQualityOrHigherThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_27( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_27( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get lowerQualityThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#lowerQualityThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_27( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_27( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newFocusMeteringActionBuilder => (super.noSuchMethod( + Invocation.getter(#newFocusMeteringActionBuilder), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_28( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_28( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + ) as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringMode mode, + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get withModeFocusMeteringActionBuilder => (super.noSuchMethod( + Invocation.getter(#withModeFocusMeteringActionBuilder), + returnValue: ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_28( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + returnValueForMissingStub: ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_28( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + ) as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringMode mode, + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.CaptureRequestOptions Function({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newCaptureRequestOptions => (super.noSuchMethod( + Invocation.getter(#newCaptureRequestOptions), + returnValue: ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCaptureRequestOptions_29( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + returnValueForMissingStub: ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCaptureRequestOptions_29( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + ) as _i2.CaptureRequestOptions Function({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.Camera2CameraControl Function({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get fromCamera2CameraControl => (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraControl), + returnValue: ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraControl_9( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + returnValueForMissingStub: ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraControl_9( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + ) as _i2.Camera2CameraControl Function({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.ResolutionFilter Function({ + required _i2.CameraSize preferredSize, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get createWithOnePreferredSizeResolutionFilter => (super.noSuchMethod( + Invocation.getter(#createWithOnePreferredSizeResolutionFilter), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => + _FakeResolutionFilter_30( + this, + Invocation.getter(#createWithOnePreferredSizeResolutionFilter), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => + _FakeResolutionFilter_30( + this, + Invocation.getter(#createWithOnePreferredSizeResolutionFilter), + ), + ) as _i2.ResolutionFilter Function({ + required _i2.CameraSize preferredSize, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.Camera2CameraInfo Function({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get fromCamera2CameraInfo => (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraInfo), + returnValue: ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraInfo_10( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + returnValueForMissingStub: ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraInfo_10( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + ) as _i2.Camera2CameraInfo Function({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.DisplayOrientedMeteringPointFactory Function({ + required _i3.CameraInfo cameraInfo, + required double height, + required double width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get newDisplayOrientedMeteringPointFactory => (super.noSuchMethod( + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + returnValue: ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => + _FakeDisplayOrientedMeteringPointFactory_31( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + returnValueForMissingStub: ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => + _FakeDisplayOrientedMeteringPointFactory_31( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + ) as _i2.DisplayOrientedMeteringPointFactory Function({ + required _i3.CameraInfo cameraInfo, + required double height, + required double width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i5.Future<_i2.ProcessCameraProvider> Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get getInstanceProcessCameraProvider => (super.noSuchMethod( + Invocation.getter(#getInstanceProcessCameraProvider), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_32( + this, + Invocation.getter(#getInstanceProcessCameraProvider), + )), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_32( + this, + Invocation.getter(#getInstanceProcessCameraProvider), + )), + ) as _i5.Future<_i2.ProcessCameraProvider> Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i5.Future<_i2.CameraSize?> Function( + _i3.CameraInfo, + _i2.VideoQuality, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) get getResolutionQualitySelector => (super.noSuchMethod( + Invocation.getter(#getResolutionQualitySelector), + returnValue: ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.CameraSize?>.value(), + ) as _i5.Future<_i2.CameraSize?> Function( + _i3.CameraInfo, + _i2.VideoQuality, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); + + @override + _i2.CameraSelector Function() get defaultBackCameraCameraSelector => + (super.noSuchMethod( + Invocation.getter(#defaultBackCameraCameraSelector), + returnValue: () => _FakeCameraSelector_12( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + returnValueForMissingStub: () => _FakeCameraSelector_12( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + ) as _i2.CameraSelector Function()); + + @override + _i2.CameraSelector Function() get defaultFrontCameraCameraSelector => + (super.noSuchMethod( + Invocation.getter(#defaultFrontCameraCameraSelector), + returnValue: () => _FakeCameraSelector_12( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + returnValueForMissingStub: () => _FakeCameraSelector_12( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + ) as _i2.CameraSelector Function()); + + @override + _i2.ResolutionStrategy Function() + get highestAvailableStrategyResolutionStrategy => (super.noSuchMethod( + Invocation.getter(#highestAvailableStrategyResolutionStrategy), + returnValue: () => _FakeResolutionStrategy_23( + this, + Invocation.getter(#highestAvailableStrategyResolutionStrategy), + ), + returnValueForMissingStub: () => _FakeResolutionStrategy_23( + this, + Invocation.getter(#highestAvailableStrategyResolutionStrategy), + ), + ) as _i2.ResolutionStrategy Function()); + + @override + _i2.AspectRatioStrategy + Function() get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => (super + .noSuchMethod( + Invocation.getter(#ratio_16_9FallbackAutoStrategyAspectRatioStrategy), + returnValue: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#ratio_16_9FallbackAutoStrategyAspectRatioStrategy), + ), + returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#ratio_16_9FallbackAutoStrategyAspectRatioStrategy), + ), + ) as _i2.AspectRatioStrategy Function()); + + @override + _i2.AspectRatioStrategy + Function() get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => (super + .noSuchMethod( + Invocation.getter(#ratio_4_3FallbackAutoStrategyAspectRatioStrategy), + returnValue: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#ratio_4_3FallbackAutoStrategyAspectRatioStrategy), + ), + returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#ratio_4_3FallbackAutoStrategyAspectRatioStrategy), + ), + ) as _i2.AspectRatioStrategy Function()); + @override - _i10.ExposureCompensationRange get exposureCompensationRange => + _i2.CaptureRequestKey Function() get controlAELockCaptureRequest => (super.noSuchMethod( + Invocation.getter(#controlAELockCaptureRequest), + returnValue: () => _FakeCaptureRequestKey_33( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + returnValueForMissingStub: () => _FakeCaptureRequestKey_33( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + ) as _i2.CaptureRequestKey Function()); + + @override + _i2.CameraCharacteristicsKey + Function() get infoSupportedHardwareLevelCameraCharacteristics => (super + .noSuchMethod( + Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), + returnValue: () => _FakeCameraCharacteristicsKey_34( + this, + Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), + ), + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_34( + this, + Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), + ), + ) as _i2.CameraCharacteristicsKey Function()); + + @override + _i2.CameraCharacteristicsKey Function() + get sensorOrientationCameraCharacteristics => (super.noSuchMethod( + Invocation.getter(#sensorOrientationCameraCharacteristics), + returnValue: () => _FakeCameraCharacteristicsKey_34( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_34( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + ) as _i2.CameraCharacteristicsKey Function()); +} + +/// A class which mocks [ExposureState]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockExposureState extends _i1.Mock implements _i2.ExposureState { + @override + _i2.CameraIntegerRange get exposureCompensationRange => (super.noSuchMethod( Invocation.getter(#exposureCompensationRange), - returnValue: _FakeExposureCompensationRange_8( + returnValue: _FakeCameraIntegerRange_14( this, Invocation.getter(#exposureCompensationRange), ), - returnValueForMissingStub: _FakeExposureCompensationRange_8( + returnValueForMissingStub: _FakeCameraIntegerRange_14( this, Invocation.getter(#exposureCompensationRange), ), - ) as _i10.ExposureCompensationRange); + ) as _i2.CameraIntegerRange); @override double get exposureCompensationStep => (super.noSuchMethod( @@ -825,114 +2319,236 @@ class MockExposureState extends _i1.Mock implements _i8.ExposureState { returnValue: 0.0, returnValueForMissingStub: 0.0, ) as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ExposureState pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeExposureState_6( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.ExposureState); } /// A class which mocks [FallbackStrategy]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockFallbackStrategy extends _i1.Mock implements _i29.FallbackStrategy { +class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { @override - _i10.VideoQuality get quality => (super.noSuchMethod( - Invocation.getter(#quality), - returnValue: _i10.VideoQuality.SD, - returnValueForMissingStub: _i10.VideoQuality.SD, - ) as _i10.VideoQuality); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i10.VideoResolutionFallbackRule get fallbackRule => (super.noSuchMethod( - Invocation.getter(#fallbackRule), - returnValue: _i10.VideoResolutionFallbackRule.higherQualityOrLowerThan, - returnValueForMissingStub: - _i10.VideoResolutionFallbackRule.higherQualityOrLowerThan, - ) as _i10.VideoResolutionFallbackRule); + _i2.FallbackStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeFallbackStrategy_27( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeFallbackStrategy_27( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.FallbackStrategy); } /// A class which mocks [FocusMeteringResult]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable class MockFocusMeteringResult extends _i1.Mock - implements _i22.FocusMeteringResult { + implements _i2.FocusMeteringResult { + @override + bool get isFocusSuccessful => (super.noSuchMethod( + Invocation.getter(#isFocusSuccessful), + returnValue: false, + returnValueForMissingStub: false, + ) as bool); + @override - _i17.Future isFocusSuccessful() => (super.noSuchMethod( + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.FocusMeteringResult pigeon_copy() => (super.noSuchMethod( Invocation.method( - #isFocusSuccessful, + #pigeon_copy, [], ), - returnValue: _i17.Future.value(false), - returnValueForMissingStub: _i17.Future.value(false), - ) as _i17.Future); + returnValue: _FakeFocusMeteringResult_35( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeFocusMeteringResult_35( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.FocusMeteringResult); } /// A class which mocks [ImageAnalysis]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockImageAnalysis extends _i1.Mock implements _i30.ImageAnalysis { +class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { @override - _i17.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [rotation], + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + ) as _i2.PigeonInstanceManager); @override - _i17.Future setAnalyzer(_i16.Analyzer? analyzer) => (super.noSuchMethod( + _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => (super.noSuchMethod( Invocation.method( #setAnalyzer, [analyzer], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future clearAnalyzer() => (super.noSuchMethod( + _i5.Future clearAnalyzer() => (super.noSuchMethod( Invocation.method( #clearAnalyzer, [], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method( + #setTargetRotation, + [rotation], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ImageAnalysis pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeImageAnalysis_25( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeImageAnalysis_25( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.ImageAnalysis); } /// A class which mocks [ImageCapture]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockImageCapture extends _i1.Mock implements _i31.ImageCapture { +class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { @override - _i17.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [rotation], + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + ) as _i2.PigeonInstanceManager); @override - _i17.Future setFlashMode(int? newFlashMode) => (super.noSuchMethod( + _i5.Future setFlashMode(_i2.CameraXFlashMode? flashMode) => + (super.noSuchMethod( Invocation.method( #setFlashMode, - [newFlashMode], + [flashMode], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future takePicture() => (super.noSuchMethod( + _i5.Future takePicture() => (super.noSuchMethod( Invocation.method( #takePicture, [], ), - returnValue: _i17.Future.value(_i27.dummyValue( + returnValue: _i5.Future.value(_i6.dummyValue( this, Invocation.method( #takePicture, @@ -940,21 +2556,52 @@ class MockImageCapture extends _i1.Mock implements _i31.ImageCapture { ), )), returnValueForMissingStub: - _i17.Future.value(_i27.dummyValue( + _i5.Future.value(_i6.dummyValue( this, Invocation.method( #takePicture, [], ), )), - ) as _i17.Future); + ) as _i5.Future); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method( + #setTargetRotation, + [rotation], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ImageCapture pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeImageCapture_22( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeImageCapture_22( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.ImageCapture); } /// A class which mocks [ImageProxy]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockImageProxy extends _i1.Mock implements _i18.ImageProxy { +class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { @override int get format => (super.noSuchMethod( Invocation.getter(#format), @@ -963,104 +2610,209 @@ class MockImageProxy extends _i1.Mock implements _i18.ImageProxy { ) as int); @override - int get height => (super.noSuchMethod( - Invocation.getter(#height), + int get width => (super.noSuchMethod( + Invocation.getter(#width), returnValue: 0, returnValueForMissingStub: 0, ) as int); @override - int get width => (super.noSuchMethod( - Invocation.getter(#width), + int get height => (super.noSuchMethod( + Invocation.getter(#height), returnValue: 0, returnValueForMissingStub: 0, ) as int); @override - _i17.Future> getPlanes() => (super.noSuchMethod( + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future> getPlanes() => (super.noSuchMethod( Invocation.method( #getPlanes, [], ), - returnValue: - _i17.Future>.value(<_i32.PlaneProxy>[]), + returnValue: _i5.Future>.value(<_i2.PlaneProxy>[]), returnValueForMissingStub: - _i17.Future>.value(<_i32.PlaneProxy>[]), - ) as _i17.Future>); + _i5.Future>.value(<_i2.PlaneProxy>[]), + ) as _i5.Future>); @override - _i17.Future close() => (super.noSuchMethod( + _i5.Future close() => (super.noSuchMethod( Invocation.method( #close, [], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ImageProxy pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeImageProxy_36( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeImageProxy_36( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.ImageProxy); } /// A class which mocks [Observer]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockObserver extends _i1.Mock implements _i33.Observer<_i20.CameraState> { +class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { @override - void Function(Object) get onChanged => (super.noSuchMethod( + void Function( + _i2.Observer, + Object, + ) get onChanged => (super.noSuchMethod( Invocation.getter(#onChanged), - returnValue: (Object value) {}, - returnValueForMissingStub: (Object value) {}, - ) as void Function(Object)); + returnValue: ( + _i2.Observer pigeon_instance, + Object value, + ) {}, + returnValueForMissingStub: ( + _i2.Observer pigeon_instance, + Object value, + ) {}, + ) as void Function( + _i2.Observer, + Object, + )); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - set onChanged(void Function(Object)? _onChanged) => super.noSuchMethod( - Invocation.setter( - #onChanged, - _onChanged, + _i3.Observer<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeObserver_15<_i2.CameraState>( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeObserver_15<_i2.CameraState>( + this, + Invocation.method( + #pigeon_copy, + [], + ), ), - returnValueForMissingStub: null, - ); + ) as _i3.Observer<_i2.CameraState>); } /// A class which mocks [PendingRecording]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockPendingRecording extends _i1.Mock implements _i13.PendingRecording { +class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + @override - _i17.Future<_i11.Recording> start() => (super.noSuchMethod( + _i5.Future<_i2.Recording> start(_i2.VideoRecordEventListener? listener) => + (super.noSuchMethod( Invocation.method( #start, - [], + [listener], ), - returnValue: _i17.Future<_i11.Recording>.value(_FakeRecording_9( + returnValue: _i5.Future<_i2.Recording>.value(_FakeRecording_37( this, Invocation.method( #start, - [], + [listener], ), )), returnValueForMissingStub: - _i17.Future<_i11.Recording>.value(_FakeRecording_9( + _i5.Future<_i2.Recording>.value(_FakeRecording_37( this, Invocation.method( #start, - [], + [listener], ), )), - ) as _i17.Future<_i11.Recording>); + ) as _i5.Future<_i2.Recording>); + + @override + _i2.PendingRecording pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakePendingRecording_38( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakePendingRecording_38( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.PendingRecording); } /// A class which mocks [PlaneProxy]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockPlaneProxy extends _i1.Mock implements _i32.PlaneProxy { +class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { @override - _i34.Uint8List get buffer => (super.noSuchMethod( + _i9.Uint8List get buffer => (super.noSuchMethod( Invocation.getter(#buffer), - returnValue: _i34.Uint8List(0), - returnValueForMissingStub: _i34.Uint8List(0), - ) as _i34.Uint8List); + returnValue: _i9.Uint8List(0), + returnValueForMissingStub: _i9.Uint8List(0), + ) as _i9.Uint8List); @override int get pixelStride => (super.noSuchMethod( @@ -1075,90 +2827,159 @@ class MockPlaneProxy extends _i1.Mock implements _i32.PlaneProxy { returnValue: 0, returnValueForMissingStub: 0, ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.PlaneProxy pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakePlaneProxy_39( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakePlaneProxy_39( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.PlaneProxy); } /// A class which mocks [Preview]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockPreview extends _i1.Mock implements _i35.Preview { +class MockPreview extends _i1.Mock implements _i2.Preview { @override - _i17.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [rotation], + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + ) as _i2.PigeonInstanceManager); @override - _i17.Future setSurfaceProvider() => (super.noSuchMethod( + _i5.Future setSurfaceProvider( + _i2.SystemServicesManager? systemServicesManager) => + (super.noSuchMethod( Invocation.method( #setSurfaceProvider, - [], + [systemServicesManager], ), - returnValue: _i17.Future.value(0), - returnValueForMissingStub: _i17.Future.value(0), - ) as _i17.Future); + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); @override - void releaseFlutterSurfaceTexture() => super.noSuchMethod( + _i5.Future releaseSurfaceProvider() => (super.noSuchMethod( Invocation.method( - #releaseFlutterSurfaceTexture, + #releaseSurfaceProvider, [], ), - returnValueForMissingStub: null, - ); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future<_i10.ResolutionInfo> getResolutionInfo() => (super.noSuchMethod( + _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => (super.noSuchMethod( Invocation.method( #getResolutionInfo, [], ), - returnValue: - _i17.Future<_i10.ResolutionInfo>.value(_FakeResolutionInfo_10( + returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), + returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), + ) as _i5.Future<_i2.ResolutionInfo?>); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method( + #setTargetRotation, + [rotation], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.Preview pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakePreview_18( this, Invocation.method( - #getResolutionInfo, + #pigeon_copy, [], ), - )), - returnValueForMissingStub: - _i17.Future<_i10.ResolutionInfo>.value(_FakeResolutionInfo_10( + ), + returnValueForMissingStub: _FakePreview_18( this, Invocation.method( - #getResolutionInfo, + #pigeon_copy, [], ), - )), - ) as _i17.Future<_i10.ResolutionInfo>); + ), + ) as _i2.Preview); } /// A class which mocks [ProcessCameraProvider]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable class MockProcessCameraProvider extends _i1.Mock - implements _i36.ProcessCameraProvider { + implements _i2.ProcessCameraProvider { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + @override - _i17.Future> getAvailableCameraInfos() => + _i5.Future> getAvailableCameraInfos() => (super.noSuchMethod( Invocation.method( #getAvailableCameraInfos, [], ), - returnValue: - _i17.Future>.value(<_i5.CameraInfo>[]), + returnValue: _i5.Future>.value(<_i2.CameraInfo>[]), returnValueForMissingStub: - _i17.Future>.value(<_i5.CameraInfo>[]), - ) as _i17.Future>); + _i5.Future>.value(<_i2.CameraInfo>[]), + ) as _i5.Future>); @override - _i17.Future<_i12.Camera> bindToLifecycle( - _i28.CameraSelector? cameraSelector, - List<_i37.UseCase>? useCases, + _i5.Future<_i2.Camera> bindToLifecycle( + _i2.CameraSelector? cameraSelector, + List<_i2.UseCase>? useCases, ) => (super.noSuchMethod( Invocation.method( @@ -1168,7 +2989,7 @@ class MockProcessCameraProvider extends _i1.Mock useCases, ], ), - returnValue: _i17.Future<_i12.Camera>.value(_FakeCamera_11( + returnValue: _i5.Future<_i2.Camera>.value(_FakeCamera_5( this, Invocation.method( #bindToLifecycle, @@ -1178,75 +2999,157 @@ class MockProcessCameraProvider extends _i1.Mock ], ), )), - returnValueForMissingStub: - _i17.Future<_i12.Camera>.value(_FakeCamera_11( + returnValueForMissingStub: _i5.Future<_i2.Camera>.value(_FakeCamera_5( + this, + Invocation.method( + #bindToLifecycle, + [ + cameraSelector, + useCases, + ], + ), + )), + ) as _i5.Future<_i2.Camera>); + + @override + _i5.Future isBound(_i2.UseCase? useCase) => (super.noSuchMethod( + Invocation.method( + #isBound, + [useCase], + ), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) as _i5.Future); + + @override + _i5.Future unbind(List<_i2.UseCase>? useCases) => (super.noSuchMethod( + Invocation.method( + #unbind, + [useCases], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future unbindAll() => (super.noSuchMethod( + Invocation.method( + #unbindAll, + [], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ProcessCameraProvider pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeProcessCameraProvider_32( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeProcessCameraProvider_32( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.ProcessCameraProvider); +} + +/// A class which mocks [QualitySelector]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.QualitySelector pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeQualitySelector_26( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeQualitySelector_26( this, Invocation.method( - #bindToLifecycle, - [ - cameraSelector, - useCases, - ], + #pigeon_copy, + [], ), - )), - ) as _i17.Future<_i12.Camera>); + ), + ) as _i2.QualitySelector); +} +/// A class which mocks [Recorder]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockRecorder extends _i1.Mock implements _i2.Recorder { @override - _i17.Future isBound(_i37.UseCase? useCase) => (super.noSuchMethod( - Invocation.method( - #isBound, - [useCase], + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), ), - returnValue: _i17.Future.value(false), - returnValueForMissingStub: _i17.Future.value(false), - ) as _i17.Future); + ) as _i2.PigeonInstanceManager); @override - void unbind(List<_i37.UseCase>? useCases) => super.noSuchMethod( + _i5.Future getAspectRatio() => (super.noSuchMethod( Invocation.method( - #unbind, - [useCases], + #getAspectRatio, + [], ), - returnValueForMissingStub: null, - ); + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); @override - void unbindAll() => super.noSuchMethod( + _i5.Future getTargetVideoEncodingBitRate() => (super.noSuchMethod( Invocation.method( - #unbindAll, + #getTargetVideoEncodingBitRate, [], ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [QualitySelector]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockQualitySelector extends _i1.Mock implements _i38.QualitySelector { - @override - List<_i10.VideoQualityData> get qualityList => (super.noSuchMethod( - Invocation.getter(#qualityList), - returnValue: <_i10.VideoQualityData>[], - returnValueForMissingStub: <_i10.VideoQualityData>[], - ) as List<_i10.VideoQualityData>); -} + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); -/// A class which mocks [Recorder]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockRecorder extends _i1.Mock implements _i15.Recorder { @override - _i17.Future<_i13.PendingRecording> prepareRecording(String? path) => + _i5.Future<_i2.PendingRecording> prepareRecording(String? path) => (super.noSuchMethod( Invocation.method( #prepareRecording, [path], ), returnValue: - _i17.Future<_i13.PendingRecording>.value(_FakePendingRecording_12( + _i5.Future<_i2.PendingRecording>.value(_FakePendingRecording_38( this, Invocation.method( #prepareRecording, @@ -1254,130 +3157,290 @@ class MockRecorder extends _i1.Mock implements _i15.Recorder { ), )), returnValueForMissingStub: - _i17.Future<_i13.PendingRecording>.value(_FakePendingRecording_12( + _i5.Future<_i2.PendingRecording>.value(_FakePendingRecording_38( this, Invocation.method( #prepareRecording, [path], ), )), - ) as _i17.Future<_i13.PendingRecording>); + ) as _i5.Future<_i2.PendingRecording>); + + @override + _i2.Recorder pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeRecorder_20( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeRecorder_20( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.Recorder); } /// A class which mocks [ResolutionFilter]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockResolutionFilter extends _i1.Mock implements _i39.ResolutionFilter { +class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + @override - _i14.Size get preferredResolution => (super.noSuchMethod( - Invocation.getter(#preferredResolution), - returnValue: _FakeSize_13( + _i2.ResolutionFilter pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeResolutionFilter_30( this, - Invocation.getter(#preferredResolution), + Invocation.method( + #pigeon_copy, + [], + ), ), - returnValueForMissingStub: _FakeSize_13( + returnValueForMissingStub: _FakeResolutionFilter_30( this, - Invocation.getter(#preferredResolution), + Invocation.method( + #pigeon_copy, + [], + ), ), - ) as _i14.Size); + ) as _i2.ResolutionFilter); } /// A class which mocks [ResolutionSelector]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable class MockResolutionSelector extends _i1.Mock - implements _i40.ResolutionSelector {} + implements _i2.ResolutionSelector { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ResolutionSelector pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeResolutionSelector_24( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeResolutionSelector_24( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.ResolutionSelector); +} /// A class which mocks [ResolutionStrategy]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable class MockResolutionStrategy extends _i1.Mock - implements _i41.ResolutionStrategy {} + implements _i2.ResolutionStrategy { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ResolutionStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeResolutionStrategy_23( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeResolutionStrategy_23( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.ResolutionStrategy); +} /// A class which mocks [Recording]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockRecording extends _i1.Mock implements _i11.Recording { +class MockRecording extends _i1.Mock implements _i2.Recording { @override - _i17.Future close() => (super.noSuchMethod( + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future close() => (super.noSuchMethod( Invocation.method( #close, [], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future pause() => (super.noSuchMethod( + _i5.Future pause() => (super.noSuchMethod( Invocation.method( #pause, [], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future resume() => (super.noSuchMethod( + _i5.Future resume() => (super.noSuchMethod( Invocation.method( #resume, [], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i17.Future stop() => (super.noSuchMethod( + _i5.Future stop() => (super.noSuchMethod( Invocation.method( #stop, [], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); -} + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i42.TestInstanceManagerHostApi { @override - void clear() => super.noSuchMethod( + _i2.Recording pigeon_copy() => (super.noSuchMethod( Invocation.method( - #clear, + #pigeon_copy, [], ), - returnValueForMissingStub: null, - ); + returnValue: _FakeRecording_37( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeRecording_37( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.Recording); } -/// A class which mocks [TestSystemServicesHostApi]. +/// A class which mocks [SystemServicesManager]. /// /// See the documentation for Mockito's code generation for more information. -class MockTestSystemServicesHostApi extends _i1.Mock - implements _i42.TestSystemServicesHostApi { +class MockSystemServicesManager extends _i1.Mock + implements _i2.SystemServicesManager { + @override + void Function( + _i2.SystemServicesManager, + String, + ) get onCameraError => (super.noSuchMethod( + Invocation.getter(#onCameraError), + returnValue: ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + returnValueForMissingStub: ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + ) as void Function( + _i2.SystemServicesManager, + String, + )); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + @override - _i17.Future<_i10.CameraPermissionsErrorData?> requestCameraPermissions( - bool? enableAudio) => + _i5.Future requestCameraPermissions(bool? enableAudio) => (super.noSuchMethod( Invocation.method( #requestCameraPermissions, [enableAudio], ), - returnValue: _i17.Future<_i10.CameraPermissionsErrorData?>.value(), - returnValueForMissingStub: - _i17.Future<_i10.CameraPermissionsErrorData?>.value(), - ) as _i17.Future<_i10.CameraPermissionsErrorData?>); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - String getTempFilePath( + _i5.Future getTempFilePath( String? prefix, String? suffix, ) => @@ -1389,7 +3452,7 @@ class MockTestSystemServicesHostApi extends _i1.Mock suffix, ], ), - returnValue: _i27.dummyValue( + returnValue: _i5.Future.value(_i6.dummyValue( this, Invocation.method( #getTempFilePath, @@ -1398,8 +3461,9 @@ class MockTestSystemServicesHostApi extends _i1.Mock suffix, ], ), - ), - returnValueForMissingStub: _i27.dummyValue( + )), + returnValueForMissingStub: + _i5.Future.value(_i6.dummyValue( this, Invocation.method( #getTempFilePath, @@ -1408,42 +3472,66 @@ class MockTestSystemServicesHostApi extends _i1.Mock suffix, ], ), - ), - ) as String); + )), + ) as _i5.Future); @override - bool isPreviewPreTransformed() => (super.noSuchMethod( + _i5.Future isPreviewPreTransformed() => (super.noSuchMethod( Invocation.method( #isPreviewPreTransformed, [], ), - returnValue: false, - returnValueForMissingStub: false, - ) as bool); + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) as _i5.Future); + + @override + _i2.SystemServicesManager pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeSystemServicesManager_16( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeSystemServicesManager_16( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.SystemServicesManager); } /// A class which mocks [VideoCapture]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockVideoCapture extends _i1.Mock implements _i43.VideoCapture { +class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { @override - _i17.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [rotation], + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + ) as _i2.PigeonInstanceManager); @override - _i17.Future<_i15.Recorder> getOutput() => (super.noSuchMethod( + _i5.Future<_i2.VideoOutput> getOutput() => (super.noSuchMethod( Invocation.method( #getOutput, [], ), - returnValue: _i17.Future<_i15.Recorder>.value(_FakeRecorder_14( + returnValue: _i5.Future<_i2.VideoOutput>.value(_FakeVideoOutput_40( this, Invocation.method( #getOutput, @@ -1451,21 +3539,52 @@ class MockVideoCapture extends _i1.Mock implements _i43.VideoCapture { ), )), returnValueForMissingStub: - _i17.Future<_i15.Recorder>.value(_FakeRecorder_14( + _i5.Future<_i2.VideoOutput>.value(_FakeVideoOutput_40( this, Invocation.method( #getOutput, [], ), )), - ) as _i17.Future<_i15.Recorder>); + ) as _i5.Future<_i2.VideoOutput>); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method( + #setTargetRotation, + [rotation], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.VideoCapture pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeVideoCapture_19( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeVideoCapture_19( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.VideoCapture); } /// A class which mocks [ZoomState]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockZoomState extends _i1.Mock implements _i21.ZoomState { +class MockZoomState extends _i1.Mock implements _i2.ZoomState { @override double get minZoomRatio => (super.noSuchMethod( Invocation.getter(#minZoomRatio), @@ -1479,68 +3598,177 @@ class MockZoomState extends _i1.Mock implements _i21.ZoomState { returnValue: 0.0, returnValueForMissingStub: 0.0, ) as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ZoomState pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeZoomState_41( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeZoomState_41( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.ZoomState); } /// A class which mocks [LiveData]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable class MockLiveCameraState extends _i1.Mock - implements _i7.LiveData<_i20.CameraState> { + implements _i3.LiveData<_i2.CameraState> { MockLiveCameraState() { _i1.throwOnMissingStub(this); } @override - _i17.Future observe(_i33.Observer<_i20.CameraState>? observer) => - (super.noSuchMethod( + _i2.LiveDataSupportedType get type => (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) as _i2.LiveDataSupportedType); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( Invocation.method( #observe, [observer], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future<_i2.CameraState?> getValue() => (super.noSuchMethod( + Invocation.method( + #getValue, + [], + ), + returnValue: _i5.Future<_i2.CameraState?>.value(), + ) as _i5.Future<_i2.CameraState?>); + + @override + _i3.LiveData<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i3.LiveData<_i2.CameraState>); @override - _i17.Future removeObservers() => (super.noSuchMethod( + _i5.Future removeObservers() => (super.noSuchMethod( Invocation.method( #removeObservers, [], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); } /// A class which mocks [LiveData]. /// /// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable class MockLiveZoomState extends _i1.Mock - implements _i7.LiveData<_i21.ZoomState> { + implements _i3.LiveData<_i2.ZoomState> { MockLiveZoomState() { _i1.throwOnMissingStub(this); } @override - _i17.Future observe(_i33.Observer<_i21.ZoomState>? observer) => - (super.noSuchMethod( + _i2.LiveDataSupportedType get type => (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) as _i2.LiveDataSupportedType); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( Invocation.method( #observe, [observer], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future<_i2.ZoomState?> getValue() => (super.noSuchMethod( + Invocation.method( + #getValue, + [], + ), + returnValue: _i5.Future<_i2.ZoomState?>.value(), + ) as _i5.Future<_i2.ZoomState?>); + + @override + _i3.LiveData<_i2.ZoomState> pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i3.LiveData<_i2.ZoomState>); @override - _i17.Future removeObservers() => (super.noSuchMethod( + _i5.Future removeObservers() => (super.noSuchMethod( Invocation.method( #removeObservers, [], ), - returnValue: _i17.Future.value(), - returnValueForMissingStub: _i17.Future.value(), - ) as _i17.Future); + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); } diff --git a/packages/camera/camera_android_camerax/test/aspect_ratio_strategy_test.dart b/packages/camera/camera_android_camerax/test/aspect_ratio_strategy_test.dart deleted file mode 100644 index 28ec032a2a9..00000000000 --- a/packages/camera/camera_android_camerax/test/aspect_ratio_strategy_test.dart +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/aspect_ratio_strategy.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'aspect_ratio_strategy_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - TestAspectRatioStrategyHostApi, - TestInstanceManagerHostApi, -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - group('AspectRatioStrategy', () { - tearDown(() { - TestAspectRatioStrategyHostApi.setup(null); - TestInstanceManagerHostApi.setup(null); - }); - - test( - 'detached create does not make call to create expected AspectRatioStrategy instance', - () async { - final MockTestAspectRatioStrategyHostApi mockApi = - MockTestAspectRatioStrategyHostApi(); - TestAspectRatioStrategyHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const int preferredAspectRatio = 1; - - const int fallbackRule = 1; - - AspectRatioStrategy.detached( - preferredAspectRatio: preferredAspectRatio, - fallbackRule: fallbackRule, - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create( - argThat(isA()), - preferredAspectRatio, - fallbackRule, - )); - }); - - test( - 'HostApi create makes call to create expected AspectRatioStrategy instance', - () { - final MockTestAspectRatioStrategyHostApi mockApi = - MockTestAspectRatioStrategyHostApi(); - TestAspectRatioStrategyHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const int preferredAspectRatio = 0; - - const int fallbackRule = 0; - - final AspectRatioStrategy instance = AspectRatioStrategy( - preferredAspectRatio: preferredAspectRatio, - fallbackRule: fallbackRule, - instanceManager: instanceManager, - ); - - verify(mockApi.create( - instanceManager.getIdentifier(instance), - preferredAspectRatio, - fallbackRule, - )); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/aspect_ratio_strategy_test.mocks.dart b/packages/camera/camera_android_camerax/test/aspect_ratio_strategy_test.mocks.dart deleted file mode 100644 index dc93715deba..00000000000 --- a/packages/camera/camera_android_camerax/test/aspect_ratio_strategy_test.mocks.dart +++ /dev/null @@ -1,68 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/aspect_ratio_strategy_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestAspectRatioStrategyHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestAspectRatioStrategyHostApi extends _i1.Mock - implements _i2.TestAspectRatioStrategyHostApi { - MockTestAspectRatioStrategyHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - int? preferredAspectRatio, - int? fallbackRule, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - preferredAspectRatio, - fallbackRule, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/camera2_camera_control_test.dart b/packages/camera/camera_android_camerax/test/camera2_camera_control_test.dart deleted file mode 100644 index 6ec783a727c..00000000000 --- a/packages/camera/camera_android_camerax/test/camera2_camera_control_test.dart +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera2_camera_control.dart'; -import 'package:camera_android_camerax/src/camera_control.dart'; -import 'package:camera_android_camerax/src/capture_request_options.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'camera2_camera_control_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - CameraControl, - CaptureRequestOptions, - TestCamera2CameraControlHostApi, - TestInstanceManagerHostApi -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('Camera2CameraControl', () { - tearDown(() { - TestCamera2CameraControlHostApi.setup(null); - TestInstanceManagerHostApi.setup(null); - }); - - test('detached create does not call create on the Java side', () { - final MockTestCamera2CameraControlHostApi mockApi = - MockTestCamera2CameraControlHostApi(); - TestCamera2CameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - Camera2CameraControl.detached( - cameraControl: MockCameraControl(), - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create(argThat(isA()), argThat(isA()))); - }); - - test('create calls create on the Java side', () { - final MockTestCamera2CameraControlHostApi mockApi = - MockTestCamera2CameraControlHostApi(); - TestCamera2CameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraControl mockCameraControl = MockCameraControl(); - const int cameraControlIdentifier = 9; - instanceManager.addHostCreatedInstance( - mockCameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached( - instanceManager: instanceManager, - ), - ); - - final Camera2CameraControl instance = Camera2CameraControl( - cameraControl: mockCameraControl, - instanceManager: instanceManager, - ); - - verify(mockApi.create( - instanceManager.getIdentifier(instance), - cameraControlIdentifier, - )); - }); - - test( - 'addCaptureRequestOptions makes call on Java side to add capture request options', - () async { - final MockTestCamera2CameraControlHostApi mockApi = - MockTestCamera2CameraControlHostApi(); - TestCamera2CameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Camera2CameraControl instance = Camera2CameraControl.detached( - cameraControl: MockCameraControl(), - instanceManager: instanceManager, - ); - const int instanceIdentifier = 30; - instanceManager.addHostCreatedInstance( - instance, - instanceIdentifier, - onCopy: (Camera2CameraControl original) => - Camera2CameraControl.detached( - cameraControl: original.cameraControl, - instanceManager: instanceManager, - ), - ); - - final CaptureRequestOptions mockCaptureRequestOptions = - MockCaptureRequestOptions(); - const int mockCaptureRequestOptionsIdentifier = 8; - instanceManager.addHostCreatedInstance( - mockCaptureRequestOptions, - mockCaptureRequestOptionsIdentifier, - onCopy: (_) => MockCaptureRequestOptions(), - ); - - await instance.addCaptureRequestOptions( - mockCaptureRequestOptions, - ); - - verify(mockApi.addCaptureRequestOptions( - instanceIdentifier, - mockCaptureRequestOptionsIdentifier, - )); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/camera2_camera_control_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera2_camera_control_test.mocks.dart deleted file mode 100644 index 58d89c49b20..00000000000 --- a/packages/camera/camera_android_camerax/test/camera2_camera_control_test.mocks.dart +++ /dev/null @@ -1,169 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/camera2_camera_control_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i3; - -import 'package:camera_android_camerax/src/camera_control.dart' as _i2; -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i7; -import 'package:camera_android_camerax/src/capture_request_options.dart' as _i6; -import 'package:camera_android_camerax/src/focus_metering_action.dart' as _i5; -import 'package:camera_android_camerax/src/focus_metering_result.dart' as _i4; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i8; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [CameraControl]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCameraControl extends _i1.Mock implements _i2.CameraControl { - MockCameraControl() { - _i1.throwOnMissingStub(this); - } - - @override - _i3.Future enableTorch(bool? torch) => (super.noSuchMethod( - Invocation.method( - #enableTorch, - [torch], - ), - returnValue: _i3.Future.value(), - returnValueForMissingStub: _i3.Future.value(), - ) as _i3.Future); - - @override - _i3.Future setZoomRatio(double? ratio) => (super.noSuchMethod( - Invocation.method( - #setZoomRatio, - [ratio], - ), - returnValue: _i3.Future.value(), - returnValueForMissingStub: _i3.Future.value(), - ) as _i3.Future); - - @override - _i3.Future<_i4.FocusMeteringResult?> startFocusAndMetering( - _i5.FocusMeteringAction? action) => - (super.noSuchMethod( - Invocation.method( - #startFocusAndMetering, - [action], - ), - returnValue: _i3.Future<_i4.FocusMeteringResult?>.value(), - ) as _i3.Future<_i4.FocusMeteringResult?>); - - @override - _i3.Future cancelFocusAndMetering() => (super.noSuchMethod( - Invocation.method( - #cancelFocusAndMetering, - [], - ), - returnValue: _i3.Future.value(), - returnValueForMissingStub: _i3.Future.value(), - ) as _i3.Future); - - @override - _i3.Future setExposureCompensationIndex(int? index) => - (super.noSuchMethod( - Invocation.method( - #setExposureCompensationIndex, - [index], - ), - returnValue: _i3.Future.value(), - ) as _i3.Future); -} - -/// A class which mocks [CaptureRequestOptions]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCaptureRequestOptions extends _i1.Mock - implements _i6.CaptureRequestOptions { - MockCaptureRequestOptions() { - _i1.throwOnMissingStub(this); - } - - @override - List<(_i7.CaptureRequestKeySupportedType, Object?)> get requestedOptions => - (super.noSuchMethod( - Invocation.getter(#requestedOptions), - returnValue: <(_i7.CaptureRequestKeySupportedType, Object?)>[], - ) as List<(_i7.CaptureRequestKeySupportedType, Object?)>); -} - -/// A class which mocks [TestCamera2CameraControlHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestCamera2CameraControlHostApi extends _i1.Mock - implements _i8.TestCamera2CameraControlHostApi { - MockTestCamera2CameraControlHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - int? cameraControlIdentifier, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - cameraControlIdentifier, - ], - ), - returnValueForMissingStub: null, - ); - - @override - _i3.Future addCaptureRequestOptions( - int? identifier, - int? captureRequestOptionsIdentifier, - ) => - (super.noSuchMethod( - Invocation.method( - #addCaptureRequestOptions, - [ - identifier, - captureRequestOptionsIdentifier, - ], - ), - returnValue: _i3.Future.value(), - returnValueForMissingStub: _i3.Future.value(), - ) as _i3.Future); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i8.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/camera2_camera_info_test.dart b/packages/camera/camera_android_camerax/test/camera2_camera_info_test.dart deleted file mode 100644 index 0766eee37e8..00000000000 --- a/packages/camera/camera_android_camerax/test/camera2_camera_info_test.dart +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera2_camera_info.dart'; -import 'package:camera_android_camerax/src/camera_info.dart'; -import 'package:camera_android_camerax/src/camera_metadata.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'camera2_camera_info_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - TestCamera2CameraInfoHostApi, - TestInstanceManagerHostApi, - CameraInfo -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('Camera2CameraInfo', () { - tearDown(() => TestCamera2CameraInfoHostApi.setup(null)); - - test('from returns expected Camera2CameraInfo instance', () async { - final MockTestCamera2CameraInfoHostApi mockApi = - MockTestCamera2CameraInfoHostApi(); - TestCamera2CameraInfoHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final Camera2CameraInfo camera2CameraInfo = Camera2CameraInfo.detached( - instanceManager: instanceManager, - ); - final CameraInfo mockCameraInfo = MockCameraInfo(); - const int camera2CameraInfoId = 33; - const int mockCameraInfoId = 44; - - instanceManager.addHostCreatedInstance( - camera2CameraInfo, - camera2CameraInfoId, - onCopy: (_) => Camera2CameraInfo.detached(), - ); - instanceManager.addHostCreatedInstance( - mockCameraInfo, - mockCameraInfoId, - onCopy: (_) => CameraInfo.detached(), - ); - - when(mockApi.createFrom(mockCameraInfoId)) - .thenAnswer((_) => camera2CameraInfoId); - expect( - await Camera2CameraInfo.from(mockCameraInfo, - instanceManager: instanceManager), - equals(camera2CameraInfo)); - verify(mockApi.createFrom(mockCameraInfoId)); - }); - - test('detached constructor does not create Camera2CameraInfo on Java side', - () async { - final MockTestCamera2CameraInfoHostApi mockApi = - MockTestCamera2CameraInfoHostApi(); - TestCamera2CameraInfoHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - Camera2CameraInfo.detached( - instanceManager: instanceManager, - ); - - verifyNever(mockApi.createFrom(argThat(isA()))); - }); - - test( - 'getSupportedHardwareLevel makes call to retrieve supported hardware level', - () async { - final MockTestCamera2CameraInfoHostApi mockApi = - MockTestCamera2CameraInfoHostApi(); - TestCamera2CameraInfoHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final Camera2CameraInfo camera2CameraInfo = Camera2CameraInfo.detached( - instanceManager: instanceManager, - ); - const int camera2CameraInfoId = 9; - - instanceManager.addHostCreatedInstance( - camera2CameraInfo, - camera2CameraInfoId, - onCopy: (_) => Camera2CameraInfo.detached(), - ); - - const int expectedSupportedHardwareLevel = - CameraMetadata.infoSupportedHardwareLevelExternal; - when(mockApi.getSupportedHardwareLevel(camera2CameraInfoId)) - .thenReturn(expectedSupportedHardwareLevel); - expect(await camera2CameraInfo.getSupportedHardwareLevel(), - equals(expectedSupportedHardwareLevel)); - - verify(mockApi.getSupportedHardwareLevel(camera2CameraInfoId)); - }); - - test('getCameraId makes call to retrieve camera ID', () async { - final MockTestCamera2CameraInfoHostApi mockApi = - MockTestCamera2CameraInfoHostApi(); - TestCamera2CameraInfoHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final Camera2CameraInfo camera2CameraInfo = Camera2CameraInfo.detached( - instanceManager: instanceManager, - ); - const int camera2CameraInfoId = 19; - - instanceManager.addHostCreatedInstance( - camera2CameraInfo, - camera2CameraInfoId, - onCopy: (_) => Camera2CameraInfo.detached(), - ); - - const String expectedCameraId = 'testCameraId'; - when(mockApi.getCameraId(camera2CameraInfoId)) - .thenReturn(expectedCameraId); - expect(await camera2CameraInfo.getCameraId(), equals(expectedCameraId)); - - verify(mockApi.getCameraId(camera2CameraInfoId)); - }); - - test('flutterApi create makes call to create expected instance type', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final Camera2CameraInfoFlutterApi flutterApi = - Camera2CameraInfoFlutterApiImpl( - instanceManager: instanceManager, - ); - - flutterApi.create(0); - - expect(instanceManager.getInstanceWithWeakReference(0), - isA()); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/camera2_camera_info_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera2_camera_info_test.mocks.dart deleted file mode 100644 index 88b219f28cf..00000000000 --- a/packages/camera/camera_android_camerax/test/camera2_camera_info_test.mocks.dart +++ /dev/null @@ -1,188 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/camera2_camera_info_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i7; - -import 'package:camera_android_camerax/src/camera_info.dart' as _i6; -import 'package:camera_android_camerax/src/camera_state.dart' as _i8; -import 'package:camera_android_camerax/src/exposure_state.dart' as _i3; -import 'package:camera_android_camerax/src/live_data.dart' as _i2; -import 'package:camera_android_camerax/src/zoom_state.dart' as _i9; -import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i5; - -import 'test_camerax_library.g.dart' as _i4; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakeLiveData_0 extends _i1.SmartFake - implements _i2.LiveData { - _FakeLiveData_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -class _FakeExposureState_1 extends _i1.SmartFake implements _i3.ExposureState { - _FakeExposureState_1( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [TestCamera2CameraInfoHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestCamera2CameraInfoHostApi extends _i1.Mock - implements _i4.TestCamera2CameraInfoHostApi { - MockTestCamera2CameraInfoHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - int createFrom(int? cameraInfoIdentifier) => (super.noSuchMethod( - Invocation.method( - #createFrom, - [cameraInfoIdentifier], - ), - returnValue: 0, - ) as int); - - @override - int getSupportedHardwareLevel(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getSupportedHardwareLevel, - [identifier], - ), - returnValue: 0, - ) as int); - - @override - String getCameraId(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getCameraId, - [identifier], - ), - returnValue: _i5.dummyValue( - this, - Invocation.method( - #getCameraId, - [identifier], - ), - ), - ) as String); - - @override - int getSensorOrientation(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getSensorOrientation, - [identifier], - ), - returnValue: 0, - ) as int); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i4.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [CameraInfo]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCameraInfo extends _i1.Mock implements _i6.CameraInfo { - MockCameraInfo() { - _i1.throwOnMissingStub(this); - } - - @override - _i7.Future getSensorRotationDegrees() => (super.noSuchMethod( - Invocation.method( - #getSensorRotationDegrees, - [], - ), - returnValue: _i7.Future.value(0), - ) as _i7.Future); - - @override - _i7.Future<_i2.LiveData<_i8.CameraState>> getCameraState() => - (super.noSuchMethod( - Invocation.method( - #getCameraState, - [], - ), - returnValue: _i7.Future<_i2.LiveData<_i8.CameraState>>.value( - _FakeLiveData_0<_i8.CameraState>( - this, - Invocation.method( - #getCameraState, - [], - ), - )), - ) as _i7.Future<_i2.LiveData<_i8.CameraState>>); - - @override - _i7.Future<_i3.ExposureState> getExposureState() => (super.noSuchMethod( - Invocation.method( - #getExposureState, - [], - ), - returnValue: _i7.Future<_i3.ExposureState>.value(_FakeExposureState_1( - this, - Invocation.method( - #getExposureState, - [], - ), - )), - ) as _i7.Future<_i3.ExposureState>); - - @override - _i7.Future<_i2.LiveData<_i9.ZoomState>> getZoomState() => (super.noSuchMethod( - Invocation.method( - #getZoomState, - [], - ), - returnValue: _i7.Future<_i2.LiveData<_i9.ZoomState>>.value( - _FakeLiveData_0<_i9.ZoomState>( - this, - Invocation.method( - #getZoomState, - [], - ), - )), - ) as _i7.Future<_i2.LiveData<_i9.ZoomState>>); -} diff --git a/packages/camera/camera_android_camerax/test/camera_control_test.dart b/packages/camera/camera_android_camerax/test/camera_control_test.dart deleted file mode 100644 index 22ba8aaf247..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_control_test.dart +++ /dev/null @@ -1,306 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera_control.dart'; -import 'package:camera_android_camerax/src/focus_metering_action.dart'; -import 'package:camera_android_camerax/src/focus_metering_result.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter/services.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'camera_control_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - TestCameraControlHostApi, - TestInstanceManagerHostApi, - FocusMeteringAction -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('CameraControl', () { - tearDown(() => TestCameraHostApi.setup(null)); - - test('enableTorch makes call on Java side to enable torch', () async { - final MockTestCameraControlHostApi mockApi = - MockTestCameraControlHostApi(); - TestCameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraControl cameraControl = CameraControl.detached( - instanceManager: instanceManager, - ); - const int cameraControlIdentifier = 22; - - instanceManager.addHostCreatedInstance( - cameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), - ); - - const bool enableTorch = true; - await cameraControl.enableTorch(enableTorch); - - verify(mockApi.enableTorch(cameraControlIdentifier, enableTorch)); - }); - - test('setZoomRatio makes call on Java side to set zoom ratio', () async { - final MockTestCameraControlHostApi mockApi = - MockTestCameraControlHostApi(); - TestCameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraControl cameraControl = CameraControl.detached( - instanceManager: instanceManager, - ); - const int cameraControlIdentifier = 45; - - instanceManager.addHostCreatedInstance( - cameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), - ); - - const double zoom = 0.2; - await cameraControl.setZoomRatio(zoom); - - verify(mockApi.setZoomRatio(cameraControlIdentifier, zoom)); - }); - - test( - 'startFocusAndMetering makes call on Java side to start focus and metering and returns expected result', - () async { - final MockTestCameraControlHostApi mockApi = - MockTestCameraControlHostApi(); - TestCameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraControl cameraControl = CameraControl.detached( - instanceManager: instanceManager, - ); - const int cameraControlIdentifier = 75; - final FocusMeteringAction action = MockFocusMeteringAction(); - const int actionId = 5; - final FocusMeteringResult result = - FocusMeteringResult.detached(instanceManager: instanceManager); - const int resultId = 2; - - instanceManager.addHostCreatedInstance( - cameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), - ); - instanceManager.addHostCreatedInstance( - action, - actionId, - onCopy: (_) => MockFocusMeteringAction(), - ); - instanceManager.addHostCreatedInstance( - result, - resultId, - onCopy: (_) => - FocusMeteringResult.detached(instanceManager: instanceManager), - ); - - when(mockApi.startFocusAndMetering(cameraControlIdentifier, actionId)) - .thenAnswer((_) => Future.value(resultId)); - - expect(await cameraControl.startFocusAndMetering(action), equals(result)); - verify(mockApi.startFocusAndMetering(cameraControlIdentifier, actionId)); - }); - - test('startFocusAndMetering returns null result if operation was canceled', - () async { - final MockTestCameraControlHostApi mockApi = - MockTestCameraControlHostApi(); - TestCameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraControl cameraControl = CameraControl.detached( - instanceManager: instanceManager, - ); - const int cameraControlIdentifier = 75; - final FocusMeteringAction action = MockFocusMeteringAction(); - const int actionId = 5; - - instanceManager.addHostCreatedInstance( - cameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), - ); - instanceManager.addHostCreatedInstance( - action, - actionId, - onCopy: (_) => MockFocusMeteringAction(), - ); - - when(mockApi.startFocusAndMetering(cameraControlIdentifier, actionId)) - .thenAnswer((_) => Future.value()); - - expect(await cameraControl.startFocusAndMetering(action), isNull); - verify(mockApi.startFocusAndMetering(cameraControlIdentifier, actionId)); - }); - - test( - 'cancelFocusAndMetering makes call on Java side to cancel focus and metering', - () async { - final MockTestCameraControlHostApi mockApi = - MockTestCameraControlHostApi(); - TestCameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraControl cameraControl = CameraControl.detached( - instanceManager: instanceManager, - ); - const int cameraControlIdentifier = 45; - - instanceManager.addHostCreatedInstance( - cameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), - ); - - await cameraControl.cancelFocusAndMetering(); - - verify(mockApi.cancelFocusAndMetering(cameraControlIdentifier)); - }); - - test( - 'setExposureCompensationIndex makes call on Java side to set index and returns expected target exposure value', - () async { - final MockTestCameraControlHostApi mockApi = - MockTestCameraControlHostApi(); - TestCameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraControl cameraControl = CameraControl.detached( - instanceManager: instanceManager, - ); - const int cameraControlIdentifier = 40; - - instanceManager.addHostCreatedInstance( - cameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), - ); - - const int index = 3; - const int fakeTargetExposureValue = 2; - when(mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)) - .thenAnswer((_) => Future.value(fakeTargetExposureValue)); - - expect(await cameraControl.setExposureCompensationIndex(index), - equals(fakeTargetExposureValue)); - verify( - mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)); - }); - - test( - 'setExposureCompensationIndex returns null when operation was canceled', - () async { - final MockTestCameraControlHostApi mockApi = - MockTestCameraControlHostApi(); - TestCameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraControl cameraControl = CameraControl.detached( - instanceManager: instanceManager, - ); - const int cameraControlIdentifier = 40; - - instanceManager.addHostCreatedInstance( - cameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), - ); - - const int index = 2; - when(mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)) - .thenAnswer((_) => Future.value()); - - expect(await cameraControl.setExposureCompensationIndex(index), isNull); - verify( - mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)); - }); - - test( - 'setExposureCompensationIndex throws PlatformException when one is thrown from native side', - () async { - final MockTestCameraControlHostApi mockApi = - MockTestCameraControlHostApi(); - TestCameraControlHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraControl cameraControl = CameraControl.detached( - instanceManager: instanceManager, - ); - const int cameraControlIdentifier = 40; - - instanceManager.addHostCreatedInstance( - cameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), - ); - - const int index = 1; - when(mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)) - .thenThrow(PlatformException( - code: 'TEST_ERROR', - details: 'Platform exception thrown from Java side.')); - - expect(() => cameraControl.setExposureCompensationIndex(index), - throwsA(isA())); - - verify( - mockApi.setExposureCompensationIndex(cameraControlIdentifier, index)); - }); - - test('flutterApiCreate makes call to add instance to instance manager', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final CameraControlFlutterApiImpl flutterApi = - CameraControlFlutterApiImpl( - instanceManager: instanceManager, - ); - const int cameraControlIdentifier = 67; - - flutterApi.create(cameraControlIdentifier); - - expect( - instanceManager.getInstanceWithWeakReference(cameraControlIdentifier), - isA()); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/camera_control_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera_control_test.mocks.dart deleted file mode 100644 index 57040bcac62..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_control_test.mocks.dart +++ /dev/null @@ -1,148 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/camera_control_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i3; - -import 'package:camera_android_camerax/src/focus_metering_action.dart' as _i4; -import 'package:camera_android_camerax/src/metering_point.dart' as _i5; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestCameraControlHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestCameraControlHostApi extends _i1.Mock - implements _i2.TestCameraControlHostApi { - MockTestCameraControlHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - _i3.Future enableTorch( - int? identifier, - bool? torch, - ) => - (super.noSuchMethod( - Invocation.method( - #enableTorch, - [ - identifier, - torch, - ], - ), - returnValue: _i3.Future.value(), - returnValueForMissingStub: _i3.Future.value(), - ) as _i3.Future); - - @override - _i3.Future setZoomRatio( - int? identifier, - double? ratio, - ) => - (super.noSuchMethod( - Invocation.method( - #setZoomRatio, - [ - identifier, - ratio, - ], - ), - returnValue: _i3.Future.value(), - returnValueForMissingStub: _i3.Future.value(), - ) as _i3.Future); - - @override - _i3.Future startFocusAndMetering( - int? identifier, - int? focusMeteringActionId, - ) => - (super.noSuchMethod( - Invocation.method( - #startFocusAndMetering, - [ - identifier, - focusMeteringActionId, - ], - ), - returnValue: _i3.Future.value(), - ) as _i3.Future); - - @override - _i3.Future cancelFocusAndMetering(int? identifier) => - (super.noSuchMethod( - Invocation.method( - #cancelFocusAndMetering, - [identifier], - ), - returnValue: _i3.Future.value(), - returnValueForMissingStub: _i3.Future.value(), - ) as _i3.Future); - - @override - _i3.Future setExposureCompensationIndex( - int? identifier, - int? index, - ) => - (super.noSuchMethod( - Invocation.method( - #setExposureCompensationIndex, - [ - identifier, - index, - ], - ), - returnValue: _i3.Future.value(), - ) as _i3.Future); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [FocusMeteringAction]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockFocusMeteringAction extends _i1.Mock - implements _i4.FocusMeteringAction { - MockFocusMeteringAction() { - _i1.throwOnMissingStub(this); - } - - @override - List<(_i5.MeteringPoint, int?)> get meteringPointInfos => (super.noSuchMethod( - Invocation.getter(#meteringPointInfos), - returnValue: <(_i5.MeteringPoint, int?)>[], - ) as List<(_i5.MeteringPoint, int?)>); -} diff --git a/packages/camera/camera_android_camerax/test/camera_info_test.dart b/packages/camera/camera_android_camerax/test/camera_info_test.dart deleted file mode 100644 index 487983b3365..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_info_test.dart +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera_info.dart'; -import 'package:camera_android_camerax/src/camera_state.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/exposure_state.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/live_data.dart'; -import 'package:camera_android_camerax/src/zoom_state.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'camera_info_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - TestCameraInfoHostApi, - TestInstanceManagerHostApi -], customMocks: >[ - MockSpec>(as: #MockLiveCameraState), - MockSpec>(as: #MockLiveZoomState), -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('CameraInfo', () { - tearDown(() => TestCameraInfoHostApi.setup(null)); - - test( - 'getSensorRotationDegrees makes call to retrieve expected sensor rotation', - () async { - final MockTestCameraInfoHostApi mockApi = MockTestCameraInfoHostApi(); - TestCameraInfoHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final CameraInfo cameraInfo = CameraInfo.detached( - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - cameraInfo, - 0, - onCopy: (_) => CameraInfo.detached(), - ); - - when(mockApi.getSensorRotationDegrees( - instanceManager.getIdentifier(cameraInfo))) - .thenReturn(90); - expect(await cameraInfo.getSensorRotationDegrees(), equals(90)); - - verify(mockApi.getSensorRotationDegrees(0)); - }); - - test('getCameraState makes call to retrieve live camera state', () async { - final MockTestCameraInfoHostApi mockApi = MockTestCameraInfoHostApi(); - TestCameraInfoHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final CameraInfo cameraInfo = CameraInfo.detached( - instanceManager: instanceManager, - ); - const int cameraIdentifier = 55; - final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - const int liveCameraStateIdentifier = 73; - instanceManager.addHostCreatedInstance( - cameraInfo, - cameraIdentifier, - onCopy: (_) => CameraInfo.detached(), - ); - instanceManager.addHostCreatedInstance( - mockLiveCameraState, - liveCameraStateIdentifier, - onCopy: (_) => MockLiveCameraState(), - ); - - when(mockApi.getCameraState(cameraIdentifier)) - .thenReturn(liveCameraStateIdentifier); - - expect(await cameraInfo.getCameraState(), equals(mockLiveCameraState)); - verify(mockApi.getCameraState(cameraIdentifier)); - }); - - test('getExposureState makes call to retrieve expected ExposureState', - () async { - final MockTestCameraInfoHostApi mockApi = MockTestCameraInfoHostApi(); - TestCameraInfoHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final CameraInfo cameraInfo = CameraInfo.detached( - instanceManager: instanceManager, - ); - const int cameraInfoIdentifier = 4; - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(maxCompensation: 0, minCompensation: 1), - exposureCompensationStep: 4, - instanceManager: instanceManager, - ); - const int exposureStateIdentifier = 45; - - instanceManager.addHostCreatedInstance( - cameraInfo, - cameraInfoIdentifier, - onCopy: (_) => CameraInfo.detached(), - ); - instanceManager.addHostCreatedInstance( - exposureState, - exposureStateIdentifier, - onCopy: (_) => ExposureState.detached( - exposureCompensationRange: ExposureCompensationRange( - maxCompensation: 0, minCompensation: 1), - exposureCompensationStep: 4), - ); - - when(mockApi.getExposureState(cameraInfoIdentifier)) - .thenReturn(exposureStateIdentifier); - expect(await cameraInfo.getExposureState(), equals(exposureState)); - - verify(mockApi.getExposureState(cameraInfoIdentifier)); - }); - - test('getZoomState makes call to retrieve expected ZoomState', () async { - final MockTestCameraInfoHostApi mockApi = MockTestCameraInfoHostApi(); - TestCameraInfoHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraInfo cameraInfo = CameraInfo.detached( - instanceManager: instanceManager, - ); - const int cameraInfoIdentifier = 2; - final MockLiveZoomState mockLiveZoomState = MockLiveZoomState(); - const int mockLiveZoomStateIdentifier = 55; - - instanceManager.addHostCreatedInstance( - cameraInfo, - cameraInfoIdentifier, - onCopy: (_) => CameraInfo.detached(), - ); - instanceManager.addHostCreatedInstance( - mockLiveZoomState, mockLiveZoomStateIdentifier, - onCopy: (_) => MockLiveZoomState()); - - when(mockApi.getZoomState(cameraInfoIdentifier)) - .thenReturn(mockLiveZoomStateIdentifier); - expect(await cameraInfo.getZoomState(), equals(mockLiveZoomState)); - - verify(mockApi.getZoomState(cameraInfoIdentifier)); - }); - - test('flutterApi create makes call to create expected instance type', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final CameraInfoFlutterApi flutterApi = CameraInfoFlutterApiImpl( - instanceManager: instanceManager, - ); - - flutterApi.create(0); - - expect( - instanceManager.getInstanceWithWeakReference(0), isA()); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart deleted file mode 100644 index 6699d63e688..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_info_test.mocks.dart +++ /dev/null @@ -1,156 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/camera_info_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; - -import 'package:camera_android_camerax/src/camera_state.dart' as _i4; -import 'package:camera_android_camerax/src/live_data.dart' as _i3; -import 'package:camera_android_camerax/src/observer.dart' as _i6; -import 'package:camera_android_camerax/src/zoom_state.dart' as _i7; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestCameraInfoHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestCameraInfoHostApi extends _i1.Mock - implements _i2.TestCameraInfoHostApi { - MockTestCameraInfoHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - int getSensorRotationDegrees(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getSensorRotationDegrees, - [identifier], - ), - returnValue: 0, - ) as int); - - @override - int getCameraState(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getCameraState, - [identifier], - ), - returnValue: 0, - ) as int); - - @override - int getExposureState(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getExposureState, - [identifier], - ), - returnValue: 0, - ) as int); - - @override - int getZoomState(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getZoomState, - [identifier], - ), - returnValue: 0, - ) as int); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [LiveData]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockLiveCameraState extends _i1.Mock - implements _i3.LiveData<_i4.CameraState> { - MockLiveCameraState() { - _i1.throwOnMissingStub(this); - } - - @override - _i5.Future observe(_i6.Observer<_i4.CameraState>? observer) => - (super.noSuchMethod( - Invocation.method( - #observe, - [observer], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future removeObservers() => (super.noSuchMethod( - Invocation.method( - #removeObservers, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); -} - -/// A class which mocks [LiveData]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockLiveZoomState extends _i1.Mock - implements _i3.LiveData<_i7.ZoomState> { - MockLiveZoomState() { - _i1.throwOnMissingStub(this); - } - - @override - _i5.Future observe(_i6.Observer<_i7.ZoomState>? observer) => - (super.noSuchMethod( - Invocation.method( - #observe, - [observer], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future removeObservers() => (super.noSuchMethod( - Invocation.method( - #removeObservers, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); -} diff --git a/packages/camera/camera_android_camerax/test/camera_selector_test.dart b/packages/camera/camera_android_camerax/test/camera_selector_test.dart deleted file mode 100644 index b5abd136c31..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_selector_test.dart +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera_info.dart'; -import 'package:camera_android_camerax/src/camera_selector.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'camera_selector_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestCameraSelectorHostApi, TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('CameraSelector', () { - tearDown(() => TestCameraSelectorHostApi.setup(null)); - - test('detachedCreateTest', () async { - final MockTestCameraSelectorHostApi mockApi = - MockTestCameraSelectorHostApi(); - TestCameraSelectorHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - CameraSelector.detached( - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create(argThat(isA()), null)); - }); - - test('createTestWithoutLensSpecified', () async { - final MockTestCameraSelectorHostApi mockApi = - MockTestCameraSelectorHostApi(); - TestCameraSelectorHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - CameraSelector( - instanceManager: instanceManager, - ); - - verify(mockApi.create(argThat(isA()), null)); - }); - - test('createTestWithLensSpecified', () async { - final MockTestCameraSelectorHostApi mockApi = - MockTestCameraSelectorHostApi(); - TestCameraSelectorHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - CameraSelector( - instanceManager: instanceManager, - lensFacing: CameraSelector.lensFacingBack); - - verify( - mockApi.create(argThat(isA()), CameraSelector.lensFacingBack)); - }); - - test('filterTest', () async { - final MockTestCameraSelectorHostApi mockApi = - MockTestCameraSelectorHostApi(); - TestCameraSelectorHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final CameraSelector cameraSelector = CameraSelector.detached( - instanceManager: instanceManager, - ); - const int cameraInfoId = 3; - final CameraInfo cameraInfo = - CameraInfo.detached(instanceManager: instanceManager); - - instanceManager.addHostCreatedInstance( - cameraSelector, - 0, - onCopy: (_) => CameraSelector.detached(), - ); - instanceManager.addHostCreatedInstance( - cameraInfo, - cameraInfoId, - onCopy: (_) => CameraInfo.detached(), - ); - - when(mockApi.filter(instanceManager.getIdentifier(cameraSelector), - [cameraInfoId])).thenReturn([cameraInfoId]); - expect(await cameraSelector.filter([cameraInfo]), - equals([cameraInfo])); - - verify(mockApi.filter(0, [cameraInfoId])); - }); - - test('flutterApiCreateTest', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final CameraSelectorFlutterApi flutterApi = CameraSelectorFlutterApiImpl( - instanceManager: instanceManager, - ); - - flutterApi.create(0, CameraSelector.lensFacingBack); - - expect(instanceManager.getInstanceWithWeakReference(0), - isA()); - expect( - (instanceManager.getInstanceWithWeakReference(0)! as CameraSelector) - .lensFacing, - equals(CameraSelector.lensFacingBack)); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/camera_selector_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera_selector_test.mocks.dart deleted file mode 100644 index 70d0eec28f3..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_selector_test.mocks.dart +++ /dev/null @@ -1,82 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/camera_selector_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestCameraSelectorHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestCameraSelectorHostApi extends _i1.Mock - implements _i2.TestCameraSelectorHostApi { - MockTestCameraSelectorHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - int? lensFacing, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - lensFacing, - ], - ), - returnValueForMissingStub: null, - ); - - @override - List filter( - int? identifier, - List? cameraInfoIds, - ) => - (super.noSuchMethod( - Invocation.method( - #filter, - [ - identifier, - cameraInfoIds, - ], - ), - returnValue: [], - ) as List); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/camera_state_error_test.dart b/packages/camera/camera_android_camerax/test/camera_state_error_test.dart deleted file mode 100644 index c78bca10cae..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_state_error_test.dart +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera_state_error.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; - -import 'camera_state_error_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('CameraStateError', () { - test( - 'FlutterAPI create makes call to create CameraStateError instance with expected identifier', - () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraStateErrorFlutterApiImpl api = CameraStateErrorFlutterApiImpl( - instanceManager: instanceManager, - ); - - const int instanceIdentifier = 0; - const int code = 23; - - api.create( - instanceIdentifier, - code, - ); - - // Test instance type. - final Object? instance = - instanceManager.getInstanceWithWeakReference(instanceIdentifier); - expect( - instance, - isA(), - ); - - // Test instance properties. - final CameraStateError cameraStateError = instance! as CameraStateError; - expect(cameraStateError.code, equals(code)); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/camera_state_error_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera_state_error_test.mocks.dart deleted file mode 100644 index 941d5ffd74a..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_state_error_test.mocks.dart +++ /dev/null @@ -1,40 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/camera_state_error_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/camera_state_test.dart b/packages/camera/camera_android_camerax/test/camera_state_test.dart deleted file mode 100644 index 644d4555e3c..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_state_test.dart +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera_state.dart'; -import 'package:camera_android_camerax/src/camera_state_error.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; - -import 'camera_state_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('CameraState', () { - test( - 'FlutterAPI create makes call to create CameraState instance with expected identifier', - () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final CameraStateFlutterApiImpl api = CameraStateFlutterApiImpl( - instanceManager: instanceManager, - ); - - // Create CameraStateError for CameraState instance. - const int code = 23; - final CameraStateError cameraStateError = CameraStateError.detached( - instanceManager: instanceManager, - code: code, - ); - final int cameraStateErrorIdentifier = - instanceManager.addDartCreatedInstance(cameraStateError, onCopy: (_) { - return CameraStateError.detached(code: code); - }); - - // Create CameraState. - const int instanceIdentifier = 46; - const CameraStateType cameraStateType = CameraStateType.closed; - api.create( - instanceIdentifier, - CameraStateTypeData(value: cameraStateType), - cameraStateErrorIdentifier, - ); - - // Test instance type. - final Object? instance = - instanceManager.getInstanceWithWeakReference(instanceIdentifier); - expect( - instanceManager.getInstanceWithWeakReference(instanceIdentifier), - isA(), - ); - - // Test instance properties. - final CameraState cameraState = instance! as CameraState; - expect(cameraState.type, equals(cameraStateType)); - expect(cameraState.error, equals(cameraStateError)); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/camera_state_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera_state_test.mocks.dart deleted file mode 100644 index 78223999a16..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_state_test.mocks.dart +++ /dev/null @@ -1,40 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/camera_state_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/camera_test.dart b/packages/camera/camera_android_camerax/test/camera_test.dart deleted file mode 100644 index 22d9dabd40d..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_test.dart +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera.dart'; -import 'package:camera_android_camerax/src/camera_control.dart'; -import 'package:camera_android_camerax/src/camera_info.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'camera_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestCameraHostApi, TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('Camera', () { - tearDown(() => TestCameraHostApi.setup(null)); - - test('getCameraInfo makes call to retrieve expected CameraInfo', () async { - final MockTestCameraHostApi mockApi = MockTestCameraHostApi(); - TestCameraHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Camera camera = Camera.detached( - instanceManager: instanceManager, - ); - const int cameraIdentifier = 24; - final CameraInfo cameraInfo = CameraInfo.detached(); - const int cameraInfoIdentifier = 88; - instanceManager.addHostCreatedInstance( - camera, - cameraIdentifier, - onCopy: (_) => Camera.detached(instanceManager: instanceManager), - ); - instanceManager.addHostCreatedInstance( - cameraInfo, - cameraInfoIdentifier, - onCopy: (_) => CameraInfo.detached(instanceManager: instanceManager), - ); - - when(mockApi.getCameraInfo(cameraIdentifier)) - .thenAnswer((_) => cameraInfoIdentifier); - - expect(await camera.getCameraInfo(), equals(cameraInfo)); - verify(mockApi.getCameraInfo(cameraIdentifier)); - }); - - test('getCameraControl makes call to retrieve expected CameraControl', - () async { - final MockTestCameraHostApi mockApi = MockTestCameraHostApi(); - TestCameraHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Camera camera = Camera.detached( - instanceManager: instanceManager, - ); - const int cameraIdentifier = 42; - final CameraControl cameraControl = CameraControl.detached(); - const int cameraControlIdentifier = 8; - instanceManager.addHostCreatedInstance( - camera, - cameraIdentifier, - onCopy: (_) => Camera.detached(instanceManager: instanceManager), - ); - instanceManager.addHostCreatedInstance( - cameraControl, - cameraControlIdentifier, - onCopy: (_) => CameraControl.detached(instanceManager: instanceManager), - ); - - when(mockApi.getCameraControl(cameraIdentifier)) - .thenAnswer((_) => cameraControlIdentifier); - - expect(await camera.getCameraControl(), equals(cameraControl)); - verify(mockApi.getCameraControl(cameraIdentifier)); - }); - - test('flutterApiCreate makes call to add instance to instance manager', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final CameraFlutterApiImpl flutterApi = CameraFlutterApiImpl( - instanceManager: instanceManager, - ); - - flutterApi.create(0); - - expect(instanceManager.getInstanceWithWeakReference(0), isA()); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/camera_test.mocks.dart b/packages/camera/camera_android_camerax/test/camera_test.mocks.dart deleted file mode 100644 index f1de6b97810..00000000000 --- a/packages/camera/camera_android_camerax/test/camera_test.mocks.dart +++ /dev/null @@ -1,67 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/camera_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestCameraHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestCameraHostApi extends _i1.Mock implements _i2.TestCameraHostApi { - MockTestCameraHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - int getCameraInfo(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getCameraInfo, - [identifier], - ), - returnValue: 0, - ) as int); - - @override - int getCameraControl(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getCameraControl, - [identifier], - ), - returnValue: 0, - ) as int); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/capture_request_options_test.dart b/packages/camera/camera_android_camerax/test/capture_request_options_test.dart deleted file mode 100644 index 5649151af92..00000000000 --- a/packages/camera/camera_android_camerax/test/capture_request_options_test.dart +++ /dev/null @@ -1,143 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/capture_request_options.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'capture_request_options_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks( - [TestCaptureRequestOptionsHostApi, TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('CaptureRequestOptions', () { - tearDown(() { - TestCaptureRequestOptionsHostApi.setup(null); - TestInstanceManagerHostApi.setup(null); - }); - - test('detached create does not make call on the Java side', () { - final MockTestCaptureRequestOptionsHostApi mockApi = - MockTestCaptureRequestOptionsHostApi(); - TestCaptureRequestOptionsHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final List<(CaptureRequestKeySupportedType, Object?)> options = - <(CaptureRequestKeySupportedType, Object?)>[ - (CaptureRequestKeySupportedType.controlAeLock, true), - ]; - - CaptureRequestOptions.detached( - requestedOptions: options, - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create( - argThat(isA()), - argThat(isA>()), - )); - }); - - test( - 'create makes call on the Java side as expected for suppported null capture request options', - () { - final MockTestCaptureRequestOptionsHostApi mockApi = - MockTestCaptureRequestOptionsHostApi(); - TestCaptureRequestOptionsHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final List<(CaptureRequestKeySupportedType key, Object? value)> - supportedOptionsForTesting = <( - CaptureRequestKeySupportedType key, - Object? value - )>[(CaptureRequestKeySupportedType.controlAeLock, null)]; - - final CaptureRequestOptions instance = CaptureRequestOptions( - requestedOptions: supportedOptionsForTesting, - instanceManager: instanceManager, - ); - - final VerificationResult verificationResult = verify(mockApi.create( - instanceManager.getIdentifier(instance), - captureAny, - )); - final Map captureRequestOptions = - verificationResult.captured.single as Map; - - expect(captureRequestOptions.length, - equals(supportedOptionsForTesting.length)); - for (final (CaptureRequestKeySupportedType key, Object? value) option - in supportedOptionsForTesting) { - final CaptureRequestKeySupportedType optionKey = option.$1; - expect(captureRequestOptions[optionKey.index], isNull); - } - }); - - test( - 'create makes call on the Java side as expected for suppported non-null capture request options', - () { - final MockTestCaptureRequestOptionsHostApi mockApi = - MockTestCaptureRequestOptionsHostApi(); - TestCaptureRequestOptionsHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final List<(CaptureRequestKeySupportedType key, Object? value)> - supportedOptionsForTesting = <( - CaptureRequestKeySupportedType key, - Object? value - )>[(CaptureRequestKeySupportedType.controlAeLock, false)]; - - final CaptureRequestOptions instance = CaptureRequestOptions( - requestedOptions: supportedOptionsForTesting, - instanceManager: instanceManager, - ); - - final VerificationResult verificationResult = verify(mockApi.create( - instanceManager.getIdentifier(instance), - captureAny, - )); - final Map? captureRequestOptions = - verificationResult.captured.single as Map?; - - expect(captureRequestOptions!.length, - equals(supportedOptionsForTesting.length)); - for (final (CaptureRequestKeySupportedType key, Object? value) option - in supportedOptionsForTesting) { - final CaptureRequestKeySupportedType optionKey = option.$1; - final Object? optionValue = option.$2; - - switch (optionKey) { - case CaptureRequestKeySupportedType.controlAeLock: - expect(captureRequestOptions[optionKey.index], - equals(optionValue! as bool)); - // This ignore statement is safe beause this will test when - // a new CaptureRequestKeySupportedType is being added, but the logic in - // in the CaptureRequestOptions class has not yet been updated. - // ignore: no_default_cases, unreachable_switch_default - default: - fail( - 'Option $option contains unrecognized CaptureRequestKeySupportedType key ${option.$1}'); - } - } - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/capture_request_options_test.mocks.dart b/packages/camera/camera_android_camerax/test/capture_request_options_test.mocks.dart deleted file mode 100644 index da704f37cb9..00000000000 --- a/packages/camera/camera_android_camerax/test/capture_request_options_test.mocks.dart +++ /dev/null @@ -1,66 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/capture_request_options_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestCaptureRequestOptionsHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestCaptureRequestOptionsHostApi extends _i1.Mock - implements _i2.TestCaptureRequestOptionsHostApi { - MockTestCaptureRequestOptionsHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - Map? options, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - options, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/device_orientation_manager_test.dart b/packages/camera/camera_android_camerax/test/device_orientation_manager_test.dart deleted file mode 100644 index 2555302f409..00000000000 --- a/packages/camera/camera_android_camerax/test/device_orientation_manager_test.dart +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/device_orientation_manager.dart'; -import 'package:camera_android_camerax/src/surface.dart'; -import 'package:camera_platform_interface/camera_platform_interface.dart' - show DeviceOrientationChangedEvent; -import 'package:flutter/services.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'device_orientation_manager_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks( - [TestInstanceManagerHostApi, TestDeviceOrientationManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('DeviceOrientationManager', () { - tearDown(() => TestProcessCameraProviderHostApi.setup(null)); - - test( - 'startListeningForDeviceOrientationChange makes request to start listening for new device orientations', - () async { - final MockTestDeviceOrientationManagerHostApi mockApi = - MockTestDeviceOrientationManagerHostApi(); - TestDeviceOrientationManagerHostApi.setup(mockApi); - - DeviceOrientationManager.startListeningForDeviceOrientationChange( - true, 90); - verify(mockApi.startListeningForDeviceOrientationChange(true, 90)); - }); - - test( - 'stopListeningForDeviceOrientationChange makes request to stop listening for new device orientations', - () async { - final MockTestDeviceOrientationManagerHostApi mockApi = - MockTestDeviceOrientationManagerHostApi(); - TestDeviceOrientationManagerHostApi.setup(mockApi); - - DeviceOrientationManager.stopListeningForDeviceOrientationChange(); - verify(mockApi.stopListeningForDeviceOrientationChange()); - }); - - test('getDefaultDisplayRotation retrieves expected rotation', () async { - final MockTestDeviceOrientationManagerHostApi mockApi = - MockTestDeviceOrientationManagerHostApi(); - TestDeviceOrientationManagerHostApi.setup(mockApi); - const int expectedRotation = Surface.rotation180; - - when(mockApi.getDefaultDisplayRotation()).thenReturn(expectedRotation); - - expect(await DeviceOrientationManager.getDefaultDisplayRotation(), - equals(expectedRotation)); - verify(mockApi.getDefaultDisplayRotation()); - }); - - test('getUiOrientation returns expected orientation', () async { - final MockTestDeviceOrientationManagerHostApi mockApi = - MockTestDeviceOrientationManagerHostApi(); - TestDeviceOrientationManagerHostApi.setup(mockApi); - const DeviceOrientation expectedOrientation = - DeviceOrientation.landscapeRight; - - when(mockApi.getUiOrientation()).thenReturn('LANDSCAPE_RIGHT'); - - expect(await DeviceOrientationManager.getUiOrientation(), - equals(expectedOrientation)); - verify(mockApi.getUiOrientation()); - }); - - test('onDeviceOrientationChanged adds new orientation to stream', () { - DeviceOrientationManager.deviceOrientationChangedStreamController.stream - .listen((DeviceOrientationChangedEvent event) { - expect(event.orientation, equals(DeviceOrientation.landscapeLeft)); - }); - DeviceOrientationManagerFlutterApiImpl() - .onDeviceOrientationChanged('LANDSCAPE_LEFT'); - }); - - test( - 'onDeviceOrientationChanged throws error if new orientation is invalid', - () { - expect( - () => DeviceOrientationManagerFlutterApiImpl() - .onDeviceOrientationChanged('FAKE_ORIENTATION'), - throwsA(isA().having( - (ArgumentError e) => e.message, - 'message', - '"FAKE_ORIENTATION" is not a valid DeviceOrientation value'))); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/device_orientation_manager_test.mocks.dart b/packages/camera/camera_android_camerax/test/device_orientation_manager_test.mocks.dart deleted file mode 100644 index 9d166bc39e1..00000000000 --- a/packages/camera/camera_android_camerax/test/device_orientation_manager_test.mocks.dart +++ /dev/null @@ -1,100 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/device_orientation_manager_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i3; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestDeviceOrientationManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestDeviceOrientationManagerHostApi extends _i1.Mock - implements _i2.TestDeviceOrientationManagerHostApi { - MockTestDeviceOrientationManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void startListeningForDeviceOrientationChange( - bool? isFrontFacing, - int? sensorOrientation, - ) => - super.noSuchMethod( - Invocation.method( - #startListeningForDeviceOrientationChange, - [ - isFrontFacing, - sensorOrientation, - ], - ), - returnValueForMissingStub: null, - ); - - @override - void stopListeningForDeviceOrientationChange() => super.noSuchMethod( - Invocation.method( - #stopListeningForDeviceOrientationChange, - [], - ), - returnValueForMissingStub: null, - ); - - @override - int getDefaultDisplayRotation() => (super.noSuchMethod( - Invocation.method( - #getDefaultDisplayRotation, - [], - ), - returnValue: 0, - ) as int); - - @override - String getUiOrientation() => (super.noSuchMethod( - Invocation.method( - #getUiOrientation, - [], - ), - returnValue: _i3.dummyValue( - this, - Invocation.method( - #getUiOrientation, - [], - ), - ), - ) as String); -} diff --git a/packages/camera/camera_android_camerax/test/exposure_state_test.dart b/packages/camera/camera_android_camerax/test/exposure_state_test.dart deleted file mode 100644 index fe1cf0a6261..00000000000 --- a/packages/camera/camera_android_camerax/test/exposure_state_test.dart +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/exposure_state.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; - -import 'exposure_state_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('ExposureState', () { - tearDown(() => TestCameraInfoHostApi.setup(null)); - - test('flutterApi create makes call to create expected ExposureState', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ExposureStateFlutterApiImpl flutterApi = - ExposureStateFlutterApiImpl( - instanceManager: instanceManager, - ); - const int exposureStateIdentifier = 68; - final ExposureCompensationRange exposureCompensationRange = - ExposureCompensationRange(minCompensation: 5, maxCompensation: 7); - const double exposureCompensationStep = 0.3; - - flutterApi.create(exposureStateIdentifier, exposureCompensationRange, - exposureCompensationStep); - - final ExposureState instance = - instanceManager.getInstanceWithWeakReference(exposureStateIdentifier)! - as ExposureState; - expect(instance.exposureCompensationRange, - equals(exposureCompensationRange)); - expect( - instance.exposureCompensationStep, equals(exposureCompensationStep)); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/exposure_state_test.mocks.dart b/packages/camera/camera_android_camerax/test/exposure_state_test.mocks.dart deleted file mode 100644 index df6f91f5578..00000000000 --- a/packages/camera/camera_android_camerax/test/exposure_state_test.mocks.dart +++ /dev/null @@ -1,40 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/exposure_state_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/fallback_strategy_test.dart b/packages/camera/camera_android_camerax/test/fallback_strategy_test.dart deleted file mode 100644 index f54e40df62d..00000000000 --- a/packages/camera/camera_android_camerax/test/fallback_strategy_test.dart +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/fallback_strategy.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'fallback_strategy_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestFallbackStrategyHostApi, TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - group('FallbackStrategy', () { - tearDown(() { - TestFallbackStrategyHostApi.setup(null); - TestInstanceManagerHostApi.setup(null); - }); - - test('detached constructor does not call create on the Java side', - () async { - final MockTestFallbackStrategyHostApi mockApi = - MockTestFallbackStrategyHostApi(); - TestFallbackStrategyHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - FallbackStrategy.detached( - quality: VideoQuality.UHD, - fallbackRule: VideoResolutionFallbackRule.higherQualityThan, - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create( - argThat(isA()), - argThat(isA()), - argThat(isA()), - )); - }); - - test('constructor calls create on the Java side', () { - final MockTestFallbackStrategyHostApi mockApi = - MockTestFallbackStrategyHostApi(); - TestFallbackStrategyHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const VideoQuality quality = VideoQuality.HD; - - const VideoResolutionFallbackRule fallbackRule = - VideoResolutionFallbackRule.lowerQualityThan; - - final FallbackStrategy instance = FallbackStrategy( - quality: quality, - fallbackRule: fallbackRule, - instanceManager: instanceManager, - ); - - verify(mockApi.create( - instanceManager.getIdentifier(instance), - quality, - fallbackRule, - )); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/fallback_strategy_test.mocks.dart b/packages/camera/camera_android_camerax/test/fallback_strategy_test.mocks.dart deleted file mode 100644 index eaa94632b2c..00000000000 --- a/packages/camera/camera_android_camerax/test/fallback_strategy_test.mocks.dart +++ /dev/null @@ -1,69 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/fallback_strategy_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i3; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestFallbackStrategyHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestFallbackStrategyHostApi extends _i1.Mock - implements _i2.TestFallbackStrategyHostApi { - MockTestFallbackStrategyHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - _i3.VideoQuality? quality, - _i3.VideoResolutionFallbackRule? fallbackRule, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - quality, - fallbackRule, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart b/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart deleted file mode 100644 index 8a7dcdc6c11..00000000000 --- a/packages/camera/camera_android_camerax/test/focus_metering_action_test.dart +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/focus_metering_action.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/metering_point.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'focus_metering_action_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - MeteringPoint, - TestFocusMeteringActionHostApi, - TestInstanceManagerHostApi -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('FocusMeteringAction', () { - tearDown(() => TestCameraHostApi.setup(null)); - - test('detached create does not call create on the Java side', () { - final MockTestFocusMeteringActionHostApi mockApi = - MockTestFocusMeteringActionHostApi(); - TestFocusMeteringActionHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - FocusMeteringAction.detached( - meteringPointInfos: <(MeteringPoint, int?)>[ - (MockMeteringPoint(), FocusMeteringAction.flagAwb) - ], - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create(argThat(isA()), argThat(isA>()), - argThat(isA()))); - }); - test('create calls create on the Java side', () { - final MockTestFocusMeteringActionHostApi mockApi = - MockTestFocusMeteringActionHostApi(); - TestFocusMeteringActionHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final MeteringPoint mockMeteringPoint1 = MockMeteringPoint(); - const int mockMeteringPoint1Mode = FocusMeteringAction.flagAe; - const int mockMeteringPoint1Id = 7; - final MeteringPoint mockMeteringPoint2 = MockMeteringPoint(); - const int mockMeteringPoint2Mode = FocusMeteringAction.flagAwb; - const int mockMeteringPoint2Id = 17; - final List<(MeteringPoint meteringPoint, int? meteringMode)> - meteringPointInfos = - <(MeteringPoint meteringPoint, int? meteringMode)>[ - (mockMeteringPoint1, mockMeteringPoint1Mode), - (mockMeteringPoint2, mockMeteringPoint2Mode) - ]; - const bool disableAutoCancel = true; - - instanceManager - .addHostCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id, - onCopy: (MeteringPoint original) { - return MockMeteringPoint(); - }); - instanceManager - .addHostCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id, - onCopy: (MeteringPoint original) { - return MockMeteringPoint(); - }); - - final FocusMeteringAction instance = FocusMeteringAction( - meteringPointInfos: meteringPointInfos, - disableAutoCancel: disableAutoCancel, - instanceManager: instanceManager, - ); - - final VerificationResult verificationResult = verify(mockApi.create( - argThat(equals(instanceManager.getIdentifier(instance))), - captureAny, - argThat(equals(disableAutoCancel)))); - final List captureMeteringPointInfos = - verificationResult.captured.single as List; - expect(captureMeteringPointInfos.length, equals(2)); - expect(captureMeteringPointInfos[0]!.meteringPointId, - equals(mockMeteringPoint1Id)); - expect( - captureMeteringPointInfos[0]!.meteringMode, mockMeteringPoint1Mode); - expect(captureMeteringPointInfos[1]!.meteringPointId, - equals(mockMeteringPoint2Id)); - expect( - captureMeteringPointInfos[1]!.meteringMode, mockMeteringPoint2Mode); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/focus_metering_action_test.mocks.dart b/packages/camera/camera_android_camerax/test/focus_metering_action_test.mocks.dart deleted file mode 100644 index 3b0e4c82407..00000000000 --- a/packages/camera/camera_android_camerax/test/focus_metering_action_test.mocks.dart +++ /dev/null @@ -1,112 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/focus_metering_action_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:camera_android_camerax/src/camera_info.dart' as _i2; -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i5; -import 'package:camera_android_camerax/src/metering_point.dart' as _i3; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i4; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakeCameraInfo_0 extends _i1.SmartFake implements _i2.CameraInfo { - _FakeCameraInfo_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [MeteringPoint]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockMeteringPoint extends _i1.Mock implements _i3.MeteringPoint { - MockMeteringPoint() { - _i1.throwOnMissingStub(this); - } - - @override - double get x => (super.noSuchMethod( - Invocation.getter(#x), - returnValue: 0.0, - ) as double); - - @override - double get y => (super.noSuchMethod( - Invocation.getter(#y), - returnValue: 0.0, - ) as double); - - @override - _i2.CameraInfo get cameraInfo => (super.noSuchMethod( - Invocation.getter(#cameraInfo), - returnValue: _FakeCameraInfo_0( - this, - Invocation.getter(#cameraInfo), - ), - ) as _i2.CameraInfo); -} - -/// A class which mocks [TestFocusMeteringActionHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestFocusMeteringActionHostApi extends _i1.Mock - implements _i4.TestFocusMeteringActionHostApi { - MockTestFocusMeteringActionHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - List<_i5.MeteringPointInfo?>? meteringPointInfos, - bool? disableAutoCancel, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - meteringPointInfos, - disableAutoCancel, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i4.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/focus_metering_result_test.dart b/packages/camera/camera_android_camerax/test/focus_metering_result_test.dart deleted file mode 100644 index 591a1c2d32b..00000000000 --- a/packages/camera/camera_android_camerax/test/focus_metering_result_test.dart +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/focus_metering_result.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/metering_point.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'focus_metering_result_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - MeteringPoint, - TestFocusMeteringResultHostApi, - TestInstanceManagerHostApi -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('FocusMeteringResult', () { - tearDown(() => TestCameraHostApi.setup(null)); - - test('isFocusSuccessful returns expected result', () async { - final MockTestFocusMeteringResultHostApi mockApi = - MockTestFocusMeteringResultHostApi(); - TestFocusMeteringResultHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final FocusMeteringResult focusMeteringResult = - FocusMeteringResult.detached( - instanceManager: instanceManager, - ); - const int focusMeteringResultIdentifier = 5; - - instanceManager.addHostCreatedInstance( - focusMeteringResult, - focusMeteringResultIdentifier, - onCopy: (_) => - FocusMeteringResult.detached(instanceManager: instanceManager), - ); - - when(mockApi.isFocusSuccessful(focusMeteringResultIdentifier)) - .thenAnswer((_) => false); - - expect(await focusMeteringResult.isFocusSuccessful(), isFalse); - verify(mockApi.isFocusSuccessful(focusMeteringResultIdentifier)); - }); - - test('flutterApiCreate makes call to add instance to instance manager', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final FocusMeteringResultFlutterApiImpl flutterApi = - FocusMeteringResultFlutterApiImpl( - instanceManager: instanceManager, - ); - const int focusMeteringResultIdentifier = 37; - - flutterApi.create(focusMeteringResultIdentifier); - - expect( - instanceManager - .getInstanceWithWeakReference(focusMeteringResultIdentifier), - isA()); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/focus_metering_result_test.mocks.dart b/packages/camera/camera_android_camerax/test/focus_metering_result_test.mocks.dart deleted file mode 100644 index be52b17bda4..00000000000 --- a/packages/camera/camera_android_camerax/test/focus_metering_result_test.mocks.dart +++ /dev/null @@ -1,102 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/focus_metering_result_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:camera_android_camerax/src/camera_info.dart' as _i2; -import 'package:camera_android_camerax/src/metering_point.dart' as _i3; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i4; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakeCameraInfo_0 extends _i1.SmartFake implements _i2.CameraInfo { - _FakeCameraInfo_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [MeteringPoint]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockMeteringPoint extends _i1.Mock implements _i3.MeteringPoint { - MockMeteringPoint() { - _i1.throwOnMissingStub(this); - } - - @override - double get x => (super.noSuchMethod( - Invocation.getter(#x), - returnValue: 0.0, - ) as double); - - @override - double get y => (super.noSuchMethod( - Invocation.getter(#y), - returnValue: 0.0, - ) as double); - - @override - _i2.CameraInfo get cameraInfo => (super.noSuchMethod( - Invocation.getter(#cameraInfo), - returnValue: _FakeCameraInfo_0( - this, - Invocation.getter(#cameraInfo), - ), - ) as _i2.CameraInfo); -} - -/// A class which mocks [TestFocusMeteringResultHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestFocusMeteringResultHostApi extends _i1.Mock - implements _i4.TestFocusMeteringResultHostApi { - MockTestFocusMeteringResultHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - bool isFocusSuccessful(int? identifier) => (super.noSuchMethod( - Invocation.method( - #isFocusSuccessful, - [identifier], - ), - returnValue: false, - ) as bool); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i4.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/image_analysis_test.dart b/packages/camera/camera_android_camerax/test/image_analysis_test.dart deleted file mode 100644 index df220357508..00000000000 --- a/packages/camera/camera_android_camerax/test/image_analysis_test.dart +++ /dev/null @@ -1,189 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/analyzer.dart'; -import 'package:camera_android_camerax/src/image_analysis.dart'; -import 'package:camera_android_camerax/src/image_proxy.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/resolution_selector.dart'; -import 'package:camera_android_camerax/src/surface.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'image_analysis_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - TestImageAnalysisHostApi, - TestInstanceManagerHostApi, - ResolutionSelector, -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('ImageAnalysis', () { - tearDown(() { - TestImageAnalysisHostApi.setup(null); - }); - - test('detached create does not call create on the Java side', () { - final MockTestImageAnalysisHostApi mockApi = - MockTestImageAnalysisHostApi(); - TestImageAnalysisHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - ImageAnalysis.detached( - initialTargetRotation: Surface.rotation270, - resolutionSelector: MockResolutionSelector(), - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create(argThat(isA()), argThat(isA()), - argThat(isA()))); - }); - test('create calls create on the Java side', () { - final MockTestImageAnalysisHostApi mockApi = - MockTestImageAnalysisHostApi(); - TestImageAnalysisHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const int targetRotation = Surface.rotation90; - final MockResolutionSelector mockResolutionSelector = - MockResolutionSelector(); - const int mockResolutionSelectorId = 24; - - instanceManager.addHostCreatedInstance( - mockResolutionSelector, mockResolutionSelectorId, - onCopy: (ResolutionSelector original) { - return MockResolutionSelector(); - }); - - final ImageAnalysis instance = ImageAnalysis( - initialTargetRotation: targetRotation, - resolutionSelector: mockResolutionSelector, - instanceManager: instanceManager, - ); - - verify(mockApi.create( - argThat(equals(instanceManager.getIdentifier(instance))), - argThat(equals(targetRotation)), - argThat(equals(mockResolutionSelectorId)))); - }); - - test( - 'setTargetRotation makes call to set target rotation for ImageAnalysis instance', - () async { - final MockTestImageAnalysisHostApi mockApi = - MockTestImageAnalysisHostApi(); - TestImageAnalysisHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - const int targetRotation = Surface.rotation180; - final ImageAnalysis imageAnalysis = ImageAnalysis.detached( - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - imageAnalysis, - 0, - onCopy: (_) => ImageAnalysis.detached(instanceManager: instanceManager), - ); - - await imageAnalysis.setTargetRotation(targetRotation); - - verify(mockApi.setTargetRotation( - instanceManager.getIdentifier(imageAnalysis), targetRotation)); - }); - - test('setAnalyzer makes call to set analyzer on ImageAnalysis instance', - () async { - final MockTestImageAnalysisHostApi mockApi = - MockTestImageAnalysisHostApi(); - TestImageAnalysisHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final ImageAnalysis instance = ImageAnalysis.detached( - resolutionSelector: MockResolutionSelector(), - instanceManager: instanceManager, - ); - const int instanceIdentifier = 0; - instanceManager.addHostCreatedInstance( - instance, - instanceIdentifier, - onCopy: (ImageAnalysis original) => ImageAnalysis.detached( - resolutionSelector: original.resolutionSelector, - instanceManager: instanceManager, - ), - ); - - final Analyzer analyzer = Analyzer.detached( - analyze: (ImageProxy imageProxy) async {}, - instanceManager: instanceManager, - ); - const int analyzerIdentifier = 10; - instanceManager.addHostCreatedInstance( - analyzer, - analyzerIdentifier, - onCopy: (_) => Analyzer.detached( - analyze: (ImageProxy imageProxy) async {}, - instanceManager: instanceManager, - ), - ); - - await instance.setAnalyzer( - analyzer, - ); - - verify(mockApi.setAnalyzer( - instanceIdentifier, - analyzerIdentifier, - )); - }); - - test('clearAnalyzer makes call to clear analyzer on ImageAnalysis instance', - () async { - final MockTestImageAnalysisHostApi mockApi = - MockTestImageAnalysisHostApi(); - TestImageAnalysisHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final ImageAnalysis instance = ImageAnalysis.detached( - resolutionSelector: MockResolutionSelector(), - instanceManager: instanceManager, - ); - const int instanceIdentifier = 0; - instanceManager.addHostCreatedInstance( - instance, - instanceIdentifier, - onCopy: (ImageAnalysis original) => ImageAnalysis.detached( - resolutionSelector: original.resolutionSelector, - instanceManager: instanceManager, - ), - ); - - await instance.clearAnalyzer(); - - verify(mockApi.clearAnalyzer( - instanceIdentifier, - )); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/image_analysis_test.mocks.dart b/packages/camera/camera_android_camerax/test/image_analysis_test.mocks.dart deleted file mode 100644 index 4ceb25d66b9..00000000000 --- a/packages/camera/camera_android_camerax/test/image_analysis_test.mocks.dart +++ /dev/null @@ -1,121 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/image_analysis_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:camera_android_camerax/src/resolution_selector.dart' as _i3; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestImageAnalysisHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestImageAnalysisHostApi extends _i1.Mock - implements _i2.TestImageAnalysisHostApi { - MockTestImageAnalysisHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - int? targetRotation, - int? resolutionSelectorId, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - targetRotation, - resolutionSelectorId, - ], - ), - returnValueForMissingStub: null, - ); - - @override - void setAnalyzer( - int? identifier, - int? analyzerIdentifier, - ) => - super.noSuchMethod( - Invocation.method( - #setAnalyzer, - [ - identifier, - analyzerIdentifier, - ], - ), - returnValueForMissingStub: null, - ); - - @override - void clearAnalyzer(int? identifier) => super.noSuchMethod( - Invocation.method( - #clearAnalyzer, - [identifier], - ), - returnValueForMissingStub: null, - ); - - @override - void setTargetRotation( - int? identifier, - int? rotation, - ) => - super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [ - identifier, - rotation, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [ResolutionSelector]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockResolutionSelector extends _i1.Mock - implements _i3.ResolutionSelector { - MockResolutionSelector() { - _i1.throwOnMissingStub(this); - } -} diff --git a/packages/camera/camera_android_camerax/test/image_capture_test.dart b/packages/camera/camera_android_camerax/test/image_capture_test.dart deleted file mode 100644 index 56cbd8fcc18..00000000000 --- a/packages/camera/camera_android_camerax/test/image_capture_test.dart +++ /dev/null @@ -1,154 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/image_capture.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/resolution_selector.dart'; -import 'package:camera_android_camerax/src/surface.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'image_capture_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - TestImageCaptureHostApi, - TestInstanceManagerHostApi, - ResolutionSelector -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('ImageCapture', () { - tearDown(() => TestImageCaptureHostApi.setup(null)); - - test('detached create does not call create on the Java side', () async { - final MockTestImageCaptureHostApi mockApi = MockTestImageCaptureHostApi(); - TestImageCaptureHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - ImageCapture.detached( - instanceManager: instanceManager, - initialTargetRotation: Surface.rotation180, - targetFlashMode: ImageCapture.flashModeOn, - resolutionSelector: MockResolutionSelector(), - ); - - verifyNever(mockApi.create(argThat(isA()), argThat(isA()), - argThat(isA()), argThat(isA()))); - }); - - test('create calls create on the Java side', () async { - final MockTestImageCaptureHostApi mockApi = MockTestImageCaptureHostApi(); - TestImageCaptureHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const int targetRotation = Surface.rotation270; - const int targetFlashMode = ImageCapture.flashModeAuto; - final MockResolutionSelector mockResolutionSelector = - MockResolutionSelector(); - const int mockResolutionSelectorId = 24; - - instanceManager.addHostCreatedInstance( - mockResolutionSelector, mockResolutionSelectorId, - onCopy: (ResolutionSelector original) { - return MockResolutionSelector(); - }); - - ImageCapture( - instanceManager: instanceManager, - initialTargetRotation: targetRotation, - targetFlashMode: targetFlashMode, - resolutionSelector: mockResolutionSelector, - ); - - verify(mockApi.create( - argThat(isA()), - argThat(equals(targetRotation)), - argThat(equals(targetFlashMode)), - argThat(equals(mockResolutionSelectorId)))); - }); - - test('setFlashMode makes call to set flash mode for ImageCapture instance', - () async { - final MockTestImageCaptureHostApi mockApi = MockTestImageCaptureHostApi(); - TestImageCaptureHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - const int flashMode = ImageCapture.flashModeOff; - final ImageCapture imageCapture = ImageCapture.detached( - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - imageCapture, - 0, - onCopy: (_) => ImageCapture.detached(instanceManager: instanceManager), - ); - - await imageCapture.setFlashMode(flashMode); - - verify(mockApi.setFlashMode( - instanceManager.getIdentifier(imageCapture), flashMode)); - }); - - test( - 'setTargetRotation makes call to set target rotation for ImageCapture instance', - () async { - final MockTestImageCaptureHostApi mockApi = MockTestImageCaptureHostApi(); - TestImageCaptureHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - const int targetRotation = Surface.rotation180; - final ImageCapture imageCapture = ImageCapture.detached( - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - imageCapture, - 0, - onCopy: (_) => ImageCapture.detached(instanceManager: instanceManager), - ); - - await imageCapture.setTargetRotation(targetRotation); - - verify(mockApi.setTargetRotation( - instanceManager.getIdentifier(imageCapture), targetRotation)); - }); - - test('takePicture makes call to capture still image', () async { - final MockTestImageCaptureHostApi mockApi = MockTestImageCaptureHostApi(); - TestImageCaptureHostApi.setup(mockApi); - - const String expectedPicturePath = 'test/path/to/picture'; - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ImageCapture imageCapture = ImageCapture.detached( - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - imageCapture, - 0, - onCopy: (_) => ImageCapture.detached(), - ); - - when(mockApi.takePicture(instanceManager.getIdentifier(imageCapture))) - .thenAnswer((_) async => expectedPicturePath); - expect(await imageCapture.takePicture(), equals(expectedPicturePath)); - verify(mockApi.takePicture(instanceManager.getIdentifier(imageCapture))); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/image_capture_test.mocks.dart b/packages/camera/camera_android_camerax/test/image_capture_test.mocks.dart deleted file mode 100644 index 353b55c6fe3..00000000000 --- a/packages/camera/camera_android_camerax/test/image_capture_test.mocks.dart +++ /dev/null @@ -1,132 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/image_capture_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i3; - -import 'package:camera_android_camerax/src/resolution_selector.dart' as _i5; -import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i4; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestImageCaptureHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestImageCaptureHostApi extends _i1.Mock - implements _i2.TestImageCaptureHostApi { - MockTestImageCaptureHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - int? targetRotation, - int? flashMode, - int? resolutionSelectorId, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - targetRotation, - flashMode, - resolutionSelectorId, - ], - ), - returnValueForMissingStub: null, - ); - - @override - void setFlashMode( - int? identifier, - int? flashMode, - ) => - super.noSuchMethod( - Invocation.method( - #setFlashMode, - [ - identifier, - flashMode, - ], - ), - returnValueForMissingStub: null, - ); - - @override - _i3.Future takePicture(int? identifier) => (super.noSuchMethod( - Invocation.method( - #takePicture, - [identifier], - ), - returnValue: _i3.Future.value(_i4.dummyValue( - this, - Invocation.method( - #takePicture, - [identifier], - ), - )), - ) as _i3.Future); - - @override - void setTargetRotation( - int? identifier, - int? rotation, - ) => - super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [ - identifier, - rotation, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [ResolutionSelector]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockResolutionSelector extends _i1.Mock - implements _i5.ResolutionSelector { - MockResolutionSelector() { - _i1.throwOnMissingStub(this); - } -} diff --git a/packages/camera/camera_android_camerax/test/image_proxy_test.dart b/packages/camera/camera_android_camerax/test/image_proxy_test.dart deleted file mode 100644 index a479412f840..00000000000 --- a/packages/camera/camera_android_camerax/test/image_proxy_test.dart +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:typed_data'; - -import 'package:camera_android_camerax/src/image_proxy.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/plane_proxy.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'image_proxy_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestImageProxyHostApi, TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('ImageProxy', () { - tearDown(() { - TestImageProxyHostApi.setup(null); - }); - - test('getPlanes', () async { - final MockTestImageProxyHostApi mockApi = MockTestImageProxyHostApi(); - TestImageProxyHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final ImageProxy instance = ImageProxy.detached( - instanceManager: instanceManager, format: 2, height: 7, width: 10); - const int instanceIdentifier = 0; - instanceManager.addHostCreatedInstance(instance, instanceIdentifier, - onCopy: (ImageProxy original) => ImageProxy.detached( - instanceManager: instanceManager, - format: original.format, - height: original.height, - width: original.width)); - final PlaneProxy planeProxy = PlaneProxy.detached( - instanceManager: instanceManager, - buffer: Uint8List(3), - pixelStride: 3, - rowStride: 20); - const int planeProxyIdentifier = 48; - instanceManager.addHostCreatedInstance(planeProxy, planeProxyIdentifier, - onCopy: (PlaneProxy original) => PlaneProxy.detached( - instanceManager: instanceManager, - buffer: original.buffer, - pixelStride: original.pixelStride, - rowStride: original.rowStride)); - - final List result = [planeProxyIdentifier]; - when(mockApi.getPlanes( - instanceIdentifier, - )).thenAnswer((_) { - return result; - }); - - final List planes = await instance.getPlanes(); - expect(planes[0], equals(planeProxy)); - - verify(mockApi.getPlanes( - instanceIdentifier, - )); - }); - - test('close', () async { - final MockTestImageProxyHostApi mockApi = MockTestImageProxyHostApi(); - TestImageProxyHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final ImageProxy instance = ImageProxy.detached( - instanceManager: instanceManager, format: 2, height: 7, width: 10); - const int instanceIdentifier = 0; - instanceManager.addHostCreatedInstance(instance, instanceIdentifier, - onCopy: (ImageProxy original) => ImageProxy.detached( - instanceManager: instanceManager, - format: original.format, - height: original.height, - width: original.width)); - - await instance.close(); - - verify(mockApi.close( - instanceIdentifier, - )); - }); - - test('FlutterAPI create', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final ImageProxyFlutterApiImpl api = ImageProxyFlutterApiImpl( - instanceManager: instanceManager, - ); - - const int instanceIdentifier = 0; - const int format = 9; - const int height = 55; - const int width = 11; - - api.create( - instanceIdentifier, - format, - height, - width, - ); - - final ImageProxy imageProxy = - instanceManager.getInstanceWithWeakReference(instanceIdentifier)!; - - expect(imageProxy.format, equals(format)); - expect(imageProxy.height, equals(height)); - expect(imageProxy.width, equals(width)); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/image_proxy_test.mocks.dart b/packages/camera/camera_android_camerax/test/image_proxy_test.mocks.dart deleted file mode 100644 index 5d56a26d1c4..00000000000 --- a/packages/camera/camera_android_camerax/test/image_proxy_test.mocks.dart +++ /dev/null @@ -1,68 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/image_proxy_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestImageProxyHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestImageProxyHostApi extends _i1.Mock - implements _i2.TestImageProxyHostApi { - MockTestImageProxyHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - List getPlanes(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getPlanes, - [identifier], - ), - returnValue: [], - ) as List); - - @override - void close(int? identifier) => super.noSuchMethod( - Invocation.method( - #close, - [identifier], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/instance_manager_test.dart b/packages/camera/camera_android_camerax/test/instance_manager_test.dart deleted file mode 100644 index 9562c41674a..00000000000 --- a/packages/camera/camera_android_camerax/test/instance_manager_test.dart +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:flutter_test/flutter_test.dart'; - -void main() { - group('InstanceManager', () { - test('addHostCreatedInstance', () { - final Object object = Object(); - - final InstanceManager instanceManager = - InstanceManager(onWeakReferenceRemoved: (_) {}); - - instanceManager.addHostCreatedInstance( - object, - 0, - onCopy: (_) => Object(), - ); - - expect(instanceManager.getIdentifier(object), 0); - expect( - instanceManager.getInstanceWithWeakReference(0), - object, - ); - }); - - test('addHostCreatedInstance prevents already used objects and ids', () { - final Object object = Object(); - - final InstanceManager instanceManager = - InstanceManager(onWeakReferenceRemoved: (_) {}); - - instanceManager.addHostCreatedInstance( - object, - 0, - onCopy: (_) => Object(), - ); - - expect( - () => instanceManager.addHostCreatedInstance( - object, - 0, - onCopy: (_) => Object(), - ), - throwsAssertionError, - ); - - expect( - () => instanceManager.addHostCreatedInstance( - Object(), - 0, - onCopy: (_) => Object(), - ), - throwsAssertionError, - ); - }); - - test('addDartCreatedInstance', () { - final Object object = Object(); - - final InstanceManager instanceManager = - InstanceManager(onWeakReferenceRemoved: (_) {}); - - instanceManager.addDartCreatedInstance( - object, - onCopy: (_) => Object(), - ); - - final int? instanceId = instanceManager.getIdentifier(object); - expect(instanceId, isNotNull); - expect( - instanceManager.getInstanceWithWeakReference(instanceId!), - object, - ); - }); - - test('removeWeakReference', () { - final Object object = Object(); - - int? weakInstanceId; - final InstanceManager instanceManager = - InstanceManager(onWeakReferenceRemoved: (int instanceId) { - weakInstanceId = instanceId; - }); - - instanceManager.addHostCreatedInstance( - object, - 0, - onCopy: (_) => Object(), - ); - - expect(instanceManager.removeWeakReference(object), 0); - expect( - instanceManager.getInstanceWithWeakReference(0), - isA(), - ); - expect(weakInstanceId, 0); - }); - - test('removeWeakReference removes only weak reference', () { - final Object object = Object(); - - final InstanceManager instanceManager = - InstanceManager(onWeakReferenceRemoved: (_) {}); - - instanceManager.addHostCreatedInstance( - object, - 0, - onCopy: (_) => Object(), - ); - - expect(instanceManager.removeWeakReference(object), 0); - final Object copy = instanceManager.getInstanceWithWeakReference( - 0, - )!; - expect(identical(object, copy), isFalse); - }); - - test('removeStrongReference', () { - final Object object = Object(); - - final InstanceManager instanceManager = - InstanceManager(onWeakReferenceRemoved: (_) {}); - - instanceManager.addHostCreatedInstance( - object, - 0, - onCopy: (_) => Object(), - ); - instanceManager.removeWeakReference(object); - expect(instanceManager.remove(0), isA()); - expect(instanceManager.containsIdentifier(0), isFalse); - }); - - test('removeStrongReference removes only strong reference', () { - final Object object = Object(); - - final InstanceManager instanceManager = - InstanceManager(onWeakReferenceRemoved: (_) {}); - - instanceManager.addHostCreatedInstance( - object, - 0, - onCopy: (_) => Object(), - ); - expect(instanceManager.remove(0), isA()); - expect( - instanceManager.getInstanceWithWeakReference(0), - object, - ); - }); - - test('getInstance can add a new weak reference', () { - final Object object = Object(); - - final InstanceManager instanceManager = - InstanceManager(onWeakReferenceRemoved: (_) {}); - - instanceManager.addHostCreatedInstance( - object, - 0, - onCopy: (_) => Object(), - ); - instanceManager.removeWeakReference(object); - - final Object newWeakCopy = instanceManager.getInstanceWithWeakReference( - 0, - )!; - expect(identical(object, newWeakCopy), isFalse); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/live_data_test.dart b/packages/camera/camera_android_camerax/test/live_data_test.dart deleted file mode 100644 index b760baac866..00000000000 --- a/packages/camera/camera_android_camerax/test/live_data_test.dart +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera_state.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/live_data.dart'; -import 'package:camera_android_camerax/src/observer.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'live_data_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestLiveDataHostApi, TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('LiveData', () { - tearDown(() { - TestLiveDataHostApi.setup(null); - }); - - test('observe makes call to add observer to LiveData instance', () async { - final MockTestLiveDataHostApi mockApi = MockTestLiveDataHostApi(); - TestLiveDataHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final LiveData instance = LiveData.detached( - instanceManager: instanceManager, - ); - const int instanceIdentifier = 0; - instanceManager.addHostCreatedInstance( - instance, - instanceIdentifier, - onCopy: (LiveData original) => LiveData.detached( - instanceManager: instanceManager, - ), - ); - - final Observer observer = Observer.detached( - instanceManager: instanceManager, - onChanged: (Object value) {}, - ); - const int observerIdentifier = 20; - instanceManager.addHostCreatedInstance( - observer, - observerIdentifier, - onCopy: (_) => Observer.detached( - instanceManager: instanceManager, - onChanged: (Object value) {}, - ), - ); - - await instance.observe( - observer, - ); - - verify(mockApi.observe( - instanceIdentifier, - observerIdentifier, - )); - }); - - test( - 'removeObservers makes call to remove observers from LiveData instance', - () async { - final MockTestLiveDataHostApi mockApi = MockTestLiveDataHostApi(); - TestLiveDataHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final LiveData instance = LiveData.detached( - instanceManager: instanceManager, - ); - const int instanceIdentifier = 0; - instanceManager.addHostCreatedInstance( - instance, - instanceIdentifier, - onCopy: (LiveData original) => LiveData.detached( - instanceManager: instanceManager, - ), - ); - - await instance.removeObservers(); - - verify(mockApi.removeObservers( - instanceIdentifier, - )); - }); - - test('getValue returns expected value', () async { - final MockTestLiveDataHostApi mockApi = MockTestLiveDataHostApi(); - TestLiveDataHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final LiveData instance = LiveData.detached( - instanceManager: instanceManager, - ); - final CameraState testCameraState = - CameraState.detached(type: CameraStateType.closed); - const int instanceIdentifier = 0; - const int testCameraStateIdentifier = 22; - instanceManager.addHostCreatedInstance( - instance, - instanceIdentifier, - onCopy: (LiveData original) => - LiveData.detached( - instanceManager: instanceManager, - ), - ); - instanceManager.addHostCreatedInstance( - testCameraState, - testCameraStateIdentifier, - onCopy: (CameraState original) => CameraState.detached( - type: original.type, instanceManager: instanceManager), - ); - - when(mockApi.getValue(instanceIdentifier, any)) - .thenReturn(testCameraStateIdentifier); - - expect(await instance.getValue(), equals(testCameraState)); - }); - - test( - 'FlutterAPI create makes call to create LiveData instance with expected identifier', - () async { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final LiveDataFlutterApiImpl api = LiveDataFlutterApiImpl( - instanceManager: instanceManager, - ); - - const int instanceIdentifier = 0; - - api.create( - instanceIdentifier, - LiveDataSupportedTypeData(value: LiveDataSupportedType.cameraState), - ); - - expect( - instanceManager.getInstanceWithWeakReference(instanceIdentifier), - isA>(), - ); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/live_data_test.mocks.dart b/packages/camera/camera_android_camerax/test/live_data_test.mocks.dart deleted file mode 100644 index 7a331a07503..00000000000 --- a/packages/camera/camera_android_camerax/test/live_data_test.mocks.dart +++ /dev/null @@ -1,89 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/live_data_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i3; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestLiveDataHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestLiveDataHostApi extends _i1.Mock - implements _i2.TestLiveDataHostApi { - MockTestLiveDataHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void observe( - int? identifier, - int? observerIdentifier, - ) => - super.noSuchMethod( - Invocation.method( - #observe, - [ - identifier, - observerIdentifier, - ], - ), - returnValueForMissingStub: null, - ); - - @override - void removeObservers(int? identifier) => super.noSuchMethod( - Invocation.method( - #removeObservers, - [identifier], - ), - returnValueForMissingStub: null, - ); - - @override - int? getValue( - int? identifier, - _i3.LiveDataSupportedTypeData? type, - ) => - (super.noSuchMethod(Invocation.method( - #getValue, - [ - identifier, - type, - ], - )) as int?); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/metering_point_test.dart b/packages/camera/camera_android_camerax/test/metering_point_test.dart deleted file mode 100644 index 5aa92164377..00000000000 --- a/packages/camera/camera_android_camerax/test/metering_point_test.dart +++ /dev/null @@ -1,94 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera_info.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/metering_point.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'metering_point_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks( - [TestInstanceManagerHostApi, TestMeteringPointHostApi, CameraInfo]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('MeteringPoint', () { - tearDown(() => TestMeteringPointHostApi.setup(null)); - - test('detached create does not call create on the Java side', () async { - final MockTestMeteringPointHostApi mockApi = - MockTestMeteringPointHostApi(); - TestMeteringPointHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - MeteringPoint.detached( - x: 0, - y: 0.3, - size: 4, - cameraInfo: MockCameraInfo(), - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create(argThat(isA()), argThat(isA()), - argThat(isA()), argThat(isA()), argThat(isA()))); - }); - - test('create calls create on the Java side', () async { - final MockTestMeteringPointHostApi mockApi = - MockTestMeteringPointHostApi(); - TestMeteringPointHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const double x = 0.5; - const double y = 0.6; - const double size = 3; - final CameraInfo mockCameraInfo = MockCameraInfo(); - const int mockCameraInfoId = 4; - - instanceManager.addHostCreatedInstance(mockCameraInfo, mockCameraInfoId, - onCopy: (CameraInfo original) => MockCameraInfo()); - - MeteringPoint( - x: x, - y: y, - size: size, - cameraInfo: mockCameraInfo, - instanceManager: instanceManager, - ); - - verify(mockApi.create( - argThat(isA()), - x, - y, - size, - mockCameraInfoId, - )); - }); - - test('getDefaultPointSize returns expected size', () async { - final MockTestMeteringPointHostApi mockApi = - MockTestMeteringPointHostApi(); - TestMeteringPointHostApi.setup(mockApi); - - const double defaultPointSize = 6; - when(mockApi.getDefaultPointSize()).thenAnswer((_) => defaultPointSize); - - expect( - await MeteringPoint.getDefaultPointSize(), equals(defaultPointSize)); - verify(mockApi.getDefaultPointSize()); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/metering_point_test.mocks.dart b/packages/camera/camera_android_camerax/test/metering_point_test.mocks.dart deleted file mode 100644 index e7a3d9fadb1..00000000000 --- a/packages/camera/camera_android_camerax/test/metering_point_test.mocks.dart +++ /dev/null @@ -1,176 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/metering_point_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i6; - -import 'package:camera_android_camerax/src/camera_info.dart' as _i5; -import 'package:camera_android_camerax/src/camera_state.dart' as _i7; -import 'package:camera_android_camerax/src/exposure_state.dart' as _i3; -import 'package:camera_android_camerax/src/live_data.dart' as _i2; -import 'package:camera_android_camerax/src/zoom_state.dart' as _i8; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i4; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakeLiveData_0 extends _i1.SmartFake - implements _i2.LiveData { - _FakeLiveData_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -class _FakeExposureState_1 extends _i1.SmartFake implements _i3.ExposureState { - _FakeExposureState_1( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i4.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestMeteringPointHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestMeteringPointHostApi extends _i1.Mock - implements _i4.TestMeteringPointHostApi { - MockTestMeteringPointHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - double? x, - double? y, - double? size, - int? cameraInfoId, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - x, - y, - size, - cameraInfoId, - ], - ), - returnValueForMissingStub: null, - ); - - @override - double getDefaultPointSize() => (super.noSuchMethod( - Invocation.method( - #getDefaultPointSize, - [], - ), - returnValue: 0.0, - ) as double); -} - -/// A class which mocks [CameraInfo]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCameraInfo extends _i1.Mock implements _i5.CameraInfo { - MockCameraInfo() { - _i1.throwOnMissingStub(this); - } - - @override - _i6.Future getSensorRotationDegrees() => (super.noSuchMethod( - Invocation.method( - #getSensorRotationDegrees, - [], - ), - returnValue: _i6.Future.value(0), - ) as _i6.Future); - - @override - _i6.Future<_i2.LiveData<_i7.CameraState>> getCameraState() => - (super.noSuchMethod( - Invocation.method( - #getCameraState, - [], - ), - returnValue: _i6.Future<_i2.LiveData<_i7.CameraState>>.value( - _FakeLiveData_0<_i7.CameraState>( - this, - Invocation.method( - #getCameraState, - [], - ), - )), - ) as _i6.Future<_i2.LiveData<_i7.CameraState>>); - - @override - _i6.Future<_i3.ExposureState> getExposureState() => (super.noSuchMethod( - Invocation.method( - #getExposureState, - [], - ), - returnValue: _i6.Future<_i3.ExposureState>.value(_FakeExposureState_1( - this, - Invocation.method( - #getExposureState, - [], - ), - )), - ) as _i6.Future<_i3.ExposureState>); - - @override - _i6.Future<_i2.LiveData<_i8.ZoomState>> getZoomState() => (super.noSuchMethod( - Invocation.method( - #getZoomState, - [], - ), - returnValue: _i6.Future<_i2.LiveData<_i8.ZoomState>>.value( - _FakeLiveData_0<_i8.ZoomState>( - this, - Invocation.method( - #getZoomState, - [], - ), - )), - ) as _i6.Future<_i2.LiveData<_i8.ZoomState>>); -} diff --git a/packages/camera/camera_android_camerax/test/observer_test.dart b/packages/camera/camera_android_camerax/test/observer_test.dart deleted file mode 100644 index b0ee0380935..00000000000 --- a/packages/camera/camera_android_camerax/test/observer_test.dart +++ /dev/null @@ -1,114 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera_state.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/observer.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'observer_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestObserverHostApi, TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('Observer', () { - tearDown(() { - TestObserverHostApi.setup(null); - }); - - test('HostApi create makes call to create Observer instance', () { - final MockTestObserverHostApi mockApi = MockTestObserverHostApi(); - TestObserverHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Observer instance = Observer( - instanceManager: instanceManager, - onChanged: (Object value) {}, - ); - - verify(mockApi.create( - instanceManager.getIdentifier(instance), - )); - }); - - test( - 'HostAPI create makes Observer instance that throws assertion error if onChanged receives unexpected parameter type', - () { - final MockTestObserverHostApi mockApi = MockTestObserverHostApi(); - TestObserverHostApi.setup(mockApi); - - final Observer cameraStateObserver = - Observer.detached(onChanged: (Object value) {}); - - expect( - () => cameraStateObserver.onChanged( - CameraState.detached(type: CameraStateType.pendingOpen)), - throwsAssertionError); - }); - - test( - 'FlutterAPI onChanged makes call with expected parameter to Observer instance onChanged callback', - () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const int instanceIdentifier = 0; - late final Object? callbackParameter; - final Observer instance = Observer.detached( - onChanged: (Object value) { - callbackParameter = value; - }, - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - instance, - instanceIdentifier, - onCopy: (Observer original) => - Observer.detached( - onChanged: original.onChanged, - instanceManager: instanceManager, - ), - ); - - final ObserverFlutterApiImpl flutterApi = ObserverFlutterApiImpl( - instanceManager: instanceManager, - ); - - const CameraStateType cameraStateType = CameraStateType.closed; - - final CameraState value = CameraState.detached( - instanceManager: instanceManager, - type: cameraStateType, - ); - const int valueIdentifier = 11; - instanceManager.addHostCreatedInstance( - value, - valueIdentifier, - onCopy: (_) => CameraState.detached( - instanceManager: instanceManager, - type: cameraStateType, - ), - ); - - flutterApi.onChanged( - instanceIdentifier, - valueIdentifier, - ); - - expect(callbackParameter, value); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/observer_test.mocks.dart b/packages/camera/camera_android_camerax/test/observer_test.mocks.dart deleted file mode 100644 index 5631ae84d01..00000000000 --- a/packages/camera/camera_android_camerax/test/observer_test.mocks.dart +++ /dev/null @@ -1,59 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/observer_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestObserverHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestObserverHostApi extends _i1.Mock - implements _i2.TestObserverHostApi { - MockTestObserverHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create(int? identifier) => super.noSuchMethod( - Invocation.method( - #create, - [identifier], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/pending_recording_test.dart b/packages/camera/camera_android_camerax/test/pending_recording_test.dart deleted file mode 100644 index 8957979cdd8..00000000000 --- a/packages/camera/camera_android_camerax/test/pending_recording_test.dart +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/pending_recording.dart'; -import 'package:camera_android_camerax/src/recording.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'pending_recording_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks( - [TestPendingRecordingHostApi, TestInstanceManagerHostApi, Recording]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - test('start calls start on the Java side', () async { - final MockTestPendingRecordingHostApi mockApi = - MockTestPendingRecordingHostApi(); - TestPendingRecordingHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final PendingRecording pendingRecording = - PendingRecording.detached(instanceManager: instanceManager); - const int pendingRecordingId = 2; - instanceManager.addHostCreatedInstance(pendingRecording, pendingRecordingId, - onCopy: (_) => - PendingRecording.detached(instanceManager: instanceManager)); - - final Recording mockRecording = MockRecording(); - const int mockRecordingId = 3; - instanceManager.addHostCreatedInstance(mockRecording, mockRecordingId, - onCopy: (_) => Recording.detached(instanceManager: instanceManager)); - - when(mockApi.start(pendingRecordingId)).thenReturn(mockRecordingId); - expect(await pendingRecording.start(), mockRecording); - verify(mockApi.start(pendingRecordingId)); - }); - - test('flutterApiCreateTest', () async { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final PendingRecordingFlutterApi flutterApi = - PendingRecordingFlutterApiImpl( - instanceManager: instanceManager, - ); - - flutterApi.create(0); - - expect(instanceManager.getInstanceWithWeakReference(0), - isA()); - }); -} diff --git a/packages/camera/camera_android_camerax/test/pending_recording_test.mocks.dart b/packages/camera/camera_android_camerax/test/pending_recording_test.mocks.dart deleted file mode 100644 index 99a982c2dea..00000000000 --- a/packages/camera/camera_android_camerax/test/pending_recording_test.mocks.dart +++ /dev/null @@ -1,112 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/pending_recording_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i4; - -import 'package:camera_android_camerax/src/recording.dart' as _i3; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestPendingRecordingHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestPendingRecordingHostApi extends _i1.Mock - implements _i2.TestPendingRecordingHostApi { - MockTestPendingRecordingHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - int start(int? identifier) => (super.noSuchMethod( - Invocation.method( - #start, - [identifier], - ), - returnValue: 0, - ) as int); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [Recording]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockRecording extends _i1.Mock implements _i3.Recording { - MockRecording() { - _i1.throwOnMissingStub(this); - } - - @override - _i4.Future close() => (super.noSuchMethod( - Invocation.method( - #close, - [], - ), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), - ) as _i4.Future); - - @override - _i4.Future pause() => (super.noSuchMethod( - Invocation.method( - #pause, - [], - ), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), - ) as _i4.Future); - - @override - _i4.Future resume() => (super.noSuchMethod( - Invocation.method( - #resume, - [], - ), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), - ) as _i4.Future); - - @override - _i4.Future stop() => (super.noSuchMethod( - Invocation.method( - #stop, - [], - ), - returnValue: _i4.Future.value(), - returnValueForMissingStub: _i4.Future.value(), - ) as _i4.Future); -} diff --git a/packages/camera/camera_android_camerax/test/plane_proxy_test.dart b/packages/camera/camera_android_camerax/test/plane_proxy_test.dart deleted file mode 100644 index acfb2c9fb90..00000000000 --- a/packages/camera/camera_android_camerax/test/plane_proxy_test.dart +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:typed_data'; - -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/plane_proxy.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; - -import 'plane_proxy_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('PlaneProxy', () { - test('FlutterAPI create', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final PlaneProxyFlutterApiImpl api = PlaneProxyFlutterApiImpl( - instanceManager: instanceManager, - ); - - const int instanceIdentifier = 0; - final Uint8List buffer = Uint8List(1); - const int pixelStride = 3; - const int rowStride = 6; - - api.create(instanceIdentifier, buffer, pixelStride, rowStride); - - final PlaneProxy planeProxy = - instanceManager.getInstanceWithWeakReference(instanceIdentifier)!; - - expect(planeProxy.buffer, equals(buffer)); - expect(planeProxy.pixelStride, equals(pixelStride)); - expect(planeProxy.rowStride, equals(rowStride)); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/plane_proxy_test.mocks.dart b/packages/camera/camera_android_camerax/test/plane_proxy_test.mocks.dart deleted file mode 100644 index da1525bfc26..00000000000 --- a/packages/camera/camera_android_camerax/test/plane_proxy_test.mocks.dart +++ /dev/null @@ -1,40 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/plane_proxy_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/preview_test.dart b/packages/camera/camera_android_camerax/test/preview_test.dart deleted file mode 100644 index b3cbc257b0c..00000000000 --- a/packages/camera/camera_android_camerax/test/preview_test.dart +++ /dev/null @@ -1,174 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/preview.dart'; -import 'package:camera_android_camerax/src/resolution_selector.dart'; -import 'package:camera_android_camerax/src/surface.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'preview_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks( - [TestInstanceManagerHostApi, TestPreviewHostApi, ResolutionSelector]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('Preview', () { - tearDown(() => TestPreviewHostApi.setup(null)); - - test('detached create does not call create on the Java side', () async { - final MockTestPreviewHostApi mockApi = MockTestPreviewHostApi(); - TestPreviewHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - Preview.detached( - instanceManager: instanceManager, - initialTargetRotation: Surface.rotation90, - resolutionSelector: MockResolutionSelector(), - ); - - verifyNever(mockApi.create(argThat(isA()), argThat(isA()), - argThat(isA()))); - }); - - test('create calls create on the Java side', () async { - final MockTestPreviewHostApi mockApi = MockTestPreviewHostApi(); - TestPreviewHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - const int targetRotation = Surface.rotation90; - final MockResolutionSelector mockResolutionSelector = - MockResolutionSelector(); - const int mockResolutionSelectorId = 24; - - instanceManager.addHostCreatedInstance( - mockResolutionSelector, mockResolutionSelectorId, - onCopy: (ResolutionSelector original) { - return MockResolutionSelector(); - }); - - Preview( - instanceManager: instanceManager, - initialTargetRotation: targetRotation, - resolutionSelector: mockResolutionSelector, - ); - - verify(mockApi.create( - argThat(isA()), - argThat(equals(targetRotation)), - argThat(equals(mockResolutionSelectorId)))); - }); - - test( - 'setTargetRotation makes call to set target rotation for Preview instance', - () async { - final MockTestPreviewHostApi mockApi = MockTestPreviewHostApi(); - TestPreviewHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - const int targetRotation = Surface.rotation180; - final Preview preview = Preview.detached( - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - preview, - 0, - onCopy: (_) => Preview.detached(instanceManager: instanceManager), - ); - - await preview.setTargetRotation(targetRotation); - - verify(mockApi.setTargetRotation( - instanceManager.getIdentifier(preview), targetRotation)); - }); - - test( - 'setSurfaceProvider makes call to set surface provider for preview instance', - () async { - final MockTestPreviewHostApi mockApi = MockTestPreviewHostApi(); - TestPreviewHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - const int textureId = 8; - final Preview preview = Preview.detached( - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - preview, - 0, - onCopy: (_) => Preview.detached(), - ); - - when(mockApi.setSurfaceProvider(instanceManager.getIdentifier(preview))) - .thenReturn(textureId); - expect(await preview.setSurfaceProvider(), equals(textureId)); - - verify( - mockApi.setSurfaceProvider(instanceManager.getIdentifier(preview))); - }); - - test( - 'releaseFlutterSurfaceTexture makes call to release flutter surface texture entry', - () async { - final MockTestPreviewHostApi mockApi = MockTestPreviewHostApi(); - TestPreviewHostApi.setup(mockApi); - - final Preview preview = Preview.detached(); - - preview.releaseFlutterSurfaceTexture(); - - verify(mockApi.releaseFlutterSurfaceTexture()); - }); - - test( - 'getResolutionInfo makes call to get resolution information for preview instance', - () async { - final MockTestPreviewHostApi mockApi = MockTestPreviewHostApi(); - TestPreviewHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final Preview preview = Preview.detached( - instanceManager: instanceManager, - ); - const int resolutionWidth = 10; - const int resolutionHeight = 60; - final ResolutionInfo testResolutionInfo = - ResolutionInfo(width: resolutionWidth, height: resolutionHeight); - - instanceManager.addHostCreatedInstance( - preview, - 0, - onCopy: (_) => Preview.detached(), - ); - - when(mockApi.getResolutionInfo(instanceManager.getIdentifier(preview))) - .thenReturn(testResolutionInfo); - - final ResolutionInfo previewResolutionInfo = - await preview.getResolutionInfo(); - expect(previewResolutionInfo.width, equals(resolutionWidth)); - expect(previewResolutionInfo.height, equals(resolutionHeight)); - - verify(mockApi.getResolutionInfo(instanceManager.getIdentifier(preview))); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/preview_test.mocks.dart b/packages/camera/camera_android_camerax/test/preview_test.mocks.dart deleted file mode 100644 index 8976a31245d..00000000000 --- a/packages/camera/camera_android_camerax/test/preview_test.mocks.dart +++ /dev/null @@ -1,141 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/preview_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i2; -import 'package:camera_android_camerax/src/resolution_selector.dart' as _i4; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i3; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakeResolutionInfo_0 extends _i1.SmartFake - implements _i2.ResolutionInfo { - _FakeResolutionInfo_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i3.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestPreviewHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestPreviewHostApi extends _i1.Mock - implements _i3.TestPreviewHostApi { - MockTestPreviewHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - int? rotation, - int? resolutionSelectorId, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - rotation, - resolutionSelectorId, - ], - ), - returnValueForMissingStub: null, - ); - - @override - int setSurfaceProvider(int? identifier) => (super.noSuchMethod( - Invocation.method( - #setSurfaceProvider, - [identifier], - ), - returnValue: 0, - ) as int); - - @override - void releaseFlutterSurfaceTexture() => super.noSuchMethod( - Invocation.method( - #releaseFlutterSurfaceTexture, - [], - ), - returnValueForMissingStub: null, - ); - - @override - _i2.ResolutionInfo getResolutionInfo(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getResolutionInfo, - [identifier], - ), - returnValue: _FakeResolutionInfo_0( - this, - Invocation.method( - #getResolutionInfo, - [identifier], - ), - ), - ) as _i2.ResolutionInfo); - - @override - void setTargetRotation( - int? identifier, - int? rotation, - ) => - super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [ - identifier, - rotation, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [ResolutionSelector]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockResolutionSelector extends _i1.Mock - implements _i4.ResolutionSelector { - MockResolutionSelector() { - _i1.throwOnMissingStub(this); - } -} diff --git a/packages/camera/camera_android_camerax/test/process_camera_provider_test.dart b/packages/camera/camera_android_camerax/test/process_camera_provider_test.dart deleted file mode 100644 index a497956da5f..00000000000 --- a/packages/camera/camera_android_camerax/test/process_camera_provider_test.dart +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera.dart'; -import 'package:camera_android_camerax/src/camera_info.dart'; -import 'package:camera_android_camerax/src/camera_selector.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/process_camera_provider.dart'; -import 'package:camera_android_camerax/src/use_case.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'process_camera_provider_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks( - [TestInstanceManagerHostApi, TestProcessCameraProviderHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('ProcessCameraProvider', () { - tearDown(() => TestProcessCameraProviderHostApi.setup(null)); - - test('getInstanceTest', () async { - final MockTestProcessCameraProviderHostApi mockApi = - MockTestProcessCameraProviderHostApi(); - TestProcessCameraProviderHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ProcessCameraProvider processCameraProvider = - ProcessCameraProvider.detached( - instanceManager: instanceManager, - ); - - instanceManager.addHostCreatedInstance( - processCameraProvider, - 0, - onCopy: (_) => ProcessCameraProvider.detached(), - ); - - when(mockApi.getInstance()).thenAnswer((_) async => 0); - expect( - await ProcessCameraProvider.getInstance( - instanceManager: instanceManager), - equals(processCameraProvider)); - verify(mockApi.getInstance()); - }); - - test('getAvailableCameraInfosTest', () async { - final MockTestProcessCameraProviderHostApi mockApi = - MockTestProcessCameraProviderHostApi(); - TestProcessCameraProviderHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ProcessCameraProvider processCameraProvider = - ProcessCameraProvider.detached( - instanceManager: instanceManager, - ); - - instanceManager.addHostCreatedInstance( - processCameraProvider, - 0, - onCopy: (_) => ProcessCameraProvider.detached(), - ); - final CameraInfo fakeAvailableCameraInfo = - CameraInfo.detached(instanceManager: instanceManager); - instanceManager.addHostCreatedInstance( - fakeAvailableCameraInfo, - 1, - onCopy: (_) => CameraInfo.detached(), - ); - - when(mockApi.getAvailableCameraInfos(0)).thenReturn([1]); - expect(await processCameraProvider.getAvailableCameraInfos(), - equals([fakeAvailableCameraInfo])); - verify(mockApi.getAvailableCameraInfos(0)); - }); - - test('bindToLifecycleTest', () async { - final MockTestProcessCameraProviderHostApi mockApi = - MockTestProcessCameraProviderHostApi(); - TestProcessCameraProviderHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ProcessCameraProvider processCameraProvider = - ProcessCameraProvider.detached( - instanceManager: instanceManager, - ); - final CameraSelector fakeCameraSelector = - CameraSelector.detached(instanceManager: instanceManager); - final UseCase fakeUseCase = - UseCase.detached(instanceManager: instanceManager); - final Camera fakeCamera = - Camera.detached(instanceManager: instanceManager); - - instanceManager.addHostCreatedInstance( - processCameraProvider, - 0, - onCopy: (_) => ProcessCameraProvider.detached(), - ); - instanceManager.addHostCreatedInstance( - fakeCameraSelector, - 1, - onCopy: (_) => CameraSelector.detached(), - ); - instanceManager.addHostCreatedInstance( - fakeUseCase, - 2, - onCopy: (_) => UseCase.detached(), - ); - instanceManager.addHostCreatedInstance( - fakeCamera, - 3, - onCopy: (_) => Camera.detached(), - ); - - when(mockApi.bindToLifecycle(0, 1, [2])).thenReturn(3); - expect( - await processCameraProvider - .bindToLifecycle(fakeCameraSelector, [fakeUseCase]), - equals(fakeCamera)); - verify(mockApi.bindToLifecycle(0, 1, [2])); - }); - - test('isBoundTest', () async { - final MockTestProcessCameraProviderHostApi mockApi = - MockTestProcessCameraProviderHostApi(); - TestProcessCameraProviderHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ProcessCameraProvider processCameraProvider = - ProcessCameraProvider.detached( - instanceManager: instanceManager, - ); - final UseCase fakeUseCase = - UseCase.detached(instanceManager: instanceManager); - - instanceManager.addHostCreatedInstance( - processCameraProvider, - 0, - onCopy: (_) => ProcessCameraProvider.detached(), - ); - instanceManager.addHostCreatedInstance( - fakeUseCase, - 27, - onCopy: (_) => UseCase.detached(), - ); - - when(mockApi.isBound(0, 27)).thenReturn(true); - - expect(await processCameraProvider.isBound(fakeUseCase), isTrue); - verify(mockApi.isBound(0, 27)); - }); - - test('unbindTest', () async { - final MockTestProcessCameraProviderHostApi mockApi = - MockTestProcessCameraProviderHostApi(); - TestProcessCameraProviderHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ProcessCameraProvider processCameraProvider = - ProcessCameraProvider.detached( - instanceManager: instanceManager, - ); - final UseCase fakeUseCase = - UseCase.detached(instanceManager: instanceManager); - - instanceManager.addHostCreatedInstance( - processCameraProvider, - 0, - onCopy: (_) => ProcessCameraProvider.detached(), - ); - instanceManager.addHostCreatedInstance( - fakeUseCase, - 1, - onCopy: (_) => UseCase.detached(), - ); - - processCameraProvider.unbind([fakeUseCase]); - verify(mockApi.unbind(0, [1])); - }); - - test('unbindAll unbinds UseCases', () async { - final MockTestProcessCameraProviderHostApi mockApi = - MockTestProcessCameraProviderHostApi(); - TestProcessCameraProviderHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ProcessCameraProvider processCameraProvider = - ProcessCameraProvider.detached( - instanceManager: instanceManager, - ); - - instanceManager.addHostCreatedInstance( - processCameraProvider, - 0, - onCopy: (_) => ProcessCameraProvider.detached(), - ); - - processCameraProvider.unbindAll(); - verify(mockApi.unbindAll(0)); - }); - - test('flutterApiCreateTest', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ProcessCameraProviderFlutterApiImpl flutterApi = - ProcessCameraProviderFlutterApiImpl( - instanceManager: instanceManager, - ); - - flutterApi.create(0); - - expect(instanceManager.getInstanceWithWeakReference(0), - isA()); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/process_camera_provider_test.mocks.dart b/packages/camera/camera_android_camerax/test/process_camera_provider_test.mocks.dart deleted file mode 100644 index ec1686cd5f5..00000000000 --- a/packages/camera/camera_android_camerax/test/process_camera_provider_test.mocks.dart +++ /dev/null @@ -1,129 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/process_camera_provider_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i3; - -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestProcessCameraProviderHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestProcessCameraProviderHostApi extends _i1.Mock - implements _i2.TestProcessCameraProviderHostApi { - MockTestProcessCameraProviderHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - _i3.Future getInstance() => (super.noSuchMethod( - Invocation.method( - #getInstance, - [], - ), - returnValue: _i3.Future.value(0), - ) as _i3.Future); - - @override - List getAvailableCameraInfos(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getAvailableCameraInfos, - [identifier], - ), - returnValue: [], - ) as List); - - @override - int bindToLifecycle( - int? identifier, - int? cameraSelectorIdentifier, - List? useCaseIds, - ) => - (super.noSuchMethod( - Invocation.method( - #bindToLifecycle, - [ - identifier, - cameraSelectorIdentifier, - useCaseIds, - ], - ), - returnValue: 0, - ) as int); - - @override - bool isBound( - int? identifier, - int? useCaseIdentifier, - ) => - (super.noSuchMethod( - Invocation.method( - #isBound, - [ - identifier, - useCaseIdentifier, - ], - ), - returnValue: false, - ) as bool); - - @override - void unbind( - int? identifier, - List? useCaseIds, - ) => - super.noSuchMethod( - Invocation.method( - #unbind, - [ - identifier, - useCaseIds, - ], - ), - returnValueForMissingStub: null, - ); - - @override - void unbindAll(int? identifier) => super.noSuchMethod( - Invocation.method( - #unbindAll, - [identifier], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/quality_selector_test.dart b/packages/camera/camera_android_camerax/test/quality_selector_test.dart deleted file mode 100644 index bfaa568c254..00000000000 --- a/packages/camera/camera_android_camerax/test/quality_selector_test.dart +++ /dev/null @@ -1,194 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camera_info.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/fallback_strategy.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/quality_selector.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'quality_selector_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - CameraInfo, - FallbackStrategy, - TestQualitySelectorHostApi, - TestInstanceManagerHostApi -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - group('QualitySelector', () { - tearDown(() { - TestQualitySelectorHostApi.setup(null); - TestInstanceManagerHostApi.setup(null); - }); - - test('detached constructor does not make call to create on the Java side', - () { - final MockTestQualitySelectorHostApi mockApi = - MockTestQualitySelectorHostApi(); - TestQualitySelectorHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - QualitySelector.detached( - qualityList: [ - VideoQualityData(quality: VideoQuality.UHD) - ], - fallbackStrategy: MockFallbackStrategy(), - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create( - argThat(isA()), argThat(isA>()), argThat(isA()))); - }); - - test('single quality constructor calls create on the Java side', () { - final MockTestQualitySelectorHostApi mockApi = - MockTestQualitySelectorHostApi(); - TestQualitySelectorHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const VideoQuality videoQuality = VideoQuality.FHD; - final VideoQualityData quality = VideoQualityData(quality: videoQuality); - final FallbackStrategy fallbackStrategy = MockFallbackStrategy(); - const int fallbackStrategyIdentifier = 9; - - instanceManager.addHostCreatedInstance( - fallbackStrategy, - fallbackStrategyIdentifier, - onCopy: (_) => MockFallbackStrategy(), - ); - - final QualitySelector instance = QualitySelector.from( - quality: quality, - fallbackStrategy: fallbackStrategy, - instanceManager: instanceManager, - ); - - final VerificationResult verificationResult = verify(mockApi.create( - instanceManager.getIdentifier(instance), - captureAny, - fallbackStrategyIdentifier, - )); - final List videoQualityData = - verificationResult.captured.single as List; - expect(videoQualityData.length, equals(1)); - expect(videoQualityData.first!.quality, equals(videoQuality)); - }); - - test('quality list constructor calls create on the Java side', () { - final MockTestQualitySelectorHostApi mockApi = - MockTestQualitySelectorHostApi(); - TestQualitySelectorHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final List qualityList = [ - VideoQualityData(quality: VideoQuality.FHD), - VideoQualityData(quality: VideoQuality.highest), - ]; - - final FallbackStrategy fallbackStrategy = MockFallbackStrategy(); - - const int fallbackStrategyIdentifier = 9; - instanceManager.addHostCreatedInstance( - fallbackStrategy, - fallbackStrategyIdentifier, - onCopy: (_) => MockFallbackStrategy(), - ); - - final QualitySelector instance = QualitySelector.fromOrderedList( - qualityList: qualityList, - fallbackStrategy: fallbackStrategy, - instanceManager: instanceManager, - ); - - final VerificationResult verificationResult = verify(mockApi.create( - instanceManager.getIdentifier(instance), - captureAny, - fallbackStrategyIdentifier, - )); - final List videoQualityData = - verificationResult.captured.single as List; - expect(videoQualityData.length, equals(2)); - expect(videoQualityData.first!.quality, equals(VideoQuality.FHD)); - expect(videoQualityData.last!.quality, equals(VideoQuality.highest)); - }); - - test('getResolution returns expected resolution info', () async { - final MockTestQualitySelectorHostApi mockApi = - MockTestQualitySelectorHostApi(); - TestQualitySelectorHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final QualitySelector instance = QualitySelector.detached( - instanceManager: instanceManager, - qualityList: [ - VideoQualityData(quality: VideoQuality.HD) - ], - fallbackStrategy: MockFallbackStrategy(), - ); - const int instanceIdentifier = 0; - instanceManager.addHostCreatedInstance( - instance, - instanceIdentifier, - onCopy: (QualitySelector original) => QualitySelector.detached( - qualityList: original.qualityList, - fallbackStrategy: original.fallbackStrategy, - instanceManager: instanceManager, - ), - ); - - final CameraInfo cameraInfo = MockCameraInfo(); - const int cameraInfoIdentifier = 6; - instanceManager.addHostCreatedInstance( - cameraInfo, - cameraInfoIdentifier, - onCopy: (_) => MockCameraInfo(), - ); - - const VideoQuality quality = VideoQuality.FHD; - final ResolutionInfo expectedResult = - ResolutionInfo(width: 34, height: 23); - - when(mockApi.getResolution( - cameraInfoIdentifier, - quality, - )).thenAnswer((_) { - return expectedResult; - }); - - final ResolutionInfo result = await QualitySelector.getResolution( - cameraInfo, quality, - instanceManager: instanceManager); - - expect(result.width, expectedResult.width); - expect(result.height, expectedResult.height); - - verify(mockApi.getResolution( - cameraInfoIdentifier, - quality, - )); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/quality_selector_test.mocks.dart b/packages/camera/camera_android_camerax/test/quality_selector_test.mocks.dart deleted file mode 100644 index a4792e15467..00000000000 --- a/packages/camera/camera_android_camerax/test/quality_selector_test.mocks.dart +++ /dev/null @@ -1,223 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/quality_selector_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i6; - -import 'package:camera_android_camerax/src/camera_info.dart' as _i5; -import 'package:camera_android_camerax/src/camera_state.dart' as _i7; -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i4; -import 'package:camera_android_camerax/src/exposure_state.dart' as _i3; -import 'package:camera_android_camerax/src/fallback_strategy.dart' as _i9; -import 'package:camera_android_camerax/src/live_data.dart' as _i2; -import 'package:camera_android_camerax/src/zoom_state.dart' as _i8; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i10; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakeLiveData_0 extends _i1.SmartFake - implements _i2.LiveData { - _FakeLiveData_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -class _FakeExposureState_1 extends _i1.SmartFake implements _i3.ExposureState { - _FakeExposureState_1( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -class _FakeResolutionInfo_2 extends _i1.SmartFake - implements _i4.ResolutionInfo { - _FakeResolutionInfo_2( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [CameraInfo]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockCameraInfo extends _i1.Mock implements _i5.CameraInfo { - MockCameraInfo() { - _i1.throwOnMissingStub(this); - } - - @override - _i6.Future getSensorRotationDegrees() => (super.noSuchMethod( - Invocation.method( - #getSensorRotationDegrees, - [], - ), - returnValue: _i6.Future.value(0), - ) as _i6.Future); - - @override - _i6.Future<_i2.LiveData<_i7.CameraState>> getCameraState() => - (super.noSuchMethod( - Invocation.method( - #getCameraState, - [], - ), - returnValue: _i6.Future<_i2.LiveData<_i7.CameraState>>.value( - _FakeLiveData_0<_i7.CameraState>( - this, - Invocation.method( - #getCameraState, - [], - ), - )), - ) as _i6.Future<_i2.LiveData<_i7.CameraState>>); - - @override - _i6.Future<_i3.ExposureState> getExposureState() => (super.noSuchMethod( - Invocation.method( - #getExposureState, - [], - ), - returnValue: _i6.Future<_i3.ExposureState>.value(_FakeExposureState_1( - this, - Invocation.method( - #getExposureState, - [], - ), - )), - ) as _i6.Future<_i3.ExposureState>); - - @override - _i6.Future<_i2.LiveData<_i8.ZoomState>> getZoomState() => (super.noSuchMethod( - Invocation.method( - #getZoomState, - [], - ), - returnValue: _i6.Future<_i2.LiveData<_i8.ZoomState>>.value( - _FakeLiveData_0<_i8.ZoomState>( - this, - Invocation.method( - #getZoomState, - [], - ), - )), - ) as _i6.Future<_i2.LiveData<_i8.ZoomState>>); -} - -/// A class which mocks [FallbackStrategy]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockFallbackStrategy extends _i1.Mock implements _i9.FallbackStrategy { - MockFallbackStrategy() { - _i1.throwOnMissingStub(this); - } - - @override - _i4.VideoQuality get quality => (super.noSuchMethod( - Invocation.getter(#quality), - returnValue: _i4.VideoQuality.SD, - ) as _i4.VideoQuality); - - @override - _i4.VideoResolutionFallbackRule get fallbackRule => (super.noSuchMethod( - Invocation.getter(#fallbackRule), - returnValue: _i4.VideoResolutionFallbackRule.higherQualityOrLowerThan, - ) as _i4.VideoResolutionFallbackRule); -} - -/// A class which mocks [TestQualitySelectorHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestQualitySelectorHostApi extends _i1.Mock - implements _i10.TestQualitySelectorHostApi { - MockTestQualitySelectorHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - List<_i4.VideoQualityData?>? videoQualityDataList, - int? fallbackStrategyId, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - videoQualityDataList, - fallbackStrategyId, - ], - ), - returnValueForMissingStub: null, - ); - - @override - _i4.ResolutionInfo getResolution( - int? cameraInfoId, - _i4.VideoQuality? quality, - ) => - (super.noSuchMethod( - Invocation.method( - #getResolution, - [ - cameraInfoId, - quality, - ], - ), - returnValue: _FakeResolutionInfo_2( - this, - Invocation.method( - #getResolution, - [ - cameraInfoId, - quality, - ], - ), - ), - ) as _i4.ResolutionInfo); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i10.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/recorder_test.dart b/packages/camera/camera_android_camerax/test/recorder_test.dart deleted file mode 100644 index c7b189f6130..00000000000 --- a/packages/camera/camera_android_camerax/test/recorder_test.dart +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/pending_recording.dart'; -import 'package:camera_android_camerax/src/quality_selector.dart'; -import 'package:camera_android_camerax/src/recorder.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'recorder_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - QualitySelector, - TestInstanceManagerHostApi, - TestFallbackStrategyHostApi, - TestRecorderHostApi, - TestQualitySelectorHostApi, - PendingRecording -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('Recorder', () { - tearDown(() => TestCameraSelectorHostApi.setup(null)); - - test('detached create does not call create on the Java side', () async { - final MockTestRecorderHostApi mockApi = MockTestRecorderHostApi(); - TestRecorderHostApi.setup(mockApi); - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - Recorder.detached( - instanceManager: instanceManager, aspectRatio: 0, bitRate: 0); - - verifyNever(mockApi.create(argThat(isA()), argThat(isA()), - argThat(isA()), argThat(isA()))); - }); - - test('create does call create on the Java side', () async { - final MockTestRecorderHostApi mockApi = MockTestRecorderHostApi(); - TestRecorderHostApi.setup(mockApi); - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const int aspectRatio = 1; - const int bitRate = 2; - final QualitySelector qualitySelector = MockQualitySelector(); - const int qualitySelectorIdentifier = 33; - - instanceManager.addHostCreatedInstance( - qualitySelector, - qualitySelectorIdentifier, - onCopy: (_) => MockQualitySelector(), - ); - - Recorder( - instanceManager: instanceManager, - aspectRatio: aspectRatio, - bitRate: bitRate, - qualitySelector: qualitySelector); - - verify(mockApi.create(argThat(isA()), aspectRatio, bitRate, - qualitySelectorIdentifier)); - }); - - test('getDefaultQualitySelector returns expected QualitySelector', - () async { - final MockTestQualitySelectorHostApi mockQualitySelectorApi = - MockTestQualitySelectorHostApi(); - final MockTestFallbackStrategyHostApi mockFallbackStrategyApi = - MockTestFallbackStrategyHostApi(); - TestQualitySelectorHostApi.setup(mockQualitySelectorApi); - TestFallbackStrategyHostApi.setup(mockFallbackStrategyApi); - - final QualitySelector defaultQualitySelector = - Recorder.getDefaultQualitySelector(); - final List expectedVideoQualities = [ - VideoQuality.FHD, - VideoQuality.HD, - VideoQuality.SD - ]; - - expect(defaultQualitySelector.qualityList.length, equals(3)); - for (int i = 0; i < 3; i++) { - final VideoQuality currentVideoQuality = - defaultQualitySelector.qualityList[i].quality; - expect(currentVideoQuality, equals(expectedVideoQualities[i])); - } - - expect(defaultQualitySelector.fallbackStrategy!.quality, - equals(VideoQuality.FHD)); - expect(defaultQualitySelector.fallbackStrategy!.fallbackRule, - equals(VideoResolutionFallbackRule.higherQualityOrLowerThan)); - - // Cleanup test Host APIs used only for this test. - TestQualitySelectorHostApi.setup(null); - TestFallbackStrategyHostApi.setup(null); - }); - - test('prepareRecording calls prepareRecording on Java side', () async { - final MockTestRecorderHostApi mockApi = MockTestRecorderHostApi(); - TestRecorderHostApi.setup(mockApi); - when(mockApi.prepareRecording(0, '/test/path')).thenAnswer((_) => 2); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const String filePath = '/test/path'; - final Recorder recorder = - Recorder.detached(instanceManager: instanceManager); - const int recorderId = 0; - const int mockPendingRecordingId = 2; - - instanceManager.addHostCreatedInstance(recorder, recorderId, - onCopy: (_) => Recorder.detached(instanceManager: instanceManager)); - - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - instanceManager.addHostCreatedInstance( - mockPendingRecording, mockPendingRecordingId, - onCopy: (_) => MockPendingRecording()); - when(mockApi.prepareRecording(recorderId, filePath)) - .thenReturn(mockPendingRecordingId); - final PendingRecording pendingRecording = - await recorder.prepareRecording(filePath); - expect(pendingRecording, mockPendingRecording); - }); - - test( - 'flutterApi create makes call to create Recorder instance with expected identifier', - () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final RecorderFlutterApiImpl flutterApi = RecorderFlutterApiImpl( - instanceManager: instanceManager, - ); - const int recorderId = 0; - const int aspectRatio = 1; - const int bitrate = 2; - - flutterApi.create(recorderId, aspectRatio, bitrate); - - expect(instanceManager.getInstanceWithWeakReference(recorderId), - isA()); - expect( - (instanceManager.getInstanceWithWeakReference(recorderId)! - as Recorder) - .aspectRatio, - equals(aspectRatio)); - expect( - (instanceManager.getInstanceWithWeakReference(0)! as Recorder) - .bitRate, - equals(bitrate)); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/recorder_test.mocks.dart b/packages/camera/camera_android_camerax/test/recorder_test.mocks.dart deleted file mode 100644 index 78a8776d360..00000000000 --- a/packages/camera/camera_android_camerax/test/recorder_test.mocks.dart +++ /dev/null @@ -1,253 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/recorder_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i7; - -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i2; -import 'package:camera_android_camerax/src/pending_recording.dart' as _i6; -import 'package:camera_android_camerax/src/quality_selector.dart' as _i4; -import 'package:camera_android_camerax/src/recording.dart' as _i3; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i5; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakeResolutionInfo_0 extends _i1.SmartFake - implements _i2.ResolutionInfo { - _FakeResolutionInfo_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -class _FakeRecording_1 extends _i1.SmartFake implements _i3.Recording { - _FakeRecording_1( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [QualitySelector]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockQualitySelector extends _i1.Mock implements _i4.QualitySelector { - MockQualitySelector() { - _i1.throwOnMissingStub(this); - } - - @override - List<_i2.VideoQualityData> get qualityList => (super.noSuchMethod( - Invocation.getter(#qualityList), - returnValue: <_i2.VideoQualityData>[], - ) as List<_i2.VideoQualityData>); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i5.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestFallbackStrategyHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestFallbackStrategyHostApi extends _i1.Mock - implements _i5.TestFallbackStrategyHostApi { - MockTestFallbackStrategyHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - _i2.VideoQuality? quality, - _i2.VideoResolutionFallbackRule? fallbackRule, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - quality, - fallbackRule, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestRecorderHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestRecorderHostApi extends _i1.Mock - implements _i5.TestRecorderHostApi { - MockTestRecorderHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - int? aspectRatio, - int? bitRate, - int? qualitySelectorId, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - aspectRatio, - bitRate, - qualitySelectorId, - ], - ), - returnValueForMissingStub: null, - ); - - @override - int getAspectRatio(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getAspectRatio, - [identifier], - ), - returnValue: 0, - ) as int); - - @override - int getTargetVideoEncodingBitRate(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getTargetVideoEncodingBitRate, - [identifier], - ), - returnValue: 0, - ) as int); - - @override - int prepareRecording( - int? identifier, - String? path, - ) => - (super.noSuchMethod( - Invocation.method( - #prepareRecording, - [ - identifier, - path, - ], - ), - returnValue: 0, - ) as int); -} - -/// A class which mocks [TestQualitySelectorHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestQualitySelectorHostApi extends _i1.Mock - implements _i5.TestQualitySelectorHostApi { - MockTestQualitySelectorHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - List<_i2.VideoQualityData?>? videoQualityDataList, - int? fallbackStrategyId, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - videoQualityDataList, - fallbackStrategyId, - ], - ), - returnValueForMissingStub: null, - ); - - @override - _i2.ResolutionInfo getResolution( - int? cameraInfoId, - _i2.VideoQuality? quality, - ) => - (super.noSuchMethod( - Invocation.method( - #getResolution, - [ - cameraInfoId, - quality, - ], - ), - returnValue: _FakeResolutionInfo_0( - this, - Invocation.method( - #getResolution, - [ - cameraInfoId, - quality, - ], - ), - ), - ) as _i2.ResolutionInfo); -} - -/// A class which mocks [PendingRecording]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockPendingRecording extends _i1.Mock implements _i6.PendingRecording { - MockPendingRecording() { - _i1.throwOnMissingStub(this); - } - - @override - _i7.Future<_i3.Recording> start() => (super.noSuchMethod( - Invocation.method( - #start, - [], - ), - returnValue: _i7.Future<_i3.Recording>.value(_FakeRecording_1( - this, - Invocation.method( - #start, - [], - ), - )), - ) as _i7.Future<_i3.Recording>); -} diff --git a/packages/camera/camera_android_camerax/test/recording_test.dart b/packages/camera/camera_android_camerax/test/recording_test.dart deleted file mode 100644 index b0877e9db13..00000000000 --- a/packages/camera/camera_android_camerax/test/recording_test.dart +++ /dev/null @@ -1,119 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/recording.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'recording_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestRecordingHostApi, TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('Recording', () { - tearDown(() => TestRecorderHostApi.setup(null)); - - test('close calls close on Java side', () async { - final MockTestRecordingHostApi mockApi = MockTestRecordingHostApi(); - TestRecordingHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Recording recording = - Recording.detached(instanceManager: instanceManager); - const int recordingId = 0; - when(mockApi.close(recordingId)).thenAnswer((_) {}); - instanceManager.addHostCreatedInstance(recording, recordingId, - onCopy: (_) => Recording.detached(instanceManager: instanceManager)); - - await recording.close(); - - verify(mockApi.close(recordingId)); - }); - - test('pause calls pause on Java side', () async { - final MockTestRecordingHostApi mockApi = MockTestRecordingHostApi(); - TestRecordingHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Recording recording = - Recording.detached(instanceManager: instanceManager); - const int recordingId = 0; - when(mockApi.pause(recordingId)).thenAnswer((_) {}); - instanceManager.addHostCreatedInstance(recording, recordingId, - onCopy: (_) => Recording.detached(instanceManager: instanceManager)); - - await recording.pause(); - - verify(mockApi.pause(recordingId)); - }); - - test('resume calls resume on Java side', () async { - final MockTestRecordingHostApi mockApi = MockTestRecordingHostApi(); - TestRecordingHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Recording recording = - Recording.detached(instanceManager: instanceManager); - const int recordingId = 0; - when(mockApi.resume(recordingId)).thenAnswer((_) {}); - instanceManager.addHostCreatedInstance(recording, recordingId, - onCopy: (_) => Recording.detached(instanceManager: instanceManager)); - - await recording.resume(); - - verify(mockApi.resume(recordingId)); - }); - - test('stop calls stop on Java side', () async { - final MockTestRecordingHostApi mockApi = MockTestRecordingHostApi(); - TestRecordingHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Recording recording = - Recording.detached(instanceManager: instanceManager); - const int recordingId = 0; - when(mockApi.stop(recordingId)).thenAnswer((_) {}); - instanceManager.addHostCreatedInstance(recording, recordingId, - onCopy: (_) => Recording.detached(instanceManager: instanceManager)); - - await recording.stop(); - - verify(mockApi.stop(recordingId)); - }); - - test('flutterApiCreateTest', () async { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final RecordingFlutterApi flutterApi = RecordingFlutterApiImpl( - instanceManager: instanceManager, - ); - - flutterApi.create(0); - - expect(instanceManager.getInstanceWithWeakReference(0), isA()); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/recording_test.mocks.dart b/packages/camera/camera_android_camerax/test/recording_test.mocks.dart deleted file mode 100644 index 55f4b48dd3f..00000000000 --- a/packages/camera/camera_android_camerax/test/recording_test.mocks.dart +++ /dev/null @@ -1,86 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/recording_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestRecordingHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestRecordingHostApi extends _i1.Mock - implements _i2.TestRecordingHostApi { - MockTestRecordingHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void close(int? identifier) => super.noSuchMethod( - Invocation.method( - #close, - [identifier], - ), - returnValueForMissingStub: null, - ); - - @override - void pause(int? identifier) => super.noSuchMethod( - Invocation.method( - #pause, - [identifier], - ), - returnValueForMissingStub: null, - ); - - @override - void resume(int? identifier) => super.noSuchMethod( - Invocation.method( - #resume, - [identifier], - ), - returnValueForMissingStub: null, - ); - - @override - void stop(int? identifier) => super.noSuchMethod( - Invocation.method( - #stop, - [identifier], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/resolution_filter_test.dart b/packages/camera/camera_android_camerax/test/resolution_filter_test.dart deleted file mode 100644 index 07a96ff6802..00000000000 --- a/packages/camera/camera_android_camerax/test/resolution_filter_test.dart +++ /dev/null @@ -1,90 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:ui'; - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/resolution_filter.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'resolution_filter_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - TestResolutionFilterHostApi, - TestInstanceManagerHostApi, -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - group('ResolutionFilter', () { - tearDown(() { - TestResolutionFilterHostApi.setup(null); - TestInstanceManagerHostApi.setup(null); - }); - - test( - 'detached ResolutionFilter.onePreferredSize constructor does not make call to Host API createWithOnePreferredSize', - () { - final MockTestResolutionFilterHostApi mockApi = - MockTestResolutionFilterHostApi(); - TestResolutionFilterHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const double preferredWidth = 270; - const double preferredHeight = 720; - const Size preferredResolution = Size(preferredWidth, preferredHeight); - - ResolutionFilter.onePreferredSizeDetached( - preferredResolution: preferredResolution, - instanceManager: instanceManager, - ); - - verifyNever(mockApi.createWithOnePreferredSize( - argThat(isA()), - argThat(isA() - .having( - (ResolutionInfo size) => size.width, 'width', preferredWidth) - .having((ResolutionInfo size) => size.height, 'height', - preferredHeight)), - )); - }); - - test('HostApi createWithOnePreferredSize creates expected ResolutionFilter', - () { - final MockTestResolutionFilterHostApi mockApi = - MockTestResolutionFilterHostApi(); - TestResolutionFilterHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const double preferredWidth = 890; - const double preferredHeight = 980; - const Size preferredResolution = Size(preferredWidth, preferredHeight); - - final ResolutionFilter instance = ResolutionFilter.onePreferredSize( - preferredResolution: preferredResolution, - instanceManager: instanceManager, - ); - verify(mockApi.createWithOnePreferredSize( - instanceManager.getIdentifier(instance), - argThat(isA() - .having( - (ResolutionInfo size) => size.width, 'width', preferredWidth) - .having((ResolutionInfo size) => size.height, 'height', - preferredHeight)), - )); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/resolution_filter_test.mocks.dart b/packages/camera/camera_android_camerax/test/resolution_filter_test.mocks.dart deleted file mode 100644 index cf859c7b637..00000000000 --- a/packages/camera/camera_android_camerax/test/resolution_filter_test.mocks.dart +++ /dev/null @@ -1,67 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/resolution_filter_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i3; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestResolutionFilterHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestResolutionFilterHostApi extends _i1.Mock - implements _i2.TestResolutionFilterHostApi { - MockTestResolutionFilterHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void createWithOnePreferredSize( - int? identifier, - _i3.ResolutionInfo? preferredResolution, - ) => - super.noSuchMethod( - Invocation.method( - #createWithOnePreferredSize, - [ - identifier, - preferredResolution, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/resolution_selector_test.dart b/packages/camera/camera_android_camerax/test/resolution_selector_test.dart deleted file mode 100644 index 7aaa37ae1ea..00000000000 --- a/packages/camera/camera_android_camerax/test/resolution_selector_test.dart +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:ui'; - -import 'package:camera_android_camerax/src/aspect_ratio_strategy.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/resolution_filter.dart'; -import 'package:camera_android_camerax/src/resolution_selector.dart'; -import 'package:camera_android_camerax/src/resolution_strategy.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'resolution_selector_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - AspectRatioStrategy, - ResolutionFilter, - ResolutionStrategy, - TestResolutionSelectorHostApi, - TestInstanceManagerHostApi, -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - group('ResolutionSelector', () { - tearDown(() { - TestResolutionSelectorHostApi.setup(null); - TestInstanceManagerHostApi.setup(null); - }); - - test( - 'detached constructor does not make call to create expected AspectRatioStrategy instance', - () async { - final MockTestResolutionSelectorHostApi mockApi = - MockTestResolutionSelectorHostApi(); - TestResolutionSelectorHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const int preferredAspectRatio = 1; - - const int fallbackRule = 1; - - AspectRatioStrategy.detached( - preferredAspectRatio: preferredAspectRatio, - fallbackRule: fallbackRule, - instanceManager: instanceManager, - ); - - ResolutionSelector.detached( - resolutionStrategy: MockResolutionStrategy(), - resolutionFilter: MockResolutionFilter(), - aspectRatioStrategy: MockAspectRatioStrategy(), - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create(argThat(isA()), argThat(isA()), - argThat(isA()), argThat(isA()))); - }); - - test('HostApi create creates expected ResolutionSelector instance', () { - final MockTestResolutionSelectorHostApi mockApi = - MockTestResolutionSelectorHostApi(); - TestResolutionSelectorHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final ResolutionStrategy resolutionStrategy = ResolutionStrategy.detached( - boundSize: const Size(50, 30), - fallbackRule: ResolutionStrategy.fallbackRuleClosestLower, - instanceManager: instanceManager, - ); - const int resolutionStrategyIdentifier = 14; - instanceManager.addHostCreatedInstance( - resolutionStrategy, - resolutionStrategyIdentifier, - onCopy: (ResolutionStrategy original) => ResolutionStrategy.detached( - boundSize: original.boundSize, - fallbackRule: original.fallbackRule, - instanceManager: instanceManager, - ), - ); - - final ResolutionFilter resolutionFilter = - ResolutionFilter.onePreferredSizeDetached( - preferredResolution: const Size(30, 40)); - const int resolutionFilterIdentifier = 54; - instanceManager.addHostCreatedInstance( - resolutionFilter, - resolutionFilterIdentifier, - onCopy: (ResolutionFilter original) => - ResolutionFilter.onePreferredSizeDetached( - preferredResolution: original.preferredResolution, - instanceManager: instanceManager, - ), - ); - - final AspectRatioStrategy aspectRatioStrategy = - AspectRatioStrategy.detached( - preferredAspectRatio: AspectRatio.ratio4To3, - fallbackRule: AspectRatioStrategy.fallbackRuleAuto, - instanceManager: instanceManager, - ); - const int aspectRatioStrategyIdentifier = 15; - instanceManager.addHostCreatedInstance( - aspectRatioStrategy, - aspectRatioStrategyIdentifier, - onCopy: (AspectRatioStrategy original) => AspectRatioStrategy.detached( - preferredAspectRatio: original.preferredAspectRatio, - fallbackRule: original.fallbackRule, - instanceManager: instanceManager, - ), - ); - - final ResolutionSelector instance = ResolutionSelector( - resolutionStrategy: resolutionStrategy, - resolutionFilter: resolutionFilter, - aspectRatioStrategy: aspectRatioStrategy, - instanceManager: instanceManager, - ); - - verify(mockApi.create( - instanceManager.getIdentifier(instance), - resolutionStrategyIdentifier, - resolutionFilterIdentifier, - aspectRatioStrategyIdentifier, - )); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/resolution_selector_test.mocks.dart b/packages/camera/camera_android_camerax/test/resolution_selector_test.mocks.dart deleted file mode 100644 index c36ae699e8a..00000000000 --- a/packages/camera/camera_android_camerax/test/resolution_selector_test.mocks.dart +++ /dev/null @@ -1,138 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/resolution_selector_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:ui' as _i2; - -import 'package:camera_android_camerax/src/aspect_ratio_strategy.dart' as _i3; -import 'package:camera_android_camerax/src/resolution_filter.dart' as _i4; -import 'package:camera_android_camerax/src/resolution_strategy.dart' as _i5; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i6; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakeSize_0 extends _i1.SmartFake implements _i2.Size { - _FakeSize_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [AspectRatioStrategy]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockAspectRatioStrategy extends _i1.Mock - implements _i3.AspectRatioStrategy { - MockAspectRatioStrategy() { - _i1.throwOnMissingStub(this); - } - - @override - int get preferredAspectRatio => (super.noSuchMethod( - Invocation.getter(#preferredAspectRatio), - returnValue: 0, - ) as int); - - @override - int get fallbackRule => (super.noSuchMethod( - Invocation.getter(#fallbackRule), - returnValue: 0, - ) as int); -} - -/// A class which mocks [ResolutionFilter]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockResolutionFilter extends _i1.Mock implements _i4.ResolutionFilter { - MockResolutionFilter() { - _i1.throwOnMissingStub(this); - } - - @override - _i2.Size get preferredResolution => (super.noSuchMethod( - Invocation.getter(#preferredResolution), - returnValue: _FakeSize_0( - this, - Invocation.getter(#preferredResolution), - ), - ) as _i2.Size); -} - -/// A class which mocks [ResolutionStrategy]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockResolutionStrategy extends _i1.Mock - implements _i5.ResolutionStrategy { - MockResolutionStrategy() { - _i1.throwOnMissingStub(this); - } -} - -/// A class which mocks [TestResolutionSelectorHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestResolutionSelectorHostApi extends _i1.Mock - implements _i6.TestResolutionSelectorHostApi { - MockTestResolutionSelectorHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - int? resolutionStrategyIdentifier, - int? resolutionSelectorIdentifier, - int? aspectRatioStrategyIdentifier, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - resolutionStrategyIdentifier, - resolutionSelectorIdentifier, - aspectRatioStrategyIdentifier, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i6.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/resolution_strategy_test.dart b/packages/camera/camera_android_camerax/test/resolution_strategy_test.dart deleted file mode 100644 index 9c098b94607..00000000000 --- a/packages/camera/camera_android_camerax/test/resolution_strategy_test.dart +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'dart:ui'; - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/resolution_strategy.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'resolution_strategy_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([ - TestResolutionStrategyHostApi, - TestInstanceManagerHostApi, -]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - group('ResolutionStrategy', () { - tearDown(() { - TestResolutionStrategyHostApi.setup(null); - TestInstanceManagerHostApi.setup(null); - }); - - test( - 'detached resolutionStrategy constructors do not make call to Host API create', - () { - final MockTestResolutionStrategyHostApi mockApi = - MockTestResolutionStrategyHostApi(); - TestResolutionStrategyHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const Size boundSize = Size(70, 20); - const int fallbackRule = 1; - - ResolutionStrategy.detached( - boundSize: boundSize, - fallbackRule: fallbackRule, - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create( - argThat(isA()), - argThat(isA() - .having((ResolutionInfo size) => size.width, 'width', 50) - .having((ResolutionInfo size) => size.height, 'height', 30)), - fallbackRule, - )); - - ResolutionStrategy.detachedHighestAvailableStrategy( - instanceManager: instanceManager, - ); - - verifyNever(mockApi.create( - argThat(isA()), - null, - null, - )); - }); - - test('HostApi create creates expected ResolutionStrategies', () { - final MockTestResolutionStrategyHostApi mockApi = - MockTestResolutionStrategyHostApi(); - TestResolutionStrategyHostApi.setup(mockApi); - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - const Size boundSize = Size(50, 30); - const int fallbackRule = 0; - - final ResolutionStrategy instance = ResolutionStrategy( - boundSize: boundSize, - fallbackRule: fallbackRule, - instanceManager: instanceManager, - ); - - verify(mockApi.create( - instanceManager.getIdentifier(instance), - argThat(isA() - .having((ResolutionInfo size) => size.width, 'width', 50) - .having((ResolutionInfo size) => size.height, 'height', 30)), - fallbackRule, - )); - - final ResolutionStrategy highestAvailableInstance = - ResolutionStrategy.highestAvailableStrategy( - instanceManager: instanceManager, - ); - - verify(mockApi.create( - instanceManager.getIdentifier(highestAvailableInstance), - null, - null, - )); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/resolution_strategy_test.mocks.dart b/packages/camera/camera_android_camerax/test/resolution_strategy_test.mocks.dart deleted file mode 100644 index 3fc3b8ce5c3..00000000000 --- a/packages/camera/camera_android_camerax/test/resolution_strategy_test.mocks.dart +++ /dev/null @@ -1,69 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/resolution_strategy_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i3; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestResolutionStrategyHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestResolutionStrategyHostApi extends _i1.Mock - implements _i2.TestResolutionStrategyHostApi { - MockTestResolutionStrategyHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void create( - int? identifier, - _i3.ResolutionInfo? boundSize, - int? fallbackRule, - ) => - super.noSuchMethod( - Invocation.method( - #create, - [ - identifier, - boundSize, - fallbackRule, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} diff --git a/packages/camera/camera_android_camerax/test/system_services_test.dart b/packages/camera/camera_android_camerax/test/system_services_test.dart deleted file mode 100644 index d1725515e2f..00000000000 --- a/packages/camera/camera_android_camerax/test/system_services_test.dart +++ /dev/null @@ -1,100 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart' - show CameraPermissionsErrorData; -import 'package:camera_android_camerax/src/system_services.dart'; -import 'package:camera_platform_interface/camera_platform_interface.dart' - show CameraException; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'system_services_test.mocks.dart'; -import 'test_camerax_library.g.dart'; - -@GenerateMocks([TestInstanceManagerHostApi, TestSystemServicesHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('SystemServices', () { - tearDown(() => TestProcessCameraProviderHostApi.setup(null)); - - test( - 'requestCameraPermissionsFromInstance completes normally without errors test', - () async { - final MockTestSystemServicesHostApi mockApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockApi); - - when(mockApi.requestCameraPermissions(true)) - .thenAnswer((_) async => null); - - await SystemServices.requestCameraPermissions(true); - verify(mockApi.requestCameraPermissions(true)); - }); - - test( - 'requestCameraPermissionsFromInstance throws CameraException if there was a request error', - () { - final MockTestSystemServicesHostApi mockApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockApi); - final CameraPermissionsErrorData error = CameraPermissionsErrorData( - errorCode: 'Test error code', - description: 'Test error description', - ); - - when(mockApi.requestCameraPermissions(true)) - .thenAnswer((_) async => error); - - expect( - () async => SystemServices.requestCameraPermissions(true), - throwsA(isA() - .having((CameraException e) => e.code, 'code', 'Test error code') - .having((CameraException e) => e.description, 'description', - 'Test error description'))); - verify(mockApi.requestCameraPermissions(true)); - }); - - test('onCameraError adds new error to stream', () { - const String testErrorDescription = 'Test error description!'; - SystemServices.cameraErrorStreamController.stream - .listen((String errorDescription) { - expect(errorDescription, equals(testErrorDescription)); - }); - SystemServicesFlutterApiImpl().onCameraError(testErrorDescription); - }); - - test('getTempFilePath completes normally', () async { - final MockTestSystemServicesHostApi mockApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockApi); - const String testPath = '/test/path/'; - const String testPrefix = 'MOV'; - const String testSuffix = '.mp4'; - - when(mockApi.getTempFilePath(testPrefix, testSuffix)) - .thenReturn(testPath + testPrefix + testSuffix); - expect(await SystemServices.getTempFilePath(testPrefix, testSuffix), - testPath + testPrefix + testSuffix); - verify(mockApi.getTempFilePath(testPrefix, testSuffix)); - }); - }); - - test('isPreviewPreTransformed returns expected answer', () async { - final MockTestSystemServicesHostApi mockApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockApi); - const bool isPreviewPreTransformed = true; - - when(mockApi.isPreviewPreTransformed()).thenReturn(isPreviewPreTransformed); - - expect(await SystemServices.isPreviewPreTransformed(), isTrue); - verify(mockApi.isPreviewPreTransformed()); - }); -} diff --git a/packages/camera/camera_android_camerax/test/system_services_test.mocks.dart b/packages/camera/camera_android_camerax/test/system_services_test.mocks.dart deleted file mode 100644 index 9abb64c39bb..00000000000 --- a/packages/camera/camera_android_camerax/test/system_services_test.mocks.dart +++ /dev/null @@ -1,99 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/system_services_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i3; - -import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i4; -import 'package:mockito/mockito.dart' as _i1; -import 'package:mockito/src/dummies.dart' as _i5; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestSystemServicesHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestSystemServicesHostApi extends _i1.Mock - implements _i2.TestSystemServicesHostApi { - MockTestSystemServicesHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - _i3.Future<_i4.CameraPermissionsErrorData?> requestCameraPermissions( - bool? enableAudio) => - (super.noSuchMethod( - Invocation.method( - #requestCameraPermissions, - [enableAudio], - ), - returnValue: _i3.Future<_i4.CameraPermissionsErrorData?>.value(), - ) as _i3.Future<_i4.CameraPermissionsErrorData?>); - - @override - String getTempFilePath( - String? prefix, - String? suffix, - ) => - (super.noSuchMethod( - Invocation.method( - #getTempFilePath, - [ - prefix, - suffix, - ], - ), - returnValue: _i5.dummyValue( - this, - Invocation.method( - #getTempFilePath, - [ - prefix, - suffix, - ], - ), - ), - ) as String); - - @override - bool isPreviewPreTransformed() => (super.noSuchMethod( - Invocation.method( - #isPreviewPreTransformed, - [], - ), - returnValue: false, - ) as bool); -} diff --git a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart b/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart deleted file mode 100644 index e442e53842e..00000000000 --- a/packages/camera/camera_android_camerax/test/test_camerax_library.g.dart +++ /dev/null @@ -1,102 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -// Autogenerated from Pigeon (v22.7.1), do not edit directly. -// See also: https://pub.dev/packages/pigeon -// ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, unnecessary_import, no_leading_underscores_for_local_identifiers -// ignore_for_file: avoid_relative_lib_imports -import 'dart:async'; -import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer; -import 'package:flutter/services.dart'; -import 'package:flutter_test/flutter_test.dart'; - -import 'package:camera_android_camerax/src/camerax_library2.g.dart'; - - -class _PigeonCodec extends StandardMessageCodec { - const _PigeonCodec(); - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is int) { - buffer.putUint8(4); - buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { - buffer.putUint8(129); - writeValue(buffer, value.index); - } else if (value is AspectRatio) { - buffer.putUint8(130); - writeValue(buffer, value.index); - } else if (value is CameraStateType) { - buffer.putUint8(131); - writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { - buffer.putUint8(132); - writeValue(buffer, value.index); - } else if (value is VideoQuality) { - buffer.putUint8(133); - writeValue(buffer, value.index); - } else if (value is MeteringMode) { - buffer.putUint8(134); - writeValue(buffer, value.index); - } else if (value is LensFacing) { - buffer.putUint8(135); - writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { - buffer.putUint8(136); - writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { - buffer.putUint8(137); - writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { - buffer.putUint8(138); - writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { - buffer.putUint8(139); - writeValue(buffer, value.index); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 129: - final int? value = readValue(buffer) as int?; - return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: - final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatio.values[value]; - case 131: - final int? value = readValue(buffer) as int?; - return value == null ? null : CameraStateType.values[value]; - case 132: - final int? value = readValue(buffer) as int?; - return value == null ? null : LiveDataSupportedType.values[value]; - case 133: - final int? value = readValue(buffer) as int?; - return value == null ? null : VideoQuality.values[value]; - case 134: - final int? value = readValue(buffer) as int?; - return value == null ? null : MeteringMode.values[value]; - case 135: - final int? value = readValue(buffer) as int?; - return value == null ? null : LensFacing.values[value]; - case 136: - final int? value = readValue(buffer) as int?; - return value == null ? null : CameraXFlashMode.values[value]; - case 137: - final int? value = readValue(buffer) as int?; - return value == null ? null : ResolutionStrategyFallbackRule.values[value]; - case 138: - final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; - case 139: - final int? value = readValue(buffer) as int?; - return value == null ? null : CameraStateErrorCode.values[value]; - default: - return super.readValueOfType(type, buffer); - } - } -} diff --git a/packages/camera/camera_android_camerax/test/video_capture_test.dart b/packages/camera/camera_android_camerax/test/video_capture_test.dart deleted file mode 100644 index c5fd1f078b9..00000000000 --- a/packages/camera/camera_android_camerax/test/video_capture_test.dart +++ /dev/null @@ -1,116 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/camerax_library.g.dart'; -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/recorder.dart'; -import 'package:camera_android_camerax/src/surface.dart'; -import 'package:camera_android_camerax/src/video_capture.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; -import 'package:mockito/mockito.dart'; - -import 'test_camerax_library.g.dart'; -import 'video_capture_test.mocks.dart'; - -@GenerateMocks( - [TestVideoCaptureHostApi, TestInstanceManagerHostApi, Recorder]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - test('withOutput calls the Java side and returns correct video capture', - () async { - final MockTestVideoCaptureHostApi mockApi = MockTestVideoCaptureHostApi(); - TestVideoCaptureHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final Recorder mockRecorder = MockRecorder(); - const int mockRecorderId = 2; - instanceManager.addHostCreatedInstance(mockRecorder, mockRecorderId, - onCopy: (_) => MockRecorder()); - - final VideoCapture videoCapture = - VideoCapture.detached(instanceManager: instanceManager); - const int videoCaptureId = 3; - instanceManager.addHostCreatedInstance(videoCapture, videoCaptureId, - onCopy: (_) => VideoCapture.detached(instanceManager: instanceManager)); - - when(mockApi.withOutput(mockRecorderId)).thenReturn(videoCaptureId); - - expect( - await VideoCapture.withOutput(mockRecorder, - instanceManager: instanceManager), - videoCapture); - verify(mockApi.withOutput(mockRecorderId)); - }); - - test( - 'setTargetRotation makes call to set target rotation for VideoCapture instance', - () async { - final MockTestVideoCaptureHostApi mockApi = MockTestVideoCaptureHostApi(); - TestVideoCaptureHostApi.setup(mockApi); - - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - const int targetRotation = Surface.rotation180; - final VideoCapture videoCapture = VideoCapture.detached( - instanceManager: instanceManager, - ); - instanceManager.addHostCreatedInstance( - videoCapture, - 0, - onCopy: (_) => VideoCapture.detached(instanceManager: instanceManager), - ); - - await videoCapture.setTargetRotation(targetRotation); - - verify(mockApi.setTargetRotation( - instanceManager.getIdentifier(videoCapture), targetRotation)); - }); - - test('getOutput calls the Java side and returns correct Recorder', () async { - final MockTestVideoCaptureHostApi mockApi = MockTestVideoCaptureHostApi(); - TestVideoCaptureHostApi.setup(mockApi); - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final VideoCapture videoCapture = - VideoCapture.detached(instanceManager: instanceManager); - const int videoCaptureId = 2; - instanceManager.addHostCreatedInstance(videoCapture, videoCaptureId, - onCopy: (_) => VideoCapture.detached(instanceManager: instanceManager)); - - final Recorder mockRecorder = MockRecorder(); - const int mockRecorderId = 3; - instanceManager.addHostCreatedInstance(mockRecorder, mockRecorderId, - onCopy: (_) => Recorder.detached(instanceManager: instanceManager)); - - when(mockApi.getOutput(videoCaptureId)).thenReturn(mockRecorderId); - expect(await videoCapture.getOutput(), mockRecorder); - verify(mockApi.getOutput(videoCaptureId)); - }); - - test('flutterApiCreateTest', () async { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - - final VideoCaptureFlutterApi flutterApi = VideoCaptureFlutterApiImpl( - instanceManager: instanceManager, - ); - - flutterApi.create(0); - - expect( - instanceManager.getInstanceWithWeakReference(0), isA()); - }); -} diff --git a/packages/camera/camera_android_camerax/test/video_capture_test.mocks.dart b/packages/camera/camera_android_camerax/test/video_capture_test.mocks.dart deleted file mode 100644 index 88ad98d462d..00000000000 --- a/packages/camera/camera_android_camerax/test/video_capture_test.mocks.dart +++ /dev/null @@ -1,126 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/video_capture_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'dart:async' as _i5; - -import 'package:camera_android_camerax/src/pending_recording.dart' as _i2; -import 'package:camera_android_camerax/src/recorder.dart' as _i4; -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i3; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -class _FakePendingRecording_0 extends _i1.SmartFake - implements _i2.PendingRecording { - _FakePendingRecording_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -/// A class which mocks [TestVideoCaptureHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestVideoCaptureHostApi extends _i1.Mock - implements _i3.TestVideoCaptureHostApi { - MockTestVideoCaptureHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - int withOutput(int? videoOutputId) => (super.noSuchMethod( - Invocation.method( - #withOutput, - [videoOutputId], - ), - returnValue: 0, - ) as int); - - @override - int getOutput(int? identifier) => (super.noSuchMethod( - Invocation.method( - #getOutput, - [identifier], - ), - returnValue: 0, - ) as int); - - @override - void setTargetRotation( - int? identifier, - int? rotation, - ) => - super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [ - identifier, - rotation, - ], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i3.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} - -/// A class which mocks [Recorder]. -/// -/// See the documentation for Mockito's code generation for more information. -// ignore: must_be_immutable -class MockRecorder extends _i1.Mock implements _i4.Recorder { - MockRecorder() { - _i1.throwOnMissingStub(this); - } - - @override - _i5.Future<_i2.PendingRecording> prepareRecording(String? path) => - (super.noSuchMethod( - Invocation.method( - #prepareRecording, - [path], - ), - returnValue: - _i5.Future<_i2.PendingRecording>.value(_FakePendingRecording_0( - this, - Invocation.method( - #prepareRecording, - [path], - ), - )), - ) as _i5.Future<_i2.PendingRecording>); -} diff --git a/packages/camera/camera_android_camerax/test/zoom_state_test.dart b/packages/camera/camera_android_camerax/test/zoom_state_test.dart deleted file mode 100644 index c36fa8689b3..00000000000 --- a/packages/camera/camera_android_camerax/test/zoom_state_test.dart +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -import 'package:camera_android_camerax/src/instance_manager.dart'; -import 'package:camera_android_camerax/src/zoom_state.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:mockito/annotations.dart'; - -import 'test_camerax_library.g.dart'; -import 'zoom_state_test.mocks.dart'; - -@GenerateMocks([TestInstanceManagerHostApi]) -void main() { - TestWidgetsFlutterBinding.ensureInitialized(); - - // Mocks the call to clear the native InstanceManager. - TestInstanceManagerHostApi.setup(MockTestInstanceManagerHostApi()); - - group('ZoomState', () { - test('flutterApi create makes call to create expected ZoomState', () { - final InstanceManager instanceManager = InstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ZoomStateFlutterApiImpl flutterApi = ZoomStateFlutterApiImpl( - instanceManager: instanceManager, - ); - const int zoomStateIdentifier = 68; - const double minZoomRatio = 0; - const double maxZoomRatio = 1; - - flutterApi.create(zoomStateIdentifier, minZoomRatio, maxZoomRatio); - - final ZoomState instance = instanceManager - .getInstanceWithWeakReference(zoomStateIdentifier)! as ZoomState; - expect(instance.minZoomRatio, equals(minZoomRatio)); - expect(instance.maxZoomRatio, equals(maxZoomRatio)); - }); - }); -} diff --git a/packages/camera/camera_android_camerax/test/zoom_state_test.mocks.dart b/packages/camera/camera_android_camerax/test/zoom_state_test.mocks.dart deleted file mode 100644 index d7ebec42469..00000000000 --- a/packages/camera/camera_android_camerax/test/zoom_state_test.mocks.dart +++ /dev/null @@ -1,40 +0,0 @@ -// Mocks generated by Mockito 5.4.4 from annotations -// in camera_android_camerax/test/zoom_state_test.dart. -// Do not manually edit this file. - -// ignore_for_file: no_leading_underscores_for_library_prefixes -import 'package:mockito/mockito.dart' as _i1; - -import 'test_camerax_library.g.dart' as _i2; - -// ignore_for_file: type=lint -// ignore_for_file: avoid_redundant_argument_values -// ignore_for_file: avoid_setters_without_getters -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: implementation_imports -// ignore_for_file: invalid_use_of_visible_for_testing_member -// ignore_for_file: prefer_const_constructors -// ignore_for_file: unnecessary_parenthesis -// ignore_for_file: camel_case_types -// ignore_for_file: subtype_of_sealed_class - -/// A class which mocks [TestInstanceManagerHostApi]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockTestInstanceManagerHostApi extends _i1.Mock - implements _i2.TestInstanceManagerHostApi { - MockTestInstanceManagerHostApi() { - _i1.throwOnMissingStub(this); - } - - @override - void clear() => super.noSuchMethod( - Invocation.method( - #clear, - [], - ), - returnValueForMissingStub: null, - ); -} From 9537145e48724a011750dea308e99df93b3e26b9 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Fri, 3 Jan 2025 15:44:52 -0500 Subject: [PATCH 026/148] fix test lints --- .../test/android_camera_camerax_test.dart | 440 ++++++++++++------ .../android_camera_camerax_test.mocks.dart | 121 +++++ 2 files changed, 430 insertions(+), 131 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index d662add864c..6c0493dd8b5 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -31,6 +31,7 @@ import 'android_camera_camerax_test.mocks.dart'; MockSpec(), MockSpec(), MockSpec(), + MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -59,33 +60,40 @@ import 'android_camera_camerax_test.mocks.dart'; void main() { TestWidgetsFlutterBinding.ensureInitialized(); - // /// Helper method for testing sending/receiving CameraErrorEvents. - // Future testCameraClosingObserver(AndroidCameraCameraX camera, - // int cameraId, Observer observer) async { - // final CameraStateError testCameraStateError = - // CameraStateError.detached(code: 0); - // final Stream cameraClosingEventStream = - // camera.onCameraClosing(cameraId); - // final StreamQueue cameraClosingStreamQueue = - // StreamQueue(cameraClosingEventStream); - // final Stream cameraErrorEventStream = - // camera.onCameraError(cameraId); - // final StreamQueue cameraErrorStreamQueue = - // StreamQueue(cameraErrorEventStream); - // - // observer.onChanged(CameraState.detached( - // type: CameraStateType.closing, error: testCameraStateError)); - // - // final bool cameraClosingEventSent = - // await cameraClosingStreamQueue.next == CameraClosingEvent(cameraId); - // final bool cameraErrorSent = await cameraErrorStreamQueue.next == - // CameraErrorEvent(cameraId, testCameraStateError.getDescription()); - // - // await cameraClosingStreamQueue.cancel(); - // await cameraErrorStreamQueue.cancel(); - // - // return cameraClosingEventSent && cameraErrorSent; - // } + /// Helper method for testing sending/receiving CameraErrorEvents. + Future testCameraClosingObserver(AndroidCameraCameraX camera, + int cameraId, Observer observer) async { + final CameraStateStateError testCameraStateError = + CameraStateStateError.pigeon_detached( + code: CameraStateErrorCode.doNotDisturbModeEnabled, + ); + final Stream cameraClosingEventStream = + camera.onCameraClosing(cameraId); + final StreamQueue cameraClosingStreamQueue = + StreamQueue(cameraClosingEventStream); + final Stream cameraErrorEventStream = + camera.onCameraError(cameraId); + final StreamQueue cameraErrorStreamQueue = + StreamQueue(cameraErrorEventStream); + + observer.onChanged( + observer, + CameraState.pigeon_detached( + type: CameraStateType.closing, error: testCameraStateError)); + + final bool cameraClosingEventSent = + await cameraClosingStreamQueue.next == CameraClosingEvent(cameraId); + final bool cameraErrorSent = await cameraErrorStreamQueue.next == + CameraErrorEvent( + cameraId, + 'The camera could not be opened because "Do Not Disturb" mode is enabled. Please disable this mode, and try opening the camera again.', + ); + + await cameraClosingStreamQueue.cancel(); + await cameraErrorStreamQueue.cancel(); + + return cameraClosingEventSent && cameraErrorSent; + } // // /// CameraXProxy for testing functionality related to the camera resolution // /// preset (setting expected ResolutionSelectors, QualitySelectors, etc.). @@ -227,15 +235,19 @@ void main() { // Tell plugin to create mock CameraSelectors for testing. camera.proxy = CameraXProxy( + setUpGenericsProxy: ({ + BinaryMessenger? pigeonBinaryMessenger, + PigeonInstanceManager? pigeonInstanceManager, + }) {}, getInstanceProcessCameraProvider: ({ - dynamic pigeon_binaryMessenger, - dynamic pigeon_instanceManager, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) => Future.value(mockProcessCameraProvider), newCameraSelector: ({ LensFacing? requireLensFacing, - dynamic pigeon_binaryMessenger, - dynamic pigeon_instanceManager, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, }) { switch (requireLensFacing) { case LensFacing.front: @@ -314,111 +326,277 @@ void main() { bool cameraPermissionsRequested = false; bool startedListeningForDeviceOrientationChanges = false; - // Tell plugin to create mock/detached objects and stub method calls for the - // testing of createCamera. - camera.proxy = CameraXProxy( - getInstanceProcessCameraProvider: ({ - dynamic pigeon_binaryMessenger, - dynamic pigeon_instanceManager, - }) => - Future.value(mockProcessCameraProvider), - newCameraSelector: ({ - LensFacing? requireLensFacing, - dynamic pigeon_binaryMessenger, - dynamic pigeon_instanceManager, - }) { - switch (requireLensFacing) { - case LensFacing.front: - return MockCameraSelector(); - case LensFacing.back: - case LensFacing.external: - case LensFacing.unknown: - case null: - } + final MockCameraXProxy mockProxy = MockCameraXProxy(); + when(mockProxy.getInstanceProcessCameraProvider).thenReturn(({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) async { + return mockProcessCameraProvider; + }); + when(mockProxy.newCameraSelector).thenReturn(({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } - return mockBackCameraSelector; - }, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockPreview, - newImageCapture: ({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockImageCapture, - newRecorder: ({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockRecorder, - withOutputVideoCapture: ({ - required VideoOutput videoOutput, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockVideoCapture, - newImageAnalysis: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockImageAnalysis, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockResolutionStrategy(), - newResolutionSelector: ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockResolutionSelector(), - lowerQualityThanFallbackStrategy: ({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockFallbackStrategy(), - createQualitySelector: ( - {required VideoQuality videoQuality, - required FallbackStrategy fallbackStrategy}) => - MockQualitySelector(), - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - requestCameraPermissions: (_) { + return mockBackCameraSelector; + }); + when(mockProxy.newPreview).thenReturn(({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockPreview; + }); + when(mockProxy.newImageCapture).thenReturn(({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageCapture; + }); + when(mockProxy.newRecorder).thenReturn(({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockRecorder; + }); + when(mockProxy.withOutputVideoCapture).thenReturn(({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockVideoCapture; + }); + when(mockProxy.newImageAnalysis).thenReturn(({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageAnalysis; + }); + when(mockProxy.newResolutionStrategy).thenReturn(({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }); + when(mockProxy.newResolutionStrategy).thenReturn(({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }); + when(mockProxy.newResolutionSelector).thenReturn(({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }); + when(mockProxy.lowerQualityThanFallbackStrategy).thenReturn(({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }); + when(mockProxy.fromQualitySelector).thenReturn(({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }); + when(mockProxy.newObserver).thenReturn(Observer.detached); + when(mockProxy.newSystemServicesManager).thenReturn(({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager manager = MockSystemServicesManager(); + when(manager.requestCameraPermissions(any)).thenAnswer((_) { cameraPermissionsRequested = true; return Future.value(); - }, - startListeningForDeviceOrientationChange: (_, __) { - startedListeningForDeviceOrientationChanges = true; - }, - createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), - createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), - getCamera2CameraInfo: (_) => - Future.value(MockCamera2CameraInfo()), - getUiOrientation: () => - Future.value(DeviceOrientation.portraitUp), - ); + }); + return manager; + }); + when(mockProxy.newDeviceOrientationManager).thenReturn(({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.startListeningForDeviceOrientationChange(any, any)) + .thenAnswer( + (_) async { + startedListeningForDeviceOrientationChanges = true; + }, + ); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }); + when(mockProxy.newAspectRatioStrategy).thenReturn(({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAspectRatioStrategy(); + }); + when(mockProxy.createWithOnePreferredSizeResolutionFilter).thenReturn(({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }); + when(mockProxy.fromCamera2CameraInfo).thenReturn(({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockCamera2CameraInfo(); + }); + + // Tell plugin to create mock/detached objects and stub method calls for the + // testing of createCamera. + // camera.proxy = CameraXProxy( + // getInstanceProcessCameraProvider: ({ + // dynamic pigeon_binaryMessenger, + // dynamic pigeon_instanceManager, + // }) => + // Future.value(mockProcessCameraProvider), + // newCameraSelector: ({ + // LensFacing? requireLensFacing, + // dynamic pigeon_binaryMessenger, + // dynamic pigeon_instanceManager, + // }) { + // switch (requireLensFacing) { + // case LensFacing.front: + // return MockCameraSelector(); + // case LensFacing.back: + // case LensFacing.external: + // case LensFacing.unknown: + // case null: + // } + // + // return mockBackCameraSelector; + // }, + // newPreview: ({ + // int? targetRotation, + // ResolutionSelector? resolutionSelector, + // BinaryMessenger? pigeon_binaryMessenger, + // PigeonInstanceManager? pigeon_instanceManager, + // }) => + // mockPreview, + // newImageCapture: ({ + // int? targetRotation, + // CameraXFlashMode? flashMode, + // ResolutionSelector? resolutionSelector, + // BinaryMessenger? pigeon_binaryMessenger, + // PigeonInstanceManager? pigeon_instanceManager, + // }) => + // mockImageCapture, + // newRecorder: ({ + // int? aspectRatio, + // int? targetVideoEncodingBitRate, + // QualitySelector? qualitySelector, + // BinaryMessenger? pigeon_binaryMessenger, + // PigeonInstanceManager? pigeon_instanceManager, + // }) => + // mockRecorder, + // withOutputVideoCapture: ({ + // required VideoOutput videoOutput, + // BinaryMessenger? pigeon_binaryMessenger, + // PigeonInstanceManager? pigeon_instanceManager, + // }) => + // mockVideoCapture, + // newImageAnalysis: ({ + // int? targetRotation, + // ResolutionSelector? resolutionSelector, + // BinaryMessenger? pigeon_binaryMessenger, + // PigeonInstanceManager? pigeon_instanceManager, + // }) => + // mockImageAnalysis, + // newResolutionStrategy: ({ + // required CameraSize boundSize, + // required ResolutionStrategyFallbackRule fallbackRule, + // BinaryMessenger? pigeon_binaryMessenger, + // PigeonInstanceManager? pigeon_instanceManager, + // }) => + // MockResolutionStrategy(), + // newResolutionSelector: ({ + // AspectRatioStrategy? aspectRatioStrategy, + // ResolutionStrategy? resolutionStrategy, + // ResolutionFilter? resolutionFilter, + // BinaryMessenger? pigeon_binaryMessenger, + // PigeonInstanceManager? pigeon_instanceManager, + // }) => + // MockResolutionSelector(), + // lowerQualityThanFallbackStrategy: ({ + // required VideoQuality quality, + // BinaryMessenger? pigeon_binaryMessenger, + // PigeonInstanceManager? pigeon_instanceManager, + // }) => + // MockFallbackStrategy(), + // createQualitySelector: ( + // {required VideoQuality videoQuality, + // required FallbackStrategy fallbackStrategy}) => + // MockQualitySelector(), + // createCameraStateObserver: (void Function(Object) onChanged) => + // Observer.detached(onChanged: onChanged), + // requestCameraPermissions: (_) { + // cameraPermissionsRequested = true; + // return Future.value(); + // }, + // startListeningForDeviceOrientationChange: (_, __) { + // startedListeningForDeviceOrientationChanges = true; + // }, + // createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), + // createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), + // getCamera2CameraInfo: (_) => + // Future.value(MockCamera2CameraInfo()), + // getUiOrientation: () => + // Future.value(DeviceOrientation.portraitUp), + // ); + + camera.proxy = mockProxy; camera.processCameraProvider = mockProcessCameraProvider; - when(mockPreview.setSurfaceProvider()) + when(mockPreview.setSurfaceProvider(mockSystemServicesManager)) .thenAnswer((_) async => testSurfaceTextureId); when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, [mockPreview, mockImageCapture, mockImageAnalysis])) @@ -458,7 +636,7 @@ void main() { expect(camera.videoCapture, equals(mockVideoCapture)); // Verify the camera's Preview instance has its surface provider set. - verify(camera.preview!.setSurfaceProvider()); + verify(camera.preview!.setSurfaceProvider(mockSystemServicesManager)); // Verify the camera state observer is updated. expect( diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index dca9a8a50a3..413936dec69 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -2296,6 +2296,127 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { ) as _i2.CameraCharacteristicsKey Function()); } +/// A class which mocks [DeviceOrientationManager]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockDeviceOrientationManager extends _i1.Mock + implements _i2.DeviceOrientationManager { + @override + void Function( + _i2.DeviceOrientationManager, + String, + ) get onDeviceOrientationChanged => (super.noSuchMethod( + Invocation.getter(#onDeviceOrientationChanged), + returnValue: ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + returnValueForMissingStub: ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + ) as void Function( + _i2.DeviceOrientationManager, + String, + )); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future startListeningForDeviceOrientationChange( + bool? isFrontFacing, + int? sensorOrientation, + ) => + (super.noSuchMethod( + Invocation.method( + #startListeningForDeviceOrientationChange, + [ + isFrontFacing, + sensorOrientation, + ], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future stopListeningForDeviceOrientationChange() => + (super.noSuchMethod( + Invocation.method( + #stopListeningForDeviceOrientationChange, + [], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future getDefaultDisplayRotation() => (super.noSuchMethod( + Invocation.method( + #getDefaultDisplayRotation, + [], + ), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); + + @override + _i5.Future getUiOrientation() => (super.noSuchMethod( + Invocation.method( + #getUiOrientation, + [], + ), + returnValue: _i5.Future.value(_i6.dummyValue( + this, + Invocation.method( + #getUiOrientation, + [], + ), + )), + returnValueForMissingStub: + _i5.Future.value(_i6.dummyValue( + this, + Invocation.method( + #getUiOrientation, + [], + ), + )), + ) as _i5.Future); + + @override + _i2.DeviceOrientationManager pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeDeviceOrientationManager_17( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeDeviceOrientationManager_17( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.DeviceOrientationManager); +} + /// A class which mocks [ExposureState]. /// /// See the documentation for Mockito's code generation for more information. From e43984c2da2dee1d7815eace8db6380f496029eb Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Fri, 3 Jan 2025 18:08:37 -0500 Subject: [PATCH 027/148] passing tests --- .../lib/src/android_camera_camerax.dart | 45 +- .../test/android_camera_camerax_test.dart | 57 ++- .../android_camera_camerax_test.mocks.dart | 437 +++++++++++------- 3 files changed, 336 insertions(+), 203 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 2be56c30605..82403cd4638 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -75,9 +75,22 @@ class AndroidCameraCameraX extends CameraPlatform { @visibleForTesting String? videoOutputPath; - late final SystemServicesManager systemServicesManager; - - late final DeviceOrientationManager deviceOrientationManager; + late final SystemServicesManager systemServicesManager = proxy + .newSystemServicesManager(onCameraError: (_, String errorDescription) { + cameraErrorStreamController.add(errorDescription); + }); + + late final DeviceOrientationManager deviceOrientationManager = + proxy.newDeviceOrientationManager( + onDeviceOrientationChanged: (_, String orientation) { + final DeviceOrientation deviceOrientation = _deserializeDeviceOrientation( + orientation, + ); + deviceOrientationChangedStreamController.add( + DeviceOrientationChangedEvent(deviceOrientation), + ); + }, + ); /// Stream that emits an event when the corresponding video recording is finalized. static final StreamController @@ -255,24 +268,6 @@ class AndroidCameraCameraX extends CameraPlatform { Future> availableCameras() async { proxy.setUpGenericsProxy(); - systemServicesManager = proxy.newSystemServicesManager( - onCameraError: (_, String errorDescription) { - cameraErrorStreamController.add(errorDescription); - }, - ); - - deviceOrientationManager = proxy.newDeviceOrientationManager( - onDeviceOrientationChanged: (_, String orientation) { - final DeviceOrientation deviceOrientation = - _deserializeDeviceOrientation( - orientation, - ); - deviceOrientationChangedStreamController.add( - DeviceOrientationChangedEvent(deviceOrientation), - ); - }, - ); - final List cameraDescriptions = []; processCameraProvider ??= await proxy.getInstanceProcessCameraProvider(); @@ -1375,8 +1370,7 @@ class AndroidCameraCameraX extends CameraPlatform { } } - // TODO: move to proxy - return Observer( + return proxy.newObserver( onChanged: (_, CameraState value) => onChanged(value), ); } @@ -1455,7 +1449,10 @@ class AndroidCameraCameraX extends CameraPlatform { } resolutionStrategy = proxy.newResolutionStrategy( - boundSize: CameraSize(width: boundSize.width, height: boundSize.height), + boundSize: proxy.newCameraSize( + width: boundSize.width, + height: boundSize.height, + ), fallbackRule: fallbackRule, ); final ResolutionFilter resolutionFilter = proxy diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 6c0493dd8b5..4d55668ee69 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -25,7 +25,9 @@ import 'android_camera_camerax_test.mocks.dart'; MockSpec(), MockSpec(), MockSpec(), + MockSpec(), MockSpec(), + MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -260,6 +262,16 @@ void main() { return mockBackCameraSelector; }, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); + }, ); // Mock calls to native platform @@ -322,6 +334,8 @@ void main() { final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); final MockSystemServicesManager mockSystemServicesManager = MockSystemServicesManager(); + final MockCameraCharacteristicsKey mockCameraCharacteristicsKey = + MockCameraCharacteristicsKey(); bool cameraPermissionsRequested = false; bool startedListeningForDeviceOrientationChanges = false; @@ -430,7 +444,18 @@ void main() { }) { return MockQualitySelector(); }); - when(mockProxy.newObserver).thenReturn(Observer.detached); + when(mockProxy.newObserver).thenReturn(({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }); when(mockProxy.newSystemServicesManager).thenReturn(({ required void Function( SystemServicesManager, @@ -439,12 +464,13 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { - final MockSystemServicesManager manager = MockSystemServicesManager(); - when(manager.requestCameraPermissions(any)).thenAnswer((_) { - cameraPermissionsRequested = true; - return Future.value(); - }); - return manager; + when(mockSystemServicesManager.requestCameraPermissions(any)).thenAnswer( + (_) { + cameraPermissionsRequested = true; + return Future.value(); + }, + ); + return mockSystemServicesManager; }); when(mockProxy.newDeviceOrientationManager).thenReturn(({ required void Function( @@ -487,7 +513,22 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { - return MockCamera2CameraInfo(); + final MockCamera2CameraInfo camera2cameraInfo = MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(mockCameraCharacteristicsKey), + ).thenAnswer((_) async => testSensorOrientation); + return camera2cameraInfo; + }); + when(mockProxy.newCameraSize).thenReturn(({ + required int width, + required int height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockCameraSize(); + }); + when(mockProxy.sensorOrientationCameraCharacteristics).thenReturn(() { + return mockCameraCharacteristicsKey; }); // Tell plugin to create mock/detached objects and stub method calls for the diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index 413936dec69..833536f88e3 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -121,9 +121,9 @@ class _FakeCameraInfo_8 extends _i1.SmartFake implements _i3.CameraInfo { ); } -class _FakeCamera2CameraControl_9 extends _i1.SmartFake - implements _i2.Camera2CameraControl { - _FakeCamera2CameraControl_9( +class _FakeCameraCharacteristicsKey_9 extends _i1.SmartFake + implements _i2.CameraCharacteristicsKey { + _FakeCameraCharacteristicsKey_9( Object parent, Invocation parentInvocation, ) : super( @@ -132,9 +132,8 @@ class _FakeCamera2CameraControl_9 extends _i1.SmartFake ); } -class _FakeCamera2CameraInfo_10 extends _i1.SmartFake - implements _i2.Camera2CameraInfo { - _FakeCamera2CameraInfo_10( +class _FakeCameraSize_10 extends _i1.SmartFake implements _i2.CameraSize { + _FakeCameraSize_10( Object parent, Invocation parentInvocation, ) : super( @@ -143,9 +142,9 @@ class _FakeCamera2CameraInfo_10 extends _i1.SmartFake ); } -class _FakeCameraImageFormat_11 extends _i1.SmartFake - implements _i4.CameraImageFormat { - _FakeCameraImageFormat_11( +class _FakeCamera2CameraControl_11 extends _i1.SmartFake + implements _i2.Camera2CameraControl { + _FakeCamera2CameraControl_11( Object parent, Invocation parentInvocation, ) : super( @@ -154,9 +153,20 @@ class _FakeCameraImageFormat_11 extends _i1.SmartFake ); } -class _FakeCameraSelector_12 extends _i1.SmartFake - implements _i2.CameraSelector { - _FakeCameraSelector_12( +class _FakeCamera2CameraInfo_12 extends _i1.SmartFake + implements _i2.Camera2CameraInfo { + _FakeCamera2CameraInfo_12( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeCameraImageFormat_13 extends _i1.SmartFake + implements _i4.CameraImageFormat { + _FakeCameraImageFormat_13( Object parent, Invocation parentInvocation, ) : super( @@ -165,8 +175,9 @@ class _FakeCameraSelector_12 extends _i1.SmartFake ); } -class _FakeCameraSize_13 extends _i1.SmartFake implements _i2.CameraSize { - _FakeCameraSize_13( +class _FakeCameraSelector_14 extends _i1.SmartFake + implements _i2.CameraSelector { + _FakeCameraSelector_14( Object parent, Invocation parentInvocation, ) : super( @@ -175,9 +186,9 @@ class _FakeCameraSize_13 extends _i1.SmartFake implements _i2.CameraSize { ); } -class _FakeCameraIntegerRange_14 extends _i1.SmartFake +class _FakeCameraIntegerRange_15 extends _i1.SmartFake implements _i2.CameraIntegerRange { - _FakeCameraIntegerRange_14( + _FakeCameraIntegerRange_15( Object parent, Invocation parentInvocation, ) : super( @@ -186,8 +197,8 @@ class _FakeCameraIntegerRange_14 extends _i1.SmartFake ); } -class _FakeObserver_15 extends _i1.SmartFake implements _i3.Observer { - _FakeObserver_15( +class _FakeObserver_16 extends _i1.SmartFake implements _i3.Observer { + _FakeObserver_16( Object parent, Invocation parentInvocation, ) : super( @@ -196,9 +207,9 @@ class _FakeObserver_15 extends _i1.SmartFake implements _i3.Observer { ); } -class _FakeSystemServicesManager_16 extends _i1.SmartFake +class _FakeSystemServicesManager_17 extends _i1.SmartFake implements _i2.SystemServicesManager { - _FakeSystemServicesManager_16( + _FakeSystemServicesManager_17( Object parent, Invocation parentInvocation, ) : super( @@ -207,9 +218,9 @@ class _FakeSystemServicesManager_16 extends _i1.SmartFake ); } -class _FakeDeviceOrientationManager_17 extends _i1.SmartFake +class _FakeDeviceOrientationManager_18 extends _i1.SmartFake implements _i2.DeviceOrientationManager { - _FakeDeviceOrientationManager_17( + _FakeDeviceOrientationManager_18( Object parent, Invocation parentInvocation, ) : super( @@ -218,8 +229,8 @@ class _FakeDeviceOrientationManager_17 extends _i1.SmartFake ); } -class _FakePreview_18 extends _i1.SmartFake implements _i2.Preview { - _FakePreview_18( +class _FakePreview_19 extends _i1.SmartFake implements _i2.Preview { + _FakePreview_19( Object parent, Invocation parentInvocation, ) : super( @@ -228,8 +239,8 @@ class _FakePreview_18 extends _i1.SmartFake implements _i2.Preview { ); } -class _FakeVideoCapture_19 extends _i1.SmartFake implements _i2.VideoCapture { - _FakeVideoCapture_19( +class _FakeVideoCapture_20 extends _i1.SmartFake implements _i2.VideoCapture { + _FakeVideoCapture_20( Object parent, Invocation parentInvocation, ) : super( @@ -238,8 +249,8 @@ class _FakeVideoCapture_19 extends _i1.SmartFake implements _i2.VideoCapture { ); } -class _FakeRecorder_20 extends _i1.SmartFake implements _i2.Recorder { - _FakeRecorder_20( +class _FakeRecorder_21 extends _i1.SmartFake implements _i2.Recorder { + _FakeRecorder_21( Object parent, Invocation parentInvocation, ) : super( @@ -248,9 +259,9 @@ class _FakeRecorder_20 extends _i1.SmartFake implements _i2.Recorder { ); } -class _FakeVideoRecordEventListener_21 extends _i1.SmartFake +class _FakeVideoRecordEventListener_22 extends _i1.SmartFake implements _i2.VideoRecordEventListener { - _FakeVideoRecordEventListener_21( + _FakeVideoRecordEventListener_22( Object parent, Invocation parentInvocation, ) : super( @@ -259,8 +270,8 @@ class _FakeVideoRecordEventListener_21 extends _i1.SmartFake ); } -class _FakeImageCapture_22 extends _i1.SmartFake implements _i2.ImageCapture { - _FakeImageCapture_22( +class _FakeImageCapture_23 extends _i1.SmartFake implements _i2.ImageCapture { + _FakeImageCapture_23( Object parent, Invocation parentInvocation, ) : super( @@ -269,9 +280,9 @@ class _FakeImageCapture_22 extends _i1.SmartFake implements _i2.ImageCapture { ); } -class _FakeResolutionStrategy_23 extends _i1.SmartFake +class _FakeResolutionStrategy_24 extends _i1.SmartFake implements _i2.ResolutionStrategy { - _FakeResolutionStrategy_23( + _FakeResolutionStrategy_24( Object parent, Invocation parentInvocation, ) : super( @@ -280,9 +291,9 @@ class _FakeResolutionStrategy_23 extends _i1.SmartFake ); } -class _FakeResolutionSelector_24 extends _i1.SmartFake +class _FakeResolutionSelector_25 extends _i1.SmartFake implements _i2.ResolutionSelector { - _FakeResolutionSelector_24( + _FakeResolutionSelector_25( Object parent, Invocation parentInvocation, ) : super( @@ -291,8 +302,8 @@ class _FakeResolutionSelector_24 extends _i1.SmartFake ); } -class _FakeImageAnalysis_25 extends _i1.SmartFake implements _i2.ImageAnalysis { - _FakeImageAnalysis_25( +class _FakeImageAnalysis_26 extends _i1.SmartFake implements _i2.ImageAnalysis { + _FakeImageAnalysis_26( Object parent, Invocation parentInvocation, ) : super( @@ -301,9 +312,9 @@ class _FakeImageAnalysis_25 extends _i1.SmartFake implements _i2.ImageAnalysis { ); } -class _FakeQualitySelector_26 extends _i1.SmartFake +class _FakeQualitySelector_27 extends _i1.SmartFake implements _i2.QualitySelector { - _FakeQualitySelector_26( + _FakeQualitySelector_27( Object parent, Invocation parentInvocation, ) : super( @@ -312,9 +323,9 @@ class _FakeQualitySelector_26 extends _i1.SmartFake ); } -class _FakeFallbackStrategy_27 extends _i1.SmartFake +class _FakeFallbackStrategy_28 extends _i1.SmartFake implements _i2.FallbackStrategy { - _FakeFallbackStrategy_27( + _FakeFallbackStrategy_28( Object parent, Invocation parentInvocation, ) : super( @@ -323,9 +334,9 @@ class _FakeFallbackStrategy_27 extends _i1.SmartFake ); } -class _FakeFocusMeteringActionBuilder_28 extends _i1.SmartFake +class _FakeFocusMeteringActionBuilder_29 extends _i1.SmartFake implements _i2.FocusMeteringActionBuilder { - _FakeFocusMeteringActionBuilder_28( + _FakeFocusMeteringActionBuilder_29( Object parent, Invocation parentInvocation, ) : super( @@ -334,9 +345,9 @@ class _FakeFocusMeteringActionBuilder_28 extends _i1.SmartFake ); } -class _FakeCaptureRequestOptions_29 extends _i1.SmartFake +class _FakeCaptureRequestOptions_30 extends _i1.SmartFake implements _i2.CaptureRequestOptions { - _FakeCaptureRequestOptions_29( + _FakeCaptureRequestOptions_30( Object parent, Invocation parentInvocation, ) : super( @@ -345,9 +356,9 @@ class _FakeCaptureRequestOptions_29 extends _i1.SmartFake ); } -class _FakeResolutionFilter_30 extends _i1.SmartFake +class _FakeResolutionFilter_31 extends _i1.SmartFake implements _i2.ResolutionFilter { - _FakeResolutionFilter_30( + _FakeResolutionFilter_31( Object parent, Invocation parentInvocation, ) : super( @@ -356,9 +367,9 @@ class _FakeResolutionFilter_30 extends _i1.SmartFake ); } -class _FakeDisplayOrientedMeteringPointFactory_31 extends _i1.SmartFake +class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake implements _i2.DisplayOrientedMeteringPointFactory { - _FakeDisplayOrientedMeteringPointFactory_31( + _FakeDisplayOrientedMeteringPointFactory_32( Object parent, Invocation parentInvocation, ) : super( @@ -367,9 +378,9 @@ class _FakeDisplayOrientedMeteringPointFactory_31 extends _i1.SmartFake ); } -class _FakeProcessCameraProvider_32 extends _i1.SmartFake +class _FakeProcessCameraProvider_33 extends _i1.SmartFake implements _i2.ProcessCameraProvider { - _FakeProcessCameraProvider_32( + _FakeProcessCameraProvider_33( Object parent, Invocation parentInvocation, ) : super( @@ -378,20 +389,9 @@ class _FakeProcessCameraProvider_32 extends _i1.SmartFake ); } -class _FakeCaptureRequestKey_33 extends _i1.SmartFake +class _FakeCaptureRequestKey_34 extends _i1.SmartFake implements _i2.CaptureRequestKey { - _FakeCaptureRequestKey_33( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); -} - -class _FakeCameraCharacteristicsKey_34 extends _i1.SmartFake - implements _i2.CameraCharacteristicsKey { - _FakeCameraCharacteristicsKey_34( + _FakeCaptureRequestKey_34( Object parent, Invocation parentInvocation, ) : super( @@ -759,6 +759,47 @@ class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { ) as _i3.CameraInfo); } +/// A class which mocks [CameraCharacteristicsKey]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockCameraCharacteristicsKey extends _i1.Mock + implements _i2.CameraCharacteristicsKey { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.CameraCharacteristicsKey pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.CameraCharacteristicsKey); +} + /// A class which mocks [CameraControl]. /// /// See the documentation for Mockito's code generation for more information. @@ -852,6 +893,60 @@ class MockCameraControl extends _i1.Mock implements _i2.CameraControl { ) as _i2.CameraControl); } +/// A class which mocks [CameraSize]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockCameraSize extends _i1.Mock implements _i2.CameraSize { + @override + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.CameraSize pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeCameraSize_10( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeCameraSize_10( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.CameraSize); +} + /// A class which mocks [Camera2CameraControl]. /// /// See the documentation for Mockito's code generation for more information. @@ -888,14 +983,14 @@ class MockCamera2CameraControl extends _i1.Mock #pigeon_copy, [], ), - returnValue: _FakeCamera2CameraControl_9( + returnValue: _FakeCamera2CameraControl_11( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeCamera2CameraControl_9( + returnValueForMissingStub: _FakeCamera2CameraControl_11( this, Invocation.method( #pigeon_copy, @@ -963,14 +1058,14 @@ class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { #pigeon_copy, [], ), - returnValue: _FakeCamera2CameraInfo_10( + returnValue: _FakeCamera2CameraInfo_12( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeCamera2CameraInfo_10( + returnValueForMissingStub: _FakeCamera2CameraInfo_12( this, Invocation.method( #pigeon_copy, @@ -988,11 +1083,11 @@ class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { @override _i4.CameraImageFormat get format => (super.noSuchMethod( Invocation.getter(#format), - returnValue: _FakeCameraImageFormat_11( + returnValue: _FakeCameraImageFormat_13( this, Invocation.getter(#format), ), - returnValueForMissingStub: _FakeCameraImageFormat_11( + returnValueForMissingStub: _FakeCameraImageFormat_13( this, Invocation.getter(#format), ), @@ -1055,14 +1150,14 @@ class MockCameraSelector extends _i1.Mock implements _i2.CameraSelector { #pigeon_copy, [], ), - returnValue: _FakeCameraSelector_12( + returnValue: _FakeCameraSelector_14( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeCameraSelector_12( + returnValueForMissingStub: _FakeCameraSelector_14( this, Invocation.method( #pigeon_copy, @@ -1109,7 +1204,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required int width, }) => - _FakeCameraSize_13( + _FakeCameraSize_10( this, Invocation.getter(#newCameraSize), ), @@ -1119,7 +1214,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required int width, }) => - _FakeCameraSize_13( + _FakeCameraSize_10( this, Invocation.getter(#newCameraSize), ), @@ -1144,7 +1239,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required int upper, }) => - _FakeCameraIntegerRange_14( + _FakeCameraIntegerRange_15( this, Invocation.getter(#newCameraIntegerRange), ), @@ -1154,7 +1249,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required int upper, }) => - _FakeCameraIntegerRange_14( + _FakeCameraIntegerRange_15( this, Invocation.getter(#newCameraIntegerRange), ), @@ -1183,7 +1278,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeObserver_15( + _FakeObserver_16( this, Invocation.getter(#newObserver), ), @@ -1195,7 +1290,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeObserver_15( + _FakeObserver_16( this, Invocation.getter(#newObserver), ), @@ -1220,7 +1315,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.LensFacing? requireLensFacing, }) => - _FakeCameraSelector_12( + _FakeCameraSelector_14( this, Invocation.getter(#newCameraSelector), ), @@ -1229,7 +1324,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.LensFacing? requireLensFacing, }) => - _FakeCameraSelector_12( + _FakeCameraSelector_14( this, Invocation.getter(#newCameraSelector), ), @@ -1257,7 +1352,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeSystemServicesManager_16( + _FakeSystemServicesManager_17( this, Invocation.getter(#newSystemServicesManager), ), @@ -1269,7 +1364,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeSystemServicesManager_16( + _FakeSystemServicesManager_17( this, Invocation.getter(#newSystemServicesManager), ), @@ -1300,7 +1395,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeDeviceOrientationManager_17( + _FakeDeviceOrientationManager_18( this, Invocation.getter(#newDeviceOrientationManager), ), @@ -1312,7 +1407,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeDeviceOrientationManager_17( + _FakeDeviceOrientationManager_18( this, Invocation.getter(#newDeviceOrientationManager), ), @@ -1339,7 +1434,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.ResolutionSelector? resolutionSelector, int? targetRotation, }) => - _FakePreview_18( + _FakePreview_19( this, Invocation.getter(#newPreview), ), @@ -1349,7 +1444,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.ResolutionSelector? resolutionSelector, int? targetRotation, }) => - _FakePreview_18( + _FakePreview_19( this, Invocation.getter(#newPreview), ), @@ -1372,7 +1467,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoOutput videoOutput, }) => - _FakeVideoCapture_19( + _FakeVideoCapture_20( this, Invocation.getter(#withOutputVideoCapture), ), @@ -1381,7 +1476,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoOutput videoOutput, }) => - _FakeVideoCapture_19( + _FakeVideoCapture_20( this, Invocation.getter(#withOutputVideoCapture), ), @@ -1407,7 +1502,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.QualitySelector? qualitySelector, int? targetVideoEncodingBitRate, }) => - _FakeRecorder_20( + _FakeRecorder_21( this, Invocation.getter(#newRecorder), ), @@ -1418,7 +1513,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.QualitySelector? qualitySelector, int? targetVideoEncodingBitRate, }) => - _FakeRecorder_20( + _FakeRecorder_21( this, Invocation.getter(#newRecorder), ), @@ -1448,7 +1543,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeVideoRecordEventListener_21( + _FakeVideoRecordEventListener_22( this, Invocation.getter(#newVideoRecordEventListener), ), @@ -1460,7 +1555,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeVideoRecordEventListener_21( + _FakeVideoRecordEventListener_22( this, Invocation.getter(#newVideoRecordEventListener), ), @@ -1489,7 +1584,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.ResolutionSelector? resolutionSelector, int? targetRotation, }) => - _FakeImageCapture_22( + _FakeImageCapture_23( this, Invocation.getter(#newImageCapture), ), @@ -1500,7 +1595,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.ResolutionSelector? resolutionSelector, int? targetRotation, }) => - _FakeImageCapture_22( + _FakeImageCapture_23( this, Invocation.getter(#newImageCapture), ), @@ -1526,7 +1621,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeResolutionStrategy_23( + _FakeResolutionStrategy_24( this, Invocation.getter(#newResolutionStrategy), ), @@ -1536,7 +1631,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeResolutionStrategy_23( + _FakeResolutionStrategy_24( this, Invocation.getter(#newResolutionStrategy), ), @@ -1563,7 +1658,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.ResolutionFilter? resolutionFilter, _i2.ResolutionStrategy? resolutionStrategy, }) => - _FakeResolutionSelector_24( + _FakeResolutionSelector_25( this, Invocation.getter(#newResolutionSelector), ), @@ -1574,7 +1669,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.ResolutionFilter? resolutionFilter, _i2.ResolutionStrategy? resolutionStrategy, }) => - _FakeResolutionSelector_24( + _FakeResolutionSelector_25( this, Invocation.getter(#newResolutionSelector), ), @@ -1635,7 +1730,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.ResolutionSelector? resolutionSelector, int? targetRotation, }) => - _FakeImageAnalysis_25( + _FakeImageAnalysis_26( this, Invocation.getter(#newImageAnalysis), ), @@ -1645,7 +1740,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.ResolutionSelector? resolutionSelector, int? targetRotation, }) => - _FakeImageAnalysis_25( + _FakeImageAnalysis_26( this, Invocation.getter(#newImageAnalysis), ), @@ -1713,7 +1808,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeQualitySelector_26( + _FakeQualitySelector_27( this, Invocation.getter(#fromQualitySelector), ), @@ -1723,7 +1818,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeQualitySelector_26( + _FakeQualitySelector_27( this, Invocation.getter(#fromQualitySelector), ), @@ -1748,7 +1843,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required List<_i2.VideoQuality> qualities, }) => - _FakeQualitySelector_26( + _FakeQualitySelector_27( this, Invocation.getter(#fromOrderedListQualitySelector), ), @@ -1758,7 +1853,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required List<_i2.VideoQuality> qualities, }) => - _FakeQualitySelector_26( + _FakeQualitySelector_27( this, Invocation.getter(#fromOrderedListQualitySelector), ), @@ -1781,7 +1876,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeFallbackStrategy_27( + _FakeFallbackStrategy_28( this, Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), ), @@ -1790,7 +1885,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeFallbackStrategy_27( + _FakeFallbackStrategy_28( this, Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), ), @@ -1812,7 +1907,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeFallbackStrategy_27( + _FakeFallbackStrategy_28( this, Invocation.getter(#higherQualityThanFallbackStrategy), ), @@ -1821,7 +1916,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeFallbackStrategy_27( + _FakeFallbackStrategy_28( this, Invocation.getter(#higherQualityThanFallbackStrategy), ), @@ -1843,7 +1938,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeFallbackStrategy_27( + _FakeFallbackStrategy_28( this, Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), ), @@ -1852,7 +1947,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeFallbackStrategy_27( + _FakeFallbackStrategy_28( this, Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), ), @@ -1874,7 +1969,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeFallbackStrategy_27( + _FakeFallbackStrategy_28( this, Invocation.getter(#lowerQualityThanFallbackStrategy), ), @@ -1883,7 +1978,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.VideoQuality quality, }) => - _FakeFallbackStrategy_27( + _FakeFallbackStrategy_28( this, Invocation.getter(#lowerQualityThanFallbackStrategy), ), @@ -1905,7 +2000,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.MeteringPoint point, }) => - _FakeFocusMeteringActionBuilder_28( + _FakeFocusMeteringActionBuilder_29( this, Invocation.getter(#newFocusMeteringActionBuilder), ), @@ -1914,7 +2009,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.MeteringPoint point, }) => - _FakeFocusMeteringActionBuilder_28( + _FakeFocusMeteringActionBuilder_29( this, Invocation.getter(#newFocusMeteringActionBuilder), ), @@ -1938,7 +2033,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.MeteringPoint point, }) => - _FakeFocusMeteringActionBuilder_28( + _FakeFocusMeteringActionBuilder_29( this, Invocation.getter(#withModeFocusMeteringActionBuilder), ), @@ -1948,7 +2043,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.MeteringPoint point, }) => - _FakeFocusMeteringActionBuilder_28( + _FakeFocusMeteringActionBuilder_29( this, Invocation.getter(#withModeFocusMeteringActionBuilder), ), @@ -1971,7 +2066,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeCaptureRequestOptions_29( + _FakeCaptureRequestOptions_30( this, Invocation.getter(#newCaptureRequestOptions), ), @@ -1980,7 +2075,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeCaptureRequestOptions_29( + _FakeCaptureRequestOptions_30( this, Invocation.getter(#newCaptureRequestOptions), ), @@ -2002,7 +2097,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeCamera2CameraControl_9( + _FakeCamera2CameraControl_11( this, Invocation.getter(#fromCamera2CameraControl), ), @@ -2011,7 +2106,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeCamera2CameraControl_9( + _FakeCamera2CameraControl_11( this, Invocation.getter(#fromCamera2CameraControl), ), @@ -2033,7 +2128,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.CameraSize preferredSize, }) => - _FakeResolutionFilter_30( + _FakeResolutionFilter_31( this, Invocation.getter(#createWithOnePreferredSizeResolutionFilter), ), @@ -2042,7 +2137,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required _i2.CameraSize preferredSize, }) => - _FakeResolutionFilter_30( + _FakeResolutionFilter_31( this, Invocation.getter(#createWithOnePreferredSizeResolutionFilter), ), @@ -2064,7 +2159,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeCamera2CameraInfo_10( + _FakeCamera2CameraInfo_12( this, Invocation.getter(#fromCamera2CameraInfo), ), @@ -2073,7 +2168,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, }) => - _FakeCamera2CameraInfo_10( + _FakeCamera2CameraInfo_12( this, Invocation.getter(#fromCamera2CameraInfo), ), @@ -2099,7 +2194,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required double width, }) => - _FakeDisplayOrientedMeteringPointFactory_31( + _FakeDisplayOrientedMeteringPointFactory_32( this, Invocation.getter(#newDisplayOrientedMeteringPointFactory), ), @@ -2110,7 +2205,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, required double width, }) => - _FakeDisplayOrientedMeteringPointFactory_31( + _FakeDisplayOrientedMeteringPointFactory_32( this, Invocation.getter(#newDisplayOrientedMeteringPointFactory), ), @@ -2133,7 +2228,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, }) => _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_32( + _FakeProcessCameraProvider_33( this, Invocation.getter(#getInstanceProcessCameraProvider), )), @@ -2142,7 +2237,7 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, }) => _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_32( + _FakeProcessCameraProvider_33( this, Invocation.getter(#getInstanceProcessCameraProvider), )), @@ -2184,11 +2279,11 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.CameraSelector Function() get defaultBackCameraCameraSelector => (super.noSuchMethod( Invocation.getter(#defaultBackCameraCameraSelector), - returnValue: () => _FakeCameraSelector_12( + returnValue: () => _FakeCameraSelector_14( this, Invocation.getter(#defaultBackCameraCameraSelector), ), - returnValueForMissingStub: () => _FakeCameraSelector_12( + returnValueForMissingStub: () => _FakeCameraSelector_14( this, Invocation.getter(#defaultBackCameraCameraSelector), ), @@ -2198,11 +2293,11 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.CameraSelector Function() get defaultFrontCameraCameraSelector => (super.noSuchMethod( Invocation.getter(#defaultFrontCameraCameraSelector), - returnValue: () => _FakeCameraSelector_12( + returnValue: () => _FakeCameraSelector_14( this, Invocation.getter(#defaultFrontCameraCameraSelector), ), - returnValueForMissingStub: () => _FakeCameraSelector_12( + returnValueForMissingStub: () => _FakeCameraSelector_14( this, Invocation.getter(#defaultFrontCameraCameraSelector), ), @@ -2212,11 +2307,11 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.ResolutionStrategy Function() get highestAvailableStrategyResolutionStrategy => (super.noSuchMethod( Invocation.getter(#highestAvailableStrategyResolutionStrategy), - returnValue: () => _FakeResolutionStrategy_23( + returnValue: () => _FakeResolutionStrategy_24( this, Invocation.getter(#highestAvailableStrategyResolutionStrategy), ), - returnValueForMissingStub: () => _FakeResolutionStrategy_23( + returnValueForMissingStub: () => _FakeResolutionStrategy_24( this, Invocation.getter(#highestAvailableStrategyResolutionStrategy), ), @@ -2256,11 +2351,11 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.CaptureRequestKey Function() get controlAELockCaptureRequest => (super.noSuchMethod( Invocation.getter(#controlAELockCaptureRequest), - returnValue: () => _FakeCaptureRequestKey_33( + returnValue: () => _FakeCaptureRequestKey_34( this, Invocation.getter(#controlAELockCaptureRequest), ), - returnValueForMissingStub: () => _FakeCaptureRequestKey_33( + returnValueForMissingStub: () => _FakeCaptureRequestKey_34( this, Invocation.getter(#controlAELockCaptureRequest), ), @@ -2271,11 +2366,11 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { Function() get infoSupportedHardwareLevelCameraCharacteristics => (super .noSuchMethod( Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), - returnValue: () => _FakeCameraCharacteristicsKey_34( + returnValue: () => _FakeCameraCharacteristicsKey_9( this, Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), ), - returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_34( + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( this, Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), ), @@ -2285,11 +2380,11 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.CameraCharacteristicsKey Function() get sensorOrientationCameraCharacteristics => (super.noSuchMethod( Invocation.getter(#sensorOrientationCameraCharacteristics), - returnValue: () => _FakeCameraCharacteristicsKey_34( + returnValue: () => _FakeCameraCharacteristicsKey_9( this, Invocation.getter(#sensorOrientationCameraCharacteristics), ), - returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_34( + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( this, Invocation.getter(#sensorOrientationCameraCharacteristics), ), @@ -2400,14 +2495,14 @@ class MockDeviceOrientationManager extends _i1.Mock #pigeon_copy, [], ), - returnValue: _FakeDeviceOrientationManager_17( + returnValue: _FakeDeviceOrientationManager_18( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeDeviceOrientationManager_17( + returnValueForMissingStub: _FakeDeviceOrientationManager_18( this, Invocation.method( #pigeon_copy, @@ -2424,11 +2519,11 @@ class MockExposureState extends _i1.Mock implements _i2.ExposureState { @override _i2.CameraIntegerRange get exposureCompensationRange => (super.noSuchMethod( Invocation.getter(#exposureCompensationRange), - returnValue: _FakeCameraIntegerRange_14( + returnValue: _FakeCameraIntegerRange_15( this, Invocation.getter(#exposureCompensationRange), ), - returnValueForMissingStub: _FakeCameraIntegerRange_14( + returnValueForMissingStub: _FakeCameraIntegerRange_15( this, Invocation.getter(#exposureCompensationRange), ), @@ -2500,14 +2595,14 @@ class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { #pigeon_copy, [], ), - returnValue: _FakeFallbackStrategy_27( + returnValue: _FakeFallbackStrategy_28( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeFallbackStrategy_27( + returnValueForMissingStub: _FakeFallbackStrategy_28( this, Invocation.method( #pigeon_copy, @@ -2618,14 +2713,14 @@ class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { #pigeon_copy, [], ), - returnValue: _FakeImageAnalysis_25( + returnValue: _FakeImageAnalysis_26( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeImageAnalysis_25( + returnValueForMissingStub: _FakeImageAnalysis_26( this, Invocation.method( #pigeon_copy, @@ -2702,14 +2797,14 @@ class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { #pigeon_copy, [], ), - returnValue: _FakeImageCapture_22( + returnValue: _FakeImageCapture_23( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeImageCapture_22( + returnValueForMissingStub: _FakeImageCapture_23( this, Invocation.method( #pigeon_copy, @@ -2843,14 +2938,14 @@ class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { #pigeon_copy, [], ), - returnValue: _FakeObserver_15<_i2.CameraState>( + returnValue: _FakeObserver_16<_i2.CameraState>( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeObserver_15<_i2.CameraState>( + returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( this, Invocation.method( #pigeon_copy, @@ -3050,14 +3145,14 @@ class MockPreview extends _i1.Mock implements _i2.Preview { #pigeon_copy, [], ), - returnValue: _FakePreview_18( + returnValue: _FakePreview_19( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakePreview_18( + returnValueForMissingStub: _FakePreview_19( this, Invocation.method( #pigeon_copy, @@ -3168,14 +3263,14 @@ class MockProcessCameraProvider extends _i1.Mock #pigeon_copy, [], ), - returnValue: _FakeProcessCameraProvider_32( + returnValue: _FakeProcessCameraProvider_33( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeProcessCameraProvider_32( + returnValueForMissingStub: _FakeProcessCameraProvider_33( this, Invocation.method( #pigeon_copy, @@ -3208,14 +3303,14 @@ class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { #pigeon_copy, [], ), - returnValue: _FakeQualitySelector_26( + returnValue: _FakeQualitySelector_27( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeQualitySelector_26( + returnValueForMissingStub: _FakeQualitySelector_27( this, Invocation.method( #pigeon_copy, @@ -3293,14 +3388,14 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { #pigeon_copy, [], ), - returnValue: _FakeRecorder_20( + returnValue: _FakeRecorder_21( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeRecorder_20( + returnValueForMissingStub: _FakeRecorder_21( this, Invocation.method( #pigeon_copy, @@ -3333,14 +3428,14 @@ class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { #pigeon_copy, [], ), - returnValue: _FakeResolutionFilter_30( + returnValue: _FakeResolutionFilter_31( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeResolutionFilter_30( + returnValueForMissingStub: _FakeResolutionFilter_31( this, Invocation.method( #pigeon_copy, @@ -3374,14 +3469,14 @@ class MockResolutionSelector extends _i1.Mock #pigeon_copy, [], ), - returnValue: _FakeResolutionSelector_24( + returnValue: _FakeResolutionSelector_25( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeResolutionSelector_24( + returnValueForMissingStub: _FakeResolutionSelector_25( this, Invocation.method( #pigeon_copy, @@ -3415,14 +3510,14 @@ class MockResolutionStrategy extends _i1.Mock #pigeon_copy, [], ), - returnValue: _FakeResolutionStrategy_23( + returnValue: _FakeResolutionStrategy_24( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeResolutionStrategy_23( + returnValueForMissingStub: _FakeResolutionStrategy_24( this, Invocation.method( #pigeon_copy, @@ -3612,14 +3707,14 @@ class MockSystemServicesManager extends _i1.Mock #pigeon_copy, [], ), - returnValue: _FakeSystemServicesManager_16( + returnValue: _FakeSystemServicesManager_17( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeSystemServicesManager_16( + returnValueForMissingStub: _FakeSystemServicesManager_17( this, Invocation.method( #pigeon_copy, @@ -3685,14 +3780,14 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { #pigeon_copy, [], ), - returnValue: _FakeVideoCapture_19( + returnValue: _FakeVideoCapture_20( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeVideoCapture_19( + returnValueForMissingStub: _FakeVideoCapture_20( this, Invocation.method( #pigeon_copy, From 66773c3bca9d6e75d20d3bd5ee07739bb83f8ba6 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 4 Jan 2025 15:42:54 -0500 Subject: [PATCH 028/148] change tests to set the proxy --- .../test/android_camera_camerax_test.dart | 470 +++++++----------- 1 file changed, 177 insertions(+), 293 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 4d55668ee69..31ff0c43c88 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -340,300 +340,184 @@ void main() { bool cameraPermissionsRequested = false; bool startedListeningForDeviceOrientationChanges = false; - final MockCameraXProxy mockProxy = MockCameraXProxy(); - when(mockProxy.getInstanceProcessCameraProvider).thenReturn(({ - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) async { - return mockProcessCameraProvider; - }); - when(mockProxy.newCameraSelector).thenReturn(({ - LensFacing? requireLensFacing, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - switch (requireLensFacing) { - case LensFacing.front: - return MockCameraSelector(); - case LensFacing.back: - case LensFacing.external: - case LensFacing.unknown: - case null: - } - - return mockBackCameraSelector; - }); - when(mockProxy.newPreview).thenReturn(({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockPreview; - }); - when(mockProxy.newImageCapture).thenReturn(({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockImageCapture; - }); - when(mockProxy.newRecorder).thenReturn(({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockRecorder; - }); - when(mockProxy.withOutputVideoCapture).thenReturn(({ - required VideoOutput videoOutput, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockVideoCapture; - }); - when(mockProxy.newImageAnalysis).thenReturn(({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockImageAnalysis; - }); - when(mockProxy.newResolutionStrategy).thenReturn(({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionStrategy(); - }); - when(mockProxy.newResolutionStrategy).thenReturn(({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionStrategy(); - }); - when(mockProxy.newResolutionSelector).thenReturn(({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionSelector(); - }); - when(mockProxy.lowerQualityThanFallbackStrategy).thenReturn(({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }); - when(mockProxy.fromQualitySelector).thenReturn(({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockQualitySelector(); - }); - when(mockProxy.newObserver).thenReturn(({ - required void Function(Observer, T) onChanged, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }); - when(mockProxy.newSystemServicesManager).thenReturn(({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - when(mockSystemServicesManager.requestCameraPermissions(any)).thenAnswer( - (_) { - cameraPermissionsRequested = true; - return Future.value(); - }, - ); - return mockSystemServicesManager; - }); - when(mockProxy.newDeviceOrientationManager).thenReturn(({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDeviceOrientationManager manager = - MockDeviceOrientationManager(); - when(manager.startListeningForDeviceOrientationChange(any, any)) - .thenAnswer( - (_) async { - startedListeningForDeviceOrientationChanges = true; - }, - ); - when(manager.getUiOrientation()).thenAnswer((_) async { - return 'PORTRAIT_UP'; - }); - return manager; - }); - when(mockProxy.newAspectRatioStrategy).thenReturn(({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockAspectRatioStrategy(); - }); - when(mockProxy.createWithOnePreferredSizeResolutionFilter).thenReturn(({ - required CameraSize preferredSize, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }); - when(mockProxy.fromCamera2CameraInfo).thenReturn(({ - required CameraInfo cameraInfo, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockCamera2CameraInfo camera2cameraInfo = MockCamera2CameraInfo(); - when( - camera2cameraInfo.getCameraCharacteristic(mockCameraCharacteristicsKey), - ).thenAnswer((_) async => testSensorOrientation); - return camera2cameraInfo; - }); - when(mockProxy.newCameraSize).thenReturn(({ - required int width, - required int height, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockCameraSize(); - }); - when(mockProxy.sensorOrientationCameraCharacteristics).thenReturn(() { - return mockCameraCharacteristicsKey; - }); - - // Tell plugin to create mock/detached objects and stub method calls for the - // testing of createCamera. - // camera.proxy = CameraXProxy( - // getInstanceProcessCameraProvider: ({ - // dynamic pigeon_binaryMessenger, - // dynamic pigeon_instanceManager, - // }) => - // Future.value(mockProcessCameraProvider), - // newCameraSelector: ({ - // LensFacing? requireLensFacing, - // dynamic pigeon_binaryMessenger, - // dynamic pigeon_instanceManager, - // }) { - // switch (requireLensFacing) { - // case LensFacing.front: - // return MockCameraSelector(); - // case LensFacing.back: - // case LensFacing.external: - // case LensFacing.unknown: - // case null: - // } - // - // return mockBackCameraSelector; - // }, - // newPreview: ({ - // int? targetRotation, - // ResolutionSelector? resolutionSelector, - // BinaryMessenger? pigeon_binaryMessenger, - // PigeonInstanceManager? pigeon_instanceManager, - // }) => - // mockPreview, - // newImageCapture: ({ - // int? targetRotation, - // CameraXFlashMode? flashMode, - // ResolutionSelector? resolutionSelector, - // BinaryMessenger? pigeon_binaryMessenger, - // PigeonInstanceManager? pigeon_instanceManager, - // }) => - // mockImageCapture, - // newRecorder: ({ - // int? aspectRatio, - // int? targetVideoEncodingBitRate, - // QualitySelector? qualitySelector, - // BinaryMessenger? pigeon_binaryMessenger, - // PigeonInstanceManager? pigeon_instanceManager, - // }) => - // mockRecorder, - // withOutputVideoCapture: ({ - // required VideoOutput videoOutput, - // BinaryMessenger? pigeon_binaryMessenger, - // PigeonInstanceManager? pigeon_instanceManager, - // }) => - // mockVideoCapture, - // newImageAnalysis: ({ - // int? targetRotation, - // ResolutionSelector? resolutionSelector, - // BinaryMessenger? pigeon_binaryMessenger, - // PigeonInstanceManager? pigeon_instanceManager, - // }) => - // mockImageAnalysis, - // newResolutionStrategy: ({ - // required CameraSize boundSize, - // required ResolutionStrategyFallbackRule fallbackRule, - // BinaryMessenger? pigeon_binaryMessenger, - // PigeonInstanceManager? pigeon_instanceManager, - // }) => - // MockResolutionStrategy(), - // newResolutionSelector: ({ - // AspectRatioStrategy? aspectRatioStrategy, - // ResolutionStrategy? resolutionStrategy, - // ResolutionFilter? resolutionFilter, - // BinaryMessenger? pigeon_binaryMessenger, - // PigeonInstanceManager? pigeon_instanceManager, - // }) => - // MockResolutionSelector(), - // lowerQualityThanFallbackStrategy: ({ - // required VideoQuality quality, - // BinaryMessenger? pigeon_binaryMessenger, - // PigeonInstanceManager? pigeon_instanceManager, - // }) => - // MockFallbackStrategy(), - // createQualitySelector: ( - // {required VideoQuality videoQuality, - // required FallbackStrategy fallbackStrategy}) => - // MockQualitySelector(), - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // requestCameraPermissions: (_) { - // cameraPermissionsRequested = true; - // return Future.value(); - // }, - // startListeningForDeviceOrientationChange: (_, __) { - // startedListeningForDeviceOrientationChanges = true; - // }, - // createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), - // createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), - // getCamera2CameraInfo: (_) => - // Future.value(MockCamera2CameraInfo()), - // getUiOrientation: () => - // Future.value(DeviceOrientation.portraitUp), - // ); + camera.proxy = CameraXProxy( + getInstanceProcessCameraProvider: ({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) async { + return mockProcessCameraProvider; + }, + newCameraSelector: ({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } - camera.proxy = mockProxy; + return mockBackCameraSelector; + }, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockPreview; + }, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageCapture; + }, + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockRecorder; + }, + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockVideoCapture; + }, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageAnalysis; + }, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + when(mockSystemServicesManager.requestCameraPermissions(any)) + .thenAnswer( + (_) { + cameraPermissionsRequested = true; + return Future.value(); + }, + ); + return mockSystemServicesManager; + }, + newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.startListeningForDeviceOrientationChange(any, any)) + .thenAnswer( + (_) async { + startedListeningForDeviceOrientationChanges = true; + }, + ); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }, + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAspectRatioStrategy(); + }, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockCamera2CameraInfo camera2cameraInfo = MockCamera2CameraInfo(); + when( + camera2cameraInfo + .getCameraCharacteristic(mockCameraCharacteristicsKey), + ).thenAnswer((_) async => testSensorOrientation); + return camera2cameraInfo; + }, + newCameraSize: ({ + required int width, + required int height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockCameraSize(); + }, + sensorOrientationCameraCharacteristics: () { + return mockCameraCharacteristicsKey; + }, + ); camera.processCameraProvider = mockProcessCameraProvider; From 5e5fb5d4a3b76a5bc3b83649b059862c8ea5d310 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 4 Jan 2025 15:56:02 -0500 Subject: [PATCH 029/148] 3rd test --- .../test/android_camera_camerax_test.dart | 368 ++++++++++++------ 1 file changed, 251 insertions(+), 117 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 31ff0c43c88..82ff857d931 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -68,6 +68,9 @@ void main() { final CameraStateStateError testCameraStateError = CameraStateStateError.pigeon_detached( code: CameraStateErrorCode.doNotDisturbModeEnabled, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), ); final Stream cameraClosingEventStream = camera.onCameraClosing(cameraId); @@ -79,9 +82,15 @@ void main() { StreamQueue(cameraErrorEventStream); observer.onChanged( - observer, - CameraState.pigeon_detached( - type: CameraStateType.closing, error: testCameraStateError)); + observer, + CameraState.pigeon_detached( + type: CameraStateType.closing, + error: testCameraStateError, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); final bool cameraClosingEventSent = await cameraClosingStreamQueue.next == CameraClosingEvent(cameraId); @@ -517,6 +526,13 @@ void main() { sensorOrientationCameraCharacteristics: () { return mockCameraCharacteristicsKey; }, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, ); camera.processCameraProvider = mockProcessCameraProvider; @@ -572,120 +588,238 @@ void main() { as Observer), isTrue); }); - // - // test( - // 'createCamera binds Preview and ImageCapture use cases to ProcessCameraProvider instance', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const CameraLensDirection testLensDirection = CameraLensDirection.back; - // const int testSensorOrientation = 90; - // const CameraDescription testCameraDescription = CameraDescription( - // name: 'cameraName', - // lensDirection: testLensDirection, - // sensorOrientation: testSensorOrientation); - // const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; - // const bool enableAudio = true; - // - // // Mock/Detached objects for (typically attached) objects created by - // // createCamera. - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockPreview mockPreview = MockPreview(); - // final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); - // final MockImageCapture mockImageCapture = MockImageCapture(); - // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - // final MockRecorder mockRecorder = MockRecorder(); - // final MockVideoCapture mockVideoCapture = MockVideoCapture(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Tell plugin to create mock/detached objects and stub method calls for the - // // testing of createCamera. - // camera.proxy = CameraXProxy( - // getProcessCameraProvider: () => - // Future.value(mockProcessCameraProvider), - // createCameraSelector: (int cameraSelectorLensDirection) { - // switch (cameraSelectorLensDirection) { - // case CameraSelector.lensFacingFront: - // return MockCameraSelector(); - // case CameraSelector.lensFacingBack: - // default: - // return mockBackCameraSelector; - // } - // }, - // createPreview: (_, __) => mockPreview, - // createImageCapture: (_, __) => mockImageCapture, - // createRecorder: (_) => mockRecorder, - // createVideoCapture: (_) => Future.value(mockVideoCapture), - // createImageAnalysis: (_, __) => mockImageAnalysis, - // createResolutionStrategy: ( - // {bool highestAvailable = false, - // Size? boundSize, - // int? fallbackRule}) => - // MockResolutionStrategy(), - // createResolutionSelector: (_, __, ___) => MockResolutionSelector(), - // createFallbackStrategy: ( - // {required VideoQuality quality, - // required VideoResolutionFallbackRule fallbackRule}) => - // MockFallbackStrategy(), - // createQualitySelector: ( - // {required VideoQuality videoQuality, - // required FallbackStrategy fallbackStrategy}) => - // MockQualitySelector(), - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // requestCameraPermissions: (_) => Future.value(), - // startListeningForDeviceOrientationChange: (_, __) {}, - // createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), - // createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), - // getCamera2CameraInfo: (CameraInfo cameraInfo) => - // cameraInfo == mockCameraInfo - // ? Future.value(mockCamera2CameraInfo) - // : Future.value(MockCamera2CameraInfo()), - // getUiOrientation: () => - // Future.value(DeviceOrientation.portraitUp), - // ); - // - // when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, - // [mockPreview, mockImageCapture, mockImageAnalysis])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(mockCamera.getCameraControl()) - // .thenAnswer((_) async => mockCameraControl); - // - // camera.processCameraProvider = mockProcessCameraProvider; - // - // await camera.createCameraWithSettings( - // testCameraDescription, - // const MediaSettings( - // resolutionPreset: testResolutionPreset, - // fps: 15, - // videoBitrate: 2000000, - // audioBitrate: 64000, - // enableAudio: enableAudio, - // )); - // - // // Verify expected UseCases were bound. - // verify(camera.processCameraProvider!.bindToLifecycle(camera.cameraSelector!, - // [mockPreview, mockImageCapture, mockImageAnalysis])); - // - // // Verify the camera's CameraInfo instance got updated. - // expect(camera.cameraInfo, equals(mockCameraInfo)); - // - // // Verify camera's CameraControl instance got updated. - // expect(camera.cameraControl, equals(mockCameraControl)); - // - // // Verify preview has been marked as bound to the camera lifecycle by - // // createCamera. - // expect(camera.previewInitiallyBound, isTrue); - // }); + + test( + 'createCamera binds Preview and ImageCapture use cases to ProcessCameraProvider instance', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( + name: 'cameraName', + lensDirection: testLensDirection, + sensorOrientation: testSensorOrientation); + const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; + const bool enableAudio = true; + + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockPreview mockPreview = MockPreview(); + final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); + final MockImageCapture mockImageCapture = MockImageCapture(); + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockRecorder mockRecorder = MockRecorder(); + final MockVideoCapture mockVideoCapture = MockVideoCapture(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + final MockCameraCharacteristicsKey mockCameraCharacteristicsKey = + MockCameraCharacteristicsKey(); + + // Tell plugin to create mock/detached objects and stub method calls for the + // testing of createCamera. + camera.proxy = CameraXProxy( + getInstanceProcessCameraProvider: ({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) async { + return mockProcessCameraProvider; + }, + newCameraSelector: ({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } + + return mockBackCameraSelector; + }, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockPreview; + }, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageCapture; + }, + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockRecorder; + }, + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockVideoCapture; + }, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageAnalysis; + }, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); + }, + newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }, + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAspectRatioStrategy(); + }, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + when( + mockCamera2CameraInfo + .getCameraCharacteristic(mockCameraCharacteristicsKey), + ).thenAnswer((_) async => testSensorOrientation); + return mockCamera2CameraInfo; + }, + newCameraSize: ({ + required int width, + required int height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockCameraSize(); + }, + sensorOrientationCameraCharacteristics: () { + return mockCameraCharacteristicsKey; + }, + ); + + when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, + [mockPreview, mockImageCapture, mockImageAnalysis])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(mockCamera.cameraControl).thenAnswer((_) => mockCameraControl); + + camera.processCameraProvider = mockProcessCameraProvider; + + await camera.createCameraWithSettings( + testCameraDescription, + const MediaSettings( + resolutionPreset: testResolutionPreset, + fps: 15, + videoBitrate: 2000000, + audioBitrate: 64000, + enableAudio: enableAudio, + )); + + // Verify expected UseCases were bound. + verify(camera.processCameraProvider!.bindToLifecycle(camera.cameraSelector!, + [mockPreview, mockImageCapture, mockImageAnalysis])); + + // Verify the camera's CameraInfo instance got updated. + expect(camera.cameraInfo, equals(mockCameraInfo)); + + // Verify camera's CameraControl instance got updated. + expect(camera.cameraControl, equals(mockCameraControl)); + + // Verify preview has been marked as bound to the camera lifecycle by + // createCamera. + expect(camera.previewInitiallyBound, isTrue); + }); // // test( // 'createCamera properly sets preset resolution selection strategy for non-video capture use cases', From b07d8b5d18e0401956bb3c6027c4a9ec66448f7d Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 7 Jan 2025 14:58:53 -0500 Subject: [PATCH 030/148] tests broken --- .../plugins/camerax/CameraXLibrary.g.kt | 150 ++++-- .../lib/src/camerax_library2.g.dart | 400 ++++++--------- .../pigeons/camerax_library.dart | 20 +- .../test/android_camera_camerax_test.dart | 479 +++++++++++------- 4 files changed, 599 insertions(+), 450 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 52a2a3bedd3..054f8cbce11 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -4013,7 +4013,9 @@ public class DeviceOrientationManagerProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(targetRotation: Long?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.Preview + abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.Preview + + abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.resolutionselector.ResolutionSelector? /** * Sets a SurfaceProvider to provide a Surface for Preview. @@ -4049,10 +4051,10 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val targetRotationArg = args[1] as Long? - val resolutionSelectorArg = args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val targetRotationArg = args[2] as Long? val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,resolutionSelectorArg), pigeon_identifierArg) + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -4153,11 +4155,12 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr return } val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { + channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -4204,8 +4207,14 @@ class PreviewProxyApi extends PigeonApiPreview { @NonNull @Override - public Preview pigeon_defaultConstructor(@Nullable Long? targetRotation, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector) { - return Preview(targetRotation, resolutionSelector); + public Preview pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation) { + return Preview(targetRotation); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(Preview pigeon_instance) { + return pigeon_instance.getResolutionSelector(); } @NonNull @@ -4259,7 +4268,18 @@ public class PreviewProxyApiTest { public void pigeon_defaultConstructor() { final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - assertTrue(api.pigeon_defaultConstructor(0, mock(ResolutionSelector.class)) instanceof PreviewProxyApi.Preview); + assertTrue(api.pigeon_defaultConstructor(0) instanceof PreviewProxyApi.Preview); + } + + @Test + public void resolutionSelector() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); } @Test @@ -5403,7 +5423,9 @@ public class RecordingProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(targetRotation: Long?, flashMode: CameraXFlashMode?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageCapture + abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?, flashMode: CameraXFlashMode?): androidx.camera.core.ImageCapture + + abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageCapture): androidx.camera.core.resolutionselector.ResolutionSelector? /** Set the flash mode. */ abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode) @@ -5424,11 +5446,11 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val targetRotationArg = args[1] as Long? - val flashModeArg = args[2] as CameraXFlashMode? - val resolutionSelectorArg = args[3] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val targetRotationArg = args[2] as Long? + val flashModeArg = args[3] as CameraXFlashMode? val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,flashModeArg,resolutionSelectorArg), pigeon_identifierArg) + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg,flashModeArg), pigeon_identifierArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -5515,11 +5537,12 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig return } val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { + channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -5565,8 +5588,14 @@ class ImageCaptureProxyApi extends PigeonApiImageCapture { @NonNull @Override - public ImageCapture pigeon_defaultConstructor(@Nullable Long? targetRotation, @Nullable CameraXFlashMode? flashMode, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector) { - return ImageCapture(targetRotation, flashMode, resolutionSelector); + public ImageCapture pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation, @Nullable CameraXFlashMode? flashMode) { + return ImageCapture(targetRotation, flashMode); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(ImageCapture pigeon_instance) { + return pigeon_instance.getResolutionSelector(); } @Override @@ -5613,7 +5642,18 @@ public class ImageCaptureProxyApiTest { public void pigeon_defaultConstructor() { final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO, mock(ResolutionSelector.class)) instanceof ImageCaptureProxyApi.ImageCapture); + assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO) instanceof ImageCaptureProxyApi.ImageCapture); + } + + @Test + public void resolutionSelector() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); } @Test @@ -5817,7 +5857,9 @@ public class ResolutionStrategyProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?, resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?): androidx.camera.core.resolutionselector.ResolutionSelector + abstract fun pigeon_defaultConstructor(resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?, resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?): androidx.camera.core.resolutionselector.ResolutionSelector + + abstract fun resolutionStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionStrategy? companion object { @Suppress("LocalVariableName") @@ -5829,11 +5871,11 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val aspectRatioStrategyArg = args[1] as androidx.camera.core.resolutionselector.AspectRatioStrategy? - val resolutionStrategyArg = args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val resolutionStrategyArg = args[1] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val aspectRatioStrategyArg = args[2] as androidx.camera.core.resolutionselector.AspectRatioStrategy? val resolutionFilterArg = args[3] as androidx.camera.core.resolutionselector.ResolutionFilter? val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioStrategyArg,resolutionStrategyArg,resolutionFilterArg), pigeon_identifierArg) + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionStrategyArg,aspectRatioStrategyArg,resolutionFilterArg), pigeon_identifierArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -5862,11 +5904,12 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr return } val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { + channel.send(listOf(pigeon_identifierArg, resolutionStrategyArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -5890,8 +5933,8 @@ package io.flutter.plugins.camerax; import androidx.camera.core.resolutionselector.ResolutionSelector; import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import androidx.camera.core.resolutionselector.ResolutionStrategy; import androidx.camera.core.resolutionselector.ResolutionFilter; +import androidx.camera.core.resolutionselector.ResolutionStrategy; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -5907,8 +5950,14 @@ class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { @NonNull @Override - public ResolutionSelector pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.AspectRatioStrategy? aspectRatioStrategy, @Nullable androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy, @Nullable androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter) { - return ResolutionSelector(aspectRatioStrategy, resolutionStrategy, resolutionFilter); + public ResolutionSelector pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy, @Nullable androidx.camera.core.resolutionselector.AspectRatioStrategy? aspectRatioStrategy, @Nullable androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter) { + return ResolutionSelector(aspectRatioStrategy, resolutionFilter); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy(ResolutionSelector pigeon_instance) { + return pigeon_instance.getResolutionStrategy(); } } @@ -5923,8 +5972,8 @@ package io.flutter.plugins.camerax import androidx.camera.core.resolutionselector.ResolutionSelector import androidx.camera.core.resolutionselector.AspectRatioStrategy -import androidx.camera.core.resolutionselector.ResolutionStrategy import androidx.camera.core.resolutionselector.ResolutionFilter +import androidx.camera.core.resolutionselector.ResolutionStrategy import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -5941,7 +5990,18 @@ public class ResolutionSelectorProxyApiTest { public void pigeon_defaultConstructor() { final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class), mock(ResolutionStrategy.class), mock(ResolutionFilter.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); + assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class), mock(ResolutionFilter.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); + } + + @Test + public void resolutionStrategy() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionSelector instance = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.ResolutionStrategy value = mock(ResolutionStrategy.class); + when(instance.getResolutionStrategy()).thenReturn(value); + + assertEquals(value, api.resolutionStrategy(instance)); } } @@ -6549,7 +6609,9 @@ public class ZoomStateProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(targetRotation: Long?, resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?): androidx.camera.core.ImageAnalysis + abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.ImageAnalysis + + abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageAnalysis): androidx.camera.core.resolutionselector.ResolutionSelector? /** Sets an analyzer to receive and analyze images. */ abstract fun setAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer) @@ -6570,10 +6632,10 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val targetRotationArg = args[1] as Long? - val resolutionSelectorArg = args[2] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val targetRotationArg = args[2] as Long? val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(targetRotationArg,resolutionSelectorArg), pigeon_identifierArg) + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -6658,11 +6720,12 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi return } val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { + channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -6709,8 +6772,14 @@ class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { @NonNull @Override - public ImageAnalysis pigeon_defaultConstructor(@Nullable Long? targetRotation, @Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector) { - return ImageAnalysis(targetRotation, resolutionSelector); + public ImageAnalysis pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation) { + return ImageAnalysis(targetRotation); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(ImageAnalysis pigeon_instance) { + return pigeon_instance.getResolutionSelector(); } @Override @@ -6757,7 +6826,18 @@ public class ImageAnalysisProxyApiTest { public void pigeon_defaultConstructor() { final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - assertTrue(api.pigeon_defaultConstructor(0, mock(ResolutionSelector.class)) instanceof ImageAnalysisProxyApi.ImageAnalysis); + assertTrue(api.pigeon_defaultConstructor(0) instanceof ImageAnalysisProxyApi.ImageAnalysis); + } + + @Test + public void resolutionSelector() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); } @Test diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index c13afc87872..ea9d41b414e 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -8,8 +8,7 @@ import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; -import 'package:flutter/foundation.dart' - show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; @@ -20,8 +19,7 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse( - {Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; } @@ -30,7 +28,6 @@ List wrapResponse( } return [error.code, error.message, error.details]; } - /// An immutable object that serves as the base class for all ProxyApis and /// can provide functional copies of itself. /// @@ -113,10 +110,9 @@ class PigeonInstanceManager { // by calling instanceManager.getIdentifier() inside of `==` while this was a // HashMap). final Expando _identifiers = Expando(); - final Map> - _weakInstances = >{}; - final Map _strongInstances = - {}; + final Map> _weakInstances = + >{}; + final Map _strongInstances = {}; late final Finalizer _finalizer; int _nextIdentifier = 0; @@ -126,8 +122,7 @@ class PigeonInstanceManager { static PigeonInstanceManager _initInstance() { WidgetsFlutterBinding.ensureInitialized(); - final _PigeonInternalInstanceManagerApi api = - _PigeonInternalInstanceManagerApi(); + final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. api.clear(); final PigeonInstanceManager instanceManager = PigeonInstanceManager( @@ -135,109 +130,58 @@ class PigeonInstanceManager { api.removeStrongReference(identifier); }, ); - _PigeonInternalInstanceManagerApi.setUpMessageHandlers( - instanceManager: instanceManager); - CameraSize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraIntegerRange.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEvent.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEventStart.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEventFinalize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - MeteringPoint.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Observer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ProcessCameraProvider.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - UseCase.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); + CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventFinalize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + MeteringPoint.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Observer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ProcessCameraProvider.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + UseCase.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - SystemServicesManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - DeviceOrientationManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Preview.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoOutput.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Recorder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEventListener.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - PendingRecording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Recording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ImageCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - AspectRatioStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ExposureState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ZoomState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ImageAnalysis.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Analyzer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraStateStateError.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - LiveData.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ImageProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - PlaneProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - QualitySelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FallbackStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FocusMeteringAction.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FocusMeteringResult.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CaptureRequest.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CaptureRequestKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CaptureRequestOptions.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Camera2CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionFilter.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraCharacteristicsKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraCharacteristics.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Camera2CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - MeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + SystemServicesManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + DeviceOrientationManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Preview.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoOutput.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Recorder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventListener.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + PendingRecording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Recording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + AspectRatioStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ExposureState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ZoomState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageAnalysis.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Analyzer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraStateStateError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + LiveData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + PlaneProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + QualitySelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FallbackStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringActionBuilder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringAction.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringResult.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequest.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequestKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequestOptions.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Camera2CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionFilter.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + MeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); return instanceManager; } @@ -301,20 +245,15 @@ class PigeonInstanceManager { /// /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. - T? getInstanceWithWeakReference( - int identifier) { - final PigeonInternalProxyApiBaseClass? weakInstance = - _weakInstances[identifier]?.target; + T? getInstanceWithWeakReference(int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; if (weakInstance == null) { - final PigeonInternalProxyApiBaseClass? strongInstance = - _strongInstances[identifier]; + final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; if (strongInstance != null) { - final PigeonInternalProxyApiBaseClass copy = - strongInstance.pigeon_copy(); + final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); _identifiers[copy] = identifier; - _weakInstances[identifier] = - WeakReference(copy); + _weakInstances[identifier] = WeakReference(copy); _finalizer.attach(copy, identifier, detach: copy); return copy as T; } @@ -338,20 +277,17 @@ class PigeonInstanceManager { /// added. /// /// Returns unique identifier of the [instance] added. - void addHostCreatedInstance( - PigeonInternalProxyApiBaseClass instance, int identifier) { + void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { _addInstanceWithIdentifier(instance, identifier); } - void _addInstanceWithIdentifier( - PigeonInternalProxyApiBaseClass instance, int identifier) { + void _addInstanceWithIdentifier(PigeonInternalProxyApiBaseClass instance, int identifier) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = - WeakReference(instance); + _weakInstances[identifier] = WeakReference(instance); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -475,28 +411,27 @@ class _PigeonInternalInstanceManagerApi { } class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { - const _PigeonInternalProxyApiBaseCodec(this.instanceManager); - final PigeonInstanceManager instanceManager; - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is PigeonInternalProxyApiBaseClass) { - buffer.putUint8(128); - writeValue(buffer, instanceManager.getIdentifier(value)); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return instanceManager - .getInstanceWithWeakReference(readValue(buffer)! as int); - default: - return super.readValueOfType(type, buffer); - } - } + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } } /// Handles constructing objects and calling static methods for the Android @@ -669,8 +604,8 @@ class MyLibraryProxy { /// Constructs [ResolutionSelector]. final ResolutionSelector Function({ AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, ResolutionFilter? resolutionFilter, + ResolutionStrategy? resolutionStrategy, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) newResolutionSelector; @@ -868,6 +803,7 @@ class MyLibraryProxy { CameraCharacteristics.sensorOrientation; } + /// Generally classifies the overall set of the camera device functionality. /// /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. @@ -875,17 +811,13 @@ enum InfoSupportedHardwareLevel { /// This camera device is capable of YUV reprocessing and RAW data capture, in /// addition to FULL-level capabilities. level3, - /// This camera device is backed by an external camera connected to this /// Android device. external, - /// This camera device is capable of supporting advanced imaging applications. full, - /// This camera device is running in backward compatibility mode. legacy, - /// This camera device does not have enough capabilities to qualify as a FULL /// device or better. limited, @@ -897,10 +829,8 @@ enum InfoSupportedHardwareLevel { enum AspectRatio { /// 16:9 standard aspect ratio. ratio16To9, - /// 4:3 standard aspect ratio. ratio4To3, - /// The aspect ratio representing no preference for aspect ratio. ratioDefault, } @@ -911,20 +841,15 @@ enum AspectRatio { enum CameraStateType { /// Represents a state where the camera device is closed. closed, - /// Represents a state where the camera device is currently closing. closing, - /// Represents a state where the camera device is open. open, - /// Represents a state where the camera device is currently opening. opening, - /// Represents a state where the camera is waiting for a signal to attempt to /// open the camera device. pendingOpen, - /// This value is not recognized by this wrapper. unknown, } @@ -944,19 +869,14 @@ enum LiveDataSupportedType { enum VideoQuality { /// Standard Definition (SD) 480p video quality. SD, - /// High Definition (HD) 720p video quality. HD, - /// Full High Definition (FHD) 1080p video quality. FHD, - /// Ultra High Definition (UHD) 2160p video quality. UHD, - /// The lowest video quality supported by the video frame producer. lowest, - /// The highest video quality supported by the video frame producer. highest, } @@ -968,11 +888,9 @@ enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. ae, - /// A flag used in metering mode indicating the AF (Auto Focus) region is /// enabled. af, - /// A flag used in metering mode indicating the AWB (Auto White Balance) /// region is enabled. awb, @@ -984,15 +902,12 @@ enum MeteringMode { enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, - /// A camera on the device facing the opposite direction as the device's /// screen. back, - /// An external camera that has no fixed facing relative to the device's /// screen. external, - /// A camera on the devices that its lens facing is resolved. unknown, } @@ -1006,12 +921,10 @@ enum CameraXFlashMode { /// The flash will be used according to the camera system's determination when /// taking a picture. auto, - /// No flash. /// /// The flash will never be used when taking a picture. off, - /// Always flash. /// /// The flash will always be used when taking a picture. @@ -1026,19 +939,15 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to the /// closest higher resolution size. closestHigher, - /// When the specified bound size is unavailable, CameraX falls back to select /// the closest higher resolution size. closestHigherThenLower, - /// When the specified bound size is unavailable, CameraX falls back to the /// closest lower resolution size. closestLower, - /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. closestLowerThenHigher, - /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, @@ -1053,7 +962,6 @@ enum AspectRatioStrategyFallbackRule { /// the closest field of view (FOV) of the camera sensor, from the remaining /// options. auto, - /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, @@ -1066,35 +974,29 @@ enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. cameraDisabled, - /// An error indicating that the camera device was closed due to a fatal /// error. cameraFatalError, - /// An error indicating that the camera device is already in use. cameraInUse, - /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API /// level 28). doNotDisturbModeEnabled, - /// An error indicating that the limit number of open cameras has been /// reached, and more cameras cannot be opened until other instances are /// closed. maxCamerasInUse, - /// An error indicating that the camera device has encountered a recoverable /// error. otherRecoverableError, - /// An error indicating that configuring the camera has failed. streamConfig, - /// The value is not recognized by this wrapper. unknown, } + class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -1102,37 +1004,37 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); } else { @@ -1143,41 +1045,37 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null - ? null - : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null ? null : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null - ? null - : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; default: @@ -1185,7 +1083,6 @@ class _PigeonCodec extends StandardMessageCodec { } } } - /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. @@ -3343,8 +3240,8 @@ class Preview extends UseCase { Preview({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionSelector, int? targetRotation, - ResolutionSelector? resolutionSelector, }) : super.pigeon_detached() { final int pigeonVar_instanceIdentifier = pigeon_instanceManager.addDartCreatedInstance(this); @@ -3363,8 +3260,8 @@ class Preview extends UseCase { final List? pigeonVar_replyList = await pigeonVar_channel .send([ pigeonVar_instanceIdentifier, - targetRotation, - resolutionSelector + resolutionSelector, + targetRotation ]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); @@ -3388,16 +3285,20 @@ class Preview extends UseCase { Preview.pigeon_detached({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionSelector, }) : super.pigeon_detached(); late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecPreview = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + final ResolutionSelector? resolutionSelector; + static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - Preview Function()? pigeon_newInstance, + Preview Function(ResolutionSelector? resolutionSelector)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( @@ -3420,13 +3321,16 @@ class Preview extends UseCase { final int? arg_pigeon_instanceIdentifier = (args[0] as int?); assert(arg_pigeon_instanceIdentifier != null, 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null, expected non-null int.'); + final ResolutionSelector? arg_resolutionSelector = + (args[1] as ResolutionSelector?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? + pigeon_newInstance?.call(arg_resolutionSelector) ?? Preview.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: arg_resolutionSelector, ), arg_pigeon_instanceIdentifier!, ); @@ -3573,6 +3477,7 @@ class Preview extends UseCase { return Preview.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: resolutionSelector, ); } } @@ -4478,9 +4383,9 @@ class ImageCapture extends UseCase { ImageCapture({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionSelector, int? targetRotation, CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, }) : super.pigeon_detached() { final int pigeonVar_instanceIdentifier = pigeon_instanceManager.addDartCreatedInstance(this); @@ -4499,9 +4404,9 @@ class ImageCapture extends UseCase { final List? pigeonVar_replyList = await pigeonVar_channel .send([ pigeonVar_instanceIdentifier, + resolutionSelector, targetRotation, - flashMode, - resolutionSelector + flashMode ]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); @@ -4525,16 +4430,20 @@ class ImageCapture extends UseCase { ImageCapture.pigeon_detached({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionSelector, }) : super.pigeon_detached(); late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecImageCapture = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + final ResolutionSelector? resolutionSelector; + static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - ImageCapture Function()? pigeon_newInstance, + ImageCapture Function(ResolutionSelector? resolutionSelector)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( @@ -4557,13 +4466,16 @@ class ImageCapture extends UseCase { final int? arg_pigeon_instanceIdentifier = (args[0] as int?); assert(arg_pigeon_instanceIdentifier != null, 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null, expected non-null int.'); + final ResolutionSelector? arg_resolutionSelector = + (args[1] as ResolutionSelector?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? + pigeon_newInstance?.call(arg_resolutionSelector) ?? ImageCapture.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: arg_resolutionSelector, ), arg_pigeon_instanceIdentifier!, ); @@ -4673,6 +4585,7 @@ class ImageCapture extends UseCase { return ImageCapture.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: resolutionSelector, ); } } @@ -4837,8 +4750,8 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { ResolutionSelector({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionStrategy, AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, ResolutionFilter? resolutionFilter, }) { final int pigeonVar_instanceIdentifier = @@ -4858,8 +4771,8 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { final List? pigeonVar_replyList = await pigeonVar_channel.send([ pigeonVar_instanceIdentifier, - aspectRatioStrategy, resolutionStrategy, + aspectRatioStrategy, resolutionFilter ]) as List?; if (pigeonVar_replyList == null) { @@ -4884,17 +4797,21 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { ResolutionSelector.pigeon_detached({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionStrategy, }); late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecResolutionSelector = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + final ResolutionStrategy? resolutionStrategy; + static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - ResolutionSelector Function()? pigeon_newInstance, + ResolutionSelector Function(ResolutionStrategy? resolutionStrategy)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( @@ -4917,13 +4834,16 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { final int? arg_pigeon_instanceIdentifier = (args[0] as int?); assert(arg_pigeon_instanceIdentifier != null, 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null, expected non-null int.'); + final ResolutionStrategy? arg_resolutionStrategy = + (args[1] as ResolutionStrategy?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? + pigeon_newInstance?.call(arg_resolutionStrategy) ?? ResolutionSelector.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionStrategy: arg_resolutionStrategy, ), arg_pigeon_instanceIdentifier!, ); @@ -4944,6 +4864,7 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { return ResolutionSelector.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionStrategy: resolutionStrategy, ); } } @@ -5436,8 +5357,8 @@ class ImageAnalysis extends UseCase { ImageAnalysis({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionSelector, int? targetRotation, - ResolutionSelector? resolutionSelector, }) : super.pigeon_detached() { final int pigeonVar_instanceIdentifier = pigeon_instanceManager.addDartCreatedInstance(this); @@ -5456,8 +5377,8 @@ class ImageAnalysis extends UseCase { final List? pigeonVar_replyList = await pigeonVar_channel .send([ pigeonVar_instanceIdentifier, - targetRotation, - resolutionSelector + resolutionSelector, + targetRotation ]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); @@ -5481,16 +5402,20 @@ class ImageAnalysis extends UseCase { ImageAnalysis.pigeon_detached({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionSelector, }) : super.pigeon_detached(); late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecImageAnalysis = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + final ResolutionSelector? resolutionSelector; + static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - ImageAnalysis Function()? pigeon_newInstance, + ImageAnalysis Function(ResolutionSelector? resolutionSelector)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( @@ -5513,13 +5438,16 @@ class ImageAnalysis extends UseCase { final int? arg_pigeon_instanceIdentifier = (args[0] as int?); assert(arg_pigeon_instanceIdentifier != null, 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null, expected non-null int.'); + final ResolutionSelector? arg_resolutionSelector = + (args[1] as ResolutionSelector?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? + pigeon_newInstance?.call(arg_resolutionSelector) ?? ImageAnalysis.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: arg_resolutionSelector, ), arg_pigeon_instanceIdentifier!, ); @@ -5624,6 +5552,7 @@ class ImageAnalysis extends UseCase { return ImageAnalysis.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: resolutionSelector, ); } } @@ -8637,3 +8566,4 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { ); } } + diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 63c41ea8047..bf0af7e4051 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -10,7 +10,6 @@ import 'package:pigeon/pigeon.dart'; PigeonOptions( copyrightHeader: 'pigeons/copyright.txt', dartOut: 'lib/src/camerax_library2.g.dart', - dartTestOut: 'test/test_camerax_library.g.dart', kotlinOut: 'android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt', kotlinOptions: KotlinOptions( @@ -418,7 +417,9 @@ abstract class DeviceOrientationManager { ), ) abstract class Preview extends UseCase { - Preview(int? targetRotation, ResolutionSelector? resolutionSelector); + Preview(int? targetRotation); + + late final ResolutionSelector? resolutionSelector; /// Sets a SurfaceProvider to provide a Surface for Preview. /// @@ -571,11 +572,9 @@ enum CameraXFlashMode { ), ) abstract class ImageCapture extends UseCase { - ImageCapture( - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - ); + ImageCapture(int? targetRotation, CameraXFlashMode? flashMode); + + late final ResolutionSelector? resolutionSelector; /// Set the flash mode. void setFlashMode(CameraXFlashMode flashMode); @@ -645,9 +644,10 @@ abstract class ResolutionStrategy { abstract class ResolutionSelector { ResolutionSelector( AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, ResolutionFilter? resolutionFilter, ); + + late final ResolutionStrategy? resolutionStrategy; } /// Fallback rule for choosing the aspect ratio when the preferred aspect ratio @@ -753,7 +753,9 @@ abstract class ZoomState { ), ) abstract class ImageAnalysis extends UseCase { - ImageAnalysis(int? targetRotation, ResolutionSelector? resolutionSelector); + ImageAnalysis(int? targetRotation); + + late final ResolutionSelector? resolutionSelector; /// Sets an analyzer to receive and analyze images. void setAnalyzer(Analyzer analyzer); diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 82ff857d931..5c71b447577 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -105,80 +105,197 @@ void main() { return cameraClosingEventSent && cameraErrorSent; } - // - // /// CameraXProxy for testing functionality related to the camera resolution - // /// preset (setting expected ResolutionSelectors, QualitySelectors, etc.). - // CameraXProxy getProxyForTestingResolutionPreset( - // MockProcessCameraProvider mockProcessCameraProvider) => - // CameraXProxy( - // getProcessCameraProvider: () => - // Future.value(mockProcessCameraProvider), - // createCameraSelector: (int cameraSelectorLensDirection) => - // MockCameraSelector(), - // createPreview: - // (ResolutionSelector? resolutionSelector, int? targetRotation) => - // Preview.detached( - // initialTargetRotation: targetRotation, - // resolutionSelector: resolutionSelector), - // createImageCapture: - // (ResolutionSelector? resolutionSelector, int? targetRotation) => - // ImageCapture.detached( - // resolutionSelector: resolutionSelector, - // initialTargetRotation: targetRotation), - // createRecorder: (QualitySelector? qualitySelector) => - // Recorder.detached(qualitySelector: qualitySelector), - // createVideoCapture: (_) => - // Future.value(MockVideoCapture()), - // createImageAnalysis: - // (ResolutionSelector? resolutionSelector, int? targetRotation) => - // ImageAnalysis.detached( - // resolutionSelector: resolutionSelector, - // initialTargetRotation: targetRotation), - // createResolutionStrategy: ( - // {bool highestAvailable = false, - // Size? boundSize, - // int? fallbackRule}) { - // if (highestAvailable) { - // return ResolutionStrategy.detachedHighestAvailableStrategy(); - // } - // return ResolutionStrategy.detached( - // boundSize: boundSize, fallbackRule: fallbackRule); - // }, - // createResolutionSelector: (ResolutionStrategy resolutionStrategy, - // ResolutionFilter? resolutionFilter, - // AspectRatioStrategy? aspectRatioStrategy) => - // ResolutionSelector.detached( - // resolutionStrategy: resolutionStrategy, - // resolutionFilter: resolutionFilter, - // aspectRatioStrategy: aspectRatioStrategy), - // createFallbackStrategy: ( - // {required VideoQuality quality, - // required VideoResolutionFallbackRule fallbackRule}) => - // FallbackStrategy.detached( - // quality: quality, fallbackRule: fallbackRule), - // createQualitySelector: ( - // {required VideoQuality videoQuality, - // required FallbackStrategy fallbackStrategy}) => - // QualitySelector.detached(qualityList: [ - // VideoQualityData(quality: videoQuality) - // ], fallbackStrategy: fallbackStrategy), - // createCameraStateObserver: (_) => MockObserver(), - // requestCameraPermissions: (_) => Future.value(), - // startListeningForDeviceOrientationChange: (_, __) {}, - // setPreviewSurfaceProvider: (_) => Future.value( - // 3), // 3 is a random Flutter SurfaceTexture ID for testing, - // createAspectRatioStrategy: (int aspectRatio, int fallbackRule) => - // AspectRatioStrategy.detached( - // preferredAspectRatio: aspectRatio, fallbackRule: fallbackRule), - // createResolutionFilterWithOnePreferredSize: - // (Size preferredResolution) => - // ResolutionFilter.onePreferredSizeDetached( - // preferredResolution: preferredResolution), - // getCamera2CameraInfo: (_) => - // Future.value(MockCamera2CameraInfo()), - // getUiOrientation: () => - // Future.value(DeviceOrientation.portraitUp), - // ); + + /// CameraXProxy for testing functionality related to the camera resolution + /// preset (setting expected ResolutionSelectors, QualitySelectors, etc.). + CameraXProxy getProxyForTestingResolutionPreset( + MockProcessCameraProvider mockProcessCameraProvider, { + ResolutionStrategy Function({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + })? newResolutionStrategy, + }) => + CameraXProxy( + getInstanceProcessCameraProvider: ({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) async { + return mockProcessCameraProvider; + }, + newCameraSelector: ({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } + + return MockCameraSelector(); + }, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockPreview(); + }, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockImageCapture(); + }, + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockRecorder(); + }, + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockVideoCapture(); + }, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockImageAnalysis(); + }, + newResolutionStrategy: newResolutionStrategy ?? + ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); + }, + newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }, + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAspectRatioStrategy(); + }, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockCamera2CameraInfo camera2cameraInfo = + MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => 90); + return camera2cameraInfo; + }, + newCameraSize: ({ + required int width, + required int height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return CameraSize.pigeon_detached( + width: width, + height: height, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + sensorOrientationCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + ); // // /// CameraXProxy for testing exposure and focus related controls. // /// @@ -820,103 +937,123 @@ void main() { // createCamera. expect(camera.previewInitiallyBound, isTrue); }); - // - // test( - // 'createCamera properly sets preset resolution selection strategy for non-video capture use cases', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const CameraLensDirection testLensDirection = CameraLensDirection.back; - // const int testSensorOrientation = 90; - // const CameraDescription testCameraDescription = CameraDescription( - // name: 'cameraName', - // lensDirection: testLensDirection, - // sensorOrientation: testSensorOrientation); - // const bool enableAudio = true; - // final MockCamera mockCamera = MockCamera(); - // - // // Mock/Detached objects for (typically attached) objects created by - // // createCamera. - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Tell plugin to create mock/detached objects for testing createCamera - // // as needed. - // camera.proxy = - // getProxyForTestingResolutionPreset(mockProcessCameraProvider); - // - // when(mockProcessCameraProvider.bindToLifecycle(any, any)) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // camera.processCameraProvider = mockProcessCameraProvider; - // - // // Test non-null resolution presets. - // for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - // await camera.createCamera( - // testCameraDescription, - // resolutionPreset, - // enableAudio: enableAudio, - // ); - // - // Size? expectedBoundSize; - // ResolutionStrategy? expectedResolutionStrategy; - // switch (resolutionPreset) { - // case ResolutionPreset.low: - // expectedBoundSize = const Size(320, 240); - // case ResolutionPreset.medium: - // expectedBoundSize = const Size(720, 480); - // case ResolutionPreset.high: - // expectedBoundSize = const Size(1280, 720); - // case ResolutionPreset.veryHigh: - // expectedBoundSize = const Size(1920, 1080); - // case ResolutionPreset.ultraHigh: - // expectedBoundSize = const Size(3840, 2160); - // case ResolutionPreset.max: - // expectedResolutionStrategy = - // ResolutionStrategy.detachedHighestAvailableStrategy(); - // } - // - // // We expect the strategy to be the highest available or correspond to the - // // expected bound size, with fallback to the closest and highest available - // // resolution. - // expectedResolutionStrategy ??= ResolutionStrategy.detached( - // boundSize: expectedBoundSize, - // fallbackRule: ResolutionStrategy.fallbackRuleClosestLowerThenHigher); - // - // expect(camera.preview!.resolutionSelector!.resolutionStrategy!.boundSize, - // equals(expectedResolutionStrategy.boundSize)); - // expect( - // camera - // .imageCapture!.resolutionSelector!.resolutionStrategy!.boundSize, - // equals(expectedResolutionStrategy.boundSize)); - // expect( - // camera - // .imageAnalysis!.resolutionSelector!.resolutionStrategy!.boundSize, - // equals(expectedResolutionStrategy.boundSize)); - // expect( - // camera.preview!.resolutionSelector!.resolutionStrategy!.fallbackRule, - // equals(expectedResolutionStrategy.fallbackRule)); - // expect( - // camera.imageCapture!.resolutionSelector!.resolutionStrategy! - // .fallbackRule, - // equals(expectedResolutionStrategy.fallbackRule)); - // expect( - // camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! - // .fallbackRule, - // equals(expectedResolutionStrategy.fallbackRule)); - // } - // - // // Test null case. - // await camera.createCamera(testCameraDescription, null); - // expect(camera.preview!.resolutionSelector, isNull); - // expect(camera.imageCapture!.resolutionSelector, isNull); - // expect(camera.imageAnalysis!.resolutionSelector, isNull); - // }); + + test( + 'createCamera properly sets preset resolution selection strategy for non-video capture use cases', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( + name: 'cameraName', + lensDirection: testLensDirection, + sensorOrientation: testSensorOrientation); + const bool enableAudio = true; + final MockCamera mockCamera = MockCamera(); + + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + CameraSize? lastSetBoundSize; + ResolutionStrategyFallbackRule? lastSetFallbackRule; + + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + lastSetBoundSize = boundSize; + lastSetFallbackRule = fallbackRule; + return MockResolutionStrategy(); + }, + ); + + when(mockProcessCameraProvider.bindToLifecycle(any, any)) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + camera.processCameraProvider = mockProcessCameraProvider; + + // Test non-null resolution presets. + for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + await camera.createCamera( + testCameraDescription, + resolutionPreset, + enableAudio: enableAudio, + ); + + CameraSize? expectedBoundSize; + ResolutionStrategy? expectedResolutionStrategy; + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + switch (resolutionPreset) { + case ResolutionPreset.low: + expectedBoundSize = CameraSize.pigeon_detached( + width: 320, + height: 240, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.medium: + expectedBoundSize = CameraSize.pigeon_detached( + width: 720, + height: 480, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.high: + expectedBoundSize = CameraSize.pigeon_detached( + width: 1280, + height: 720, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.veryHigh: + expectedBoundSize = CameraSize.pigeon_detached( + width: 1920, + height: 1080, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.ultraHigh: + expectedBoundSize = CameraSize.pigeon_detached( + width: 3840, + height: 2160, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.max: + expectedResolutionStrategy = + camera.proxy.highestAvailableStrategyResolutionStrategy(); + } + + // We expect the strategy to be the highest available or correspond to the + // expected bound size, with fallback to the closest and highest available + // resolution. + // expectedResolutionStrategy ??= ResolutionStrategy.pigeon_detached( + // boundSize: expectedBoundSize, + // fallbackRule: ResolutionStrategy.fallbackRuleClosestLowerThenHigher, + // ); + + expect(lastSetBoundSize!.width, equals(expectedBoundSize!.width)); + expect(lastSetBoundSize!.height, equals(expectedBoundSize.height)); + expect( + lastSetFallbackRule, + equals(ResolutionStrategyFallbackRule.closestLowerThenHigher), + ); + } + + // Test null case. + await camera.createCamera(testCameraDescription, null); + expect(camera.preview!.resolutionSelector, isNull); + expect(camera.imageCapture!.resolutionSelector, isNull); + expect(camera.imageAnalysis!.resolutionSelector, isNull); + }); // // test( // 'createCamera properly sets filter for resolution preset for non-video capture use cases', From 1c40c4ebbbbbf843090514517eaffca82a93d5b8 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Fri, 10 Jan 2025 15:29:44 -0500 Subject: [PATCH 031/148] fix preview --- .../java/io/flutter/plugins/camerax/PreviewProxyApi.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index 473c49bcfc3..792dd955c06 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -91,16 +91,15 @@ Preview.SurfaceProvider createSurfaceProvider( // get destroyed. surfaceProducer.setCallback( new TextureRegistry.SurfaceProducer.Callback() { - @Override - // TODO(matanlurey): Replace with onSurfaceAvailable once available on stable; - // https://github.com/flutter/flutter/issues/155131. - @SuppressWarnings({"deprecation", "removal"}) - public void onSurfaceCreated() { + public void onSurfaceAvailable() { // Do nothing. The Preview.SurfaceProvider will handle this whenever a new // Surface is needed. } @Override + // TODO(bparrishMines): Replace with onSurfaceCleanup once available on stable. See + // https://github.com/flutter/flutter/issues/161256. + @SuppressWarnings({"deprecation", "removal"}) public void onSurfaceDestroyed() { // Invalidate the SurfaceRequest so that CameraX knows to to make a new request // for a surface. From e2d6d25fcb6e2bbb339389da9bde9e0dda611ec4 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Fri, 10 Jan 2025 16:15:35 -0500 Subject: [PATCH 032/148] fix third test --- .../test/android_camera_camerax_test.dart | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index cf556648513..96c1796bb6e 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -900,6 +900,13 @@ void main() { sensorOrientationCameraCharacteristics: () { return mockCameraCharacteristicsKey; }, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, ); when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, From 79598e7f1726418505426e4a93caf08e8addda99 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 16 Jan 2025 22:01:46 -0500 Subject: [PATCH 033/148] semi fix test --- .../test/android_camera_camerax_test.dart | 147 ++++++++++++------ 1 file changed, 103 insertions(+), 44 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 96c1796bb6e..21329702368 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -109,12 +109,20 @@ void main() { /// preset (setting expected ResolutionSelectors, QualitySelectors, etc.). CameraXProxy getProxyForTestingResolutionPreset( MockProcessCameraProvider mockProcessCameraProvider, { + ResolutionSelector Function({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + })? newResolutionSelector, ResolutionStrategy Function({ required CameraSize boundSize, required ResolutionStrategyFallbackRule fallbackRule, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, })? newResolutionStrategy, + ResolutionStrategy Function()? highestAvailableStrategyResolutionStrategy, }) => CameraXProxy( getInstanceProcessCameraProvider: ({ @@ -145,7 +153,11 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { - return MockPreview(); + return Preview.pigeon_detached( + resolutionSelector: resolutionSelector, + pigeon_instanceManager: + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), + ); }, newImageCapture: ({ int? targetRotation, @@ -154,7 +166,11 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { - return MockImageCapture(); + return ImageCapture.pigeon_detached( + resolutionSelector: resolutionSelector, + pigeon_instanceManager: + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), + ); }, newRecorder: ({ int? aspectRatio, @@ -178,7 +194,11 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { - return MockImageAnalysis(); + return ImageAnalysis.pigeon_detached( + resolutionSelector: resolutionSelector, + pigeon_instanceManager: + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), + ); }, newResolutionStrategy: newResolutionStrategy ?? ({ @@ -189,15 +209,16 @@ void main() { }) { return MockResolutionStrategy(); }, - newResolutionSelector: ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionSelector(); - }, + newResolutionSelector: newResolutionSelector ?? + ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }, fromQualitySelector: ({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, @@ -294,6 +315,11 @@ void main() { }) { return MockFallbackStrategy(); }, + highestAvailableStrategyResolutionStrategy: + highestAvailableStrategyResolutionStrategy ?? + () { + return MockResolutionStrategy(); + }, ); // // /// CameraXProxy for testing exposure and focus related controls. @@ -963,25 +989,6 @@ void main() { MockProcessCameraProvider(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); - CameraSize? lastSetBoundSize; - ResolutionStrategyFallbackRule? lastSetFallbackRule; - - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - camera.proxy = getProxyForTestingResolutionPreset( - mockProcessCameraProvider, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - lastSetBoundSize = boundSize; - lastSetFallbackRule = fallbackRule; - return MockResolutionStrategy(); - }, - ); - when(mockProcessCameraProvider.bindToLifecycle(any, any)) .thenAnswer((_) async => mockCamera); when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); @@ -991,14 +998,32 @@ void main() { // Test non-null resolution presets. for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + CameraSize? lastSetBoundSize; + ResolutionStrategyFallbackRule? lastSetFallbackRule; + + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + lastSetBoundSize = boundSize; + lastSetFallbackRule = fallbackRule; + return MockResolutionStrategy(); + }, + ); + await camera.createCamera( testCameraDescription, resolutionPreset, enableAudio: enableAudio, ); - CameraSize? expectedBoundSize; - ResolutionStrategy? expectedResolutionStrategy; + late final CameraSize? expectedBoundSize; final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, ); @@ -1034,19 +1059,10 @@ void main() { pigeon_instanceManager: testInstanceManager, ); case ResolutionPreset.max: - expectedResolutionStrategy = - camera.proxy.highestAvailableStrategyResolutionStrategy(); + continue; } - // We expect the strategy to be the highest available or correspond to the - // expected bound size, with fallback to the closest and highest available - // resolution. - // expectedResolutionStrategy ??= ResolutionStrategy.pigeon_detached( - // boundSize: expectedBoundSize, - // fallbackRule: ResolutionStrategy.fallbackRuleClosestLowerThenHigher, - // ); - - expect(lastSetBoundSize!.width, equals(expectedBoundSize!.width)); + expect(lastSetBoundSize!.width, equals(expectedBoundSize.width)); expect(lastSetBoundSize!.height, equals(expectedBoundSize.height)); expect( lastSetFallbackRule, @@ -1054,6 +1070,49 @@ void main() { ); } + // Test max case. + late final ResolutionStrategy? setResolutionStrategy; + final MockResolutionSelector mockResolutionSelector = + MockResolutionSelector(); + final MockResolutionStrategy highestAvailableStrategy = + MockResolutionStrategy(); + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + setResolutionStrategy = resolutionStrategy; + return mockResolutionSelector; + }, + highestAvailableStrategyResolutionStrategy: () { + return highestAvailableStrategy; + }, + ); + + await camera.createCamera( + testCameraDescription, + ResolutionPreset.max, + enableAudio: true, + ); + + expect(camera.preview!.resolutionSelector, equals(mockResolutionSelector)); + expect( + camera.preview!.resolutionSelector!.resolutionStrategy, + equals(highestAvailableStrategy), + ); + expect( + camera.imageCapture!.resolutionSelector!.resolutionStrategy, + equals(highestAvailableStrategy), + ); + expect( + camera.imageAnalysis!.resolutionSelector!.resolutionStrategy, + equals(highestAvailableStrategy), + ); + // Test null case. await camera.createCamera(testCameraDescription, null); expect(camera.preview!.resolutionSelector, isNull); From 1a7c9c8e5a1bbf25e61e00d8de63c252d19d52e1 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 22 Jan 2025 17:28:21 -0500 Subject: [PATCH 034/148] change how comments are --- .../test/android_camera_camerax_test.dart | 7129 +++++++++-------- 1 file changed, 3565 insertions(+), 3564 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index cf556648513..9837078ed50 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -1053,3570 +1053,3571 @@ void main() { expect(camera.imageCapture!.resolutionSelector, isNull); expect(camera.imageAnalysis!.resolutionSelector, isNull); }); - // - // test( - // 'createCamera properly sets filter for resolution preset for non-video capture use cases', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const CameraLensDirection testLensDirection = CameraLensDirection.front; - // const int testSensorOrientation = 180; - // const CameraDescription testCameraDescription = CameraDescription( - // name: 'cameraName', - // lensDirection: testLensDirection, - // sensorOrientation: testSensorOrientation); - // const bool enableAudio = true; - // final MockCamera mockCamera = MockCamera(); - // - // // Mock/Detached objects for (typically attached) objects created by - // // createCamera. - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // - // // Tell plugin to create mock/detached objects for testing createCamera - // // as needed. - // camera.proxy = - // getProxyForTestingResolutionPreset(mockProcessCameraProvider); - // - // when(mockProcessCameraProvider.bindToLifecycle(any, any)) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // camera.processCameraProvider = mockProcessCameraProvider; - // - // // Test non-null resolution presets. - // for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - // await camera.createCamera(testCameraDescription, resolutionPreset, - // enableAudio: enableAudio); - // - // Size? expectedPreferredResolution; - // switch (resolutionPreset) { - // case ResolutionPreset.low: - // expectedPreferredResolution = const Size(320, 240); - // case ResolutionPreset.medium: - // expectedPreferredResolution = const Size(720, 480); - // case ResolutionPreset.high: - // expectedPreferredResolution = const Size(1280, 720); - // case ResolutionPreset.veryHigh: - // expectedPreferredResolution = const Size(1920, 1080); - // case ResolutionPreset.ultraHigh: - // expectedPreferredResolution = const Size(3840, 2160); - // case ResolutionPreset.max: - // expectedPreferredResolution = null; - // } - // - // if (expectedPreferredResolution == null) { - // expect(camera.preview!.resolutionSelector!.resolutionFilter, isNull); - // expect( - // camera.imageCapture!.resolutionSelector!.resolutionFilter, isNull); - // expect( - // camera.imageAnalysis!.resolutionSelector!.resolutionFilter, isNull); - // continue; - // } - // - // expect( - // camera.preview!.resolutionSelector!.resolutionFilter! - // .preferredResolution, - // equals(expectedPreferredResolution)); - // expect( - // camera - // .imageCapture!.resolutionSelector!.resolutionStrategy!.boundSize, - // equals(expectedPreferredResolution)); - // expect( - // camera - // .imageAnalysis!.resolutionSelector!.resolutionStrategy!.boundSize, - // equals(expectedPreferredResolution)); - // } - // - // // Test null case. - // await camera.createCamera(testCameraDescription, null); - // expect(camera.preview!.resolutionSelector, isNull); - // expect(camera.imageCapture!.resolutionSelector, isNull); - // expect(camera.imageAnalysis!.resolutionSelector, isNull); - // }); - // - // test( - // 'createCamera properly sets aspect ratio based on preset resolution for non-video capture use cases', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const CameraLensDirection testLensDirection = CameraLensDirection.back; - // const int testSensorOrientation = 90; - // const CameraDescription testCameraDescription = CameraDescription( - // name: 'cameraName', - // lensDirection: testLensDirection, - // sensorOrientation: testSensorOrientation); - // const bool enableAudio = true; - // final MockCamera mockCamera = MockCamera(); - // - // // Mock/Detached objects for (typically attached) objects created by - // // createCamera. - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // - // // Tell plugin to create mock/detached objects for testing createCamera - // // as needed. - // camera.proxy = - // getProxyForTestingResolutionPreset(mockProcessCameraProvider); - // when(mockProcessCameraProvider.bindToLifecycle(any, any)) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // camera.processCameraProvider = mockProcessCameraProvider; - // - // // Test non-null resolution presets. - // for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - // await camera.createCamera(testCameraDescription, resolutionPreset, - // enableAudio: enableAudio); - // - // int? expectedAspectRatio; - // AspectRatioStrategy? expectedAspectRatioStrategy; - // switch (resolutionPreset) { - // case ResolutionPreset.low: - // expectedAspectRatio = AspectRatio.ratio4To3; - // case ResolutionPreset.high: - // case ResolutionPreset.veryHigh: - // case ResolutionPreset.ultraHigh: - // expectedAspectRatio = AspectRatio.ratio16To9; - // case ResolutionPreset.medium: - // // Medium resolution preset uses aspect ratio 3:2 which is unsupported - // // by CameraX. - // case ResolutionPreset.max: - // expectedAspectRatioStrategy = null; - // } - // - // expectedAspectRatioStrategy = expectedAspectRatio == null - // ? null - // : AspectRatioStrategy.detached( - // preferredAspectRatio: expectedAspectRatio, - // fallbackRule: AspectRatioStrategy.fallbackRuleAuto); - // - // if (expectedAspectRatio == null) { - // expect(camera.preview!.resolutionSelector!.aspectRatioStrategy, isNull); - // expect(camera.imageCapture!.resolutionSelector!.aspectRatioStrategy, - // isNull); - // expect(camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy, - // isNull); - // continue; - // } - // - // // Check aspect ratio. - // expect( - // camera.preview!.resolutionSelector!.aspectRatioStrategy! - // .preferredAspectRatio, - // equals(expectedAspectRatioStrategy!.preferredAspectRatio)); - // expect( - // camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! - // .preferredAspectRatio, - // equals(expectedAspectRatioStrategy.preferredAspectRatio)); - // expect( - // camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! - // .preferredAspectRatio, - // equals(expectedAspectRatioStrategy.preferredAspectRatio)); - // - // // Check fallback rule. - // expect( - // camera.preview!.resolutionSelector!.aspectRatioStrategy!.fallbackRule, - // equals(expectedAspectRatioStrategy.fallbackRule)); - // expect( - // camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! - // .fallbackRule, - // equals(expectedAspectRatioStrategy.fallbackRule)); - // expect( - // camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! - // .fallbackRule, - // equals(expectedAspectRatioStrategy.fallbackRule)); - // } - // - // // Test null case. - // await camera.createCamera(testCameraDescription, null); - // expect(camera.preview!.resolutionSelector, isNull); - // expect(camera.imageCapture!.resolutionSelector, isNull); - // expect(camera.imageAnalysis!.resolutionSelector, isNull); - // }); - // - // test( - // 'createCamera properly sets preset resolution for video capture use case', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const CameraLensDirection testLensDirection = CameraLensDirection.back; - // const int testSensorOrientation = 90; - // const CameraDescription testCameraDescription = CameraDescription( - // name: 'cameraName', - // lensDirection: testLensDirection, - // sensorOrientation: testSensorOrientation); - // const bool enableAudio = true; - // final MockCamera mockCamera = MockCamera(); - // - // // Mock/Detached objects for (typically attached) objects created by - // // createCamera. - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // - // // Tell plugin to create mock/detached objects for testing createCamera - // // as needed. - // camera.proxy = - // getProxyForTestingResolutionPreset(mockProcessCameraProvider); - // - // when(mockProcessCameraProvider.bindToLifecycle(any, any)) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // - // // Test non-null resolution presets. - // for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - // await camera.createCamera(testCameraDescription, resolutionPreset, - // enableAudio: enableAudio); - // - // VideoQuality? expectedVideoQuality; - // switch (resolutionPreset) { - // case ResolutionPreset.low: - // // 240p is not supported by CameraX. - // case ResolutionPreset.medium: - // expectedVideoQuality = VideoQuality.SD; - // case ResolutionPreset.high: - // expectedVideoQuality = VideoQuality.HD; - // case ResolutionPreset.veryHigh: - // expectedVideoQuality = VideoQuality.FHD; - // case ResolutionPreset.ultraHigh: - // expectedVideoQuality = VideoQuality.UHD; - // case ResolutionPreset.max: - // expectedVideoQuality = VideoQuality.highest; - // } - // - // const VideoResolutionFallbackRule expectedFallbackRule = - // VideoResolutionFallbackRule.lowerQualityOrHigherThan; - // final FallbackStrategy expectedFallbackStrategy = - // FallbackStrategy.detached( - // quality: expectedVideoQuality, - // fallbackRule: expectedFallbackRule); - // - // expect(camera.recorder!.qualitySelector!.qualityList.length, equals(1)); - // expect(camera.recorder!.qualitySelector!.qualityList.first.quality, - // equals(expectedVideoQuality)); - // expect(camera.recorder!.qualitySelector!.fallbackStrategy!.quality, - // equals(expectedFallbackStrategy.quality)); - // expect(camera.recorder!.qualitySelector!.fallbackStrategy!.fallbackRule, - // equals(expectedFallbackStrategy.fallbackRule)); - // } - // - // // Test null case. - // await camera.createCamera(testCameraDescription, null); - // expect(camera.recorder!.qualitySelector, isNull); - // }); - // - // test( - // 'createCamera sets sensor and device orientations needed to correct preview rotation as expected', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const CameraLensDirection testLensDirection = CameraLensDirection.back; - // const int testSensorOrientation = 270; - // const CameraDescription testCameraDescription = CameraDescription( - // name: 'cameraName', - // lensDirection: testLensDirection, - // sensorOrientation: testSensorOrientation); - // const bool enableAudio = true; - // const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; - // const DeviceOrientation testUiOrientation = DeviceOrientation.portraitDown; - // - // // Mock/Detached objects for (typically attached) objects created by - // // createCamera. - // final MockCamera mockCamera = MockCamera(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // The proxy needed for this test is the same as testing resolution - // // presets except for mocking the retrievall of the sensor and current - // // UI orientation. - // camera.proxy = - // getProxyForTestingResolutionPreset(mockProcessCameraProvider); - // camera.proxy.getSensorOrientation = - // (_) async => Future.value(testSensorOrientation); - // camera.proxy.getUiOrientation = - // () async => Future.value(testUiOrientation); - // - // when(mockProcessCameraProvider.bindToLifecycle(any, any)) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // - // await camera.createCamera(testCameraDescription, testResolutionPreset, - // enableAudio: enableAudio); - // - // expect(camera.sensorOrientation, testSensorOrientation); - // }); - // - // test( - // 'initializeCamera throws a CameraException when createCamera has not been called before initializedCamera', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // await expectLater(() async { - // await camera.initializeCamera(3); - // }, throwsA(isA())); - // }); - // - // test('initializeCamera sends expected CameraInitializedEvent', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // - // const int cameraId = 10; - // const CameraLensDirection testLensDirection = CameraLensDirection.back; - // const int testSensorOrientation = 90; - // const CameraDescription testCameraDescription = CameraDescription( - // name: 'cameraName', - // lensDirection: testLensDirection, - // sensorOrientation: testSensorOrientation); - // const int resolutionWidth = 350; - // const int resolutionHeight = 750; - // final Camera mockCamera = MockCamera(); - // final ResolutionInfo testResolutionInfo = - // ResolutionInfo(width: resolutionWidth, height: resolutionHeight); - // - // // Mocks for (typically attached) objects created by createCamera. - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final CameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); - // final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); - // final MockPreview mockPreview = MockPreview(); - // final MockImageCapture mockImageCapture = MockImageCapture(); - // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Tell plugin to create mock/detached objects for testing createCamera - // // as needed. - // camera.proxy = CameraXProxy( - // getProcessCameraProvider: () => - // Future.value(mockProcessCameraProvider), - // createCameraSelector: (int cameraSelectorLensDirection) { - // switch (cameraSelectorLensDirection) { - // case CameraSelector.lensFacingFront: - // return mockFrontCameraSelector; - // case CameraSelector.lensFacingBack: - // default: - // return mockBackCameraSelector; - // } - // }, - // createPreview: (_, __) => mockPreview, - // createImageCapture: (_, __) => mockImageCapture, - // createRecorder: (QualitySelector? qualitySelector) => MockRecorder(), - // createVideoCapture: (_) => Future.value(MockVideoCapture()), - // createImageAnalysis: (_, __) => mockImageAnalysis, - // createResolutionStrategy: ( - // {bool highestAvailable = false, - // Size? boundSize, - // int? fallbackRule}) => - // MockResolutionStrategy(), - // createResolutionSelector: (_, __, ___) => MockResolutionSelector(), - // createFallbackStrategy: ( - // {required VideoQuality quality, - // required VideoResolutionFallbackRule fallbackRule}) => - // MockFallbackStrategy(), - // createQualitySelector: ( - // {required VideoQuality videoQuality, - // required FallbackStrategy fallbackStrategy}) => - // MockQualitySelector(), - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // requestCameraPermissions: (_) => Future.value(), - // startListeningForDeviceOrientationChange: (_, __) {}, - // createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), - // createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), - // getCamera2CameraInfo: (_) => - // Future.value(MockCamera2CameraInfo()), - // getUiOrientation: () => - // Future.value(DeviceOrientation.portraitUp), - // ); - // - // final CameraInitializedEvent testCameraInitializedEvent = - // CameraInitializedEvent( - // cameraId, - // resolutionWidth.toDouble(), - // resolutionHeight.toDouble(), - // ExposureMode.auto, - // true, - // FocusMode.auto, - // true); - // - // // Call createCamera. - // when(mockPreview.setSurfaceProvider()).thenAnswer((_) async => cameraId); - // - // when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, - // [mockPreview, mockImageCapture, mockImageAnalysis])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(mockPreview.getResolutionInfo()) - // .thenAnswer((_) async => testResolutionInfo); - // - // await camera.createCameraWithSettings( - // testCameraDescription, - // const MediaSettings( - // resolutionPreset: ResolutionPreset.medium, - // fps: 15, - // videoBitrate: 200000, - // audioBitrate: 32000, - // enableAudio: true, - // ), - // ); - // - // // Start listening to camera events stream to verify the proper CameraInitializedEvent is sent. - // camera.cameraEventStreamController.stream.listen((CameraEvent event) { - // expect(event, const TypeMatcher()); - // expect(event, equals(testCameraInitializedEvent)); - // }); - // - // await camera.initializeCamera(cameraId); - // - // // Check camera instance was received. - // expect(camera.camera, isNotNull); - // }); - // - // test( - // 'dispose releases Flutter surface texture, removes camera state observers, and unbinds all use cases', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // - // camera.preview = MockPreview(); - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.liveCameraState = MockLiveCameraState(); - // camera.imageAnalysis = MockImageAnalysis(); - // - // await camera.dispose(3); - // - // verify(camera.preview!.releaseFlutterSurfaceTexture()); - // verify(camera.liveCameraState!.removeObservers()); - // verify(camera.processCameraProvider!.unbindAll()); - // verify(camera.imageAnalysis!.clearAnalyzer()); - // }); - // - // test('onCameraInitialized stream emits CameraInitializedEvents', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 16; - // final Stream eventStream = - // camera.onCameraInitialized(cameraId); - // final StreamQueue streamQueue = - // StreamQueue(eventStream); - // const CameraInitializedEvent testEvent = CameraInitializedEvent( - // cameraId, 320, 80, ExposureMode.auto, false, FocusMode.auto, false); - // - // camera.cameraEventStreamController.add(testEvent); - // - // expect(await streamQueue.next, testEvent); - // await streamQueue.cancel(); - // }); - // - // test( - // 'onCameraClosing stream emits camera closing event when cameraEventStreamController emits a camera closing event', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 99; - // const CameraClosingEvent cameraClosingEvent = CameraClosingEvent(cameraId); - // final Stream eventStream = - // camera.onCameraClosing(cameraId); - // final StreamQueue streamQueue = - // StreamQueue(eventStream); - // - // camera.cameraEventStreamController.add(cameraClosingEvent); - // - // expect(await streamQueue.next, equals(cameraClosingEvent)); - // await streamQueue.cancel(); - // }); - // - // test( - // 'onCameraError stream emits errors caught by system services or added to stream within plugin', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 27; - // const String firstTestErrorDescription = 'Test error description 1!'; - // const String secondTestErrorDescription = 'Test error description 2!'; - // const CameraErrorEvent secondCameraErrorEvent = - // CameraErrorEvent(cameraId, secondTestErrorDescription); - // final Stream eventStream = camera.onCameraError(cameraId); - // final StreamQueue streamQueue = - // StreamQueue(eventStream); - // - // SystemServices.cameraErrorStreamController.add(firstTestErrorDescription); - // expect(await streamQueue.next, - // equals(const CameraErrorEvent(cameraId, firstTestErrorDescription))); - // - // camera.cameraEventStreamController.add(secondCameraErrorEvent); - // expect(await streamQueue.next, equals(secondCameraErrorEvent)); - // - // await streamQueue.cancel(); - // }); - // - // test( - // 'onDeviceOrientationChanged stream emits changes in device orientation detected by system services', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final Stream eventStream = - // camera.onDeviceOrientationChanged(); - // final StreamQueue streamQueue = - // StreamQueue(eventStream); - // const DeviceOrientationChangedEvent testEvent = - // DeviceOrientationChangedEvent(DeviceOrientation.portraitDown); - // - // DeviceOrientationManager.deviceOrientationChangedStreamController - // .add(testEvent); - // - // expect(await streamQueue.next, testEvent); - // await streamQueue.cancel(); - // }); - // - // test( - // 'pausePreview unbinds preview from lifecycle when preview is nonnull and has been bound to lifecycle', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.preview = MockPreview(); - // - // when(camera.processCameraProvider!.isBound(camera.preview!)) - // .thenAnswer((_) async => true); - // - // await camera.pausePreview(579); - // - // verify(camera.processCameraProvider!.unbind([camera.preview!])); - // }); - // - // test( - // 'pausePreview does not unbind preview from lifecycle when preview has not been bound to lifecycle', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.preview = MockPreview(); - // - // await camera.pausePreview(632); - // - // verifyNever( - // camera.processCameraProvider!.unbind([camera.preview!])); - // }); - // - // test( - // 'resumePreview does not bind preview to lifecycle or update camera state observers if already bound', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = mockProcessCameraProvider; - // camera.cameraSelector = MockCameraSelector(); - // camera.preview = MockPreview(); - // - // when(camera.processCameraProvider!.isBound(camera.preview!)) - // .thenAnswer((_) async => true); - // - // when(mockProcessCameraProvider - // .bindToLifecycle(camera.cameraSelector, [camera.preview!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => mockLiveCameraState); - // - // await camera.resumePreview(78); - // - // verifyNever(camera.processCameraProvider! - // .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); - // verifyNever(mockLiveCameraState.observe(any)); - // expect(camera.cameraInfo, isNot(mockCameraInfo)); - // }); - // - // test( - // 'resumePreview binds preview to lifecycle and updates camera state observers if not already bound', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = mockProcessCameraProvider; - // camera.cameraSelector = MockCameraSelector(); - // camera.preview = MockPreview(); - // - // // Tell plugin to create a detached Observer, that is created to - // // track camera state once preview is bound to the lifecycle and needed to - // // test for expected updates. - // camera.proxy = CameraXProxy( - // createCameraStateObserver: - // (void Function(Object stateAsObject) onChanged) => - // Observer.detached(onChanged: onChanged)); - // - // when(mockProcessCameraProvider - // .bindToLifecycle(camera.cameraSelector, [camera.preview!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => mockLiveCameraState); - // when(mockCamera.getCameraControl()) - // .thenAnswer((_) async => mockCameraControl); - // - // await camera.resumePreview(78); - // - // verify(camera.processCameraProvider! - // .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); - // expect( - // await testCameraClosingObserver( - // camera, - // 78, - // verify(mockLiveCameraState.observe(captureAny)).captured.single - // as Observer), - // isTrue); - // expect(camera.cameraInfo, equals(mockCameraInfo)); - // expect(camera.cameraControl, equals(mockCameraControl)); - // }); - // - // test( - // 'buildPreview throws an exception if the preview is not bound to the lifecycle', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 73; - // - // // Tell camera that createCamera has not been called and thus, preview has - // // not been bound to the lifecycle of the camera. - // camera.previewInitiallyBound = false; - // - // expect( - // () => camera.buildPreview(cameraId), throwsA(isA())); - // }); - // - // test( - // 'buildPreview returns a Texture once the preview is bound to the lifecycle if it is backed by a SurfaceTexture', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 37; - // - // // Tell camera that createCamera has been called and thus, preview has been - // // bound to the lifecycle of the camera. - // camera.previewInitiallyBound = true; - // - // final Widget widget = camera.buildPreview(cameraId); - // - // expect(widget is Texture, isTrue); - // expect((widget as Texture).textureId, cameraId); - // }); - // - // group('video recording', () { - // test( - // 'startVideoCapturing binds video capture use case, updates saved camera instance and its properties, and starts the recording', - // () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockRecording mockRecording = MockRecording(); - // final MockCamera mockCamera = MockCamera(); - // final MockCamera newMockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - // final MockLiveCameraState newMockLiveCameraState = MockLiveCameraState(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = - // MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.camera = mockCamera; - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.cameraSelector = MockCameraSelector(); - // camera.liveCameraState = mockLiveCameraState; - // camera.cameraInfo = MockCameraInfo(); - // camera.imageAnalysis = MockImageAnalysis(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached Observer when camera info updated. - // camera.proxy = CameraXProxy( - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // getCamera2CameraInfo: (CameraInfo cameraInfo) => - // Future.value(mockCamera2CameraInfo)); - // - // const int cameraId = 17; - // const String outputPath = '/temp/REC123.temp'; - // - // // Mock method calls. - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => false); - // when(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])) - // .thenAnswer((_) async => newMockCamera); - // when(newMockCamera.getCameraInfo()) - // .thenAnswer((_) async => mockCameraInfo); - // when(newMockCamera.getCameraControl()) - // .thenAnswer((_) async => mockCameraControl); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => newMockLiveCameraState); - // when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - // (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // - // // Verify VideoCapture UseCase is bound and camera & its properties - // // are updated. - // verify(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])); - // expect(camera.camera, equals(newMockCamera)); - // expect(camera.cameraInfo, equals(mockCameraInfo)); - // expect(camera.cameraControl, equals(mockCameraControl)); - // verify(mockLiveCameraState.removeObservers()); - // expect( - // await testCameraClosingObserver( - // camera, - // cameraId, - // verify(newMockLiveCameraState.observe(captureAny)).captured.single - // as Observer), - // isTrue); - // - // // Verify recording is started. - // expect(camera.pendingRecording, equals(mockPendingRecording)); - // expect(camera.recording, mockRecording); - // }); - // - // test( - // 'startVideoCapturing binds video capture use case and starts the recording' - // ' on first call, and does nothing on second call', () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockRecording mockRecording = MockRecording(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = - // MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.cameraSelector = MockCameraSelector(); - // camera.cameraInfo = MockCameraInfo(); - // camera.imageAnalysis = MockImageAnalysis(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached Observer when camera info updated. - // camera.proxy = CameraXProxy( - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // getCamera2CameraInfo: (CameraInfo cameraInfo) => - // Future.value(mockCamera2CameraInfo)); - // - // const int cameraId = 17; - // const String outputPath = '/temp/REC123.temp'; - // - // // Mock method calls. - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => false); - // when(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()) - // .thenAnswer((_) => Future.value(mockCameraInfo)); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - // (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // - // verify(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])); - // expect(camera.pendingRecording, equals(mockPendingRecording)); - // expect(camera.recording, mockRecording); - // - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // // Verify that each of these calls happened only once. - // verify(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .called(1); - // verifyNoMoreInteractions(mockSystemServicesApi); - // verify(camera.recorder!.prepareRecording(outputPath)).called(1); - // verifyNoMoreInteractions(camera.recorder); - // verify(mockPendingRecording.start()).called(1); - // verifyNoMoreInteractions(mockPendingRecording); - // }); - // - // test( - // 'startVideoCapturing called with stream options starts image streaming', - // () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final Recorder mockRecorder = MockRecorder(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockCameraInfo initialCameraInfo = MockCameraInfo(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = - // MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Set directly for test versus calling createCamera. - // - // camera.processCameraProvider = mockProcessCameraProvider; - // camera.cameraSelector = MockCameraSelector(); - // camera.videoCapture = MockVideoCapture(); - // camera.imageAnalysis = MockImageAnalysis(); - // camera.camera = MockCamera(); - // camera.recorder = mockRecorder; - // camera.cameraInfo = initialCameraInfo; - // camera.imageCapture = MockImageCapture(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached Analyzer for testing. - // camera.proxy = CameraXProxy( - // createAnalyzer: - // (Future Function(ImageProxy imageProxy) analyze) => - // Analyzer.detached(analyze: analyze), - // getCamera2CameraInfo: (CameraInfo cameraInfo) async => - // cameraInfo == initialCameraInfo - // ? mockCamera2CameraInfo - // : MockCamera2CameraInfo()); - // - // const int cameraId = 17; - // const String outputPath = '/temp/REC123.temp'; - // final Completer imageDataCompleter = - // Completer(); - // final VideoCaptureOptions videoCaptureOptions = VideoCaptureOptions( - // cameraId, - // streamCallback: (CameraImageData imageData) => - // imageDataCompleter.complete(imageData)); - // - // // Mock method calls. - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => true); - // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - // .thenAnswer((_) async => true); - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockProcessCameraProvider.bindToLifecycle(any, any)) - // .thenAnswer((_) => Future.value(camera.camera)); - // when(camera.camera!.getCameraInfo()) - // .thenAnswer((_) => Future.value(MockCameraInfo())); - // when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - // .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // await camera.startVideoCapturing(videoCaptureOptions); - // - // final CameraImageData mockCameraImageData = MockCameraImageData(); - // camera.cameraImageDataStreamController!.add(mockCameraImageData); - // - // expect(imageDataCompleter.future, isNotNull); - // await camera.cameraImageDataStreamController!.close(); - // }); - // - // test( - // 'startVideoCapturing sets VideoCapture target rotation to current video orientation if orientation unlocked', - // () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockRecording mockRecording = MockRecording(); - // final MockVideoCapture mockVideoCapture = MockVideoCapture(); - // final MockCameraInfo initialCameraInfo = MockCameraInfo(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = - // MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // const int defaultTargetRotation = Surface.rotation270; - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.camera = MockCamera(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = mockVideoCapture; - // camera.cameraSelector = MockCameraSelector(); - // camera.imageAnalysis = MockImageAnalysis(); - // camera.cameraInfo = initialCameraInfo; - // - // // Tell plugin to mock call to get current video orientation and mock Camera2CameraInfo retrieval. - // camera.proxy = CameraXProxy( - // getDefaultDisplayRotation: () => - // Future.value(defaultTargetRotation), - // getCamera2CameraInfo: (CameraInfo cameraInfo) async => - // cameraInfo == initialCameraInfo - // ? mockCamera2CameraInfo - // : MockCamera2CameraInfo()); - // - // const int cameraId = 87; - // const String outputPath = '/temp/REC123.temp'; - // - // // Mock method calls. - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => true); - // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - // .thenAnswer((_) async => false); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // // Orientation is unlocked and plugin does not need to set default target - // // rotation manually. - // camera.recording = null; - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // verifyNever(mockVideoCapture.setTargetRotation(any)); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // // Orientation is locked and plugin does not need to set default target - // // rotation manually. - // camera.recording = null; - // camera.captureOrientationLocked = true; - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // verifyNever(mockVideoCapture.setTargetRotation(any)); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // // Orientation is locked and plugin does need to set default target - // // rotation manually. - // camera.recording = null; - // camera.captureOrientationLocked = true; - // camera.shouldSetDefaultRotation = true; - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // verifyNever(mockVideoCapture.setTargetRotation(any)); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // // Orientation is unlocked and plugin does need to set default target - // // rotation manually. - // camera.recording = null; - // camera.captureOrientationLocked = false; - // camera.shouldSetDefaultRotation = true; - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // verify(mockVideoCapture.setTargetRotation(defaultTargetRotation)); - // }); - // - // test('pauseVideoRecording pauses the recording', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockRecording recording = MockRecording(); - // - // // Set directly for test versus calling startVideoCapturing. - // camera.recording = recording; - // - // await camera.pauseVideoRecording(0); - // verify(recording.pause()); - // verifyNoMoreInteractions(recording); - // }); - // - // test('resumeVideoRecording resumes the recording', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockRecording recording = MockRecording(); - // - // // Set directly for test versus calling startVideoCapturing. - // camera.recording = recording; - // - // await camera.resumeVideoRecording(0); - // verify(recording.resume()); - // verifyNoMoreInteractions(recording); - // }); - // - // test('stopVideoRecording stops the recording', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockRecording recording = MockRecording(); - // final MockProcessCameraProvider processCameraProvider = - // MockProcessCameraProvider(); - // final MockVideoCapture videoCapture = MockVideoCapture(); - // const String videoOutputPath = '/test/output/path'; - // - // // Set directly for test versus calling createCamera and startVideoCapturing. - // camera.processCameraProvider = processCameraProvider; - // camera.recording = recording; - // camera.videoCapture = videoCapture; - // camera.videoOutputPath = videoOutputPath; - // - // // Tell plugin that videoCapture use case was bound to start recording. - // when(camera.processCameraProvider!.isBound(videoCapture)) - // .thenAnswer((_) async => true); - // - // // Simulate video recording being finalized so stopVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.finalize); - // - // final XFile file = await camera.stopVideoRecording(0); - // expect(file.path, videoOutputPath); - // - // // Verify that recording stops. - // verify(recording.close()); - // verifyNoMoreInteractions(recording); - // }); - // - // test( - // 'stopVideoRecording throws a camera exception if ' - // 'no recording is in progress', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const String videoOutputPath = '/test/output/path'; - // - // // Set directly for test versus calling startVideoCapturing. - // camera.recording = null; - // camera.videoOutputPath = videoOutputPath; - // - // await expectLater(() async { - // await camera.stopVideoRecording(0); - // }, throwsA(isA())); - // }); - // - // test( - // 'stopVideoRecording throws a camera exception if ' - // 'videoOutputPath is null, and sets recording to null', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockRecording mockRecording = MockRecording(); - // final MockVideoCapture mockVideoCapture = MockVideoCapture(); - // - // // Set directly for test versus calling startVideoCapturing. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recording = mockRecording; - // camera.videoOutputPath = null; - // camera.videoCapture = mockVideoCapture; - // - // // Tell plugin that videoCapture use case was bound to start recording. - // when(camera.processCameraProvider!.isBound(mockVideoCapture)) - // .thenAnswer((_) async => true); - // - // await expectLater(() async { - // // Simulate video recording being finalized so stopVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.finalize); - // await camera.stopVideoRecording(0); - // }, throwsA(isA())); - // expect(camera.recording, null); - // }); - // - // test( - // 'calling stopVideoRecording twice stops the recording ' - // 'and then throws a CameraException', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockRecording recording = MockRecording(); - // final MockProcessCameraProvider processCameraProvider = - // MockProcessCameraProvider(); - // final MockVideoCapture videoCapture = MockVideoCapture(); - // const String videoOutputPath = '/test/output/path'; - // - // // Set directly for test versus calling createCamera and startVideoCapturing. - // camera.processCameraProvider = processCameraProvider; - // camera.recording = recording; - // camera.videoCapture = videoCapture; - // camera.videoOutputPath = videoOutputPath; - // - // // Simulate video recording being finalized so stopVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.finalize); - // - // final XFile file = await camera.stopVideoRecording(0); - // expect(file.path, videoOutputPath); - // - // await expectLater(() async { - // await camera.stopVideoRecording(0); - // }, throwsA(isA())); - // }); - // - // test( - // 'VideoCapture use case is unbound from lifecycle when video recording stops', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockRecording recording = MockRecording(); - // final MockProcessCameraProvider processCameraProvider = - // MockProcessCameraProvider(); - // final MockVideoCapture videoCapture = MockVideoCapture(); - // const String videoOutputPath = '/test/output/path'; - // - // // Set directly for test versus calling createCamera and startVideoCapturing. - // camera.processCameraProvider = processCameraProvider; - // camera.recording = recording; - // camera.videoCapture = videoCapture; - // camera.videoOutputPath = videoOutputPath; - // - // // Tell plugin that videoCapture use case was bound to start recording. - // when(camera.processCameraProvider!.isBound(videoCapture)) - // .thenAnswer((_) async => true); - // - // // Simulate video recording being finalized so stopVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.finalize); - // - // await camera.stopVideoRecording(90); - // verify(processCameraProvider.unbind([videoCapture])); - // - // // Verify that recording stops. - // verify(recording.close()); - // verifyNoMoreInteractions(recording); - // }); - // - // test( - // 'setDescriptionWhileRecording does not make any calls involving starting video recording', - // () async { - // // TODO(camsim99): Modify test when implemented, see https://github.com/flutter/flutter/issues/148013. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.camera = MockCamera(); - // - // await camera.setDescriptionWhileRecording(const CameraDescription( - // name: 'fakeCameraName', - // lensDirection: CameraLensDirection.back, - // sensorOrientation: 90)); - // verifyNoMoreInteractions(camera.processCameraProvider); - // verifyNoMoreInteractions(camera.recorder); - // verifyNoMoreInteractions(camera.videoCapture); - // verifyNoMoreInteractions(camera.camera); - // }); - // }); - // - // test( - // 'takePicture binds ImageCapture to lifecycle and makes call to take a picture', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // const String testPicturePath = 'test/absolute/path/to/picture'; - // - // // Set directly for test versus calling createCamera. - // camera.imageCapture = MockImageCapture(); - // camera.processCameraProvider = mockProcessCameraProvider; - // camera.cameraSelector = MockCameraSelector(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached camera state observers. - // camera.proxy = CameraXProxy( - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged)); - // - // when(mockProcessCameraProvider.isBound(camera.imageCapture)) - // .thenAnswer((_) async => false); - // when(mockProcessCameraProvider.bindToLifecycle( - // camera.cameraSelector, [camera.imageCapture!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(camera.imageCapture!.takePicture()) - // .thenAnswer((_) async => testPicturePath); - // - // final XFile imageFile = await camera.takePicture(3); - // - // expect(imageFile.path, equals(testPicturePath)); - // }); - // - // test( - // 'takePicture sets ImageCapture target rotation to currrent photo rotation when orientation unlocked', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockImageCapture mockImageCapture = MockImageCapture(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // - // const int cameraId = 3; - // const int defaultTargetRotation = Surface.rotation180; - // - // // Set directly for test versus calling createCamera. - // camera.imageCapture = mockImageCapture; - // camera.processCameraProvider = mockProcessCameraProvider; - // - // // Tell plugin to mock call to get current photo orientation. - // camera.proxy = CameraXProxy( - // getDefaultDisplayRotation: () => - // Future.value(defaultTargetRotation)); - // - // when(mockProcessCameraProvider.isBound(camera.imageCapture)) - // .thenAnswer((_) async => true); - // when(camera.imageCapture!.takePicture()) - // .thenAnswer((_) async => 'test/absolute/path/to/picture'); - // - // // Orientation is unlocked and plugin does not need to set default target - // // rotation manually. - // await camera.takePicture(cameraId); - // verifyNever(mockImageCapture.setTargetRotation(any)); - // - // // Orientation is locked and plugin does not need to set default target - // // rotation manually. - // camera.captureOrientationLocked = true; - // await camera.takePicture(cameraId); - // verifyNever(mockImageCapture.setTargetRotation(any)); - // - // // Orientation is locked and plugin does need to set default target - // // rotation manually. - // camera.captureOrientationLocked = true; - // camera.shouldSetDefaultRotation = true; - // await camera.takePicture(cameraId); - // verifyNever(mockImageCapture.setTargetRotation(any)); - // - // // Orientation is unlocked and plugin does need to set default target - // // rotation manually. - // camera.captureOrientationLocked = false; - // camera.shouldSetDefaultRotation = true; - // await camera.takePicture(cameraId); - // verify(mockImageCapture.setTargetRotation(defaultTargetRotation)); - // }); - // - // test('takePicture turns non-torch flash mode off when torch mode enabled', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // const int cameraId = 77; - // - // // Set directly for test versus calling createCamera. - // camera.imageCapture = MockImageCapture(); - // camera.cameraControl = MockCameraControl(); - // camera.processCameraProvider = mockProcessCameraProvider; - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // when(mockProcessCameraProvider.isBound(camera.imageCapture)) - // .thenAnswer((_) async => true); - // - // await camera.setFlashMode(cameraId, FlashMode.torch); - // await camera.takePicture(cameraId); - // verify(camera.imageCapture!.setFlashMode(ImageCapture.flashModeOff)); - // }); - // - // test( - // 'setFlashMode configures ImageCapture with expected non-torch flash mode', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 22; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // - // // Set directly for test versus calling createCamera. - // camera.imageCapture = MockImageCapture(); - // camera.cameraControl = mockCameraControl; - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // camera.processCameraProvider = mockProcessCameraProvider; - // - // when(mockProcessCameraProvider.isBound(camera.imageCapture)) - // .thenAnswer((_) async => true); - // - // for (final FlashMode flashMode in FlashMode.values) { - // await camera.setFlashMode(cameraId, flashMode); - // - // int? expectedFlashMode; - // switch (flashMode) { - // case FlashMode.off: - // expectedFlashMode = ImageCapture.flashModeOff; - // case FlashMode.auto: - // expectedFlashMode = ImageCapture.flashModeAuto; - // case FlashMode.always: - // expectedFlashMode = ImageCapture.flashModeOn; - // case FlashMode.torch: - // expectedFlashMode = null; - // } - // - // if (expectedFlashMode == null) { - // // Torch mode enabled and won't be used for configuring image capture. - // continue; - // } - // - // verifyNever(mockCameraControl.enableTorch(true)); - // expect(camera.torchEnabled, isFalse); - // await camera.takePicture(cameraId); - // verify(camera.imageCapture!.setFlashMode(expectedFlashMode)); - // } - // }); - // - // test('setFlashMode turns on torch mode as expected', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 44; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // - // await camera.setFlashMode(cameraId, FlashMode.torch); - // - // verify(mockCameraControl.enableTorch(true)); - // expect(camera.torchEnabled, isTrue); - // }); - // - // test('setFlashMode turns off torch mode when non-torch flash modes set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 33; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // - // for (final FlashMode flashMode in FlashMode.values) { - // camera.torchEnabled = true; - // await camera.setFlashMode(cameraId, flashMode); - // - // switch (flashMode) { - // case FlashMode.off: - // case FlashMode.auto: - // case FlashMode.always: - // verify(mockCameraControl.enableTorch(false)); - // expect(camera.torchEnabled, isFalse); - // case FlashMode.torch: - // verifyNever(mockCameraControl.enableTorch(true)); - // expect(camera.torchEnabled, true); - // } - // } - // }); - // - // test('getMinExposureOffset returns expected exposure offset', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final ExposureState exposureState = ExposureState.detached( - // exposureCompensationRange: - // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - // exposureCompensationStep: 0.2); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // - // when(mockCameraInfo.getExposureState()) - // .thenAnswer((_) async => exposureState); - // - // // We expect the minimum exposure to be the minimum exposure compensation * exposure compensation step. - // // Delta is included due to avoid catching rounding errors. - // expect(await camera.getMinExposureOffset(35), closeTo(0.6, 0.0000000001)); - // }); - // - // test('getMaxExposureOffset returns expected exposure offset', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final ExposureState exposureState = ExposureState.detached( - // exposureCompensationRange: - // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - // exposureCompensationStep: 0.2); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // - // when(mockCameraInfo.getExposureState()) - // .thenAnswer((_) async => exposureState); - // - // // We expect the maximum exposure to be the maximum exposure compensation * exposure compensation step. - // expect(await camera.getMaxExposureOffset(35), 0.8); - // }); - // - // test('getExposureOffsetStepSize returns expected exposure offset', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final ExposureState exposureState = ExposureState.detached( - // exposureCompensationRange: - // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - // exposureCompensationStep: 0.2); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // - // when(mockCameraInfo.getExposureState()) - // .thenAnswer((_) async => exposureState); - // - // expect(await camera.getExposureOffsetStepSize(55), 0.2); - // }); - // - // test( - // 'getExposureOffsetStepSize returns -1 when exposure compensation not supported on device', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final ExposureState exposureState = ExposureState.detached( - // exposureCompensationRange: - // ExposureCompensationRange(minCompensation: 0, maxCompensation: 0), - // exposureCompensationStep: 0); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // - // when(mockCameraInfo.getExposureState()) - // .thenAnswer((_) async => exposureState); - // - // expect(await camera.getExposureOffsetStepSize(55), -1); - // }); - // - // test('getMaxZoomLevel returns expected exposure offset', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // const double maxZoomRatio = 1; - // final LiveData mockLiveZoomState = MockLiveZoomState(); - // final ZoomState zoomState = - // ZoomState.detached(maxZoomRatio: maxZoomRatio, minZoomRatio: 0); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // - // when(mockCameraInfo.getZoomState()) - // .thenAnswer((_) async => mockLiveZoomState); - // when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); - // - // expect(await camera.getMaxZoomLevel(55), maxZoomRatio); - // }); - // - // test('getMinZoomLevel returns expected exposure offset', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // const double minZoomRatio = 0; - // final LiveData mockLiveZoomState = MockLiveZoomState(); - // final ZoomState zoomState = - // ZoomState.detached(maxZoomRatio: 1, minZoomRatio: minZoomRatio); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // - // when(mockCameraInfo.getZoomState()) - // .thenAnswer((_) async => mockLiveZoomState); - // when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); - // - // expect(await camera.getMinZoomLevel(55), minZoomRatio); - // }); - // - // test('setZoomLevel sets zoom ratio as expected', () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 44; - // const double zoomRatio = 0.3; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // - // await camera.setZoomLevel(cameraId, zoomRatio); - // - // verify(mockCameraControl.setZoomRatio(zoomRatio)); - // }); - // - // test( - // 'onStreamedFrameAvailable emits CameraImageData when picked up from CameraImageData stream controller', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // const int cameraId = 22; - // - // // Tell plugin to create detached Analyzer for testing. - // camera.proxy = CameraXProxy( - // createAnalyzer: - // (Future Function(ImageProxy imageProxy) analyze) => - // Analyzer.detached(analyze: analyze)); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = mockProcessCameraProvider; - // camera.cameraSelector = MockCameraSelector(); - // camera.imageAnalysis = MockImageAnalysis(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // when(mockProcessCameraProvider.bindToLifecycle(any, any)) - // .thenAnswer((_) => Future.value(mockCamera)); - // when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) - // .thenAnswer((_) async => true); - // when(mockCamera.getCameraInfo()) - // .thenAnswer((_) => Future.value(mockCameraInfo)); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // - // final CameraImageData mockCameraImageData = MockCameraImageData(); - // final Stream imageStream = - // camera.onStreamedFrameAvailable(cameraId); - // final StreamQueue streamQueue = - // StreamQueue(imageStream); - // - // camera.cameraImageDataStreamController!.add(mockCameraImageData); - // - // expect(await streamQueue.next, equals(mockCameraImageData)); - // await streamQueue.cancel(); - // }); - // - // test( - // 'onStreamedFrameAvailable emits CameraImageData when listened to after cancelation', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // const int cameraId = 22; - // - // // Tell plugin to create detached Analyzer for testing. - // camera.proxy = CameraXProxy( - // createAnalyzer: - // (Future Function(ImageProxy imageProxy) analyze) => - // Analyzer.detached(analyze: analyze)); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = mockProcessCameraProvider; - // camera.cameraSelector = MockCameraSelector(); - // camera.imageAnalysis = MockImageAnalysis(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) - // .thenAnswer((_) async => true); - // - // final CameraImageData mockCameraImageData = MockCameraImageData(); - // final Stream imageStream = - // camera.onStreamedFrameAvailable(cameraId); - // - // // Listen to image stream. - // final StreamSubscription imageStreamSubscription = - // imageStream.listen((CameraImageData data) {}); - // - // // Cancel subscription to image stream. - // await imageStreamSubscription.cancel(); - // final Stream imageStream2 = - // camera.onStreamedFrameAvailable(cameraId); - // - // // Listen to image stream again. - // final StreamQueue streamQueue = - // StreamQueue(imageStream2); - // camera.cameraImageDataStreamController!.add(mockCameraImageData); - // - // expect(await streamQueue.next, equals(mockCameraImageData)); - // await streamQueue.cancel(); - // }); - // - // test( - // 'onStreamedFrameAvailable returns stream that responds expectedly to being listened to', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 33; - // final ProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final CameraSelector mockCameraSelector = MockCameraSelector(); - // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - // final Camera mockCamera = MockCamera(); - // final CameraInfo mockCameraInfo = MockCameraInfo(); - // final MockImageProxy mockImageProxy = MockImageProxy(); - // final MockPlaneProxy mockPlane = MockPlaneProxy(); - // final List mockPlanes = [mockPlane]; - // final Uint8List buffer = Uint8List(0); - // const int pixelStride = 27; - // const int rowStride = 58; - // const int imageFormat = 582; - // const int imageHeight = 100; - // const int imageWidth = 200; - // - // // Tell plugin to create detached Analyzer for testing. - // camera.proxy = CameraXProxy( - // createAnalyzer: - // (Future Function(ImageProxy imageProxy) analyze) => - // Analyzer.detached(analyze: analyze), - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged)); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = mockProcessCameraProvider; - // camera.cameraSelector = mockCameraSelector; - // camera.imageAnalysis = mockImageAnalysis; - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - // .thenAnswer((_) async => false); - // when(mockProcessCameraProvider - // .bindToLifecycle(mockCameraSelector, [mockImageAnalysis])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(mockImageProxy.getPlanes()) - // .thenAnswer((_) async => Future>.value(mockPlanes)); - // when(mockPlane.buffer).thenReturn(buffer); - // when(mockPlane.rowStride).thenReturn(rowStride); - // when(mockPlane.pixelStride).thenReturn(pixelStride); - // when(mockImageProxy.format).thenReturn(imageFormat); - // when(mockImageProxy.height).thenReturn(imageHeight); - // when(mockImageProxy.width).thenReturn(imageWidth); - // - // final Completer imageDataCompleter = - // Completer(); - // final StreamSubscription - // onStreamedFrameAvailableSubscription = camera - // .onStreamedFrameAvailable(cameraId) - // .listen((CameraImageData imageData) { - // imageDataCompleter.complete(imageData); - // }); - // - // // Test ImageAnalysis use case is bound to ProcessCameraProvider. - // await untilCalled(mockImageAnalysis.setAnalyzer(any)); - // final Analyzer capturedAnalyzer = - // verify(mockImageAnalysis.setAnalyzer(captureAny)).captured.single - // as Analyzer; - // - // await capturedAnalyzer.analyze(mockImageProxy); - // - // final CameraImageData imageData = await imageDataCompleter.future; - // - // // Test Analyzer correctly process ImageProxy instances. - // expect(imageData.planes.length, equals(1)); - // expect(imageData.planes[0].bytes, equals(buffer)); - // expect(imageData.planes[0].bytesPerRow, equals(rowStride)); - // expect(imageData.planes[0].bytesPerPixel, equals(pixelStride)); - // expect(imageData.format.raw, equals(imageFormat)); - // expect(imageData.height, equals(imageHeight)); - // expect(imageData.width, equals(imageWidth)); - // - // await onStreamedFrameAvailableSubscription.cancel(); - // }); - // - // test( - // 'onStreamedFrameAvailable returns stream that responds expectedly to being canceled', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 32; - // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // - // // Set directly for test versus calling createCamera. - // camera.imageAnalysis = mockImageAnalysis; - // camera.processCameraProvider = mockProcessCameraProvider; - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create a detached analyzer for testing purposes. - // camera.proxy = CameraXProxy(createAnalyzer: (_) => MockAnalyzer()); - // - // when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - // .thenAnswer((_) async => true); - // - // final StreamSubscription imageStreamSubscription = camera - // .onStreamedFrameAvailable(cameraId) - // .listen((CameraImageData data) {}); - // - // await imageStreamSubscription.cancel(); - // - // verify(mockImageAnalysis.clearAnalyzer()); - // }); - // - // test( - // 'onStreamedFrameAvailable sets ImageAnalysis target rotation to current photo orientation when orientation unlocked', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 35; - // const int defaultTargetRotation = Surface.rotation90; - // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // - // // Set directly for test versus calling createCamera. - // camera.imageAnalysis = mockImageAnalysis; - // camera.processCameraProvider = mockProcessCameraProvider; - // - // // Tell plugin to create a detached analyzer for testing purposes and mock - // // call to get current photo orientation. - // camera.proxy = CameraXProxy( - // createAnalyzer: (_) => MockAnalyzer(), - // getDefaultDisplayRotation: () => - // Future.value(defaultTargetRotation)); - // - // when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - // .thenAnswer((_) async => true); - // - // // Orientation is unlocked and plugin does not need to set default target - // // rotation manually. - // StreamSubscription imageStreamSubscription = camera - // .onStreamedFrameAvailable(cameraId) - // .listen((CameraImageData data) {}); - // await untilCalled(mockImageAnalysis.setAnalyzer(any)); - // verifyNever(mockImageAnalysis.setTargetRotation(any)); - // await imageStreamSubscription.cancel(); - // - // // Orientation is locked and plugin does not need to set default target - // // rotation manually. - // camera.captureOrientationLocked = true; - // imageStreamSubscription = camera - // .onStreamedFrameAvailable(cameraId) - // .listen((CameraImageData data) {}); - // await untilCalled(mockImageAnalysis.setAnalyzer(any)); - // verifyNever(mockImageAnalysis.setTargetRotation(any)); - // await imageStreamSubscription.cancel(); - // - // // Orientation is locked and plugin does need to set default target - // // rotation manually. - // camera.captureOrientationLocked = true; - // camera.shouldSetDefaultRotation = true; - // imageStreamSubscription = camera - // .onStreamedFrameAvailable(cameraId) - // .listen((CameraImageData data) {}); - // await untilCalled(mockImageAnalysis.setAnalyzer(any)); - // verifyNever(mockImageAnalysis.setTargetRotation(any)); - // await imageStreamSubscription.cancel(); - // - // // Orientation is unlocked and plugin does need to set default target - // // rotation manually. - // camera.captureOrientationLocked = false; - // camera.shouldSetDefaultRotation = true; - // imageStreamSubscription = camera - // .onStreamedFrameAvailable(cameraId) - // .listen((CameraImageData data) {}); - // await untilCalled( - // mockImageAnalysis.setTargetRotation(defaultTargetRotation)); - // await imageStreamSubscription.cancel(); - // }); - // - // test( - // 'lockCaptureOrientation sets capture-related use case target rotations to correct orientation', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 44; - // - // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - // final MockImageCapture mockImageCapture = MockImageCapture(); - // final MockVideoCapture mockVideoCapture = MockVideoCapture(); - // - // // Set directly for test versus calling createCamera. - // camera.imageAnalysis = mockImageAnalysis; - // camera.imageCapture = mockImageCapture; - // camera.videoCapture = mockVideoCapture; - // - // for (final DeviceOrientation orientation in DeviceOrientation.values) { - // int? expectedTargetRotation; - // switch (orientation) { - // case DeviceOrientation.portraitUp: - // expectedTargetRotation = Surface.rotation0; - // case DeviceOrientation.landscapeLeft: - // expectedTargetRotation = Surface.rotation90; - // case DeviceOrientation.portraitDown: - // expectedTargetRotation = Surface.rotation180; - // case DeviceOrientation.landscapeRight: - // expectedTargetRotation = Surface.rotation270; - // } - // - // await camera.lockCaptureOrientation(cameraId, orientation); - // - // verify(mockImageAnalysis.setTargetRotation(expectedTargetRotation)); - // verify(mockImageCapture.setTargetRotation(expectedTargetRotation)); - // verify(mockVideoCapture.setTargetRotation(expectedTargetRotation)); - // expect(camera.captureOrientationLocked, isTrue); - // expect(camera.shouldSetDefaultRotation, isTrue); - // - // // Reset flags for testing. - // camera.captureOrientationLocked = false; - // camera.shouldSetDefaultRotation = false; - // } - // }); - // - // test( - // 'unlockCaptureOrientation sets capture-related use case target rotations to current photo/video orientation', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 57; - // - // camera.captureOrientationLocked = true; - // await camera.unlockCaptureOrientation(cameraId); - // expect(camera.captureOrientationLocked, isFalse); - // }); - // - // test('setExposureMode sets expected controlAeLock value via Camera2 interop', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 78; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCamera2CameraControl mockCamera2CameraControl = - // MockCamera2CameraControl(); - // - // // Set directly for test versus calling createCamera. - // camera.camera = MockCamera(); - // camera.cameraControl = mockCameraControl; - // - // // Tell plugin to create detached Camera2CameraControl and - // // CaptureRequestOptions instances for testing. - // camera.proxy = CameraXProxy( - // getCamera2CameraControl: (CameraControl cameraControl) => - // cameraControl == mockCameraControl - // ? mockCamera2CameraControl - // : Camera2CameraControl.detached(cameraControl: cameraControl), - // createCaptureRequestOptions: - // (List<(CaptureRequestKeySupportedType, Object?)> options) => - // CaptureRequestOptions.detached(requestedOptions: options), - // ); - // - // // Test auto mode. - // await camera.setExposureMode(cameraId, ExposureMode.auto); - // - // VerificationResult verificationResult = - // verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); - // CaptureRequestOptions capturedCaptureRequestOptions = - // verificationResult.captured.single as CaptureRequestOptions; - // List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = - // capturedCaptureRequestOptions.requestedOptions; - // expect(requestedOptions.length, equals(1)); - // expect(requestedOptions.first.$1, - // equals(CaptureRequestKeySupportedType.controlAeLock)); - // expect(requestedOptions.first.$2, equals(false)); - // - // // Test locked mode. - // clearInteractions(mockCamera2CameraControl); - // await camera.setExposureMode(cameraId, ExposureMode.locked); - // - // verificationResult = - // verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); - // capturedCaptureRequestOptions = - // verificationResult.captured.single as CaptureRequestOptions; - // requestedOptions = capturedCaptureRequestOptions.requestedOptions; - // expect(requestedOptions.length, equals(1)); - // expect(requestedOptions.first.$1, - // equals(CaptureRequestKeySupportedType.controlAeLock)); - // expect(requestedOptions.first.$2, equals(true)); - // }); - // - // test( - // 'setExposurePoint clears current auto-exposure metering point as expected', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 93; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = mockCameraInfo; - // - // camera.proxy = getProxyForExposureAndFocus(); - // - // // Verify nothing happens if no current focus and metering action has been - // // enabled. - // await camera.setExposurePoint(cameraId, null); - // verifyNever(mockCameraControl.startFocusAndMetering(any)); - // verifyNever(mockCameraControl.cancelFocusAndMetering()); - // - // // Verify current auto-exposure metering point is removed if previously set. - // final (MeteringPoint, int?) autofocusMeteringPointInfo = ( - // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAf - // ); - // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - // ( - // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAe - // ), - // autofocusMeteringPointInfo - // ]; - // - // camera.currentFocusMeteringAction = - // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - // - // await camera.setExposurePoint(cameraId, null); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(1)); - // expect( - // capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); - // - // // Verify current focus and metering action is cleared if only previously - // // set metering point was for auto-exposure. - // meteringPointInfos = <(MeteringPoint, int?)>[ - // ( - // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAe - // ) - // ]; - // camera.currentFocusMeteringAction = - // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - // - // await camera.setExposurePoint(cameraId, null); - // - // verify(mockCameraControl.cancelFocusAndMetering()); - // }); - // - // test('setExposurePoint throws CameraException if invalid point specified', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 23; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // const Point invalidExposurePoint = Point(3, -1); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // - // camera.proxy = getProxyForExposureAndFocus(); - // - // expect(() => camera.setExposurePoint(cameraId, invalidExposurePoint), - // throwsA(isA())); - // }); - // - // test( - // 'setExposurePoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 9; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = mockCameraInfo; - // - // camera.proxy = getProxyForExposureAndFocus(); - // - // // Verify current auto-exposure metering point is removed if previously set. - // double exposurePointX = 0.8; - // double exposurePointY = 0.1; - // Point exposurePoint = Point(exposurePointX, exposurePointY); - // final (MeteringPoint, int?) autofocusMeteringPointInfo = ( - // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAf - // ); - // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - // ( - // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAe - // ), - // autofocusMeteringPointInfo - // ]; - // - // camera.currentFocusMeteringAction = - // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - // - // await camera.setExposurePoint(cameraId, exposurePoint); - // - // VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(2)); - // expect( - // capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); - // expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); - // expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); - // expect( - // capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); - // - // // Verify exposure point is set when no auto-exposure metering point - // // previously set, but an auto-focus point metering point has been. - // exposurePointX = 0.2; - // exposurePointY = 0.9; - // exposurePoint = Point(exposurePointX, exposurePointY); - // meteringPointInfos = <(MeteringPoint, int?)>[autofocusMeteringPointInfo]; - // - // camera.currentFocusMeteringAction = - // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - // - // await camera.setExposurePoint(cameraId, exposurePoint); - // - // verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // capturedAction = verificationResult.captured.single as FocusMeteringAction; - // capturedMeteringPointInfos = capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(2)); - // expect( - // capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); - // expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); - // expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); - // expect( - // capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); - // }); - // - // test( - // 'setExposurePoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 19; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // const double exposurePointX = 0.8; - // const double exposurePointY = 0.1; - // const Point exposurePoint = - // Point(exposurePointX, exposurePointY); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // camera.currentFocusMeteringAction = null; - // - // camera.proxy = getProxyForExposureAndFocus(); - // - // await camera.setExposurePoint(cameraId, exposurePoint); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(1)); - // expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); - // expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); - // expect(capturedMeteringPointInfos.first.$2, - // equals(FocusMeteringAction.flagAe)); - // }); - // - // test( - // 'setExposurePoint disables auto-cancel for focus and metering as expected', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 2; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final FocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // const Point exposurePoint = Point(0.1, 0.2); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, MockCamera2CameraControl()); - // - // // Make setting focus and metering action successful for test. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(true)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Test not disabling auto cancel. - // await camera.setFocusMode(cameraId, FocusMode.auto); - // clearInteractions(mockCameraControl); - // await camera.setExposurePoint(cameraId, exposurePoint); - // VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isFalse); - // - // clearInteractions(mockCameraControl); - // - // // Test disabling auto cancel. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // clearInteractions(mockCameraControl); - // await camera.setExposurePoint(cameraId, exposurePoint); - // verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // capturedAction = verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isTrue); - // }); - // - // test( - // 'setExposureOffset throws exception if exposure compensation not supported', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 6; - // const double offset = 2; - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final ExposureState exposureState = ExposureState.detached( - // exposureCompensationRange: - // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - // exposureCompensationStep: 0); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // - // when(mockCameraInfo.getExposureState()) - // .thenAnswer((_) async => exposureState); - // - // expect(() => camera.setExposureOffset(cameraId, offset), - // throwsA(isA())); - // }); - // - // test( - // 'setExposureOffset throws exception if exposure compensation could not be set for unknown reason', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 11; - // const double offset = 3; - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final CameraControl mockCameraControl = MockCameraControl(); - // final ExposureState exposureState = ExposureState.detached( - // exposureCompensationRange: - // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - // exposureCompensationStep: 0.2); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // camera.cameraControl = mockCameraControl; - // - // when(mockCameraInfo.getExposureState()) - // .thenAnswer((_) async => exposureState); - // when(mockCameraControl.setExposureCompensationIndex(15)).thenThrow( - // PlatformException( - // code: 'TEST_ERROR', - // message: - // 'This is a test error message indicating exposure offset could not be set.')); - // - // expect(() => camera.setExposureOffset(cameraId, offset), - // throwsA(isA())); - // }); - // - // test( - // 'setExposureOffset throws exception if exposure compensation could not be set due to camera being closed or newer value being set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 21; - // const double offset = 5; - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final CameraControl mockCameraControl = MockCameraControl(); - // final ExposureState exposureState = ExposureState.detached( - // exposureCompensationRange: - // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - // exposureCompensationStep: 0.1); - // final int expectedExposureCompensationIndex = - // (offset / exposureState.exposureCompensationStep).round(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // camera.cameraControl = mockCameraControl; - // - // when(mockCameraInfo.getExposureState()) - // .thenAnswer((_) async => exposureState); - // when(mockCameraControl - // .setExposureCompensationIndex(expectedExposureCompensationIndex)) - // .thenAnswer((_) async => Future.value()); - // - // expect(() => camera.setExposureOffset(cameraId, offset), - // throwsA(isA())); - // }); - // - // test( - // 'setExposureOffset behaves as expected to successful attempt to set exposure compensation index', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 11; - // const double offset = 3; - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final CameraControl mockCameraControl = MockCameraControl(); - // final ExposureState exposureState = ExposureState.detached( - // exposureCompensationRange: - // ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - // exposureCompensationStep: 0.2); - // final int expectedExposureCompensationIndex = - // (offset / exposureState.exposureCompensationStep).round(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = mockCameraInfo; - // camera.cameraControl = mockCameraControl; - // - // when(mockCameraInfo.getExposureState()) - // .thenAnswer((_) async => exposureState); - // when(mockCameraControl - // .setExposureCompensationIndex(expectedExposureCompensationIndex)) - // .thenAnswer((_) async => Future.value( - // (expectedExposureCompensationIndex * - // exposureState.exposureCompensationStep) - // .round())); - // - // // Exposure index * exposure offset step size = exposure offset, i.e. - // // 15 * 0.2 = 3. - // expect(await camera.setExposureOffset(cameraId, offset), equals(3)); - // }); - // - // test('setFocusPoint clears current auto-exposure metering point as expected', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 93; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = mockCameraInfo; - // - // camera.proxy = getProxyForExposureAndFocus(); - // - // // Verify nothing happens if no current focus and metering action has been - // // enabled. - // await camera.setFocusPoint(cameraId, null); - // verifyNever(mockCameraControl.startFocusAndMetering(any)); - // verifyNever(mockCameraControl.cancelFocusAndMetering()); - // - // // Verify current auto-exposure metering point is removed if previously set. - // final (MeteringPoint, int?) autoexposureMeteringPointInfo = ( - // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAe - // ); - // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - // ( - // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAf - // ), - // autoexposureMeteringPointInfo - // ]; - // - // camera.currentFocusMeteringAction = - // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - // - // await camera.setFocusPoint(cameraId, null); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(1)); - // expect(capturedMeteringPointInfos.first, - // equals(autoexposureMeteringPointInfo)); - // - // // Verify current focus and metering action is cleared if only previously - // // set metering point was for auto-exposure. - // meteringPointInfos = <(MeteringPoint, int?)>[ - // ( - // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAf - // ) - // ]; - // camera.currentFocusMeteringAction = - // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - // - // await camera.setFocusPoint(cameraId, null); - // - // verify(mockCameraControl.cancelFocusAndMetering()); - // }); - // - // test('setFocusPoint throws CameraException if invalid point specified', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 23; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // const Point invalidFocusPoint = Point(-3, 1); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // - // camera.proxy = getProxyForExposureAndFocus(); - // - // expect(() => camera.setFocusPoint(cameraId, invalidFocusPoint), - // throwsA(isA())); - // }); - // - // test( - // 'setFocusPoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 9; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = mockCameraInfo; - // - // camera.proxy = getProxyForExposureAndFocus(); - // - // // Verify current auto-exposure metering point is removed if previously set. - // double focusPointX = 0.8; - // double focusPointY = 0.1; - // Point exposurePoint = Point(focusPointX, focusPointY); - // final (MeteringPoint, int?) autoExposureMeteringPointInfo = ( - // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAe - // ); - // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - // ( - // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAf - // ), - // autoExposureMeteringPointInfo - // ]; - // - // camera.currentFocusMeteringAction = - // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - // - // await camera.setFocusPoint(cameraId, exposurePoint); - // - // VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(2)); - // expect(capturedMeteringPointInfos.first, - // equals(autoExposureMeteringPointInfo)); - // expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); - // expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); - // expect( - // capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); - // - // // Verify exposure point is set when no auto-exposure metering point - // // previously set, but an auto-focus point metering point has been. - // focusPointX = 0.2; - // focusPointY = 0.9; - // exposurePoint = Point(focusPointX, focusPointY); - // meteringPointInfos = <(MeteringPoint, int?)>[autoExposureMeteringPointInfo]; - // - // camera.currentFocusMeteringAction = - // FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); - // - // await camera.setFocusPoint(cameraId, exposurePoint); - // - // verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // capturedAction = verificationResult.captured.single as FocusMeteringAction; - // capturedMeteringPointInfos = capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(2)); - // expect(capturedMeteringPointInfos.first, - // equals(autoExposureMeteringPointInfo)); - // expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); - // expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); - // expect( - // capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); - // }); - // - // test( - // 'setFocusPoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 19; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // const double focusPointX = 0.8; - // const double focusPointY = 0.1; - // const Point exposurePoint = Point(focusPointX, focusPointY); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // camera.currentFocusMeteringAction = null; - // - // camera.proxy = getProxyForExposureAndFocus(); - // - // await camera.setFocusPoint(cameraId, exposurePoint); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(1)); - // expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); - // expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); - // expect(capturedMeteringPointInfos.first.$2, - // equals(FocusMeteringAction.flagAf)); - // }); - // - // test('setFocusPoint disables auto-cancel for focus and metering as expected', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 2; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockFocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // const Point exposurePoint = Point(0.1, 0.2); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, MockCamera2CameraControl()); - // - // // Make setting focus and metering action successful for test. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(true)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Test not disabling auto cancel. - // await camera.setFocusMode(cameraId, FocusMode.auto); - // clearInteractions(mockCameraControl); - // - // await camera.setFocusPoint(cameraId, exposurePoint); - // VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isFalse); - // - // clearInteractions(mockCameraControl); - // - // // Test disabling auto cancel. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // clearInteractions(mockCameraControl); - // - // await camera.setFocusPoint(cameraId, exposurePoint); - // verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // capturedAction = verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isTrue); - // }); - // - // test( - // 'setFocusMode does nothing if setting auto-focus mode and is already using auto-focus mode', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 4; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockFocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, MockCamera2CameraControl()); - // - // // Make setting focus and metering action successful for test. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(true)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Set locked focus mode and then try to re-set it. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // clearInteractions(mockCameraControl); - // - // await camera.setFocusMode(cameraId, FocusMode.locked); - // verifyNoMoreInteractions(mockCameraControl); - // }); - // - // test( - // 'setFocusMode does nothing if setting locked focus mode and is already using locked focus mode', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 4; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // - // // Camera uses auto-focus by default, so try setting auto mode again. - // await camera.setFocusMode(cameraId, FocusMode.auto); - // - // verifyNoMoreInteractions(mockCameraControl); - // }); - // - // test( - // 'setFocusMode removes default auto-focus point if previously set and setting auto-focus mode', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 5; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockFocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // final MockCamera2CameraControl mockCamera2CameraControl = - // MockCamera2CameraControl(); - // const double exposurePointX = 0.2; - // const double exposurePointY = 0.7; - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = MockCameraInfo(); - // camera.cameraControl = mockCameraControl; - // - // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - // .thenAnswer((_) async => Future.value()); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, mockCamera2CameraControl); - // - // // Make setting focus and metering action successful for test. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(true)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Set exposure points. - // await camera.setExposurePoint( - // cameraId, const Point(exposurePointX, exposurePointY)); - // - // // Lock focus default focus point. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // - // clearInteractions(mockCameraControl); - // - // // Test removal of default focus point. - // await camera.setFocusMode(cameraId, FocusMode.auto); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isFalse); - // - // // We expect only the previously set exposure point to be re-set. - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(1)); - // expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); - // expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); - // expect(capturedMeteringPointInfos.first.$1.size, isNull); - // expect(capturedMeteringPointInfos.first.$2, - // equals(FocusMeteringAction.flagAe)); - // }); - // - // test( - // 'setFocusMode cancels focus and metering if only focus point previously set is a focus point', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 5; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final FocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // final MockCamera2CameraControl mockCamera2CameraControl = - // MockCamera2CameraControl(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = MockCameraInfo(); - // camera.cameraControl = mockCameraControl; - // - // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - // .thenAnswer((_) async => Future.value()); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, mockCamera2CameraControl); - // - // // Make setting focus and metering action successful for test. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(true)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Lock focus default focus point. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // - // // Test removal of default focus point. - // await camera.setFocusMode(cameraId, FocusMode.auto); - // - // verify(mockCameraControl.cancelFocusAndMetering()); - // }); - // - // test( - // 'setFocusMode re-focuses on previously set auto-focus point with auto-canceled enabled if setting auto-focus mode', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 6; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final FocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // final MockCamera2CameraControl mockCamera2CameraControl = - // MockCamera2CameraControl(); - // const double focusPointX = 0.1; - // const double focusPointY = 0.2; - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = MockCameraInfo(); - // camera.cameraControl = mockCameraControl; - // - // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - // .thenAnswer((_) async => Future.value()); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, mockCamera2CameraControl); - // - // // Make setting focus and metering action successful for test. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(true)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Lock a focus point. - // await camera.setFocusPoint( - // cameraId, const Point(focusPointX, focusPointY)); - // await camera.setFocusMode(cameraId, FocusMode.locked); - // - // clearInteractions(mockCameraControl); - // - // // Test re-focusing on previously set auto-focus point with auto-cancel enabled. - // await camera.setFocusMode(cameraId, FocusMode.auto); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isFalse); - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(1)); - // expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); - // expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); - // expect(capturedMeteringPointInfos.first.$1.size, isNull); - // expect(capturedMeteringPointInfos.first.$2, - // equals(FocusMeteringAction.flagAf)); - // }); - // - // test( - // 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 7; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCamera2CameraControl mockCamera2CameraControl = - // MockCamera2CameraControl(); - // const double focusPointX = 0.88; - // const double focusPointY = 0.33; - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = MockCameraInfo(); - // camera.cameraControl = mockCameraControl; - // - // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - // .thenAnswer((_) async => Future.value()); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, mockCamera2CameraControl); - // - // // Set a focus point. - // await camera.setFocusPoint( - // cameraId, const Point(focusPointX, focusPointY)); - // clearInteractions(mockCameraControl); - // - // // Lock focus point. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isTrue); - // - // // We expect the set focus point to be locked. - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(1)); - // expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); - // expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); - // expect(capturedMeteringPointInfos.first.$1.size, isNull); - // expect(capturedMeteringPointInfos.first.$2, - // equals(FocusMeteringAction.flagAf)); - // }); - // - // test( - // 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point amongst others', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 8; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCamera2CameraControl mockCamera2CameraControl = - // MockCamera2CameraControl(); - // const double focusPointX = 0.38; - // const double focusPointY = 0.38; - // const double exposurePointX = 0.54; - // const double exposurePointY = 0.45; - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = MockCameraInfo(); - // camera.cameraControl = mockCameraControl; - // - // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - // .thenAnswer((_) async => Future.value()); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, mockCamera2CameraControl); - // - // // Set focus and exposure points. - // await camera.setFocusPoint( - // cameraId, const Point(focusPointX, focusPointY)); - // await camera.setExposurePoint( - // cameraId, const Point(exposurePointX, exposurePointY)); - // clearInteractions(mockCameraControl); - // - // // Lock focus point. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isTrue); - // - // // We expect two MeteringPoints, the set focus point and the set exposure - // // point. - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(2)); - // - // final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos - // .where(((MeteringPoint, int?) meteringPointInfo) => - // meteringPointInfo.$2 == FocusMeteringAction.flagAf) - // .toList(); - // expect(focusPoints.length, equals(1)); - // expect(focusPoints.first.$1.x, equals(focusPointX)); - // expect(focusPoints.first.$1.y, equals(focusPointY)); - // expect(focusPoints.first.$1.size, isNull); - // - // final List<(MeteringPoint, int?)> exposurePoints = - // capturedMeteringPointInfos - // .where(((MeteringPoint, int?) meteringPointInfo) => - // meteringPointInfo.$2 == FocusMeteringAction.flagAe) - // .toList(); - // expect(exposurePoints.length, equals(1)); - // expect(exposurePoints.first.$1.x, equals(exposurePointX)); - // expect(exposurePoints.first.$1.y, equals(exposurePointY)); - // expect(exposurePoints.first.$1.size, isNull); - // }); - // - // test( - // 'setFocusMode starts expected focus and metering action if setting locked focus mode and current focus and metering action does not contain an auto-focus point', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 9; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCamera2CameraControl mockCamera2CameraControl = - // MockCamera2CameraControl(); - // const double exposurePointX = 0.8; - // const double exposurePointY = 0.3; - // const double defaultFocusPointX = 0.5; - // const double defaultFocusPointY = 0.5; - // const double defaultFocusPointSize = 1; - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = MockCameraInfo(); - // camera.cameraControl = mockCameraControl; - // - // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - // .thenAnswer((_) async => Future.value()); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, mockCamera2CameraControl); - // - // // Set an exposure point (creates a current focus and metering action - // // without a focus point). - // await camera.setExposurePoint( - // cameraId, const Point(exposurePointX, exposurePointY)); - // clearInteractions(mockCameraControl); - // - // // Lock focus point. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isTrue); - // - // // We expect two MeteringPoints, the default focus point and the set - // //exposure point. - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(2)); - // - // final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos - // .where(((MeteringPoint, int?) meteringPointInfo) => - // meteringPointInfo.$2 == FocusMeteringAction.flagAf) - // .toList(); - // expect(focusPoints.length, equals(1)); - // expect(focusPoints.first.$1.x, equals(defaultFocusPointX)); - // expect(focusPoints.first.$1.y, equals(defaultFocusPointY)); - // expect(focusPoints.first.$1.size, equals(defaultFocusPointSize)); - // - // final List<(MeteringPoint, int?)> exposurePoints = - // capturedMeteringPointInfos - // .where(((MeteringPoint, int?) meteringPointInfo) => - // meteringPointInfo.$2 == FocusMeteringAction.flagAe) - // .toList(); - // expect(exposurePoints.length, equals(1)); - // expect(exposurePoints.first.$1.x, equals(exposurePointX)); - // expect(exposurePoints.first.$1.y, equals(exposurePointY)); - // expect(exposurePoints.first.$1.size, isNull); - // }); - // - // test( - // 'setFocusMode starts expected focus and metering action if there is no current focus and metering action', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 10; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockCamera2CameraControl mockCamera2CameraControl = - // MockCamera2CameraControl(); - // const double defaultFocusPointX = 0.5; - // const double defaultFocusPointY = 0.5; - // const double defaultFocusPointSize = 1; - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = MockCameraInfo(); - // camera.cameraControl = mockCameraControl; - // - // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - // .thenAnswer((_) async => Future.value()); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, mockCamera2CameraControl); - // - // // Lock focus point. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isTrue); - // - // // We expect only the default focus point to be set. - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(1)); - // expect(capturedMeteringPointInfos.first.$1.x, equals(defaultFocusPointX)); - // expect(capturedMeteringPointInfos.first.$1.y, equals(defaultFocusPointY)); - // expect(capturedMeteringPointInfos.first.$1.size, - // equals(defaultFocusPointSize)); - // expect(capturedMeteringPointInfos.first.$2, - // equals(FocusMeteringAction.flagAf)); - // }); - // - // test( - // 'setFocusMode re-sets exposure mode if setting locked focus mode while using auto exposure mode', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 11; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final FocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // final MockCamera2CameraControl mockCamera2CameraControl = - // MockCamera2CameraControl(); - // - // // Set directly for test versus calling createCamera. - // camera.cameraInfo = MockCameraInfo(); - // camera.cameraControl = mockCameraControl; - // - // when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - // .thenAnswer((_) async => Future.value()); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, mockCamera2CameraControl); - // - // // Make setting focus and metering action successful for test. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(true)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Set auto exposure mode. - // await camera.setExposureMode(cameraId, ExposureMode.auto); - // clearInteractions(mockCamera2CameraControl); - // - // // Lock focus point. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // - // final VerificationResult verificationResult = - // verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); - // final CaptureRequestOptions capturedCaptureRequestOptions = - // verificationResult.captured.single as CaptureRequestOptions; - // final List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = - // capturedCaptureRequestOptions.requestedOptions; - // expect(requestedOptions.length, equals(1)); - // expect(requestedOptions.first.$1, - // equals(CaptureRequestKeySupportedType.controlAeLock)); - // expect(requestedOptions.first.$2, equals(false)); - // }); - // - // test( - // 'setFocusPoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 22; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockFocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // const Point focusPoint = Point(0.21, 0.21); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, MockCamera2CameraControl()); - // - // // Make setting focus and metering action successful to set locked focus - // // mode. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(true)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Set exposure point to later mock failed call to set an exposure point ( - // // otherwise, focus and metering will be canceled altogether, which is - // //considered a successful call). - // await camera.setExposurePoint(cameraId, const Point(0.3, 0.4)); - // - // // Set locked focus mode so we can set auto mode (cannot set auto mode - // // directly since it is the default). - // await camera.setFocusMode(cameraId, FocusMode.locked); - // clearInteractions(mockCameraControl); - // - // // Make setting focus and metering action fail to test that auto-cancel is - // // still disabled. - // reset(mockFocusMeteringResult); - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(false)); - // - // // Test disabling auto cancel. - // await camera.setFocusMode(cameraId, FocusMode.auto); - // clearInteractions(mockCameraControl); - // - // await camera.setFocusPoint(cameraId, focusPoint); - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isTrue); - // }); - // - // test( - // 'setExposurePoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 342; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockFocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // const Point exposurePoint = Point(0.23, 0.32); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, MockCamera2CameraControl()); - // - // // Make setting focus and metering action successful to set locked focus - // // mode. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(true)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Set exposure point to later mock failed call to set an exposure point ( - // // otherwise, focus and metering will be canceled altogether, which is - // //considered a successful call). - // await camera.setExposurePoint(cameraId, const Point(0.4, 0.3)); - // - // // Set locked focus mode so we can set auto mode (cannot set auto mode - // // directly since it is the default). - // await camera.setFocusMode(cameraId, FocusMode.locked); - // clearInteractions(mockCameraControl); - // - // // Make setting focus and metering action fail to test that auto-cancel is - // // still disabled. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(false)); - // - // // Test disabling auto cancel. - // await camera.setFocusMode(cameraId, FocusMode.auto); - // clearInteractions(mockCameraControl); - // - // await camera.setExposurePoint(cameraId, exposurePoint); - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isTrue); - // }); - // - // test( - // 'setFocusPoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 232; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockFocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // const Point focusPoint = Point(0.221, 0.211); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, MockCamera2CameraControl()); - // - // // Make setting focus and metering action fail to test auto-cancel is not - // // disabled. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(false)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Set exposure point to later mock failed call to set an exposure point. - // await camera.setExposurePoint(cameraId, const Point(0.43, 0.34)); - // - // // Test failing to set locked focus mode. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // clearInteractions(mockCameraControl); - // - // await camera.setFocusPoint(cameraId, focusPoint); - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isFalse); - // }); - // - // test( - // 'setExposurePoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 323; - // final MockCameraControl mockCameraControl = MockCameraControl(); - // final MockFocusMeteringResult mockFocusMeteringResult = - // MockFocusMeteringResult(); - // const Point exposurePoint = Point(0.223, 0.332); - // - // // Set directly for test versus calling createCamera. - // camera.cameraControl = mockCameraControl; - // camera.cameraInfo = MockCameraInfo(); - // - // camera.proxy = getProxyForSettingFocusandExposurePoints( - // mockCameraControl, MockCamera2CameraControl()); - // - // // Make setting focus and metering action fail to test auto-cancel is not - // // disabled. - // when(mockFocusMeteringResult.isFocusSuccessful()) - // .thenAnswer((_) async => Future.value(false)); - // when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - // Future.value(mockFocusMeteringResult)); - // - // // Set exposure point to later mock failed call to set an exposure point. - // await camera.setExposurePoint(cameraId, const Point(0.5, 0.2)); - // - // // Test failing to set locked focus mode. - // await camera.setFocusMode(cameraId, FocusMode.locked); - // clearInteractions(mockCameraControl); - // - // await camera.setExposurePoint(cameraId, exposurePoint); - // final VerificationResult verificationResult = - // verify(mockCameraControl.startFocusAndMetering(captureAny)); - // final FocusMeteringAction capturedAction = - // verificationResult.captured.single as FocusMeteringAction; - // expect(capturedAction.disableAutoCancel, isFalse); - // }); - // - // test( - // 'onStreamedFrameAvailable binds ImageAnalysis use case when not already bound', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // const int cameraId = 22; - // final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - // final MockProcessCameraProvider mockProcessCameraProvider = - // MockProcessCameraProvider(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // - // // Set directly for test versus calling createCamera. - // camera.imageAnalysis = mockImageAnalysis; - // camera.processCameraProvider = mockProcessCameraProvider; - // camera.cameraSelector = MockCameraSelector(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create a detached analyzer for testing purposes. - // camera.proxy = CameraXProxy( - // createAnalyzer: (_) => MockAnalyzer(), - // createCameraStateObserver: (_) => MockObserver(), - // ); - // - // when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - // .thenAnswer((_) async => false); - // when(mockProcessCameraProvider.bindToLifecycle( - // any, [mockImageAnalysis])).thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // - // final StreamSubscription imageStreamSubscription = camera - // .onStreamedFrameAvailable(cameraId) - // .listen((CameraImageData data) {}); - // - // await untilCalled(mockImageAnalysis.setAnalyzer(any)); - // verify(mockProcessCameraProvider - // .bindToLifecycle(camera.cameraSelector, [mockImageAnalysis])); - // - // await imageStreamSubscription.cancel(); - // }); - // - // test( - // 'startVideoCapturing unbinds ImageAnalysis use case when camera device is not at least level 3, no image streaming callback is specified, and preview is not paused', - // () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockRecording mockRecording = MockRecording(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.cameraSelector = MockCameraSelector(); - // camera.cameraInfo = MockCameraInfo(); - // camera.imageAnalysis = MockImageAnalysis(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached Observer when camera info updated. - // camera.proxy = CameraXProxy( - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // getCamera2CameraInfo: (CameraInfo cameraInfo) => - // Future.value(mockCamera2CameraInfo)); - // - // const int cameraId = 7; - // const String outputPath = '/temp/REC123.temp'; - // - // // Mock method calls. - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => false); - // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - // .thenAnswer((_) async => true); - // when(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()) - // .thenAnswer((_) => Future.value(mockCameraInfo)); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - // .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevelFull); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // - // verify( - // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - // }); - // - // test( - // 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback not specified, camera device is level 3, and preview is not paused', - // () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockRecording mockRecording = MockRecording(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.cameraSelector = MockCameraSelector(); - // camera.cameraInfo = MockCameraInfo(); - // camera.imageAnalysis = MockImageAnalysis(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached Observer when camera info updated. - // camera.proxy = CameraXProxy( - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // getCamera2CameraInfo: (CameraInfo cameraInfo) => - // Future.value(mockCamera2CameraInfo)); - // - // const int cameraId = 77; - // const String outputPath = '/temp/REC123.temp'; - // - // // Mock method calls. - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => false); - // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - // .thenAnswer((_) async => true); - // when(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()) - // .thenAnswer((_) => Future.value(mockCameraInfo)); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - // .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // - // verify( - // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - // }); - // - // test( - // 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback is specified, camera device is not at least level 3, and preview is not paused', - // () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockRecording mockRecording = MockRecording(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.cameraSelector = MockCameraSelector(); - // camera.cameraInfo = MockCameraInfo(); - // camera.imageAnalysis = MockImageAnalysis(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached Observer when camera info updated. - // camera.proxy = CameraXProxy( - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // getCamera2CameraInfo: (CameraInfo cameraInfo) => - // Future.value(mockCamera2CameraInfo)); - // - // const int cameraId = 87; - // const String outputPath = '/temp/REC123.temp'; - // - // // Mock method calls. - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => false); - // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - // .thenAnswer((_) async => true); - // when(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()) - // .thenAnswer((_) => Future.value(mockCameraInfo)); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - // (_) async => CameraMetadata.infoSupportedHardwareLevelExternal); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // await camera.startVideoCapturing(VideoCaptureOptions(cameraId, - // streamCallback: (CameraImageData image) {})); - // verify( - // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - // }); - // - // test( - // 'startVideoCapturing unbinds ImageCapture use case when image streaming callback is specified, camera device is at least level 3, and preview is not paused', - // () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockRecording mockRecording = MockRecording(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.cameraSelector = MockCameraSelector(); - // camera.cameraInfo = MockCameraInfo(); - // camera.imageAnalysis = MockImageAnalysis(); - // camera.imageCapture = MockImageCapture(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached Observer when camera info updated. - // camera.proxy = CameraXProxy( - // createAnalyzer: - // (Future Function(ImageProxy imageProxy) analyze) => - // Analyzer.detached(analyze: analyze), - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // getCamera2CameraInfo: (CameraInfo cameraInfo) => - // Future.value(mockCamera2CameraInfo)); - // - // const int cameraId = 107; - // const String outputPath = '/temp/REC123.temp'; - // - // // Mock method calls. - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => false); - // when(camera.processCameraProvider!.isBound(camera.imageCapture!)) - // .thenAnswer((_) async => true); - // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - // .thenAnswer((_) async => true); - // when(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()) - // .thenAnswer((_) => Future.value(mockCameraInfo)); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - // .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // await camera.startVideoCapturing(VideoCaptureOptions(cameraId, - // streamCallback: (CameraImageData image) {})); - // verify( - // camera.processCameraProvider!.unbind([camera.imageCapture!])); - // }); - // - // test( - // 'startVideoCapturing does not unbind ImageCapture or ImageAnalysis use cases when preview is paused', - // () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockRecording mockRecording = MockRecording(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.cameraSelector = MockCameraSelector(); - // camera.cameraInfo = MockCameraInfo(); - // camera.imageAnalysis = MockImageAnalysis(); - // camera.imageCapture = MockImageCapture(); - // camera.preview = MockPreview(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached Observer when camera info updated. - // camera.proxy = CameraXProxy( - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // getCamera2CameraInfo: (CameraInfo cameraInfo) => - // Future.value(mockCamera2CameraInfo)); - // - // const int cameraId = 97; - // const String outputPath = '/temp/REC123.temp'; - // - // // Mock method calls. - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => false); - // when(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()) - // .thenAnswer((_) => Future.value(mockCameraInfo)); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // - // await camera.pausePreview(cameraId); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // - // verifyNever( - // camera.processCameraProvider!.unbind([camera.imageCapture!])); - // verifyNever( - // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - // }); - // - // test( - // 'startVideoCapturing unbinds ImageCapture and ImageAnalysis use cases when running on a legacy hardware device', - // () async { - // // Set up mocks and constants. - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // final MockPendingRecording mockPendingRecording = MockPendingRecording(); - // final MockRecording mockRecording = MockRecording(); - // final MockCamera mockCamera = MockCamera(); - // final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - // final TestSystemServicesHostApi mockSystemServicesApi = - // MockTestSystemServicesHostApi(); - // TestSystemServicesHostApi.setup(mockSystemServicesApi); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.cameraSelector = MockCameraSelector(); - // camera.cameraInfo = MockCameraInfo(); - // camera.imageAnalysis = MockImageAnalysis(); - // camera.imageCapture = MockImageCapture(); - // camera.preview = MockPreview(); - // - // // Ignore setting target rotation for this test; tested seprately. - // camera.captureOrientationLocked = true; - // - // // Tell plugin to create detached Observer when camera info updated. - // camera.proxy = CameraXProxy( - // createCameraStateObserver: (void Function(Object) onChanged) => - // Observer.detached(onChanged: onChanged), - // getCamera2CameraInfo: (CameraInfo cameraInfo) => - // Future.value(mockCamera2CameraInfo)); - // - // const int cameraId = 44; - // const String outputPath = '/temp/REC123.temp'; - // - // // Mock method calls. - // when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - // .thenReturn(outputPath); - // when(camera.recorder!.prepareRecording(outputPath)) - // .thenAnswer((_) async => mockPendingRecording); - // when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); - // when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - // .thenAnswer((_) async => false); - // when(camera.processCameraProvider!.isBound(camera.imageCapture!)) - // .thenAnswer((_) async => true); - // when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - // .thenAnswer((_) async => true); - // when(camera.processCameraProvider!.bindToLifecycle( - // camera.cameraSelector!, [camera.videoCapture!])) - // .thenAnswer((_) async => mockCamera); - // when(mockCamera.getCameraInfo()) - // .thenAnswer((_) => Future.value(mockCameraInfo)); - // when(mockCameraInfo.getCameraState()) - // .thenAnswer((_) async => MockLiveCameraState()); - // when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - // (_) async => CameraMetadata.infoSupportedHardwareLevelLegacy); - // - // // Simulate video recording being started so startVideoRecording completes. - // PendingRecording.videoRecordingEventStreamController - // .add(VideoRecordEvent.start); - // - // await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // - // verify( - // camera.processCameraProvider!.unbind([camera.imageCapture!])); - // verify( - // camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - // }); - // - // test( - // 'prepareForVideoRecording does not make any calls involving starting video recording', - // () async { - // final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // - // // Set directly for test versus calling createCamera. - // camera.processCameraProvider = MockProcessCameraProvider(); - // camera.recorder = MockRecorder(); - // camera.videoCapture = MockVideoCapture(); - // camera.camera = MockCamera(); - // - // await camera.prepareForVideoRecording(); - // verifyNoMoreInteractions(camera.processCameraProvider); - // verifyNoMoreInteractions(camera.recorder); - // verifyNoMoreInteractions(camera.videoCapture); - // verifyNoMoreInteractions(camera.camera); - // }); +/* + test( + 'createCamera properly sets filter for resolution preset for non-video capture use cases', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.front; + const int testSensorOrientation = 180; + const CameraDescription testCameraDescription = CameraDescription( + name: 'cameraName', + lensDirection: testLensDirection, + sensorOrientation: testSensorOrientation); + const bool enableAudio = true; + final MockCamera mockCamera = MockCamera(); + + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + camera.proxy = + getProxyForTestingResolutionPreset(mockProcessCameraProvider); + + when(mockProcessCameraProvider.bindToLifecycle(any, any)) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + camera.processCameraProvider = mockProcessCameraProvider; + + // Test non-null resolution presets. + for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + await camera.createCamera(testCameraDescription, resolutionPreset, + enableAudio: enableAudio); + + Size? expectedPreferredResolution; + switch (resolutionPreset) { + case ResolutionPreset.low: + expectedPreferredResolution = const Size(320, 240); + case ResolutionPreset.medium: + expectedPreferredResolution = const Size(720, 480); + case ResolutionPreset.high: + expectedPreferredResolution = const Size(1280, 720); + case ResolutionPreset.veryHigh: + expectedPreferredResolution = const Size(1920, 1080); + case ResolutionPreset.ultraHigh: + expectedPreferredResolution = const Size(3840, 2160); + case ResolutionPreset.max: + expectedPreferredResolution = null; + } + + if (expectedPreferredResolution == null) { + expect(camera.preview!.resolutionSelector!.resolutionFilter, isNull); + expect( + camera.imageCapture!.resolutionSelector!.resolutionFilter, isNull); + expect( + camera.imageAnalysis!.resolutionSelector!.resolutionFilter, isNull); + continue; + } + + expect( + camera.preview!.resolutionSelector!.resolutionFilter! + .preferredResolution, + equals(expectedPreferredResolution)); + expect( + camera + .imageCapture!.resolutionSelector!.resolutionStrategy!.boundSize, + equals(expectedPreferredResolution)); + expect( + camera + .imageAnalysis!.resolutionSelector!.resolutionStrategy!.boundSize, + equals(expectedPreferredResolution)); + } + + // Test null case. + await camera.createCamera(testCameraDescription, null); + expect(camera.preview!.resolutionSelector, isNull); + expect(camera.imageCapture!.resolutionSelector, isNull); + expect(camera.imageAnalysis!.resolutionSelector, isNull); + }); + + test( + 'createCamera properly sets aspect ratio based on preset resolution for non-video capture use cases', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( + name: 'cameraName', + lensDirection: testLensDirection, + sensorOrientation: testSensorOrientation); + const bool enableAudio = true; + final MockCamera mockCamera = MockCamera(); + + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + camera.proxy = + getProxyForTestingResolutionPreset(mockProcessCameraProvider); + when(mockProcessCameraProvider.bindToLifecycle(any, any)) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + camera.processCameraProvider = mockProcessCameraProvider; + + // Test non-null resolution presets. + for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + await camera.createCamera(testCameraDescription, resolutionPreset, + enableAudio: enableAudio); + + int? expectedAspectRatio; + AspectRatioStrategy? expectedAspectRatioStrategy; + switch (resolutionPreset) { + case ResolutionPreset.low: + expectedAspectRatio = AspectRatio.ratio4To3; + case ResolutionPreset.high: + case ResolutionPreset.veryHigh: + case ResolutionPreset.ultraHigh: + expectedAspectRatio = AspectRatio.ratio16To9; + case ResolutionPreset.medium: + // Medium resolution preset uses aspect ratio 3:2 which is unsupported + // by CameraX. + case ResolutionPreset.max: + expectedAspectRatioStrategy = null; + } + + expectedAspectRatioStrategy = expectedAspectRatio == null + ? null + : AspectRatioStrategy.detached( + preferredAspectRatio: expectedAspectRatio, + fallbackRule: AspectRatioStrategy.fallbackRuleAuto); + + if (expectedAspectRatio == null) { + expect(camera.preview!.resolutionSelector!.aspectRatioStrategy, isNull); + expect(camera.imageCapture!.resolutionSelector!.aspectRatioStrategy, + isNull); + expect(camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy, + isNull); + continue; + } + + // Check aspect ratio. + expect( + camera.preview!.resolutionSelector!.aspectRatioStrategy! + .preferredAspectRatio, + equals(expectedAspectRatioStrategy!.preferredAspectRatio)); + expect( + camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! + .preferredAspectRatio, + equals(expectedAspectRatioStrategy.preferredAspectRatio)); + expect( + camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! + .preferredAspectRatio, + equals(expectedAspectRatioStrategy.preferredAspectRatio)); + + // Check fallback rule. + expect( + camera.preview!.resolutionSelector!.aspectRatioStrategy!.fallbackRule, + equals(expectedAspectRatioStrategy.fallbackRule)); + expect( + camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! + .fallbackRule, + equals(expectedAspectRatioStrategy.fallbackRule)); + expect( + camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! + .fallbackRule, + equals(expectedAspectRatioStrategy.fallbackRule)); + } + + // Test null case. + await camera.createCamera(testCameraDescription, null); + expect(camera.preview!.resolutionSelector, isNull); + expect(camera.imageCapture!.resolutionSelector, isNull); + expect(camera.imageAnalysis!.resolutionSelector, isNull); + }); + + test( + 'createCamera properly sets preset resolution for video capture use case', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( + name: 'cameraName', + lensDirection: testLensDirection, + sensorOrientation: testSensorOrientation); + const bool enableAudio = true; + final MockCamera mockCamera = MockCamera(); + + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + camera.proxy = + getProxyForTestingResolutionPreset(mockProcessCameraProvider); + + when(mockProcessCameraProvider.bindToLifecycle(any, any)) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + + // Test non-null resolution presets. + for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + await camera.createCamera(testCameraDescription, resolutionPreset, + enableAudio: enableAudio); + + VideoQuality? expectedVideoQuality; + switch (resolutionPreset) { + case ResolutionPreset.low: + // 240p is not supported by CameraX. + case ResolutionPreset.medium: + expectedVideoQuality = VideoQuality.SD; + case ResolutionPreset.high: + expectedVideoQuality = VideoQuality.HD; + case ResolutionPreset.veryHigh: + expectedVideoQuality = VideoQuality.FHD; + case ResolutionPreset.ultraHigh: + expectedVideoQuality = VideoQuality.UHD; + case ResolutionPreset.max: + expectedVideoQuality = VideoQuality.highest; + } + + const VideoResolutionFallbackRule expectedFallbackRule = + VideoResolutionFallbackRule.lowerQualityOrHigherThan; + final FallbackStrategy expectedFallbackStrategy = + FallbackStrategy.detached( + quality: expectedVideoQuality, + fallbackRule: expectedFallbackRule); + + expect(camera.recorder!.qualitySelector!.qualityList.length, equals(1)); + expect(camera.recorder!.qualitySelector!.qualityList.first.quality, + equals(expectedVideoQuality)); + expect(camera.recorder!.qualitySelector!.fallbackStrategy!.quality, + equals(expectedFallbackStrategy.quality)); + expect(camera.recorder!.qualitySelector!.fallbackStrategy!.fallbackRule, + equals(expectedFallbackStrategy.fallbackRule)); + } + + // Test null case. + await camera.createCamera(testCameraDescription, null); + expect(camera.recorder!.qualitySelector, isNull); + }); + + test( + 'createCamera sets sensor and device orientations needed to correct preview rotation as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 270; + const CameraDescription testCameraDescription = CameraDescription( + name: 'cameraName', + lensDirection: testLensDirection, + sensorOrientation: testSensorOrientation); + const bool enableAudio = true; + const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; + const DeviceOrientation testUiOrientation = DeviceOrientation.portraitDown; + + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockCamera mockCamera = MockCamera(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // The proxy needed for this test is the same as testing resolution + // presets except for mocking the retrievall of the sensor and current + // UI orientation. + camera.proxy = + getProxyForTestingResolutionPreset(mockProcessCameraProvider); + camera.proxy.getSensorOrientation = + (_) async => Future.value(testSensorOrientation); + camera.proxy.getUiOrientation = + () async => Future.value(testUiOrientation); + + when(mockProcessCameraProvider.bindToLifecycle(any, any)) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + + await camera.createCamera(testCameraDescription, testResolutionPreset, + enableAudio: enableAudio); + + expect(camera.sensorOrientation, testSensorOrientation); + }); + + test( + 'initializeCamera throws a CameraException when createCamera has not been called before initializedCamera', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + await expectLater(() async { + await camera.initializeCamera(3); + }, throwsA(isA())); + }); + + test('initializeCamera sends expected CameraInitializedEvent', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + + const int cameraId = 10; + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( + name: 'cameraName', + lensDirection: testLensDirection, + sensorOrientation: testSensorOrientation); + const int resolutionWidth = 350; + const int resolutionHeight = 750; + final Camera mockCamera = MockCamera(); + final ResolutionInfo testResolutionInfo = + ResolutionInfo(width: resolutionWidth, height: resolutionHeight); + + // Mocks for (typically attached) objects created by createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final CameraInfo mockCameraInfo = MockCameraInfo(); + final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); + final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); + final MockPreview mockPreview = MockPreview(); + final MockImageCapture mockImageCapture = MockImageCapture(); + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + camera.proxy = CameraXProxy( + getProcessCameraProvider: () => + Future.value(mockProcessCameraProvider), + createCameraSelector: (int cameraSelectorLensDirection) { + switch (cameraSelectorLensDirection) { + case CameraSelector.lensFacingFront: + return mockFrontCameraSelector; + case CameraSelector.lensFacingBack: + default: + return mockBackCameraSelector; + } + }, + createPreview: (_, __) => mockPreview, + createImageCapture: (_, __) => mockImageCapture, + createRecorder: (QualitySelector? qualitySelector) => MockRecorder(), + createVideoCapture: (_) => Future.value(MockVideoCapture()), + createImageAnalysis: (_, __) => mockImageAnalysis, + createResolutionStrategy: ( + {bool highestAvailable = false, + Size? boundSize, + int? fallbackRule}) => + MockResolutionStrategy(), + createResolutionSelector: (_, __, ___) => MockResolutionSelector(), + createFallbackStrategy: ( + {required VideoQuality quality, + required VideoResolutionFallbackRule fallbackRule}) => + MockFallbackStrategy(), + createQualitySelector: ( + {required VideoQuality videoQuality, + required FallbackStrategy fallbackStrategy}) => + MockQualitySelector(), + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + requestCameraPermissions: (_) => Future.value(), + startListeningForDeviceOrientationChange: (_, __) {}, + createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), + createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), + getCamera2CameraInfo: (_) => + Future.value(MockCamera2CameraInfo()), + getUiOrientation: () => + Future.value(DeviceOrientation.portraitUp), + ); + + final CameraInitializedEvent testCameraInitializedEvent = + CameraInitializedEvent( + cameraId, + resolutionWidth.toDouble(), + resolutionHeight.toDouble(), + ExposureMode.auto, + true, + FocusMode.auto, + true); + + // Call createCamera. + when(mockPreview.setSurfaceProvider()).thenAnswer((_) async => cameraId); + + when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, + [mockPreview, mockImageCapture, mockImageAnalysis])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(mockPreview.getResolutionInfo()) + .thenAnswer((_) async => testResolutionInfo); + + await camera.createCameraWithSettings( + testCameraDescription, + const MediaSettings( + resolutionPreset: ResolutionPreset.medium, + fps: 15, + videoBitrate: 200000, + audioBitrate: 32000, + enableAudio: true, + ), + ); + + // Start listening to camera events stream to verify the proper CameraInitializedEvent is sent. + camera.cameraEventStreamController.stream.listen((CameraEvent event) { + expect(event, const TypeMatcher()); + expect(event, equals(testCameraInitializedEvent)); + }); + + await camera.initializeCamera(cameraId); + + // Check camera instance was received. + expect(camera.camera, isNotNull); + }); + + test( + 'dispose releases Flutter surface texture, removes camera state observers, and unbinds all use cases', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + + camera.preview = MockPreview(); + camera.processCameraProvider = MockProcessCameraProvider(); + camera.liveCameraState = MockLiveCameraState(); + camera.imageAnalysis = MockImageAnalysis(); + + await camera.dispose(3); + + verify(camera.preview!.releaseFlutterSurfaceTexture()); + verify(camera.liveCameraState!.removeObservers()); + verify(camera.processCameraProvider!.unbindAll()); + verify(camera.imageAnalysis!.clearAnalyzer()); + }); + + test('onCameraInitialized stream emits CameraInitializedEvents', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 16; + final Stream eventStream = + camera.onCameraInitialized(cameraId); + final StreamQueue streamQueue = + StreamQueue(eventStream); + const CameraInitializedEvent testEvent = CameraInitializedEvent( + cameraId, 320, 80, ExposureMode.auto, false, FocusMode.auto, false); + + camera.cameraEventStreamController.add(testEvent); + + expect(await streamQueue.next, testEvent); + await streamQueue.cancel(); + }); + + test( + 'onCameraClosing stream emits camera closing event when cameraEventStreamController emits a camera closing event', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 99; + const CameraClosingEvent cameraClosingEvent = CameraClosingEvent(cameraId); + final Stream eventStream = + camera.onCameraClosing(cameraId); + final StreamQueue streamQueue = + StreamQueue(eventStream); + + camera.cameraEventStreamController.add(cameraClosingEvent); + + expect(await streamQueue.next, equals(cameraClosingEvent)); + await streamQueue.cancel(); + }); + + test( + 'onCameraError stream emits errors caught by system services or added to stream within plugin', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 27; + const String firstTestErrorDescription = 'Test error description 1!'; + const String secondTestErrorDescription = 'Test error description 2!'; + const CameraErrorEvent secondCameraErrorEvent = + CameraErrorEvent(cameraId, secondTestErrorDescription); + final Stream eventStream = camera.onCameraError(cameraId); + final StreamQueue streamQueue = + StreamQueue(eventStream); + + SystemServices.cameraErrorStreamController.add(firstTestErrorDescription); + expect(await streamQueue.next, + equals(const CameraErrorEvent(cameraId, firstTestErrorDescription))); + + camera.cameraEventStreamController.add(secondCameraErrorEvent); + expect(await streamQueue.next, equals(secondCameraErrorEvent)); + + await streamQueue.cancel(); + }); + + test( + 'onDeviceOrientationChanged stream emits changes in device orientation detected by system services', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final Stream eventStream = + camera.onDeviceOrientationChanged(); + final StreamQueue streamQueue = + StreamQueue(eventStream); + const DeviceOrientationChangedEvent testEvent = + DeviceOrientationChangedEvent(DeviceOrientation.portraitDown); + + DeviceOrientationManager.deviceOrientationChangedStreamController + .add(testEvent); + + expect(await streamQueue.next, testEvent); + await streamQueue.cancel(); + }); + + test( + 'pausePreview unbinds preview from lifecycle when preview is nonnull and has been bound to lifecycle', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.preview = MockPreview(); + + when(camera.processCameraProvider!.isBound(camera.preview!)) + .thenAnswer((_) async => true); + + await camera.pausePreview(579); + + verify(camera.processCameraProvider!.unbind([camera.preview!])); + }); + + test( + 'pausePreview does not unbind preview from lifecycle when preview has not been bound to lifecycle', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.preview = MockPreview(); + + await camera.pausePreview(632); + + verifyNever( + camera.processCameraProvider!.unbind([camera.preview!])); + }); + + test( + 'resumePreview does not bind preview to lifecycle or update camera state observers if already bound', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.preview = MockPreview(); + + when(camera.processCameraProvider!.isBound(camera.preview!)) + .thenAnswer((_) async => true); + + when(mockProcessCameraProvider + .bindToLifecycle(camera.cameraSelector, [camera.preview!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => mockLiveCameraState); + + await camera.resumePreview(78); + + verifyNever(camera.processCameraProvider! + .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); + verifyNever(mockLiveCameraState.observe(any)); + expect(camera.cameraInfo, isNot(mockCameraInfo)); + }); + + test( + 'resumePreview binds preview to lifecycle and updates camera state observers if not already bound', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.preview = MockPreview(); + + // Tell plugin to create a detached Observer, that is created to + // track camera state once preview is bound to the lifecycle and needed to + // test for expected updates. + camera.proxy = CameraXProxy( + createCameraStateObserver: + (void Function(Object stateAsObject) onChanged) => + Observer.detached(onChanged: onChanged)); + + when(mockProcessCameraProvider + .bindToLifecycle(camera.cameraSelector, [camera.preview!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => mockLiveCameraState); + when(mockCamera.getCameraControl()) + .thenAnswer((_) async => mockCameraControl); + + await camera.resumePreview(78); + + verify(camera.processCameraProvider! + .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); + expect( + await testCameraClosingObserver( + camera, + 78, + verify(mockLiveCameraState.observe(captureAny)).captured.single + as Observer), + isTrue); + expect(camera.cameraInfo, equals(mockCameraInfo)); + expect(camera.cameraControl, equals(mockCameraControl)); + }); + + test( + 'buildPreview throws an exception if the preview is not bound to the lifecycle', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 73; + + // Tell camera that createCamera has not been called and thus, preview has + // not been bound to the lifecycle of the camera. + camera.previewInitiallyBound = false; + + expect( + () => camera.buildPreview(cameraId), throwsA(isA())); + }); + + test( + 'buildPreview returns a Texture once the preview is bound to the lifecycle if it is backed by a SurfaceTexture', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 37; + + // Tell camera that createCamera has been called and thus, preview has been + // bound to the lifecycle of the camera. + camera.previewInitiallyBound = true; + + final Widget widget = camera.buildPreview(cameraId); + + expect(widget is Texture, isTrue); + expect((widget as Texture).textureId, cameraId); + }); + + group('video recording', () { + test( + 'startVideoCapturing binds video capture use case, updates saved camera instance and its properties, and starts the recording', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCamera newMockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + final MockLiveCameraState newMockLiveCameraState = MockLiveCameraState(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.camera = mockCamera; + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.liveCameraState = mockLiveCameraState; + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + camera.proxy = CameraXProxy( + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + getCamera2CameraInfo: (CameraInfo cameraInfo) => + Future.value(mockCamera2CameraInfo)); + + const int cameraId = 17; + const String outputPath = '/temp/REC123.temp'; + + // Mock method calls. + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => false); + when(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])) + .thenAnswer((_) async => newMockCamera); + when(newMockCamera.getCameraInfo()) + .thenAnswer((_) async => mockCameraInfo); + when(newMockCamera.getCameraControl()) + .thenAnswer((_) async => mockCameraControl); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => newMockLiveCameraState); + when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( + (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + + // Verify VideoCapture UseCase is bound and camera & its properties + // are updated. + verify(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])); + expect(camera.camera, equals(newMockCamera)); + expect(camera.cameraInfo, equals(mockCameraInfo)); + expect(camera.cameraControl, equals(mockCameraControl)); + verify(mockLiveCameraState.removeObservers()); + expect( + await testCameraClosingObserver( + camera, + cameraId, + verify(newMockLiveCameraState.observe(captureAny)).captured.single + as Observer), + isTrue); + + // Verify recording is started. + expect(camera.pendingRecording, equals(mockPendingRecording)); + expect(camera.recording, mockRecording); + }); + + test( + 'startVideoCapturing binds video capture use case and starts the recording' + ' on first call, and does nothing on second call', () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + camera.proxy = CameraXProxy( + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + getCamera2CameraInfo: (CameraInfo cameraInfo) => + Future.value(mockCamera2CameraInfo)); + + const int cameraId = 17; + const String outputPath = '/temp/REC123.temp'; + + // Mock method calls. + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => false); + when(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()) + .thenAnswer((_) => Future.value(mockCameraInfo)); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( + (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + + verify(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])); + expect(camera.pendingRecording, equals(mockPendingRecording)); + expect(camera.recording, mockRecording); + + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // Verify that each of these calls happened only once. + verify(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .called(1); + verifyNoMoreInteractions(mockSystemServicesApi); + verify(camera.recorder!.prepareRecording(outputPath)).called(1); + verifyNoMoreInteractions(camera.recorder); + verify(mockPendingRecording.start()).called(1); + verifyNoMoreInteractions(mockPendingRecording); + }); + + test( + 'startVideoCapturing called with stream options starts image streaming', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final Recorder mockRecorder = MockRecorder(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockCameraInfo initialCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Set directly for test versus calling createCamera. + + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.videoCapture = MockVideoCapture(); + camera.imageAnalysis = MockImageAnalysis(); + camera.camera = MockCamera(); + camera.recorder = mockRecorder; + camera.cameraInfo = initialCameraInfo; + camera.imageCapture = MockImageCapture(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Analyzer for testing. + camera.proxy = CameraXProxy( + createAnalyzer: + (Future Function(ImageProxy imageProxy) analyze) => + Analyzer.detached(analyze: analyze), + getCamera2CameraInfo: (CameraInfo cameraInfo) async => + cameraInfo == initialCameraInfo + ? mockCamera2CameraInfo + : MockCamera2CameraInfo()); + + const int cameraId = 17; + const String outputPath = '/temp/REC123.temp'; + final Completer imageDataCompleter = + Completer(); + final VideoCaptureOptions videoCaptureOptions = VideoCaptureOptions( + cameraId, + streamCallback: (CameraImageData imageData) => + imageDataCompleter.complete(imageData)); + + // Mock method calls. + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => true); + when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + .thenAnswer((_) async => true); + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockProcessCameraProvider.bindToLifecycle(any, any)) + .thenAnswer((_) => Future.value(camera.camera)); + when(camera.camera!.getCameraInfo()) + .thenAnswer((_) => Future.value(MockCameraInfo())); + when(mockCamera2CameraInfo.getSupportedHardwareLevel()) + .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + await camera.startVideoCapturing(videoCaptureOptions); + + final CameraImageData mockCameraImageData = MockCameraImageData(); + camera.cameraImageDataStreamController!.add(mockCameraImageData); + + expect(imageDataCompleter.future, isNotNull); + await camera.cameraImageDataStreamController!.close(); + }); + + test( + 'startVideoCapturing sets VideoCapture target rotation to current video orientation if orientation unlocked', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockVideoCapture mockVideoCapture = MockVideoCapture(); + final MockCameraInfo initialCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + const int defaultTargetRotation = Surface.rotation270; + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.camera = MockCamera(); + camera.recorder = MockRecorder(); + camera.videoCapture = mockVideoCapture; + camera.cameraSelector = MockCameraSelector(); + camera.imageAnalysis = MockImageAnalysis(); + camera.cameraInfo = initialCameraInfo; + + // Tell plugin to mock call to get current video orientation and mock Camera2CameraInfo retrieval. + camera.proxy = CameraXProxy( + getDefaultDisplayRotation: () => + Future.value(defaultTargetRotation), + getCamera2CameraInfo: (CameraInfo cameraInfo) async => + cameraInfo == initialCameraInfo + ? mockCamera2CameraInfo + : MockCamera2CameraInfo()); + + const int cameraId = 87; + const String outputPath = '/temp/REC123.temp'; + + // Mock method calls. + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => true); + when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + .thenAnswer((_) async => false); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + // Orientation is unlocked and plugin does not need to set default target + // rotation manually. + camera.recording = null; + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + verifyNever(mockVideoCapture.setTargetRotation(any)); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + // Orientation is locked and plugin does not need to set default target + // rotation manually. + camera.recording = null; + camera.captureOrientationLocked = true; + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + verifyNever(mockVideoCapture.setTargetRotation(any)); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + // Orientation is locked and plugin does need to set default target + // rotation manually. + camera.recording = null; + camera.captureOrientationLocked = true; + camera.shouldSetDefaultRotation = true; + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + verifyNever(mockVideoCapture.setTargetRotation(any)); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + // Orientation is unlocked and plugin does need to set default target + // rotation manually. + camera.recording = null; + camera.captureOrientationLocked = false; + camera.shouldSetDefaultRotation = true; + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + verify(mockVideoCapture.setTargetRotation(defaultTargetRotation)); + }); + + test('pauseVideoRecording pauses the recording', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording recording = MockRecording(); + + // Set directly for test versus calling startVideoCapturing. + camera.recording = recording; + + await camera.pauseVideoRecording(0); + verify(recording.pause()); + verifyNoMoreInteractions(recording); + }); + + test('resumeVideoRecording resumes the recording', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording recording = MockRecording(); + + // Set directly for test versus calling startVideoCapturing. + camera.recording = recording; + + await camera.resumeVideoRecording(0); + verify(recording.resume()); + verifyNoMoreInteractions(recording); + }); + + test('stopVideoRecording stops the recording', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording recording = MockRecording(); + final MockProcessCameraProvider processCameraProvider = + MockProcessCameraProvider(); + final MockVideoCapture videoCapture = MockVideoCapture(); + const String videoOutputPath = '/test/output/path'; + + // Set directly for test versus calling createCamera and startVideoCapturing. + camera.processCameraProvider = processCameraProvider; + camera.recording = recording; + camera.videoCapture = videoCapture; + camera.videoOutputPath = videoOutputPath; + + // Tell plugin that videoCapture use case was bound to start recording. + when(camera.processCameraProvider!.isBound(videoCapture)) + .thenAnswer((_) async => true); + + // Simulate video recording being finalized so stopVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.finalize); + + final XFile file = await camera.stopVideoRecording(0); + expect(file.path, videoOutputPath); + + // Verify that recording stops. + verify(recording.close()); + verifyNoMoreInteractions(recording); + }); + + test( + 'stopVideoRecording throws a camera exception if ' + 'no recording is in progress', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const String videoOutputPath = '/test/output/path'; + + // Set directly for test versus calling startVideoCapturing. + camera.recording = null; + camera.videoOutputPath = videoOutputPath; + + await expectLater(() async { + await camera.stopVideoRecording(0); + }, throwsA(isA())); + }); + + test( + 'stopVideoRecording throws a camera exception if ' + 'videoOutputPath is null, and sets recording to null', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording mockRecording = MockRecording(); + final MockVideoCapture mockVideoCapture = MockVideoCapture(); + + // Set directly for test versus calling startVideoCapturing. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recording = mockRecording; + camera.videoOutputPath = null; + camera.videoCapture = mockVideoCapture; + + // Tell plugin that videoCapture use case was bound to start recording. + when(camera.processCameraProvider!.isBound(mockVideoCapture)) + .thenAnswer((_) async => true); + + await expectLater(() async { + // Simulate video recording being finalized so stopVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.finalize); + await camera.stopVideoRecording(0); + }, throwsA(isA())); + expect(camera.recording, null); + }); + + test( + 'calling stopVideoRecording twice stops the recording ' + 'and then throws a CameraException', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording recording = MockRecording(); + final MockProcessCameraProvider processCameraProvider = + MockProcessCameraProvider(); + final MockVideoCapture videoCapture = MockVideoCapture(); + const String videoOutputPath = '/test/output/path'; + + // Set directly for test versus calling createCamera and startVideoCapturing. + camera.processCameraProvider = processCameraProvider; + camera.recording = recording; + camera.videoCapture = videoCapture; + camera.videoOutputPath = videoOutputPath; + + // Simulate video recording being finalized so stopVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.finalize); + + final XFile file = await camera.stopVideoRecording(0); + expect(file.path, videoOutputPath); + + await expectLater(() async { + await camera.stopVideoRecording(0); + }, throwsA(isA())); + }); + + test( + 'VideoCapture use case is unbound from lifecycle when video recording stops', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording recording = MockRecording(); + final MockProcessCameraProvider processCameraProvider = + MockProcessCameraProvider(); + final MockVideoCapture videoCapture = MockVideoCapture(); + const String videoOutputPath = '/test/output/path'; + + // Set directly for test versus calling createCamera and startVideoCapturing. + camera.processCameraProvider = processCameraProvider; + camera.recording = recording; + camera.videoCapture = videoCapture; + camera.videoOutputPath = videoOutputPath; + + // Tell plugin that videoCapture use case was bound to start recording. + when(camera.processCameraProvider!.isBound(videoCapture)) + .thenAnswer((_) async => true); + + // Simulate video recording being finalized so stopVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.finalize); + + await camera.stopVideoRecording(90); + verify(processCameraProvider.unbind([videoCapture])); + + // Verify that recording stops. + verify(recording.close()); + verifyNoMoreInteractions(recording); + }); + + test( + 'setDescriptionWhileRecording does not make any calls involving starting video recording', + () async { + // TODO(camsim99): Modify test when implemented, see https://github.com/flutter/flutter/issues/148013. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.camera = MockCamera(); + + await camera.setDescriptionWhileRecording(const CameraDescription( + name: 'fakeCameraName', + lensDirection: CameraLensDirection.back, + sensorOrientation: 90)); + verifyNoMoreInteractions(camera.processCameraProvider); + verifyNoMoreInteractions(camera.recorder); + verifyNoMoreInteractions(camera.videoCapture); + verifyNoMoreInteractions(camera.camera); + }); + }); + + test( + 'takePicture binds ImageCapture to lifecycle and makes call to take a picture', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + const String testPicturePath = 'test/absolute/path/to/picture'; + + // Set directly for test versus calling createCamera. + camera.imageCapture = MockImageCapture(); + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached camera state observers. + camera.proxy = CameraXProxy( + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged)); + + when(mockProcessCameraProvider.isBound(camera.imageCapture)) + .thenAnswer((_) async => false); + when(mockProcessCameraProvider.bindToLifecycle( + camera.cameraSelector, [camera.imageCapture!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(camera.imageCapture!.takePicture()) + .thenAnswer((_) async => testPicturePath); + + final XFile imageFile = await camera.takePicture(3); + + expect(imageFile.path, equals(testPicturePath)); + }); + + test( + 'takePicture sets ImageCapture target rotation to currrent photo rotation when orientation unlocked', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockImageCapture mockImageCapture = MockImageCapture(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + + const int cameraId = 3; + const int defaultTargetRotation = Surface.rotation180; + + // Set directly for test versus calling createCamera. + camera.imageCapture = mockImageCapture; + camera.processCameraProvider = mockProcessCameraProvider; + + // Tell plugin to mock call to get current photo orientation. + camera.proxy = CameraXProxy( + getDefaultDisplayRotation: () => + Future.value(defaultTargetRotation)); + + when(mockProcessCameraProvider.isBound(camera.imageCapture)) + .thenAnswer((_) async => true); + when(camera.imageCapture!.takePicture()) + .thenAnswer((_) async => 'test/absolute/path/to/picture'); + + // Orientation is unlocked and plugin does not need to set default target + // rotation manually. + await camera.takePicture(cameraId); + verifyNever(mockImageCapture.setTargetRotation(any)); + + // Orientation is locked and plugin does not need to set default target + // rotation manually. + camera.captureOrientationLocked = true; + await camera.takePicture(cameraId); + verifyNever(mockImageCapture.setTargetRotation(any)); + + // Orientation is locked and plugin does need to set default target + // rotation manually. + camera.captureOrientationLocked = true; + camera.shouldSetDefaultRotation = true; + await camera.takePicture(cameraId); + verifyNever(mockImageCapture.setTargetRotation(any)); + + // Orientation is unlocked and plugin does need to set default target + // rotation manually. + camera.captureOrientationLocked = false; + camera.shouldSetDefaultRotation = true; + await camera.takePicture(cameraId); + verify(mockImageCapture.setTargetRotation(defaultTargetRotation)); + }); + + test('takePicture turns non-torch flash mode off when torch mode enabled', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + const int cameraId = 77; + + // Set directly for test versus calling createCamera. + camera.imageCapture = MockImageCapture(); + camera.cameraControl = MockCameraControl(); + camera.processCameraProvider = mockProcessCameraProvider; + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + when(mockProcessCameraProvider.isBound(camera.imageCapture)) + .thenAnswer((_) async => true); + + await camera.setFlashMode(cameraId, FlashMode.torch); + await camera.takePicture(cameraId); + verify(camera.imageCapture!.setFlashMode(ImageCapture.flashModeOff)); + }); + + test( + 'setFlashMode configures ImageCapture with expected non-torch flash mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 22; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + + // Set directly for test versus calling createCamera. + camera.imageCapture = MockImageCapture(); + camera.cameraControl = mockCameraControl; + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + camera.processCameraProvider = mockProcessCameraProvider; + + when(mockProcessCameraProvider.isBound(camera.imageCapture)) + .thenAnswer((_) async => true); + + for (final FlashMode flashMode in FlashMode.values) { + await camera.setFlashMode(cameraId, flashMode); + + int? expectedFlashMode; + switch (flashMode) { + case FlashMode.off: + expectedFlashMode = ImageCapture.flashModeOff; + case FlashMode.auto: + expectedFlashMode = ImageCapture.flashModeAuto; + case FlashMode.always: + expectedFlashMode = ImageCapture.flashModeOn; + case FlashMode.torch: + expectedFlashMode = null; + } + + if (expectedFlashMode == null) { + // Torch mode enabled and won't be used for configuring image capture. + continue; + } + + verifyNever(mockCameraControl.enableTorch(true)); + expect(camera.torchEnabled, isFalse); + await camera.takePicture(cameraId); + verify(camera.imageCapture!.setFlashMode(expectedFlashMode)); + } + }); + + test('setFlashMode turns on torch mode as expected', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 44; + final MockCameraControl mockCameraControl = MockCameraControl(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + + await camera.setFlashMode(cameraId, FlashMode.torch); + + verify(mockCameraControl.enableTorch(true)); + expect(camera.torchEnabled, isTrue); + }); + + test('setFlashMode turns off torch mode when non-torch flash modes set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 33; + final MockCameraControl mockCameraControl = MockCameraControl(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + + for (final FlashMode flashMode in FlashMode.values) { + camera.torchEnabled = true; + await camera.setFlashMode(cameraId, flashMode); + + switch (flashMode) { + case FlashMode.off: + case FlashMode.auto: + case FlashMode.always: + verify(mockCameraControl.enableTorch(false)); + expect(camera.torchEnabled, isFalse); + case FlashMode.torch: + verifyNever(mockCameraControl.enableTorch(true)); + expect(camera.torchEnabled, true); + } + } + }); + + test('getMinExposureOffset returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final ExposureState exposureState = ExposureState.detached( + exposureCompensationRange: + ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + exposureCompensationStep: 0.2); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + + when(mockCameraInfo.getExposureState()) + .thenAnswer((_) async => exposureState); + + // We expect the minimum exposure to be the minimum exposure compensation * exposure compensation step. + // Delta is included due to avoid catching rounding errors. + expect(await camera.getMinExposureOffset(35), closeTo(0.6, 0.0000000001)); + }); + + test('getMaxExposureOffset returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final ExposureState exposureState = ExposureState.detached( + exposureCompensationRange: + ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + exposureCompensationStep: 0.2); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + + when(mockCameraInfo.getExposureState()) + .thenAnswer((_) async => exposureState); + + // We expect the maximum exposure to be the maximum exposure compensation * exposure compensation step. + expect(await camera.getMaxExposureOffset(35), 0.8); + }); + + test('getExposureOffsetStepSize returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final ExposureState exposureState = ExposureState.detached( + exposureCompensationRange: + ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + exposureCompensationStep: 0.2); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + + when(mockCameraInfo.getExposureState()) + .thenAnswer((_) async => exposureState); + + expect(await camera.getExposureOffsetStepSize(55), 0.2); + }); + + test( + 'getExposureOffsetStepSize returns -1 when exposure compensation not supported on device', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final ExposureState exposureState = ExposureState.detached( + exposureCompensationRange: + ExposureCompensationRange(minCompensation: 0, maxCompensation: 0), + exposureCompensationStep: 0); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + + when(mockCameraInfo.getExposureState()) + .thenAnswer((_) async => exposureState); + + expect(await camera.getExposureOffsetStepSize(55), -1); + }); + + test('getMaxZoomLevel returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + const double maxZoomRatio = 1; + final LiveData mockLiveZoomState = MockLiveZoomState(); + final ZoomState zoomState = + ZoomState.detached(maxZoomRatio: maxZoomRatio, minZoomRatio: 0); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + + when(mockCameraInfo.getZoomState()) + .thenAnswer((_) async => mockLiveZoomState); + when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); + + expect(await camera.getMaxZoomLevel(55), maxZoomRatio); + }); + + test('getMinZoomLevel returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + const double minZoomRatio = 0; + final LiveData mockLiveZoomState = MockLiveZoomState(); + final ZoomState zoomState = + ZoomState.detached(maxZoomRatio: 1, minZoomRatio: minZoomRatio); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + + when(mockCameraInfo.getZoomState()) + .thenAnswer((_) async => mockLiveZoomState); + when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); + + expect(await camera.getMinZoomLevel(55), minZoomRatio); + }); + + test('setZoomLevel sets zoom ratio as expected', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 44; + const double zoomRatio = 0.3; + final MockCameraControl mockCameraControl = MockCameraControl(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + + await camera.setZoomLevel(cameraId, zoomRatio); + + verify(mockCameraControl.setZoomRatio(zoomRatio)); + }); + + test( + 'onStreamedFrameAvailable emits CameraImageData when picked up from CameraImageData stream controller', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + const int cameraId = 22; + + // Tell plugin to create detached Analyzer for testing. + camera.proxy = CameraXProxy( + createAnalyzer: + (Future Function(ImageProxy imageProxy) analyze) => + Analyzer.detached(analyze: analyze)); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.imageAnalysis = MockImageAnalysis(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + when(mockProcessCameraProvider.bindToLifecycle(any, any)) + .thenAnswer((_) => Future.value(mockCamera)); + when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) + .thenAnswer((_) async => true); + when(mockCamera.getCameraInfo()) + .thenAnswer((_) => Future.value(mockCameraInfo)); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + + final CameraImageData mockCameraImageData = MockCameraImageData(); + final Stream imageStream = + camera.onStreamedFrameAvailable(cameraId); + final StreamQueue streamQueue = + StreamQueue(imageStream); + + camera.cameraImageDataStreamController!.add(mockCameraImageData); + + expect(await streamQueue.next, equals(mockCameraImageData)); + await streamQueue.cancel(); + }); + + test( + 'onStreamedFrameAvailable emits CameraImageData when listened to after cancelation', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + const int cameraId = 22; + + // Tell plugin to create detached Analyzer for testing. + camera.proxy = CameraXProxy( + createAnalyzer: + (Future Function(ImageProxy imageProxy) analyze) => + Analyzer.detached(analyze: analyze)); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.imageAnalysis = MockImageAnalysis(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) + .thenAnswer((_) async => true); + + final CameraImageData mockCameraImageData = MockCameraImageData(); + final Stream imageStream = + camera.onStreamedFrameAvailable(cameraId); + + // Listen to image stream. + final StreamSubscription imageStreamSubscription = + imageStream.listen((CameraImageData data) {}); + + // Cancel subscription to image stream. + await imageStreamSubscription.cancel(); + final Stream imageStream2 = + camera.onStreamedFrameAvailable(cameraId); + + // Listen to image stream again. + final StreamQueue streamQueue = + StreamQueue(imageStream2); + camera.cameraImageDataStreamController!.add(mockCameraImageData); + + expect(await streamQueue.next, equals(mockCameraImageData)); + await streamQueue.cancel(); + }); + + test( + 'onStreamedFrameAvailable returns stream that responds expectedly to being listened to', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 33; + final ProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final CameraSelector mockCameraSelector = MockCameraSelector(); + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final Camera mockCamera = MockCamera(); + final CameraInfo mockCameraInfo = MockCameraInfo(); + final MockImageProxy mockImageProxy = MockImageProxy(); + final MockPlaneProxy mockPlane = MockPlaneProxy(); + final List mockPlanes = [mockPlane]; + final Uint8List buffer = Uint8List(0); + const int pixelStride = 27; + const int rowStride = 58; + const int imageFormat = 582; + const int imageHeight = 100; + const int imageWidth = 200; + + // Tell plugin to create detached Analyzer for testing. + camera.proxy = CameraXProxy( + createAnalyzer: + (Future Function(ImageProxy imageProxy) analyze) => + Analyzer.detached(analyze: analyze), + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged)); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = mockCameraSelector; + camera.imageAnalysis = mockImageAnalysis; + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + when(mockProcessCameraProvider.isBound(mockImageAnalysis)) + .thenAnswer((_) async => false); + when(mockProcessCameraProvider + .bindToLifecycle(mockCameraSelector, [mockImageAnalysis])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(mockImageProxy.getPlanes()) + .thenAnswer((_) async => Future>.value(mockPlanes)); + when(mockPlane.buffer).thenReturn(buffer); + when(mockPlane.rowStride).thenReturn(rowStride); + when(mockPlane.pixelStride).thenReturn(pixelStride); + when(mockImageProxy.format).thenReturn(imageFormat); + when(mockImageProxy.height).thenReturn(imageHeight); + when(mockImageProxy.width).thenReturn(imageWidth); + + final Completer imageDataCompleter = + Completer(); + final StreamSubscription + onStreamedFrameAvailableSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData imageData) { + imageDataCompleter.complete(imageData); + }); + + // Test ImageAnalysis use case is bound to ProcessCameraProvider. + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + final Analyzer capturedAnalyzer = + verify(mockImageAnalysis.setAnalyzer(captureAny)).captured.single + as Analyzer; + + await capturedAnalyzer.analyze(mockImageProxy); + + final CameraImageData imageData = await imageDataCompleter.future; + + // Test Analyzer correctly process ImageProxy instances. + expect(imageData.planes.length, equals(1)); + expect(imageData.planes[0].bytes, equals(buffer)); + expect(imageData.planes[0].bytesPerRow, equals(rowStride)); + expect(imageData.planes[0].bytesPerPixel, equals(pixelStride)); + expect(imageData.format.raw, equals(imageFormat)); + expect(imageData.height, equals(imageHeight)); + expect(imageData.width, equals(imageWidth)); + + await onStreamedFrameAvailableSubscription.cancel(); + }); + + test( + 'onStreamedFrameAvailable returns stream that responds expectedly to being canceled', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 32; + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + + // Set directly for test versus calling createCamera. + camera.imageAnalysis = mockImageAnalysis; + camera.processCameraProvider = mockProcessCameraProvider; + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create a detached analyzer for testing purposes. + camera.proxy = CameraXProxy(createAnalyzer: (_) => MockAnalyzer()); + + when(mockProcessCameraProvider.isBound(mockImageAnalysis)) + .thenAnswer((_) async => true); + + final StreamSubscription imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + + await imageStreamSubscription.cancel(); + + verify(mockImageAnalysis.clearAnalyzer()); + }); + + test( + 'onStreamedFrameAvailable sets ImageAnalysis target rotation to current photo orientation when orientation unlocked', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 35; + const int defaultTargetRotation = Surface.rotation90; + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + + // Set directly for test versus calling createCamera. + camera.imageAnalysis = mockImageAnalysis; + camera.processCameraProvider = mockProcessCameraProvider; + + // Tell plugin to create a detached analyzer for testing purposes and mock + // call to get current photo orientation. + camera.proxy = CameraXProxy( + createAnalyzer: (_) => MockAnalyzer(), + getDefaultDisplayRotation: () => + Future.value(defaultTargetRotation)); + + when(mockProcessCameraProvider.isBound(mockImageAnalysis)) + .thenAnswer((_) async => true); + + // Orientation is unlocked and plugin does not need to set default target + // rotation manually. + StreamSubscription imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + verifyNever(mockImageAnalysis.setTargetRotation(any)); + await imageStreamSubscription.cancel(); + + // Orientation is locked and plugin does not need to set default target + // rotation manually. + camera.captureOrientationLocked = true; + imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + verifyNever(mockImageAnalysis.setTargetRotation(any)); + await imageStreamSubscription.cancel(); + + // Orientation is locked and plugin does need to set default target + // rotation manually. + camera.captureOrientationLocked = true; + camera.shouldSetDefaultRotation = true; + imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + verifyNever(mockImageAnalysis.setTargetRotation(any)); + await imageStreamSubscription.cancel(); + + // Orientation is unlocked and plugin does need to set default target + // rotation manually. + camera.captureOrientationLocked = false; + camera.shouldSetDefaultRotation = true; + imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + await untilCalled( + mockImageAnalysis.setTargetRotation(defaultTargetRotation)); + await imageStreamSubscription.cancel(); + }); + + test( + 'lockCaptureOrientation sets capture-related use case target rotations to correct orientation', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 44; + + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockImageCapture mockImageCapture = MockImageCapture(); + final MockVideoCapture mockVideoCapture = MockVideoCapture(); + + // Set directly for test versus calling createCamera. + camera.imageAnalysis = mockImageAnalysis; + camera.imageCapture = mockImageCapture; + camera.videoCapture = mockVideoCapture; + + for (final DeviceOrientation orientation in DeviceOrientation.values) { + int? expectedTargetRotation; + switch (orientation) { + case DeviceOrientation.portraitUp: + expectedTargetRotation = Surface.rotation0; + case DeviceOrientation.landscapeLeft: + expectedTargetRotation = Surface.rotation90; + case DeviceOrientation.portraitDown: + expectedTargetRotation = Surface.rotation180; + case DeviceOrientation.landscapeRight: + expectedTargetRotation = Surface.rotation270; + } + + await camera.lockCaptureOrientation(cameraId, orientation); + + verify(mockImageAnalysis.setTargetRotation(expectedTargetRotation)); + verify(mockImageCapture.setTargetRotation(expectedTargetRotation)); + verify(mockVideoCapture.setTargetRotation(expectedTargetRotation)); + expect(camera.captureOrientationLocked, isTrue); + expect(camera.shouldSetDefaultRotation, isTrue); + + // Reset flags for testing. + camera.captureOrientationLocked = false; + camera.shouldSetDefaultRotation = false; + } + }); + + test( + 'unlockCaptureOrientation sets capture-related use case target rotations to current photo/video orientation', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 57; + + camera.captureOrientationLocked = true; + await camera.unlockCaptureOrientation(cameraId); + expect(camera.captureOrientationLocked, isFalse); + }); + + test('setExposureMode sets expected controlAeLock value via Camera2 interop', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 78; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + + // Set directly for test versus calling createCamera. + camera.camera = MockCamera(); + camera.cameraControl = mockCameraControl; + + // Tell plugin to create detached Camera2CameraControl and + // CaptureRequestOptions instances for testing. + camera.proxy = CameraXProxy( + getCamera2CameraControl: (CameraControl cameraControl) => + cameraControl == mockCameraControl + ? mockCamera2CameraControl + : Camera2CameraControl.detached(cameraControl: cameraControl), + createCaptureRequestOptions: + (List<(CaptureRequestKeySupportedType, Object?)> options) => + CaptureRequestOptions.detached(requestedOptions: options), + ); + + // Test auto mode. + await camera.setExposureMode(cameraId, ExposureMode.auto); + + VerificationResult verificationResult = + verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); + CaptureRequestOptions capturedCaptureRequestOptions = + verificationResult.captured.single as CaptureRequestOptions; + List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = + capturedCaptureRequestOptions.requestedOptions; + expect(requestedOptions.length, equals(1)); + expect(requestedOptions.first.$1, + equals(CaptureRequestKeySupportedType.controlAeLock)); + expect(requestedOptions.first.$2, equals(false)); + + // Test locked mode. + clearInteractions(mockCamera2CameraControl); + await camera.setExposureMode(cameraId, ExposureMode.locked); + + verificationResult = + verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); + capturedCaptureRequestOptions = + verificationResult.captured.single as CaptureRequestOptions; + requestedOptions = capturedCaptureRequestOptions.requestedOptions; + expect(requestedOptions.length, equals(1)); + expect(requestedOptions.first.$1, + equals(CaptureRequestKeySupportedType.controlAeLock)); + expect(requestedOptions.first.$2, equals(true)); + }); + + test( + 'setExposurePoint clears current auto-exposure metering point as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 93; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = mockCameraInfo; + + camera.proxy = getProxyForExposureAndFocus(); + + // Verify nothing happens if no current focus and metering action has been + // enabled. + await camera.setExposurePoint(cameraId, null); + verifyNever(mockCameraControl.startFocusAndMetering(any)); + verifyNever(mockCameraControl.cancelFocusAndMetering()); + + // Verify current auto-exposure metering point is removed if previously set. + final (MeteringPoint, int?) autofocusMeteringPointInfo = ( + MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAf + ); + List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ + ( + MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAe + ), + autofocusMeteringPointInfo + ]; + + camera.currentFocusMeteringAction = + FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + + await camera.setExposurePoint(cameraId, null); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(1)); + expect( + capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); + + // Verify current focus and metering action is cleared if only previously + // set metering point was for auto-exposure. + meteringPointInfos = <(MeteringPoint, int?)>[ + ( + MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAe + ) + ]; + camera.currentFocusMeteringAction = + FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + + await camera.setExposurePoint(cameraId, null); + + verify(mockCameraControl.cancelFocusAndMetering()); + }); + + test('setExposurePoint throws CameraException if invalid point specified', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 23; + final MockCameraControl mockCameraControl = MockCameraControl(); + const Point invalidExposurePoint = Point(3, -1); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + + camera.proxy = getProxyForExposureAndFocus(); + + expect(() => camera.setExposurePoint(cameraId, invalidExposurePoint), + throwsA(isA())); + }); + + test( + 'setExposurePoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 9; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = mockCameraInfo; + + camera.proxy = getProxyForExposureAndFocus(); + + // Verify current auto-exposure metering point is removed if previously set. + double exposurePointX = 0.8; + double exposurePointY = 0.1; + Point exposurePoint = Point(exposurePointX, exposurePointY); + final (MeteringPoint, int?) autofocusMeteringPointInfo = ( + MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAf + ); + List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ + ( + MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAe + ), + autofocusMeteringPointInfo + ]; + + camera.currentFocusMeteringAction = + FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + + await camera.setExposurePoint(cameraId, exposurePoint); + + VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(2)); + expect( + capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); + expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); + expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); + expect( + capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); + + // Verify exposure point is set when no auto-exposure metering point + // previously set, but an auto-focus point metering point has been. + exposurePointX = 0.2; + exposurePointY = 0.9; + exposurePoint = Point(exposurePointX, exposurePointY); + meteringPointInfos = <(MeteringPoint, int?)>[autofocusMeteringPointInfo]; + + camera.currentFocusMeteringAction = + FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + + await camera.setExposurePoint(cameraId, exposurePoint); + + verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + capturedAction = verificationResult.captured.single as FocusMeteringAction; + capturedMeteringPointInfos = capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(2)); + expect( + capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); + expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); + expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); + expect( + capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); + }); + + test( + 'setExposurePoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 19; + final MockCameraControl mockCameraControl = MockCameraControl(); + const double exposurePointX = 0.8; + const double exposurePointY = 0.1; + const Point exposurePoint = + Point(exposurePointX, exposurePointY); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + camera.currentFocusMeteringAction = null; + + camera.proxy = getProxyForExposureAndFocus(); + + await camera.setExposurePoint(cameraId, exposurePoint); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(1)); + expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); + expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); + expect(capturedMeteringPointInfos.first.$2, + equals(FocusMeteringAction.flagAe)); + }); + + test( + 'setExposurePoint disables auto-cancel for focus and metering as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 2; + final MockCameraControl mockCameraControl = MockCameraControl(); + final FocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point exposurePoint = Point(0.1, 0.2); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, MockCamera2CameraControl()); + + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(true)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Test not disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.auto); + clearInteractions(mockCameraControl); + await camera.setExposurePoint(cameraId, exposurePoint); + VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isFalse); + + clearInteractions(mockCameraControl); + + // Test disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); + await camera.setExposurePoint(cameraId, exposurePoint); + verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + capturedAction = verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isTrue); + }); + + test( + 'setExposureOffset throws exception if exposure compensation not supported', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 6; + const double offset = 2; + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final ExposureState exposureState = ExposureState.detached( + exposureCompensationRange: + ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + exposureCompensationStep: 0); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + + when(mockCameraInfo.getExposureState()) + .thenAnswer((_) async => exposureState); + + expect(() => camera.setExposureOffset(cameraId, offset), + throwsA(isA())); + }); + + test( + 'setExposureOffset throws exception if exposure compensation could not be set for unknown reason', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 11; + const double offset = 3; + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final CameraControl mockCameraControl = MockCameraControl(); + final ExposureState exposureState = ExposureState.detached( + exposureCompensationRange: + ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + exposureCompensationStep: 0.2); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + camera.cameraControl = mockCameraControl; + + when(mockCameraInfo.getExposureState()) + .thenAnswer((_) async => exposureState); + when(mockCameraControl.setExposureCompensationIndex(15)).thenThrow( + PlatformException( + code: 'TEST_ERROR', + message: + 'This is a test error message indicating exposure offset could not be set.')); + + expect(() => camera.setExposureOffset(cameraId, offset), + throwsA(isA())); + }); + + test( + 'setExposureOffset throws exception if exposure compensation could not be set due to camera being closed or newer value being set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 21; + const double offset = 5; + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final CameraControl mockCameraControl = MockCameraControl(); + final ExposureState exposureState = ExposureState.detached( + exposureCompensationRange: + ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + exposureCompensationStep: 0.1); + final int expectedExposureCompensationIndex = + (offset / exposureState.exposureCompensationStep).round(); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + camera.cameraControl = mockCameraControl; + + when(mockCameraInfo.getExposureState()) + .thenAnswer((_) async => exposureState); + when(mockCameraControl + .setExposureCompensationIndex(expectedExposureCompensationIndex)) + .thenAnswer((_) async => Future.value()); + + expect(() => camera.setExposureOffset(cameraId, offset), + throwsA(isA())); + }); + + test( + 'setExposureOffset behaves as expected to successful attempt to set exposure compensation index', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 11; + const double offset = 3; + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final CameraControl mockCameraControl = MockCameraControl(); + final ExposureState exposureState = ExposureState.detached( + exposureCompensationRange: + ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), + exposureCompensationStep: 0.2); + final int expectedExposureCompensationIndex = + (offset / exposureState.exposureCompensationStep).round(); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + camera.cameraControl = mockCameraControl; + + when(mockCameraInfo.getExposureState()) + .thenAnswer((_) async => exposureState); + when(mockCameraControl + .setExposureCompensationIndex(expectedExposureCompensationIndex)) + .thenAnswer((_) async => Future.value( + (expectedExposureCompensationIndex * + exposureState.exposureCompensationStep) + .round())); + + // Exposure index * exposure offset step size = exposure offset, i.e. + // 15 * 0.2 = 3. + expect(await camera.setExposureOffset(cameraId, offset), equals(3)); + }); + + test('setFocusPoint clears current auto-exposure metering point as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 93; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = mockCameraInfo; + + camera.proxy = getProxyForExposureAndFocus(); + + // Verify nothing happens if no current focus and metering action has been + // enabled. + await camera.setFocusPoint(cameraId, null); + verifyNever(mockCameraControl.startFocusAndMetering(any)); + verifyNever(mockCameraControl.cancelFocusAndMetering()); + + // Verify current auto-exposure metering point is removed if previously set. + final (MeteringPoint, int?) autoexposureMeteringPointInfo = ( + MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAe + ); + List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ + ( + MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAf + ), + autoexposureMeteringPointInfo + ]; + + camera.currentFocusMeteringAction = + FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + + await camera.setFocusPoint(cameraId, null); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(1)); + expect(capturedMeteringPointInfos.first, + equals(autoexposureMeteringPointInfo)); + + // Verify current focus and metering action is cleared if only previously + // set metering point was for auto-exposure. + meteringPointInfos = <(MeteringPoint, int?)>[ + ( + MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAf + ) + ]; + camera.currentFocusMeteringAction = + FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + + await camera.setFocusPoint(cameraId, null); + + verify(mockCameraControl.cancelFocusAndMetering()); + }); + + test('setFocusPoint throws CameraException if invalid point specified', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 23; + final MockCameraControl mockCameraControl = MockCameraControl(); + const Point invalidFocusPoint = Point(-3, 1); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + + camera.proxy = getProxyForExposureAndFocus(); + + expect(() => camera.setFocusPoint(cameraId, invalidFocusPoint), + throwsA(isA())); + }); + + test( + 'setFocusPoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 9; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = mockCameraInfo; + + camera.proxy = getProxyForExposureAndFocus(); + + // Verify current auto-exposure metering point is removed if previously set. + double focusPointX = 0.8; + double focusPointY = 0.1; + Point exposurePoint = Point(focusPointX, focusPointY); + final (MeteringPoint, int?) autoExposureMeteringPointInfo = ( + MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAe + ); + List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ + ( + MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + FocusMeteringAction.flagAf + ), + autoExposureMeteringPointInfo + ]; + + camera.currentFocusMeteringAction = + FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + + await camera.setFocusPoint(cameraId, exposurePoint); + + VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(2)); + expect(capturedMeteringPointInfos.first, + equals(autoExposureMeteringPointInfo)); + expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); + expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); + expect( + capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); + + // Verify exposure point is set when no auto-exposure metering point + // previously set, but an auto-focus point metering point has been. + focusPointX = 0.2; + focusPointY = 0.9; + exposurePoint = Point(focusPointX, focusPointY); + meteringPointInfos = <(MeteringPoint, int?)>[autoExposureMeteringPointInfo]; + + camera.currentFocusMeteringAction = + FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + + await camera.setFocusPoint(cameraId, exposurePoint); + + verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + capturedAction = verificationResult.captured.single as FocusMeteringAction; + capturedMeteringPointInfos = capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(2)); + expect(capturedMeteringPointInfos.first, + equals(autoExposureMeteringPointInfo)); + expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); + expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); + expect( + capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); + }); + + test( + 'setFocusPoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 19; + final MockCameraControl mockCameraControl = MockCameraControl(); + const double focusPointX = 0.8; + const double focusPointY = 0.1; + const Point exposurePoint = Point(focusPointX, focusPointY); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + camera.currentFocusMeteringAction = null; + + camera.proxy = getProxyForExposureAndFocus(); + + await camera.setFocusPoint(cameraId, exposurePoint); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(1)); + expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); + expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); + expect(capturedMeteringPointInfos.first.$2, + equals(FocusMeteringAction.flagAf)); + }); + + test('setFocusPoint disables auto-cancel for focus and metering as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 2; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point exposurePoint = Point(0.1, 0.2); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, MockCamera2CameraControl()); + + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(true)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Test not disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.auto); + clearInteractions(mockCameraControl); + + await camera.setFocusPoint(cameraId, exposurePoint); + VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isFalse); + + clearInteractions(mockCameraControl); + + // Test disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); + + await camera.setFocusPoint(cameraId, exposurePoint); + verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + capturedAction = verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isTrue); + }); + + test( + 'setFocusMode does nothing if setting auto-focus mode and is already using auto-focus mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 4; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, MockCamera2CameraControl()); + + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(true)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Set locked focus mode and then try to re-set it. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); + + await camera.setFocusMode(cameraId, FocusMode.locked); + verifyNoMoreInteractions(mockCameraControl); + }); + + test( + 'setFocusMode does nothing if setting locked focus mode and is already using locked focus mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 4; + final MockCameraControl mockCameraControl = MockCameraControl(); + + // Camera uses auto-focus by default, so try setting auto mode again. + await camera.setFocusMode(cameraId, FocusMode.auto); + + verifyNoMoreInteractions(mockCameraControl); + }); + + test( + 'setFocusMode removes default auto-focus point if previously set and setting auto-focus mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 5; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double exposurePointX = 0.2; + const double exposurePointY = 0.7; + + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; + + when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + .thenAnswer((_) async => Future.value()); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, mockCamera2CameraControl); + + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(true)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Set exposure points. + await camera.setExposurePoint( + cameraId, const Point(exposurePointX, exposurePointY)); + + // Lock focus default focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); + + clearInteractions(mockCameraControl); + + // Test removal of default focus point. + await camera.setFocusMode(cameraId, FocusMode.auto); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isFalse); + + // We expect only the previously set exposure point to be re-set. + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(1)); + expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); + expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); + expect(capturedMeteringPointInfos.first.$1.size, isNull); + expect(capturedMeteringPointInfos.first.$2, + equals(FocusMeteringAction.flagAe)); + }); + + test( + 'setFocusMode cancels focus and metering if only focus point previously set is a focus point', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 5; + final MockCameraControl mockCameraControl = MockCameraControl(); + final FocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; + + when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + .thenAnswer((_) async => Future.value()); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, mockCamera2CameraControl); + + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(true)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Lock focus default focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); + + // Test removal of default focus point. + await camera.setFocusMode(cameraId, FocusMode.auto); + + verify(mockCameraControl.cancelFocusAndMetering()); + }); + + test( + 'setFocusMode re-focuses on previously set auto-focus point with auto-canceled enabled if setting auto-focus mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 6; + final MockCameraControl mockCameraControl = MockCameraControl(); + final FocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double focusPointX = 0.1; + const double focusPointY = 0.2; + + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; + + when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + .thenAnswer((_) async => Future.value()); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, mockCamera2CameraControl); + + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(true)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Lock a focus point. + await camera.setFocusPoint( + cameraId, const Point(focusPointX, focusPointY)); + await camera.setFocusMode(cameraId, FocusMode.locked); + + clearInteractions(mockCameraControl); + + // Test re-focusing on previously set auto-focus point with auto-cancel enabled. + await camera.setFocusMode(cameraId, FocusMode.auto); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isFalse); + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(1)); + expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); + expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); + expect(capturedMeteringPointInfos.first.$1.size, isNull); + expect(capturedMeteringPointInfos.first.$2, + equals(FocusMeteringAction.flagAf)); + }); + + test( + 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 7; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double focusPointX = 0.88; + const double focusPointY = 0.33; + + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; + + when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + .thenAnswer((_) async => Future.value()); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, mockCamera2CameraControl); + + // Set a focus point. + await camera.setFocusPoint( + cameraId, const Point(focusPointX, focusPointY)); + clearInteractions(mockCameraControl); + + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isTrue); + + // We expect the set focus point to be locked. + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(1)); + expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); + expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); + expect(capturedMeteringPointInfos.first.$1.size, isNull); + expect(capturedMeteringPointInfos.first.$2, + equals(FocusMeteringAction.flagAf)); + }); + + test( + 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point amongst others', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 8; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double focusPointX = 0.38; + const double focusPointY = 0.38; + const double exposurePointX = 0.54; + const double exposurePointY = 0.45; + + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; + + when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + .thenAnswer((_) async => Future.value()); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, mockCamera2CameraControl); + + // Set focus and exposure points. + await camera.setFocusPoint( + cameraId, const Point(focusPointX, focusPointY)); + await camera.setExposurePoint( + cameraId, const Point(exposurePointX, exposurePointY)); + clearInteractions(mockCameraControl); + + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isTrue); + + // We expect two MeteringPoints, the set focus point and the set exposure + // point. + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(2)); + + final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos + .where(((MeteringPoint, int?) meteringPointInfo) => + meteringPointInfo.$2 == FocusMeteringAction.flagAf) + .toList(); + expect(focusPoints.length, equals(1)); + expect(focusPoints.first.$1.x, equals(focusPointX)); + expect(focusPoints.first.$1.y, equals(focusPointY)); + expect(focusPoints.first.$1.size, isNull); + + final List<(MeteringPoint, int?)> exposurePoints = + capturedMeteringPointInfos + .where(((MeteringPoint, int?) meteringPointInfo) => + meteringPointInfo.$2 == FocusMeteringAction.flagAe) + .toList(); + expect(exposurePoints.length, equals(1)); + expect(exposurePoints.first.$1.x, equals(exposurePointX)); + expect(exposurePoints.first.$1.y, equals(exposurePointY)); + expect(exposurePoints.first.$1.size, isNull); + }); + + test( + 'setFocusMode starts expected focus and metering action if setting locked focus mode and current focus and metering action does not contain an auto-focus point', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 9; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double exposurePointX = 0.8; + const double exposurePointY = 0.3; + const double defaultFocusPointX = 0.5; + const double defaultFocusPointY = 0.5; + const double defaultFocusPointSize = 1; + + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; + + when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + .thenAnswer((_) async => Future.value()); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, mockCamera2CameraControl); + + // Set an exposure point (creates a current focus and metering action + // without a focus point). + await camera.setExposurePoint( + cameraId, const Point(exposurePointX, exposurePointY)); + clearInteractions(mockCameraControl); + + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isTrue); + + // We expect two MeteringPoints, the default focus point and the set + //exposure point. + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(2)); + + final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos + .where(((MeteringPoint, int?) meteringPointInfo) => + meteringPointInfo.$2 == FocusMeteringAction.flagAf) + .toList(); + expect(focusPoints.length, equals(1)); + expect(focusPoints.first.$1.x, equals(defaultFocusPointX)); + expect(focusPoints.first.$1.y, equals(defaultFocusPointY)); + expect(focusPoints.first.$1.size, equals(defaultFocusPointSize)); + + final List<(MeteringPoint, int?)> exposurePoints = + capturedMeteringPointInfos + .where(((MeteringPoint, int?) meteringPointInfo) => + meteringPointInfo.$2 == FocusMeteringAction.flagAe) + .toList(); + expect(exposurePoints.length, equals(1)); + expect(exposurePoints.first.$1.x, equals(exposurePointX)); + expect(exposurePoints.first.$1.y, equals(exposurePointY)); + expect(exposurePoints.first.$1.size, isNull); + }); + + test( + 'setFocusMode starts expected focus and metering action if there is no current focus and metering action', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 10; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double defaultFocusPointX = 0.5; + const double defaultFocusPointY = 0.5; + const double defaultFocusPointSize = 1; + + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; + + when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + .thenAnswer((_) async => Future.value()); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, mockCamera2CameraControl); + + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); + + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isTrue); + + // We expect only the default focus point to be set. + final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + capturedAction.meteringPointInfos; + expect(capturedMeteringPointInfos.length, equals(1)); + expect(capturedMeteringPointInfos.first.$1.x, equals(defaultFocusPointX)); + expect(capturedMeteringPointInfos.first.$1.y, equals(defaultFocusPointY)); + expect(capturedMeteringPointInfos.first.$1.size, + equals(defaultFocusPointSize)); + expect(capturedMeteringPointInfos.first.$2, + equals(FocusMeteringAction.flagAf)); + }); + + test( + 'setFocusMode re-sets exposure mode if setting locked focus mode while using auto exposure mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 11; + final MockCameraControl mockCameraControl = MockCameraControl(); + final FocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; + + when(mockCamera2CameraControl.addCaptureRequestOptions(any)) + .thenAnswer((_) async => Future.value()); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, mockCamera2CameraControl); + + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(true)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Set auto exposure mode. + await camera.setExposureMode(cameraId, ExposureMode.auto); + clearInteractions(mockCamera2CameraControl); + + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); + + final VerificationResult verificationResult = + verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); + final CaptureRequestOptions capturedCaptureRequestOptions = + verificationResult.captured.single as CaptureRequestOptions; + final List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = + capturedCaptureRequestOptions.requestedOptions; + expect(requestedOptions.length, equals(1)); + expect(requestedOptions.first.$1, + equals(CaptureRequestKeySupportedType.controlAeLock)); + expect(requestedOptions.first.$2, equals(false)); + }); + + test( + 'setFocusPoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 22; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point focusPoint = Point(0.21, 0.21); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, MockCamera2CameraControl()); + + // Make setting focus and metering action successful to set locked focus + // mode. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(true)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Set exposure point to later mock failed call to set an exposure point ( + // otherwise, focus and metering will be canceled altogether, which is + //considered a successful call). + await camera.setExposurePoint(cameraId, const Point(0.3, 0.4)); + + // Set locked focus mode so we can set auto mode (cannot set auto mode + // directly since it is the default). + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); + + // Make setting focus and metering action fail to test that auto-cancel is + // still disabled. + reset(mockFocusMeteringResult); + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(false)); + + // Test disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.auto); + clearInteractions(mockCameraControl); + + await camera.setFocusPoint(cameraId, focusPoint); + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isTrue); + }); + + test( + 'setExposurePoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 342; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point exposurePoint = Point(0.23, 0.32); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, MockCamera2CameraControl()); + + // Make setting focus and metering action successful to set locked focus + // mode. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(true)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Set exposure point to later mock failed call to set an exposure point ( + // otherwise, focus and metering will be canceled altogether, which is + //considered a successful call). + await camera.setExposurePoint(cameraId, const Point(0.4, 0.3)); + + // Set locked focus mode so we can set auto mode (cannot set auto mode + // directly since it is the default). + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); + + // Make setting focus and metering action fail to test that auto-cancel is + // still disabled. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(false)); + + // Test disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.auto); + clearInteractions(mockCameraControl); + + await camera.setExposurePoint(cameraId, exposurePoint); + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isTrue); + }); + + test( + 'setFocusPoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 232; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point focusPoint = Point(0.221, 0.211); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, MockCamera2CameraControl()); + + // Make setting focus and metering action fail to test auto-cancel is not + // disabled. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(false)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Set exposure point to later mock failed call to set an exposure point. + await camera.setExposurePoint(cameraId, const Point(0.43, 0.34)); + + // Test failing to set locked focus mode. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); + + await camera.setFocusPoint(cameraId, focusPoint); + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isFalse); + }); + + test( + 'setExposurePoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 323; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point exposurePoint = Point(0.223, 0.332); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, MockCamera2CameraControl()); + + // Make setting focus and metering action fail to test auto-cancel is not + // disabled. + when(mockFocusMeteringResult.isFocusSuccessful()) + .thenAnswer((_) async => Future.value(false)); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => + Future.value(mockFocusMeteringResult)); + + // Set exposure point to later mock failed call to set an exposure point. + await camera.setExposurePoint(cameraId, const Point(0.5, 0.2)); + + // Test failing to set locked focus mode. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); + + await camera.setExposurePoint(cameraId, exposurePoint); + final VerificationResult verificationResult = + verify(mockCameraControl.startFocusAndMetering(captureAny)); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.disableAutoCancel, isFalse); + }); + + test( + 'onStreamedFrameAvailable binds ImageAnalysis use case when not already bound', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 22; + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Set directly for test versus calling createCamera. + camera.imageAnalysis = mockImageAnalysis; + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create a detached analyzer for testing purposes. + camera.proxy = CameraXProxy( + createAnalyzer: (_) => MockAnalyzer(), + createCameraStateObserver: (_) => MockObserver(), + ); + + when(mockProcessCameraProvider.isBound(mockImageAnalysis)) + .thenAnswer((_) async => false); + when(mockProcessCameraProvider.bindToLifecycle( + any, [mockImageAnalysis])).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + + final StreamSubscription imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + verify(mockProcessCameraProvider + .bindToLifecycle(camera.cameraSelector, [mockImageAnalysis])); + + await imageStreamSubscription.cancel(); + }); + + test( + 'startVideoCapturing unbinds ImageAnalysis use case when camera device is not at least level 3, no image streaming callback is specified, and preview is not paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + camera.proxy = CameraXProxy( + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + getCamera2CameraInfo: (CameraInfo cameraInfo) => + Future.value(mockCamera2CameraInfo)); + + const int cameraId = 7; + const String outputPath = '/temp/REC123.temp'; + + // Mock method calls. + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => false); + when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + .thenAnswer((_) async => true); + when(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()) + .thenAnswer((_) => Future.value(mockCameraInfo)); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(mockCamera2CameraInfo.getSupportedHardwareLevel()) + .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevelFull); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + + verify( + camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + }); + + test( + 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback not specified, camera device is level 3, and preview is not paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + camera.proxy = CameraXProxy( + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + getCamera2CameraInfo: (CameraInfo cameraInfo) => + Future.value(mockCamera2CameraInfo)); + + const int cameraId = 77; + const String outputPath = '/temp/REC123.temp'; + + // Mock method calls. + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => false); + when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + .thenAnswer((_) async => true); + when(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()) + .thenAnswer((_) => Future.value(mockCameraInfo)); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(mockCamera2CameraInfo.getSupportedHardwareLevel()) + .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + + verify( + camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + }); + + test( + 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback is specified, camera device is not at least level 3, and preview is not paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + camera.proxy = CameraXProxy( + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + getCamera2CameraInfo: (CameraInfo cameraInfo) => + Future.value(mockCamera2CameraInfo)); + + const int cameraId = 87; + const String outputPath = '/temp/REC123.temp'; + + // Mock method calls. + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => false); + when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + .thenAnswer((_) async => true); + when(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()) + .thenAnswer((_) => Future.value(mockCameraInfo)); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( + (_) async => CameraMetadata.infoSupportedHardwareLevelExternal); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + await camera.startVideoCapturing(VideoCaptureOptions(cameraId, + streamCallback: (CameraImageData image) {})); + verify( + camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + }); + + test( + 'startVideoCapturing unbinds ImageCapture use case when image streaming callback is specified, camera device is at least level 3, and preview is not paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + camera.imageCapture = MockImageCapture(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + camera.proxy = CameraXProxy( + createAnalyzer: + (Future Function(ImageProxy imageProxy) analyze) => + Analyzer.detached(analyze: analyze), + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + getCamera2CameraInfo: (CameraInfo cameraInfo) => + Future.value(mockCamera2CameraInfo)); + + const int cameraId = 107; + const String outputPath = '/temp/REC123.temp'; + + // Mock method calls. + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => false); + when(camera.processCameraProvider!.isBound(camera.imageCapture!)) + .thenAnswer((_) async => true); + when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + .thenAnswer((_) async => true); + when(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()) + .thenAnswer((_) => Future.value(mockCameraInfo)); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(mockCamera2CameraInfo.getSupportedHardwareLevel()) + .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + await camera.startVideoCapturing(VideoCaptureOptions(cameraId, + streamCallback: (CameraImageData image) {})); + verify( + camera.processCameraProvider!.unbind([camera.imageCapture!])); + }); + + test( + 'startVideoCapturing does not unbind ImageCapture or ImageAnalysis use cases when preview is paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + camera.imageCapture = MockImageCapture(); + camera.preview = MockPreview(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + camera.proxy = CameraXProxy( + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + getCamera2CameraInfo: (CameraInfo cameraInfo) => + Future.value(mockCamera2CameraInfo)); + + const int cameraId = 97; + const String outputPath = '/temp/REC123.temp'; + + // Mock method calls. + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => false); + when(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()) + .thenAnswer((_) => Future.value(mockCameraInfo)); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + + await camera.pausePreview(cameraId); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + + verifyNever( + camera.processCameraProvider!.unbind([camera.imageCapture!])); + verifyNever( + camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + }); + + test( + 'startVideoCapturing unbinds ImageCapture and ImageAnalysis use cases when running on a legacy hardware device', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + final TestSystemServicesHostApi mockSystemServicesApi = + MockTestSystemServicesHostApi(); + TestSystemServicesHostApi.setup(mockSystemServicesApi); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + camera.imageCapture = MockImageCapture(); + camera.preview = MockPreview(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + camera.proxy = CameraXProxy( + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + getCamera2CameraInfo: (CameraInfo cameraInfo) => + Future.value(mockCamera2CameraInfo)); + + const int cameraId = 44; + const String outputPath = '/temp/REC123.temp'; + + // Mock method calls. + when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) + .thenReturn(outputPath); + when(camera.recorder!.prepareRecording(outputPath)) + .thenAnswer((_) async => mockPendingRecording); + when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(camera.processCameraProvider!.isBound(camera.videoCapture!)) + .thenAnswer((_) async => false); + when(camera.processCameraProvider!.isBound(camera.imageCapture!)) + .thenAnswer((_) async => true); + when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) + .thenAnswer((_) async => true); + when(camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, [camera.videoCapture!])) + .thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()) + .thenAnswer((_) => Future.value(mockCameraInfo)); + when(mockCameraInfo.getCameraState()) + .thenAnswer((_) async => MockLiveCameraState()); + when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( + (_) async => CameraMetadata.infoSupportedHardwareLevelLegacy); + + // Simulate video recording being started so startVideoRecording completes. + PendingRecording.videoRecordingEventStreamController + .add(VideoRecordEvent.start); + + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + + verify( + camera.processCameraProvider!.unbind([camera.imageCapture!])); + verify( + camera.processCameraProvider!.unbind([camera.imageAnalysis!])); + }); + + test( + 'prepareForVideoRecording does not make any calls involving starting video recording', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.camera = MockCamera(); + + await camera.prepareForVideoRecording(); + verifyNoMoreInteractions(camera.processCameraProvider); + verifyNoMoreInteractions(camera.recorder); + verifyNoMoreInteractions(camera.videoCapture); + verifyNoMoreInteractions(camera.camera); + }); + */ } MockCameraXProxy createProxyWithMocks() { From 418e5b0c164e9bbf11a6e92f9a2f9ae02a61fd8d Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 22 Jan 2025 18:44:21 -0500 Subject: [PATCH 035/148] fix test --- .../test/android_camera_camerax_test.dart | 81 ++++++++++++------- 1 file changed, 51 insertions(+), 30 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 679ceb83339..3039fd68e1b 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -123,6 +123,12 @@ void main() { PigeonInstanceManager? pigeon_instanceManager, })? newResolutionStrategy, ResolutionStrategy Function()? highestAvailableStrategyResolutionStrategy, + Preview Function({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + })? newPreview, }) => CameraXProxy( getInstanceProcessCameraProvider: ({ @@ -147,18 +153,15 @@ void main() { return MockCameraSelector(); }, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Preview.pigeon_detached( - resolutionSelector: resolutionSelector, - pigeon_instanceManager: - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), - ); - }, + newPreview: newPreview ?? + ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockPreview(); + }, newImageCapture: ({ int? targetRotation, CameraXFlashMode? flashMode, @@ -1004,18 +1007,25 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. camera.proxy = getProxyForTestingResolutionPreset( - mockProcessCameraProvider, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - lastSetBoundSize = boundSize; - lastSetFallbackRule = fallbackRule; - return MockResolutionStrategy(); - }, - ); + mockProcessCameraProvider, newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + lastSetBoundSize = boundSize; + lastSetFallbackRule = fallbackRule; + return MockResolutionStrategy(); + }, newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockPreview mockPreview = MockPreview(); + when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); + return mockPreview; + }); await camera.createCamera( testCameraDescription, @@ -1091,6 +1101,16 @@ void main() { highestAvailableStrategyResolutionStrategy: () { return highestAvailableStrategy; }, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockPreview mockPreview = MockPreview(); + when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); + return mockPreview; + }, ); await camera.createCamera( @@ -1100,17 +1120,18 @@ void main() { ); expect(camera.preview!.resolutionSelector, equals(mockResolutionSelector)); + expect(setResolutionStrategy, equals(highestAvailableStrategy)); expect( - camera.preview!.resolutionSelector!.resolutionStrategy, - equals(highestAvailableStrategy), + camera.preview!.resolutionSelector, + equals(mockResolutionSelector), ); expect( - camera.imageCapture!.resolutionSelector!.resolutionStrategy, - equals(highestAvailableStrategy), + camera.imageCapture!.resolutionSelector, + equals(mockResolutionSelector), ); expect( - camera.imageAnalysis!.resolutionSelector!.resolutionStrategy, - equals(highestAvailableStrategy), + camera.imageAnalysis!.resolutionSelector, + equals(mockResolutionSelector), ); // Test null case. From 0427fa9eafe1c0f88771279c8b9946bba51b3ad7 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 22 Jan 2025 19:56:37 -0500 Subject: [PATCH 036/148] another test --- .../plugins/camerax/CameraXLibrary.g.kt | 40 ++++- .../lib/src/camerax_library2.g.dart | 26 ++- .../pigeons/camerax_library.dart | 9 +- .../test/android_camera_camerax_test.dart | 165 ++++++++++-------- 4 files changed, 152 insertions(+), 88 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 054f8cbce11..63f06a00e96 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -5857,8 +5857,12 @@ public class ResolutionStrategyProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?, resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?): androidx.camera.core.resolutionselector.ResolutionSelector + abstract fun pigeon_defaultConstructor(resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?, resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?): androidx.camera.core.resolutionselector.ResolutionSelector + /** The resolution filter to output the final desired sizes list. */ + abstract fun resolutionFilter(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionFilter? + + /** The resolution selection strategy for the `UseCase`. */ abstract fun resolutionStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionStrategy? companion object { @@ -5871,11 +5875,11 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionStrategyArg = args[1] as androidx.camera.core.resolutionselector.ResolutionStrategy? - val aspectRatioStrategyArg = args[2] as androidx.camera.core.resolutionselector.AspectRatioStrategy? - val resolutionFilterArg = args[3] as androidx.camera.core.resolutionselector.ResolutionFilter? + val resolutionFilterArg = args[1] as androidx.camera.core.resolutionselector.ResolutionFilter? + val resolutionStrategyArg = args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val aspectRatioStrategyArg = args[3] as androidx.camera.core.resolutionselector.AspectRatioStrategy? val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionStrategyArg,aspectRatioStrategyArg,resolutionFilterArg), pigeon_identifierArg) + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionFilterArg,resolutionStrategyArg,aspectRatioStrategyArg), pigeon_identifierArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -5904,12 +5908,13 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr return } val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionFilterArg = resolutionFilter(pigeon_instanceArg) val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, resolutionStrategyArg)) { + channel.send(listOf(pigeon_identifierArg, resolutionFilterArg, resolutionStrategyArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -5950,8 +5955,14 @@ class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { @NonNull @Override - public ResolutionSelector pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy, @Nullable androidx.camera.core.resolutionselector.AspectRatioStrategy? aspectRatioStrategy, @Nullable androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter) { - return ResolutionSelector(aspectRatioStrategy, resolutionFilter); + public ResolutionSelector pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter, @Nullable androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy, @Nullable androidx.camera.core.resolutionselector.AspectRatioStrategy? aspectRatioStrategy) { + return ResolutionSelector(aspectRatioStrategy); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter(ResolutionSelector pigeon_instance) { + return pigeon_instance.getResolutionFilter(); } @Nullable @@ -5990,7 +6001,18 @@ public class ResolutionSelectorProxyApiTest { public void pigeon_defaultConstructor() { final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class), mock(ResolutionFilter.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); + assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); + } + + @Test + public void resolutionFilter() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionSelector instance = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.ResolutionFilter value = mock(ResolutionFilter.class); + when(instance.getResolutionFilter()).thenReturn(value); + + assertEquals(value, api.resolutionFilter(instance)); } @Test diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index ea9d41b414e..5f58e7d4c8c 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -4750,9 +4750,9 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { ResolutionSelector({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionFilter, this.resolutionStrategy, AspectRatioStrategy? aspectRatioStrategy, - ResolutionFilter? resolutionFilter, }) { final int pigeonVar_instanceIdentifier = pigeon_instanceManager.addDartCreatedInstance(this); @@ -4771,9 +4771,9 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { final List? pigeonVar_replyList = await pigeonVar_channel.send([ pigeonVar_instanceIdentifier, + resolutionFilter, resolutionStrategy, - aspectRatioStrategy, - resolutionFilter + aspectRatioStrategy ]) as List?; if (pigeonVar_replyList == null) { throw _createConnectionError(pigeonVar_channelName); @@ -4797,6 +4797,7 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { ResolutionSelector.pigeon_detached({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + this.resolutionFilter, this.resolutionStrategy, }); @@ -4804,14 +4805,20 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { _pigeonVar_codecResolutionSelector = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + /// The resolution filter to output the final desired sizes list. + final ResolutionFilter? resolutionFilter; + + /// The resolution selection strategy for the `UseCase`. final ResolutionStrategy? resolutionStrategy; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - ResolutionSelector Function(ResolutionStrategy? resolutionStrategy)? - pigeon_newInstance, + ResolutionSelector Function( + ResolutionFilter? resolutionFilter, + ResolutionStrategy? resolutionStrategy, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( @@ -4834,15 +4841,19 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { final int? arg_pigeon_instanceIdentifier = (args[0] as int?); assert(arg_pigeon_instanceIdentifier != null, 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null, expected non-null int.'); + final ResolutionFilter? arg_resolutionFilter = + (args[1] as ResolutionFilter?); final ResolutionStrategy? arg_resolutionStrategy = - (args[1] as ResolutionStrategy?); + (args[2] as ResolutionStrategy?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_resolutionStrategy) ?? + pigeon_newInstance?.call( + arg_resolutionFilter, arg_resolutionStrategy) ?? ResolutionSelector.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionFilter: arg_resolutionFilter, resolutionStrategy: arg_resolutionStrategy, ), arg_pigeon_instanceIdentifier!, @@ -4864,6 +4875,7 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { return ResolutionSelector.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + resolutionFilter: resolutionFilter, resolutionStrategy: resolutionStrategy, ); } diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index bf0af7e4051..6e1a80e2269 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -642,11 +642,12 @@ abstract class ResolutionStrategy { ), ) abstract class ResolutionSelector { - ResolutionSelector( - AspectRatioStrategy? aspectRatioStrategy, - ResolutionFilter? resolutionFilter, - ); + ResolutionSelector(AspectRatioStrategy? aspectRatioStrategy); + + /// The resolution filter to output the final desired sizes list. + late final ResolutionFilter? resolutionFilter; + /// The resolution selection strategy for the `UseCase`. late final ResolutionStrategy? resolutionStrategy; } diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 3039fd68e1b..aa1a322f42f 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -123,12 +123,11 @@ void main() { PigeonInstanceManager? pigeon_instanceManager, })? newResolutionStrategy, ResolutionStrategy Function()? highestAvailableStrategyResolutionStrategy, - Preview Function({ - int? targetRotation, - ResolutionSelector? resolutionSelector, + ResolutionFilter Function({ + required CameraSize preferredSize, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - })? newPreview, + })? createWithOnePreferredSizeResolutionFilter, }) => CameraXProxy( getInstanceProcessCameraProvider: ({ @@ -153,15 +152,16 @@ void main() { return MockCameraSelector(); }, - newPreview: newPreview ?? - ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockPreview(); - }, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockPreview mockPreview = MockPreview(); + when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); + return mockPreview; + }, newImageCapture: ({ int? targetRotation, CameraXFlashMode? flashMode, @@ -275,13 +275,15 @@ void main() { }) { return MockAspectRatioStrategy(); }, - createWithOnePreferredSizeResolutionFilter: ({ - required CameraSize preferredSize, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }, + createWithOnePreferredSizeResolutionFilter: + createWithOnePreferredSizeResolutionFilter ?? + ({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, BinaryMessenger? pigeon_binaryMessenger, @@ -1007,25 +1009,18 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. camera.proxy = getProxyForTestingResolutionPreset( - mockProcessCameraProvider, newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - lastSetBoundSize = boundSize; - lastSetFallbackRule = fallbackRule; - return MockResolutionStrategy(); - }, newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockPreview mockPreview = MockPreview(); - when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); - return mockPreview; - }); + mockProcessCameraProvider, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + lastSetBoundSize = boundSize; + lastSetFallbackRule = fallbackRule; + return MockResolutionStrategy(); + }, + ); await camera.createCamera( testCameraDescription, @@ -1101,16 +1096,6 @@ void main() { highestAvailableStrategyResolutionStrategy: () { return highestAvailableStrategy; }, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockPreview mockPreview = MockPreview(); - when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); - return mockPreview; - }, ); await camera.createCamera( @@ -1140,7 +1125,7 @@ void main() { expect(camera.imageCapture!.resolutionSelector, isNull); expect(camera.imageAnalysis!.resolutionSelector, isNull); }); -/* + test( 'createCamera properly sets filter for resolution preset for non-video capture use cases', () async { @@ -1162,8 +1147,25 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. - camera.proxy = - getProxyForTestingResolutionPreset(mockProcessCameraProvider); + CameraSize? lastSetBoundSize; + CameraSize? lastSetPreferredSize; + camera.proxy = getProxyForTestingResolutionPreset(mockProcessCameraProvider, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + lastSetBoundSize = boundSize; + return MockResolutionStrategy(); + }, createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + lastSetPreferredSize = preferredSize; + return MockResolutionFilter(); + }); when(mockProcessCameraProvider.bindToLifecycle(any, any)) .thenAnswer((_) async => mockCamera); @@ -1177,18 +1179,41 @@ void main() { await camera.createCamera(testCameraDescription, resolutionPreset, enableAudio: enableAudio); - Size? expectedPreferredResolution; + CameraSize? expectedPreferredResolution; + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); switch (resolutionPreset) { case ResolutionPreset.low: - expectedPreferredResolution = const Size(320, 240); + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 320, + height: 240, + pigeon_instanceManager: testInstanceManager, + ); case ResolutionPreset.medium: - expectedPreferredResolution = const Size(720, 480); + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 720, + height: 480, + pigeon_instanceManager: testInstanceManager, + ); case ResolutionPreset.high: - expectedPreferredResolution = const Size(1280, 720); + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 1280, + height: 720, + pigeon_instanceManager: testInstanceManager, + ); case ResolutionPreset.veryHigh: - expectedPreferredResolution = const Size(1920, 1080); + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 1920, + height: 1080, + pigeon_instanceManager: testInstanceManager, + ); case ResolutionPreset.ultraHigh: - expectedPreferredResolution = const Size(3840, 2160); + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 3840, + height: 2160, + pigeon_instanceManager: testInstanceManager, + ); case ResolutionPreset.max: expectedPreferredResolution = null; } @@ -1203,17 +1228,21 @@ void main() { } expect( - camera.preview!.resolutionSelector!.resolutionFilter! - .preferredResolution, - equals(expectedPreferredResolution)); + lastSetPreferredSize?.width, + equals(expectedPreferredResolution.width), + ); + expect( + lastSetPreferredSize?.height, + equals(expectedPreferredResolution.height), + ); expect( - camera - .imageCapture!.resolutionSelector!.resolutionStrategy!.boundSize, - equals(expectedPreferredResolution)); + lastSetBoundSize?.width, + equals(expectedPreferredResolution.width), + ); expect( - camera - .imageAnalysis!.resolutionSelector!.resolutionStrategy!.boundSize, - equals(expectedPreferredResolution)); + lastSetBoundSize?.height, + equals(expectedPreferredResolution.height), + ); } // Test null case. @@ -1222,7 +1251,7 @@ void main() { expect(camera.imageCapture!.resolutionSelector, isNull); expect(camera.imageAnalysis!.resolutionSelector, isNull); }); - +/* test( 'createCamera properly sets aspect ratio based on preset resolution for non-video capture use cases', () async { From 0a8841bbd25f2aff43a3bed40601912e347452c4 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 23 Jan 2025 16:30:14 -0500 Subject: [PATCH 037/148] another test --- .../plugins/camerax/CameraXLibrary.g.kt | 118 ++++ .../lib/src/camerax_library2.g.dart | 102 ++++ .../pigeons/camerax_library.dart | 12 + .../test/android_camera_camerax_test.dart | 510 ++++++++++-------- .../android_camera_camerax_test.mocks.dart | 51 ++ 5 files changed, 562 insertions(+), 231 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 63f06a00e96..f9a9ae9136c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -5865,6 +5865,13 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr /** The resolution selection strategy for the `UseCase`. */ abstract fun resolutionStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionStrategy? + /** + * Returns the specified `AspectRatioStrategy`, or + * `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified + * when creating the ResolutionSelector. + */ + abstract fun getAspectRatioStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.AspectRatioStrategy + companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionSelector?) { @@ -5890,6 +5897,23 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr channel.setMessageHandler(null) } } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionSelector + val wrapped: List = try { + listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } } } @@ -5971,6 +5995,12 @@ class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { return pigeon_instance.getResolutionStrategy(); } + @NonNull + @Override + public androidx.camera.core.resolutionselector.AspectRatioStrategy getAspectRatioStrategy(ResolutionSelector pigeon_instance) { + return pigeon_instance.getAspectRatioStrategy(); + } + } */ @@ -6026,6 +6056,17 @@ public class ResolutionSelectorProxyApiTest { assertEquals(value, api.resolutionStrategy(instance)); } + @Test + public void getAspectRatioStrategy() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionSelector instance = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.AspectRatioStrategy value = mock(AspectRatioStrategy.class); + when(instance.getAspectRatioStrategy()).thenReturn(value); + + assertEquals(value, api.getAspectRatioStrategy(instance )); + } + } */ /** @@ -6054,6 +6095,15 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib */ abstract fun ratio_4_3FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + /** + * The specified fallback rule for choosing the aspect ratio when the + * preferred aspect ratio is not available. + */ + abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatioStrategyFallbackRule + + /** The specified preferred aspect ratio. */ + abstract fun getPreferredAspectRatio(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatio + companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAspectRatioStrategy?) { @@ -6114,6 +6164,40 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib channel.setMessageHandler(null) } } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = try { + listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } } } @@ -6190,6 +6274,18 @@ class AspectRatioStrategyProxyApi extends PigeonApiAspectRatioStrategy { return AspectRatioStrategy.getRatio_4_3FallbackAutoStrategy(); } + @NonNull + @Override + public AspectRatioStrategyFallbackRule getFallbackRule(AspectRatioStrategy pigeon_instance) { + return pigeon_instance.getFallbackRule(); + } + + @NonNull + @Override + public AspectRatio getPreferredAspectRatio(AspectRatioStrategy pigeon_instance) { + return pigeon_instance.getPreferredAspectRatio(); + } + } */ @@ -6220,6 +6316,28 @@ public class AspectRatioStrategyProxyApiTest { assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO) instanceof AspectRatioStrategyProxyApi.AspectRatioStrategy); } + @Test + public void getFallbackRule() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + + final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); + final AspectRatioStrategyFallbackRule value = io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO; + when(instance.getFallbackRule()).thenReturn(value); + + assertEquals(value, api.getFallbackRule(instance )); + } + + @Test + public void getPreferredAspectRatio() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + + final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); + final AspectRatio value = io.flutter.plugins.camerax.AspectRatio.RATIO16TO9; + when(instance.getPreferredAspectRatio()).thenReturn(value); + + assertEquals(value, api.getPreferredAspectRatio(instance )); + } + } */ /** diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 5f58e7d4c8c..7ed67ca7dbd 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -4870,6 +4870,41 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { } } + /// Returns the specified `AspectRatioStrategy`, or + /// `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified + /// when creating the ResolutionSelector. + Future getAspectRatioStrategy() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecResolutionSelector; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as AspectRatioStrategy?)!; + } + } + @override ResolutionSelector pigeon_copy() { return ResolutionSelector.pigeon_detached( @@ -5071,6 +5106,73 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { return pigeonVar_instance; } + /// The specified fallback rule for choosing the aspect ratio when the + /// preferred aspect ratio is not available. + Future getFallbackRule() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecAspectRatioStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as AspectRatioStrategyFallbackRule?)!; + } + } + + /// The specified preferred aspect ratio. + Future getPreferredAspectRatio() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecAspectRatioStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as AspectRatio?)!; + } + } + @override AspectRatioStrategy pigeon_copy() { return AspectRatioStrategy.pigeon_detached( diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 6e1a80e2269..9f3f7d897c1 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -649,6 +649,11 @@ abstract class ResolutionSelector { /// The resolution selection strategy for the `UseCase`. late final ResolutionStrategy? resolutionStrategy; + + /// Returns the specified `AspectRatioStrategy`, or + /// `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified + /// when creating the ResolutionSelector. + AspectRatioStrategy getAspectRatioStrategy(); } /// Fallback rule for choosing the aspect ratio when the preferred aspect ratio @@ -693,6 +698,13 @@ abstract class AspectRatioStrategy { /// RATIO_4_3 in priority. @static late AspectRatioStrategy ratio_4_3FallbackAutoStrategy; + + /// The specified fallback rule for choosing the aspect ratio when the + /// preferred aspect ratio is not available. + AspectRatioStrategyFallbackRule getFallbackRule(); + + /// The specified preferred aspect ratio. + AspectRatio getPreferredAspectRatio(); } /// Represents the different states the camera can be in. diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index aa1a322f42f..7af60f8d620 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -128,204 +128,232 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, })? createWithOnePreferredSizeResolutionFilter, - }) => - CameraXProxy( - getInstanceProcessCameraProvider: ({ - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) async { - return mockProcessCameraProvider; - }, - newCameraSelector: ({ - LensFacing? requireLensFacing, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - switch (requireLensFacing) { - case LensFacing.front: - return MockCameraSelector(); - case LensFacing.back: - case LensFacing.external: - case LensFacing.unknown: - case null: - } - - return MockCameraSelector(); - }, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockPreview mockPreview = MockPreview(); - when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); - return mockPreview; - }, - newImageCapture: ({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return ImageCapture.pigeon_detached( - resolutionSelector: resolutionSelector, - pigeon_instanceManager: - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), - ); - }, - newRecorder: ({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockRecorder(); - }, - withOutputVideoCapture: ({ - required VideoOutput videoOutput, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockVideoCapture(); - }, - newImageAnalysis: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return ImageAnalysis.pigeon_detached( - resolutionSelector: resolutionSelector, - pigeon_instanceManager: - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), - ); - }, - newResolutionStrategy: newResolutionStrategy ?? - ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionStrategy(); - }, - newResolutionSelector: newResolutionSelector ?? - ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionSelector(); - }, - fromQualitySelector: ({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockQualitySelector(); - }, - newObserver: ({ - required void Function(Observer, T) onChanged, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockSystemServicesManager(); - }, - newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDeviceOrientationManager manager = - MockDeviceOrientationManager(); - when(manager.getUiOrientation()).thenAnswer((_) async { - return 'PORTRAIT_UP'; - }); - return manager; - }, - newAspectRatioStrategy: ({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockAspectRatioStrategy(); - }, - createWithOnePreferredSizeResolutionFilter: - createWithOnePreferredSizeResolutionFilter ?? - ({ - required CameraSize preferredSize, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockCamera2CameraInfo camera2cameraInfo = - MockCamera2CameraInfo(); - when( - camera2cameraInfo.getCameraCharacteristic(any), - ).thenAnswer((_) async => 90); - return camera2cameraInfo; - }, - newCameraSize: ({ - required int width, - required int height, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return CameraSize.pigeon_detached( - width: width, - height: height, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - sensorOrientationCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - lowerQualityOrHigherThanFallbackStrategy: ({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, - highestAvailableStrategyResolutionStrategy: - highestAvailableStrategyResolutionStrategy ?? - () { - return MockResolutionStrategy(); - }, - ); + }) { + late final CameraXProxy proxy; + final AspectRatioStrategy ratio_4_3FallbackAutoStrategyAspectRatioStrategy = + MockAspectRatioStrategy(); + proxy = CameraXProxy( + getInstanceProcessCameraProvider: ({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) async { + return mockProcessCameraProvider; + }, + newCameraSelector: ({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } + + return MockCameraSelector(); + }, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockPreview mockPreview = MockPreview(); + when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); + return mockPreview; + }, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return ImageCapture.pigeon_detached( + resolutionSelector: resolutionSelector, + pigeon_instanceManager: + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), + ); + }, + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockRecorder(); + }, + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockVideoCapture(); + }, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return ImageAnalysis.pigeon_detached( + resolutionSelector: resolutionSelector, + pigeon_instanceManager: + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), + ); + }, + newResolutionStrategy: newResolutionStrategy ?? + ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }, + newResolutionSelector: newResolutionSelector ?? + ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockResolutionSelector mockResolutionSelector = + MockResolutionSelector(); + when(mockResolutionSelector.getAspectRatioStrategy()).thenAnswer( + (_) async => + aspectRatioStrategy ?? + proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), + ); + when(mockResolutionSelector.resolutionStrategy).thenReturn( + resolutionStrategy, + ); + when(mockResolutionSelector.resolutionFilter).thenReturn( + resolutionFilter, + ); + return mockResolutionSelector; + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); + }, + newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }, + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockAspectRatioStrategy mockAspectRatioStrategy = + MockAspectRatioStrategy(); + when(mockAspectRatioStrategy.getFallbackRule()).thenAnswer( + (_) async => fallbackRule, + ); + when(mockAspectRatioStrategy.getPreferredAspectRatio()).thenAnswer( + (_) async => preferredAspectRatio, + ); + return mockAspectRatioStrategy; + }, + createWithOnePreferredSizeResolutionFilter: + createWithOnePreferredSizeResolutionFilter ?? + ({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockCamera2CameraInfo camera2cameraInfo = MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => 90); + return camera2cameraInfo; + }, + newCameraSize: ({ + required int width, + required int height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return CameraSize.pigeon_detached( + width: width, + height: height, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + sensorOrientationCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + highestAvailableStrategyResolutionStrategy: + highestAvailableStrategyResolutionStrategy ?? + () { + return MockResolutionStrategy(); + }, + ratio_4_3FallbackAutoStrategyAspectRatioStrategy: () => + ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ); + + return proxy; + } // // /// CameraXProxy for testing exposure and focus related controls. // /// @@ -1251,7 +1279,7 @@ void main() { expect(camera.imageCapture!.resolutionSelector, isNull); expect(camera.imageAnalysis!.resolutionSelector, isNull); }); -/* + test( 'createCamera properly sets aspect ratio based on preset resolution for non-video capture use cases', () async { @@ -1287,63 +1315,83 @@ void main() { await camera.createCamera(testCameraDescription, resolutionPreset, enableAudio: enableAudio); - int? expectedAspectRatio; - AspectRatioStrategy? expectedAspectRatioStrategy; + AspectRatio? expectedAspectRatio; + AspectRatioStrategyFallbackRule? expectedFallbackRule; switch (resolutionPreset) { case ResolutionPreset.low: expectedAspectRatio = AspectRatio.ratio4To3; + expectedFallbackRule = AspectRatioStrategyFallbackRule.auto; case ResolutionPreset.high: case ResolutionPreset.veryHigh: case ResolutionPreset.ultraHigh: expectedAspectRatio = AspectRatio.ratio16To9; + expectedFallbackRule = AspectRatioStrategyFallbackRule.auto; case ResolutionPreset.medium: // Medium resolution preset uses aspect ratio 3:2 which is unsupported // by CameraX. case ResolutionPreset.max: - expectedAspectRatioStrategy = null; } - expectedAspectRatioStrategy = expectedAspectRatio == null - ? null - : AspectRatioStrategy.detached( - preferredAspectRatio: expectedAspectRatio, - fallbackRule: AspectRatioStrategy.fallbackRuleAuto); - if (expectedAspectRatio == null) { - expect(camera.preview!.resolutionSelector!.aspectRatioStrategy, isNull); - expect(camera.imageCapture!.resolutionSelector!.aspectRatioStrategy, - isNull); - expect(camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy, - isNull); + expect( + await camera.preview!.resolutionSelector!.getAspectRatioStrategy(), + equals( + camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), + ), + ); + expect( + await camera.imageCapture!.resolutionSelector! + .getAspectRatioStrategy(), + equals( + camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), + ), + ); + expect( + await camera.imageAnalysis!.resolutionSelector! + .getAspectRatioStrategy(), + equals( + camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), + ), + ); continue; } + final AspectRatioStrategy previewStrategy = + await camera.preview!.resolutionSelector!.getAspectRatioStrategy(); + final AspectRatioStrategy imageCaptureStrategy = await camera + .imageCapture!.resolutionSelector! + .getAspectRatioStrategy(); + final AspectRatioStrategy imageAnalysisStrategy = await camera + .imageCapture!.resolutionSelector! + .getAspectRatioStrategy(); + // Check aspect ratio. expect( - camera.preview!.resolutionSelector!.aspectRatioStrategy! - .preferredAspectRatio, - equals(expectedAspectRatioStrategy!.preferredAspectRatio)); + await previewStrategy.getPreferredAspectRatio(), + equals(expectedAspectRatio), + ); expect( - camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! - .preferredAspectRatio, - equals(expectedAspectRatioStrategy.preferredAspectRatio)); + await imageCaptureStrategy.getPreferredAspectRatio(), + equals(expectedAspectRatio), + ); expect( - camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! - .preferredAspectRatio, - equals(expectedAspectRatioStrategy.preferredAspectRatio)); + await imageAnalysisStrategy.getPreferredAspectRatio(), + equals(expectedAspectRatio), + ); // Check fallback rule. expect( - camera.preview!.resolutionSelector!.aspectRatioStrategy!.fallbackRule, - equals(expectedAspectRatioStrategy.fallbackRule)); + await previewStrategy.getFallbackRule(), + equals(expectedFallbackRule), + ); expect( - camera.imageCapture!.resolutionSelector!.aspectRatioStrategy! - .fallbackRule, - equals(expectedAspectRatioStrategy.fallbackRule)); + await imageCaptureStrategy.getFallbackRule(), + equals(expectedFallbackRule), + ); expect( - camera.imageAnalysis!.resolutionSelector!.aspectRatioStrategy! - .fallbackRule, - equals(expectedAspectRatioStrategy.fallbackRule)); + await imageAnalysisStrategy.getFallbackRule(), + equals(expectedFallbackRule), + ); } // Test null case. @@ -1352,7 +1400,7 @@ void main() { expect(camera.imageCapture!.resolutionSelector, isNull); expect(camera.imageAnalysis!.resolutionSelector, isNull); }); - +/* test( 'createCamera properly sets preset resolution for video capture use case', () async { diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index 833536f88e3..be0fd074118 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -549,6 +549,32 @@ class MockAspectRatioStrategy extends _i1.Mock ), ) as _i2.PigeonInstanceManager); + @override + _i5.Future<_i2.AspectRatioStrategyFallbackRule> getFallbackRule() => + (super.noSuchMethod( + Invocation.method( + #getFallbackRule, + [], + ), + returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto), + returnValueForMissingStub: + _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto), + ) as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); + + @override + _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => (super.noSuchMethod( + Invocation.method( + #getPreferredAspectRatio, + [], + ), + returnValue: + _i5.Future<_i2.AspectRatio>.value(_i2.AspectRatio.ratio16To9), + returnValueForMissingStub: + _i5.Future<_i2.AspectRatio>.value(_i2.AspectRatio.ratio16To9), + ) as _i5.Future<_i2.AspectRatio>); + @override _i2.AspectRatioStrategy pigeon_copy() => (super.noSuchMethod( Invocation.method( @@ -3463,6 +3489,31 @@ class MockResolutionSelector extends _i1.Mock ), ) as _i2.PigeonInstanceManager); + @override + _i5.Future<_i2.AspectRatioStrategy> getAspectRatioStrategy() => + (super.noSuchMethod( + Invocation.method( + #getAspectRatioStrategy, + [], + ), + returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, + Invocation.method( + #getAspectRatioStrategy, + [], + ), + )), + returnValueForMissingStub: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, + Invocation.method( + #getAspectRatioStrategy, + [], + ), + )), + ) as _i5.Future<_i2.AspectRatioStrategy>); + @override _i2.ResolutionSelector pigeon_copy() => (super.noSuchMethod( Invocation.method( From 14007a84e8c341f247318609cd89f81c0d5a3b33 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 23 Jan 2025 17:16:50 -0500 Subject: [PATCH 038/148] improve another test --- .../plugins/camerax/CameraXLibrary.g.kt | 78 +++++++++++ .../lib/src/camerax_library2.g.dart | 63 +++++++++ .../pigeons/camerax_library.dart | 8 ++ .../test/android_camera_camerax_test.dart | 127 +++++++++--------- .../android_camera_camerax_test.mocks.dart | 24 ++++ 5 files changed, 235 insertions(+), 65 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index f9a9ae9136c..7413656a525 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -5701,8 +5701,18 @@ public class ImageCaptureProxyApiTest { abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(boundSize: android.util.Size, fallbackRule: ResolutionStrategyFallbackRule): androidx.camera.core.resolutionselector.ResolutionStrategy + /** A resolution strategy chooses the highest available resolution. */ abstract fun highestAvailableStrategy(): androidx.camera.core.resolutionselector.ResolutionStrategy + /** The specified bound size. */ + abstract fun getBoundSize(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): android.util.Size? + + /** + * The fallback rule for choosing an alternate size when the specified bound + * size is unavailable. + */ + abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): ResolutionStrategyFallbackRule + companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionStrategy?) { @@ -5745,6 +5755,40 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr channel.setMessageHandler(null) } } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = try { + listOf(api.getBoundSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } } } @@ -5816,6 +5860,18 @@ class ResolutionStrategyProxyApi extends PigeonApiResolutionStrategy { return ResolutionStrategy.getHighestAvailableStrategy(); } + @Nullable + @Override + public android.util.Size? getBoundSize(ResolutionStrategy pigeon_instance) { + return pigeon_instance.getBoundSize(); + } + + @NonNull + @Override + public ResolutionStrategyFallbackRule getFallbackRule(ResolutionStrategy pigeon_instance) { + return pigeon_instance.getFallbackRule(); + } + } */ @@ -5847,6 +5903,28 @@ public class ResolutionStrategyProxyApiTest { assertTrue(api.pigeon_defaultConstructor(mock(CameraSize.class), io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER) instanceof ResolutionStrategyProxyApi.ResolutionStrategy); } + @Test + public void getBoundSize() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + final ResolutionStrategy instance = mock(ResolutionStrategy.class); + final android.util.Size value = mock(CameraSize.class); + when(instance.getBoundSize()).thenReturn(value); + + assertEquals(value, api.getBoundSize(instance )); + } + + @Test + public void getFallbackRule() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + final ResolutionStrategy instance = mock(ResolutionStrategy.class); + final ResolutionStrategyFallbackRule value = io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER; + when(instance.getFallbackRule()).thenReturn(value); + + assertEquals(value, api.getFallbackRule(instance )); + } + } */ /** diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 7ed67ca7dbd..33c286fb319 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -4646,6 +4646,7 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { _pigeonVar_codecResolutionStrategy = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + /// A resolution strategy chooses the highest available resolution. static final ResolutionStrategy highestAvailableStrategy = pigeonVar_highestAvailableStrategy(); @@ -4733,6 +4734,68 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { return pigeonVar_instance; } + /// The specified bound size. + Future getBoundSize() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecResolutionStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return (pigeonVar_replyList[0] as CameraSize?); + } + } + + /// The fallback rule for choosing an alternate size when the specified bound + /// size is unavailable. + Future getFallbackRule() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecResolutionStrategy; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as ResolutionStrategyFallbackRule?)!; + } + } + @override ResolutionStrategy pigeon_copy() { return ResolutionStrategy.pigeon_detached( diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 9f3f7d897c1..2a8a04090e1 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -628,8 +628,16 @@ abstract class ResolutionStrategy { ResolutionStrategyFallbackRule fallbackRule, ); + /// A resolution strategy chooses the highest available resolution. @static late ResolutionStrategy highestAvailableStrategy; + + /// The specified bound size. + CameraSize? getBoundSize(); + + /// The fallback rule for choosing an alternate size when the specified bound + /// size is unavailable. + ResolutionStrategyFallbackRule getFallbackRule(); } /// A set of requirements and priorities used to select a resolution for the diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 7af60f8d620..85a463eccd8 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -132,6 +132,8 @@ void main() { late final CameraXProxy proxy; final AspectRatioStrategy ratio_4_3FallbackAutoStrategyAspectRatioStrategy = MockAspectRatioStrategy(); + final ResolutionStrategy highestAvailableStrategyResolutionStrategy2 = + MockResolutionStrategy(); proxy = CameraXProxy( getInstanceProcessCameraProvider: ({ BinaryMessenger? pigeon_binaryMessenger, @@ -172,11 +174,10 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { - return ImageCapture.pigeon_detached( - resolutionSelector: resolutionSelector, - pigeon_instanceManager: - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), - ); + final MockImageCapture mockImageCapture = MockImageCapture(); + when(mockImageCapture.resolutionSelector) + .thenReturn(resolutionSelector); + return mockImageCapture; }, newRecorder: ({ int? aspectRatio, @@ -200,11 +201,10 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { - return ImageAnalysis.pigeon_detached( - resolutionSelector: resolutionSelector, - pigeon_instanceManager: - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), - ); + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + when(mockImageAnalysis.resolutionSelector) + .thenReturn(resolutionSelector); + return mockImageAnalysis; }, newResolutionStrategy: newResolutionStrategy ?? ({ @@ -213,7 +213,15 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { - return MockResolutionStrategy(); + final MockResolutionStrategy resolutionStrategy = + MockResolutionStrategy(); + when(resolutionStrategy.getBoundSize()).thenAnswer( + (_) async => boundSize, + ); + when(resolutionStrategy.getFallbackRule()).thenAnswer( + (_) async => fallbackRule, + ); + return resolutionStrategy; }, newResolutionSelector: newResolutionSelector ?? ({ @@ -346,7 +354,7 @@ void main() { highestAvailableStrategyResolutionStrategy: highestAvailableStrategyResolutionStrategy ?? () { - return MockResolutionStrategy(); + return highestAvailableStrategyResolutionStrategy2; }, ratio_4_3FallbackAutoStrategyAspectRatioStrategy: () => ratio_4_3FallbackAutoStrategyAspectRatioStrategy, @@ -1029,27 +1037,14 @@ void main() { .thenAnswer((_) async => MockLiveCameraState()); camera.processCameraProvider = mockProcessCameraProvider; + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + ); + // Test non-null resolution presets. for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - CameraSize? lastSetBoundSize; - ResolutionStrategyFallbackRule? lastSetFallbackRule; - - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - camera.proxy = getProxyForTestingResolutionPreset( - mockProcessCameraProvider, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - lastSetBoundSize = boundSize; - lastSetFallbackRule = fallbackRule; - return MockResolutionStrategy(); - }, - ); - await camera.createCamera( testCameraDescription, resolutionPreset, @@ -1095,56 +1090,58 @@ void main() { continue; } - expect(lastSetBoundSize!.width, equals(expectedBoundSize.width)); - expect(lastSetBoundSize!.height, equals(expectedBoundSize.height)); + final CameraSize? previewSize = await camera + .preview!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); + expect(previewSize?.width, equals(expectedBoundSize.width)); + expect(previewSize?.height, equals(expectedBoundSize.height)); expect( - lastSetFallbackRule, - equals(ResolutionStrategyFallbackRule.closestLowerThenHigher), + await camera.preview!.resolutionSelector!.resolutionStrategy! + .getFallbackRule(), + ResolutionStrategyFallbackRule.closestLowerThenHigher, + ); + + final CameraSize? imageCaptureSize = await camera + .imageCapture!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); + expect(imageCaptureSize?.width, equals(expectedBoundSize.width)); + expect(imageCaptureSize?.height, equals(expectedBoundSize.height)); + expect( + await camera.imageCapture!.resolutionSelector!.resolutionStrategy! + .getFallbackRule(), + ResolutionStrategyFallbackRule.closestLowerThenHigher, + ); + + final CameraSize? imageAnalysisSize = await camera + .imageAnalysis!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); + expect(imageAnalysisSize?.width, equals(expectedBoundSize.width)); + expect(imageAnalysisSize?.height, equals(expectedBoundSize.height)); + expect( + await camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! + .getFallbackRule(), + ResolutionStrategyFallbackRule.closestLowerThenHigher, ); } // Test max case. - late final ResolutionStrategy? setResolutionStrategy; - final MockResolutionSelector mockResolutionSelector = - MockResolutionSelector(); - final MockResolutionStrategy highestAvailableStrategy = - MockResolutionStrategy(); - camera.proxy = getProxyForTestingResolutionPreset( - mockProcessCameraProvider, - newResolutionSelector: ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - setResolutionStrategy = resolutionStrategy; - return mockResolutionSelector; - }, - highestAvailableStrategyResolutionStrategy: () { - return highestAvailableStrategy; - }, - ); - await camera.createCamera( testCameraDescription, ResolutionPreset.max, enableAudio: true, ); - expect(camera.preview!.resolutionSelector, equals(mockResolutionSelector)); - expect(setResolutionStrategy, equals(highestAvailableStrategy)); expect( - camera.preview!.resolutionSelector, - equals(mockResolutionSelector), + camera.preview!.resolutionSelector!.resolutionStrategy, + equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), ); expect( - camera.imageCapture!.resolutionSelector, - equals(mockResolutionSelector), + camera.imageCapture!.resolutionSelector!.resolutionStrategy, + equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), ); expect( - camera.imageAnalysis!.resolutionSelector, - equals(mockResolutionSelector), + camera.imageAnalysis!.resolutionSelector!.resolutionStrategy, + equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), ); // Test null case. diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index be0fd074118..de50adab958 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -3555,6 +3555,30 @@ class MockResolutionStrategy extends _i1.Mock ), ) as _i2.PigeonInstanceManager); + @override + _i5.Future<_i2.CameraSize?> getBoundSize() => (super.noSuchMethod( + Invocation.method( + #getBoundSize, + [], + ), + returnValue: _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), + ) as _i5.Future<_i2.CameraSize?>); + + @override + _i5.Future<_i2.ResolutionStrategyFallbackRule> getFallbackRule() => + (super.noSuchMethod( + Invocation.method( + #getFallbackRule, + [], + ), + returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher), + returnValueForMissingStub: + _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher), + ) as _i5.Future<_i2.ResolutionStrategyFallbackRule>); + @override _i2.ResolutionStrategy pigeon_copy() => (super.noSuchMethod( Invocation.method( From 38ad55eabf9baa092c4d400588c6f646c3598249 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 23 Jan 2025 17:25:33 -0500 Subject: [PATCH 039/148] remove unused methods --- .../test/android_camera_camerax_test.dart | 151 ++++++++---------- 1 file changed, 71 insertions(+), 80 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 85a463eccd8..ff883d5a545 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -109,20 +109,6 @@ void main() { /// preset (setting expected ResolutionSelectors, QualitySelectors, etc.). CameraXProxy getProxyForTestingResolutionPreset( MockProcessCameraProvider mockProcessCameraProvider, { - ResolutionSelector Function({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - })? newResolutionSelector, - ResolutionStrategy Function({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - })? newResolutionStrategy, - ResolutionStrategy Function()? highestAvailableStrategyResolutionStrategy, ResolutionFilter Function({ required CameraSize preferredSize, BinaryMessenger? pigeon_binaryMessenger, @@ -132,7 +118,7 @@ void main() { late final CameraXProxy proxy; final AspectRatioStrategy ratio_4_3FallbackAutoStrategyAspectRatioStrategy = MockAspectRatioStrategy(); - final ResolutionStrategy highestAvailableStrategyResolutionStrategy2 = + final ResolutionStrategy highestAvailableStrategyResolutionStrategy = MockResolutionStrategy(); proxy = CameraXProxy( getInstanceProcessCameraProvider: ({ @@ -206,46 +192,44 @@ void main() { .thenReturn(resolutionSelector); return mockImageAnalysis; }, - newResolutionStrategy: newResolutionStrategy ?? - ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockResolutionStrategy resolutionStrategy = - MockResolutionStrategy(); - when(resolutionStrategy.getBoundSize()).thenAnswer( - (_) async => boundSize, - ); - when(resolutionStrategy.getFallbackRule()).thenAnswer( - (_) async => fallbackRule, - ); - return resolutionStrategy; - }, - newResolutionSelector: newResolutionSelector ?? - ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockResolutionSelector mockResolutionSelector = - MockResolutionSelector(); - when(mockResolutionSelector.getAspectRatioStrategy()).thenAnswer( - (_) async => - aspectRatioStrategy ?? - proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), - ); - when(mockResolutionSelector.resolutionStrategy).thenReturn( - resolutionStrategy, - ); - when(mockResolutionSelector.resolutionFilter).thenReturn( - resolutionFilter, - ); - return mockResolutionSelector; - }, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockResolutionStrategy resolutionStrategy = + MockResolutionStrategy(); + when(resolutionStrategy.getBoundSize()).thenAnswer( + (_) async => boundSize, + ); + when(resolutionStrategy.getFallbackRule()).thenAnswer( + (_) async => fallbackRule, + ); + return resolutionStrategy; + }, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockResolutionSelector mockResolutionSelector = + MockResolutionSelector(); + when(mockResolutionSelector.getAspectRatioStrategy()).thenAnswer( + (_) async => + aspectRatioStrategy ?? + proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), + ); + when(mockResolutionSelector.resolutionStrategy).thenReturn( + resolutionStrategy, + ); + when(mockResolutionSelector.resolutionFilter).thenReturn( + resolutionFilter, + ); + return mockResolutionSelector; + }, fromQualitySelector: ({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, @@ -351,11 +335,9 @@ void main() { }) { return MockFallbackStrategy(); }, - highestAvailableStrategyResolutionStrategy: - highestAvailableStrategyResolutionStrategy ?? - () { - return highestAvailableStrategyResolutionStrategy2; - }, + highestAvailableStrategyResolutionStrategy: () { + return highestAvailableStrategyResolutionStrategy; + }, ratio_4_3FallbackAutoStrategyAspectRatioStrategy: () => ratio_4_3FallbackAutoStrategyAspectRatioStrategy, ); @@ -1172,25 +1154,18 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. - CameraSize? lastSetBoundSize; CameraSize? lastSetPreferredSize; - camera.proxy = getProxyForTestingResolutionPreset(mockProcessCameraProvider, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - lastSetBoundSize = boundSize; - return MockResolutionStrategy(); - }, createWithOnePreferredSizeResolutionFilter: ({ - required CameraSize preferredSize, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - lastSetPreferredSize = preferredSize; - return MockResolutionFilter(); - }); + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + lastSetPreferredSize = preferredSize; + return MockResolutionFilter(); + }, + ); when(mockProcessCameraProvider.bindToLifecycle(any, any)) .thenAnswer((_) async => mockCamera); @@ -1260,12 +1235,28 @@ void main() { lastSetPreferredSize?.height, equals(expectedPreferredResolution.height), ); + + final CameraSize? imageCaptureSize = await camera + .imageCapture!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); + expect( + imageCaptureSize?.width, + equals(expectedPreferredResolution.width), + ); + expect( + imageCaptureSize?.height, + equals(expectedPreferredResolution.height), + ); + + final CameraSize? imageAnalysisSize = await camera + .imageAnalysis!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); expect( - lastSetBoundSize?.width, + imageAnalysisSize?.width, equals(expectedPreferredResolution.width), ); expect( - lastSetBoundSize?.height, + imageAnalysisSize?.height, equals(expectedPreferredResolution.height), ); } From 2c09d11005ec16470dcb9aa1ed37b7d268614bae Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 23 Jan 2025 18:41:00 -0500 Subject: [PATCH 040/148] another test --- .../plugins/camerax/CameraXLibrary.g.kt | 37 ++++++ .../lib/src/camerax_library2.g.dart | 33 +++++ .../pigeons/camerax_library.dart | 3 + .../test/android_camera_camerax_test.dart | 123 +++++++++++++----- .../android_camera_camerax_test.mocks.dart | 24 ++++ 5 files changed, 186 insertions(+), 34 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 7413656a525..cbc2ef1f926 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -4644,6 +4644,9 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP /** Gets the target video encoding bitrate of this Recorder. */ abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long + /** The quality selector of this Recorder. */ + abstract fun getQualitySelector(pigeon_instance: androidx.camera.video.Recorder): androidx.camera.video.QualitySelector + /** Prepares a recording that will be saved to a File. */ abstract fun prepareRecording(pigeon_instance: androidx.camera.video.Recorder, path: String): androidx.camera.video.PendingRecording @@ -4706,6 +4709,23 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP channel.setMessageHandler(null) } } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder + val wrapped: List = try { + listOf(api.getQualitySelector(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } run { val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", codec) if (api != null) { @@ -4809,6 +4829,12 @@ class RecorderProxyApi extends PigeonApiRecorder { return pigeon_instance.getTargetVideoEncodingBitRate(); } + @NonNull + @Override + public androidx.camera.video.QualitySelector getQualitySelector(Recorder pigeon_instance) { + return pigeon_instance.getQualitySelector(); + } + @NonNull @Override public androidx.camera.video.PendingRecording prepareRecording(Recorder, pigeon_instance@NonNull String path) { @@ -4869,6 +4895,17 @@ public class RecorderProxyApiTest { assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); } + @Test + public void getQualitySelector() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final androidx.camera.video.QualitySelector value = mock(QualitySelector.class); + when(instance.getQualitySelector()).thenReturn(value); + + assertEquals(value, api.getQualitySelector(instance )); + } + @Test public void prepareRecording() { final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index 33c286fb319..be7a287e1df 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -3902,6 +3902,39 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { } } + /// The quality selector of this Recorder. + Future getQualitySelector() async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecRecorder; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else if (pigeonVar_replyList[0] == null) { + throw PlatformException( + code: 'null-error', + message: 'Host platform returned null value for non-null return value.', + ); + } else { + return (pigeonVar_replyList[0] as QualitySelector?)!; + } + } + /// Prepares a recording that will be saved to a File. Future prepareRecording(String path) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 2a8a04090e1..e855263a39c 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -493,6 +493,9 @@ abstract class Recorder implements VideoOutput { /// Gets the target video encoding bitrate of this Recorder. int getTargetVideoEncodingBitRate(); + /// The quality selector of this Recorder. + QualitySelector getQualitySelector(); + /// Prepares a recording that will be saved to a File. PendingRecording prepareRecording(String path); } diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index ff883d5a545..4ca280f1a49 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -114,6 +114,17 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, })? createWithOnePreferredSizeResolutionFilter, + FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + })? lowerQualityOrHigherThanFallbackStrategy, + QualitySelector Function({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + })? fromQualitySelector, }) { late final CameraXProxy proxy; final AspectRatioStrategy ratio_4_3FallbackAutoStrategyAspectRatioStrategy = @@ -172,7 +183,11 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { - return MockRecorder(); + final MockRecorder mockRecorder = MockRecorder(); + when(mockRecorder.getQualitySelector()).thenAnswer( + (_) async => qualitySelector ?? MockQualitySelector(), + ); + return mockRecorder; }, withOutputVideoCapture: ({ required VideoOutput videoOutput, @@ -230,14 +245,15 @@ void main() { ); return mockResolutionSelector; }, - fromQualitySelector: ({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockQualitySelector(); - }, + fromQualitySelector: fromQualitySelector ?? + ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, newObserver: ({ required void Function(Observer, T) onChanged, BinaryMessenger? pigeon_binaryMessenger, @@ -328,18 +344,27 @@ void main() { sensorOrientationCameraCharacteristics: () { return MockCameraCharacteristicsKey(); }, - lowerQualityOrHigherThanFallbackStrategy: ({ + lowerQualityOrHigherThanFallbackStrategy: + lowerQualityOrHigherThanFallbackStrategy ?? + ({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + highestAvailableStrategyResolutionStrategy: () { + return highestAvailableStrategyResolutionStrategy; + }, + ratio_4_3FallbackAutoStrategyAspectRatioStrategy: () => + ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + lowerQualityThanFallbackStrategy: ({ required VideoQuality quality, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) { return MockFallbackStrategy(); }, - highestAvailableStrategyResolutionStrategy: () { - return highestAvailableStrategyResolutionStrategy; - }, - ratio_4_3FallbackAutoStrategyAspectRatioStrategy: () => - ratio_4_3FallbackAutoStrategyAspectRatioStrategy, ); return proxy; @@ -1388,7 +1413,7 @@ void main() { expect(camera.imageCapture!.resolutionSelector, isNull); expect(camera.imageAnalysis!.resolutionSelector, isNull); }); -/* + test( 'createCamera properly sets preset resolution for video capture use case', () async { @@ -1410,8 +1435,32 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. - camera.proxy = - getProxyForTestingResolutionPreset(mockProcessCameraProvider); + VideoQuality? fallbackStrategyVideoQuality; + VideoQuality? qualitySelectorVideoQuality; + FallbackStrategy? setFallbackStrategy; + final MockFallbackStrategy mockFallbackStrategy = MockFallbackStrategy(); + final MockQualitySelector mockQualitySelector = MockQualitySelector(); + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + fallbackStrategyVideoQuality = quality; + return mockFallbackStrategy; + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + qualitySelectorVideoQuality = quality; + setFallbackStrategy = fallbackStrategy; + return mockQualitySelector; + }, + ); when(mockProcessCameraProvider.bindToLifecycle(any, any)) .thenAnswer((_) async => mockCamera); @@ -1440,27 +1489,33 @@ void main() { expectedVideoQuality = VideoQuality.highest; } - const VideoResolutionFallbackRule expectedFallbackRule = - VideoResolutionFallbackRule.lowerQualityOrHigherThan; - final FallbackStrategy expectedFallbackStrategy = - FallbackStrategy.detached( - quality: expectedVideoQuality, - fallbackRule: expectedFallbackRule); - - expect(camera.recorder!.qualitySelector!.qualityList.length, equals(1)); - expect(camera.recorder!.qualitySelector!.qualityList.first.quality, - equals(expectedVideoQuality)); - expect(camera.recorder!.qualitySelector!.fallbackStrategy!.quality, - equals(expectedFallbackStrategy.quality)); - expect(camera.recorder!.qualitySelector!.fallbackStrategy!.fallbackRule, - equals(expectedFallbackStrategy.fallbackRule)); + // const VideoResolutionFallbackRule expectedFallbackRule = + // VideoResolutionFallbackRule.lowerQualityOrHigherThan; + // final FallbackStrategy expectedFallbackStrategy = + // FallbackStrategy.detached( + // quality: expectedVideoQuality, + // fallbackRule: expectedFallbackRule); + + expect( + await camera.recorder!.getQualitySelector(), + mockQualitySelector, + ); + expect(qualitySelectorVideoQuality, equals(expectedVideoQuality)); + expect(fallbackStrategyVideoQuality, equals(expectedVideoQuality)); + expect(setFallbackStrategy, equals(mockFallbackStrategy)); } + qualitySelectorVideoQuality = null; + setFallbackStrategy = null; + // Test null case. await camera.createCamera(testCameraDescription, null); - expect(camera.recorder!.qualitySelector, isNull); + expect( + await camera.recorder!.getQualitySelector(), + isNot(equals(mockQualitySelector)), + ); }); - +/* test( 'createCamera sets sensor and device orientations needed to correct preview rotation as expected', () async { diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index de50adab958..ad38a4186c4 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -3383,6 +3383,30 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { returnValueForMissingStub: _i5.Future.value(0), ) as _i5.Future); + @override + _i5.Future<_i2.QualitySelector> getQualitySelector() => (super.noSuchMethod( + Invocation.method( + #getQualitySelector, + [], + ), + returnValue: + _i5.Future<_i2.QualitySelector>.value(_FakeQualitySelector_27( + this, + Invocation.method( + #getQualitySelector, + [], + ), + )), + returnValueForMissingStub: + _i5.Future<_i2.QualitySelector>.value(_FakeQualitySelector_27( + this, + Invocation.method( + #getQualitySelector, + [], + ), + )), + ) as _i5.Future<_i2.QualitySelector>); + @override _i5.Future<_i2.PendingRecording> prepareRecording(String? path) => (super.noSuchMethod( From 0525d5376ca04a8983e0a26b64647c55a704f047 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 23 Jan 2025 19:01:54 -0500 Subject: [PATCH 041/148] another test --- .../test/android_camera_camerax_test.dart | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 4ca280f1a49..b9f66222ecc 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -1515,13 +1515,13 @@ void main() { isNot(equals(mockQualitySelector)), ); }); -/* + test( 'createCamera sets sensor and device orientations needed to correct preview rotation as expected', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 270; + const int testSensorOrientation = 90; const CameraDescription testCameraDescription = CameraDescription( name: 'cameraName', lensDirection: testLensDirection, @@ -1536,19 +1536,12 @@ void main() { final MockProcessCameraProvider mockProcessCameraProvider = MockProcessCameraProvider(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // The proxy needed for this test is the same as testing resolution - // presets except for mocking the retrievall of the sensor and current + // presets except for mocking the retrieval of the sensor and current // UI orientation. camera.proxy = getProxyForTestingResolutionPreset(mockProcessCameraProvider); - camera.proxy.getSensorOrientation = - (_) async => Future.value(testSensorOrientation); - camera.proxy.getUiOrientation = - () async => Future.value(testUiOrientation); when(mockProcessCameraProvider.bindToLifecycle(any, any)) .thenAnswer((_) async => mockCamera); @@ -1561,7 +1554,7 @@ void main() { expect(camera.sensorOrientation, testSensorOrientation); }); - +/* test( 'initializeCamera throws a CameraException when createCamera has not been called before initializedCamera', () async { From 6ba035ee5ffe4af1766bacb10690bf030371bb85 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 23 Jan 2025 19:21:33 -0500 Subject: [PATCH 042/148] another test --- .../test/android_camera_camerax_test.dart | 197 ++++++++++++++---- 1 file changed, 157 insertions(+), 40 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index b9f66222ecc..ccd92e72d9a 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -1554,7 +1554,7 @@ void main() { expect(camera.sensorOrientation, testSensorOrientation); }); -/* + test( 'initializeCamera throws a CameraException when createCamera has not been called before initializedCamera', () async { @@ -1577,8 +1577,17 @@ void main() { const int resolutionWidth = 350; const int resolutionHeight = 750; final Camera mockCamera = MockCamera(); - final ResolutionInfo testResolutionInfo = - ResolutionInfo(width: resolutionWidth, height: resolutionHeight); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ResolutionInfo testResolutionInfo = ResolutionInfo.pigeon_detached( + resolution: CameraSize.pigeon_detached( + width: resolutionWidth, + height: resolutionHeight, + pigeon_instanceManager: testInstanceManager, + ), + pigeon_instanceManager: testInstanceManager, + ); // Mocks for (typically attached) objects created by createCamera. final MockProcessCameraProvider mockProcessCameraProvider = @@ -1589,53 +1598,161 @@ void main() { final MockPreview mockPreview = MockPreview(); final MockImageCapture mockImageCapture = MockImageCapture(); final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Tell plugin to create mock/detached objects for testing createCamera // as needed. camera.proxy = CameraXProxy( - getProcessCameraProvider: () => + getInstanceProcessCameraProvider: ({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => Future.value(mockProcessCameraProvider), - createCameraSelector: (int cameraSelectorLensDirection) { - switch (cameraSelectorLensDirection) { - case CameraSelector.lensFacingFront: + newCameraSelector: ({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: return mockFrontCameraSelector; - case CameraSelector.lensFacingBack: - default: + case _: return mockBackCameraSelector; } }, - createPreview: (_, __) => mockPreview, - createImageCapture: (_, __) => mockImageCapture, - createRecorder: (QualitySelector? qualitySelector) => MockRecorder(), - createVideoCapture: (_) => Future.value(MockVideoCapture()), - createImageAnalysis: (_, __) => mockImageAnalysis, - createResolutionStrategy: ( - {bool highestAvailable = false, - Size? boundSize, - int? fallbackRule}) => + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockPreview, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockImageCapture, + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockRecorder(), + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockVideoCapture(), + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockImageAnalysis, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => MockResolutionStrategy(), - createResolutionSelector: (_, __, ___) => MockResolutionSelector(), - createFallbackStrategy: ( - {required VideoQuality quality, - required VideoResolutionFallbackRule fallbackRule}) => + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockResolutionSelector(), + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => MockFallbackStrategy(), - createQualitySelector: ( - {required VideoQuality videoQuality, - required FallbackStrategy fallbackStrategy}) => + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => MockQualitySelector(), - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - requestCameraPermissions: (_) => Future.value(), - startListeningForDeviceOrientationChange: (_, __) {}, - createAspectRatioStrategy: (_, __) => MockAspectRatioStrategy(), - createResolutionFilterWithOnePreferredSize: (_) => MockResolutionFilter(), - getCamera2CameraInfo: (_) => - Future.value(MockCamera2CameraInfo()), - getUiOrientation: () => - Future.value(DeviceOrientation.portraitUp), + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockSystemServicesManager(), + newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }, + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockAspectRatioStrategy(), + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockResolutionFilter(), + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => 90); + return mockCamera2CameraInfo; + }, + newCameraSize: ({ + required int width, + required int height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockCameraSize(), + sensorOrientationCameraCharacteristics: () => + MockCameraCharacteristicsKey(), ); final CameraInitializedEvent testCameraInitializedEvent = @@ -1649,7 +1766,7 @@ void main() { true); // Call createCamera. - when(mockPreview.setSurfaceProvider()).thenAnswer((_) async => cameraId); + when(mockPreview.setSurfaceProvider(any)).thenAnswer((_) async => cameraId); when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, [mockPreview, mockImageCapture, mockImageAnalysis])) @@ -1682,7 +1799,7 @@ void main() { // Check camera instance was received. expect(camera.camera, isNotNull); }); - +/* test( 'dispose releases Flutter surface texture, removes camera state observers, and unbinds all use cases', () async { From bf12f84340ab3f4a8bb77c7dd605315308d76cd5 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 23 Jan 2025 19:22:50 -0500 Subject: [PATCH 043/148] more passing tests --- .../test/android_camera_camerax_test.dart | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index ccd92e72d9a..53c613f327e 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -1528,7 +1528,6 @@ void main() { sensorOrientation: testSensorOrientation); const bool enableAudio = true; const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; - const DeviceOrientation testUiOrientation = DeviceOrientation.portraitDown; // Mock/Detached objects for (typically attached) objects created by // createCamera. @@ -1799,7 +1798,7 @@ void main() { // Check camera instance was received. expect(camera.camera, isNotNull); }); -/* + test( 'dispose releases Flutter surface texture, removes camera state observers, and unbinds all use cases', () async { @@ -1812,7 +1811,7 @@ void main() { await camera.dispose(3); - verify(camera.preview!.releaseFlutterSurfaceTexture()); + verify(camera.preview!.releaseSurfaceProvider()); verify(camera.liveCameraState!.removeObservers()); verify(camera.processCameraProvider!.unbindAll()); verify(camera.imageAnalysis!.clearAnalyzer()); @@ -1850,7 +1849,7 @@ void main() { expect(await streamQueue.next, equals(cameraClosingEvent)); await streamQueue.cancel(); }); - +/* test( 'onCameraError stream emits errors caught by system services or added to stream within plugin', () async { From 1b1e183cf2701ef35ca0ff045398a6f3b713228d Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 23 Jan 2025 19:27:53 -0500 Subject: [PATCH 044/148] fix systerm service test --- .../test/android_camera_camerax_test.dart | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 53c613f327e..66620e56fd0 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -1849,7 +1849,7 @@ void main() { expect(await streamQueue.next, equals(cameraClosingEvent)); await streamQueue.cancel(); }); -/* + test( 'onCameraError stream emits errors caught by system services or added to stream within plugin', () async { @@ -1863,7 +1863,24 @@ void main() { final StreamQueue streamQueue = StreamQueue(eventStream); - SystemServices.cameraErrorStreamController.add(firstTestErrorDescription); + camera.proxy = CameraXProxy(newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.onCameraError).thenReturn(onCameraError); + return mockSystemServicesManager; + }); + + camera.systemServicesManager.onCameraError( + camera.systemServicesManager, + firstTestErrorDescription, + ); expect(await streamQueue.next, equals(const CameraErrorEvent(cameraId, firstTestErrorDescription))); @@ -1872,7 +1889,7 @@ void main() { await streamQueue.cancel(); }); - +/* test( 'onDeviceOrientationChanged stream emits changes in device orientation detected by system services', () async { From b22548e08348641e30bf622577fd98d4e23c4ab0 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 15:46:27 -0500 Subject: [PATCH 045/148] 18 out of 91 tests --- .../test/android_camera_camerax_test.dart | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 66620e56fd0..52c9837b64d 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -1889,7 +1889,7 @@ void main() { await streamQueue.cancel(); }); -/* + test( 'onDeviceOrientationChanged stream emits changes in device orientation detected by system services', () async { @@ -1901,8 +1901,26 @@ void main() { const DeviceOrientationChangedEvent testEvent = DeviceOrientationChangedEvent(DeviceOrientation.portraitDown); - DeviceOrientationManager.deviceOrientationChangedStreamController - .add(testEvent); + camera.proxy = CameraXProxy(newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager mockDeviceOrientationManager = + MockDeviceOrientationManager(); + when(mockDeviceOrientationManager.onDeviceOrientationChanged).thenReturn( + onDeviceOrientationChanged, + ); + return mockDeviceOrientationManager; + }); + + camera.deviceOrientationManager.onDeviceOrientationChanged( + camera.deviceOrientationManager, + 'PORTRAIT_DOWN', + ); expect(await streamQueue.next, testEvent); await streamQueue.cancel(); @@ -2020,7 +2038,7 @@ void main() { expect(camera.cameraInfo, equals(mockCameraInfo)); expect(camera.cameraControl, equals(mockCameraControl)); }); - +/* test( 'buildPreview throws an exception if the preview is not bound to the lifecycle', () async { From 0010badd2d2110f67893af343f096e23dd72b214 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 15:49:04 -0500 Subject: [PATCH 046/148] 21 tests --- .../test/android_camera_camerax_test.dart | 324 +++++++++--------- 1 file changed, 167 insertions(+), 157 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 52c9837b64d..200cf3f1341 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -2011,9 +2011,19 @@ void main() { // track camera state once preview is bound to the lifecycle and needed to // test for expected updates. camera.proxy = CameraXProxy( - createCameraStateObserver: - (void Function(Object stateAsObject) onChanged) => - Observer.detached(onChanged: onChanged)); + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); when(mockProcessCameraProvider .bindToLifecycle(camera.cameraSelector, [camera.preview!])) @@ -2021,8 +2031,8 @@ void main() { when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); when(mockCameraInfo.getCameraState()) .thenAnswer((_) async => mockLiveCameraState); - when(mockCamera.getCameraControl()) - .thenAnswer((_) async => mockCameraControl); + when(mockCamera.cameraControl) + .thenReturn(mockCameraControl); await camera.resumePreview(78); @@ -2038,7 +2048,7 @@ void main() { expect(camera.cameraInfo, equals(mockCameraInfo)); expect(camera.cameraControl, equals(mockCameraControl)); }); -/* + test( 'buildPreview throws an exception if the preview is not bound to the lifecycle', () async { @@ -2068,7 +2078,7 @@ void main() { expect(widget is Texture, isTrue); expect((widget as Texture).textureId, cameraId); }); - +/* group('video recording', () { test( 'startVideoCapturing binds video capture use case, updates saved camera instance and its properties, and starts the recording', @@ -4976,153 +4986,153 @@ void main() { */ } -MockCameraXProxy createProxyWithMocks() { - final MockCameraXProxy mockProxy = MockCameraXProxy(); - - when(mockProxy.newAnalyzer).thenReturn(({ - required void Function(Analyzer, ImageProxy) analyze, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockAnalyzer(); - }); - when(mockProxy.newAspectRatioStrategy).thenReturn(({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockAspectRatioStrategy(); - }); - when(mockProxy.getInstanceProcessCameraProvider).thenReturn(({ - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) async { - return MockProcessCameraProvider(); - }); - when(mockProxy.newCameraSelector).thenReturn(({ - LensFacing? requireLensFacing, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockCameraSelector(); - }); - when(mockProxy.newPreview).thenReturn(({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockPreview(); - }); - when(mockProxy.newImageCapture).thenReturn(({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockImageCapture(); - }); - when(mockProxy.newRecorder).thenReturn(({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockRecorder(); - }); - when(mockProxy.withOutputVideoCapture).thenReturn(({ - required VideoOutput videoOutput, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockVideoCapture(); - }); - when(mockProxy.newImageAnalysis).thenReturn(({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockImageAnalysis(); - }); - when(mockProxy.newResolutionStrategy).thenReturn(({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionStrategy(); - }); - when(mockProxy.newResolutionSelector).thenReturn(({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionSelector(); - }); - when(mockProxy.lowerQualityThanFallbackStrategy).thenReturn(({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }); - when(mockProxy.fromQualitySelector).thenReturn(({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockQualitySelector(); - }); - when(mockProxy.newObserver).thenReturn(Observer.detached); - when(mockProxy.createWithOnePreferredSizeResolutionFilter).thenReturn(({ - required CameraSize preferredSize, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }); - when(mockProxy.fromCamera2CameraInfo).thenReturn(({ - required CameraInfo cameraInfo, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockCamera2CameraInfo(); - }); - when(mockProxy.newDeviceOrientationManager).thenReturn(({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockDeviceOrientationManager(); - }); - when(mockProxy.newSystemServicesManager).thenReturn(({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockSystemServicesManager(); - }); - - // return CameraXProxy( - // startListeningForDeviceOrientationChange: (_, __) { - // startedListeningForDeviceOrientationChanges = true; - // }, - // getUiOrientation: () => - // Future.value(DeviceOrientation.portraitUp), - // ); - - return mockProxy; -} +// MockCameraXProxy createProxyWithMocks() { +// final MockCameraXProxy mockProxy = MockCameraXProxy(); +// +// when(mockProxy.newAnalyzer).thenReturn(({ +// required void Function(Analyzer, ImageProxy) analyze, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockAnalyzer(); +// }); +// when(mockProxy.newAspectRatioStrategy).thenReturn(({ +// required AspectRatio preferredAspectRatio, +// required AspectRatioStrategyFallbackRule fallbackRule, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockAspectRatioStrategy(); +// }); +// when(mockProxy.getInstanceProcessCameraProvider).thenReturn(({ +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) async { +// return MockProcessCameraProvider(); +// }); +// when(mockProxy.newCameraSelector).thenReturn(({ +// LensFacing? requireLensFacing, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockCameraSelector(); +// }); +// when(mockProxy.newPreview).thenReturn(({ +// int? targetRotation, +// ResolutionSelector? resolutionSelector, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockPreview(); +// }); +// when(mockProxy.newImageCapture).thenReturn(({ +// int? targetRotation, +// CameraXFlashMode? flashMode, +// ResolutionSelector? resolutionSelector, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockImageCapture(); +// }); +// when(mockProxy.newRecorder).thenReturn(({ +// int? aspectRatio, +// int? targetVideoEncodingBitRate, +// QualitySelector? qualitySelector, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockRecorder(); +// }); +// when(mockProxy.withOutputVideoCapture).thenReturn(({ +// required VideoOutput videoOutput, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockVideoCapture(); +// }); +// when(mockProxy.newImageAnalysis).thenReturn(({ +// int? targetRotation, +// ResolutionSelector? resolutionSelector, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockImageAnalysis(); +// }); +// when(mockProxy.newResolutionStrategy).thenReturn(({ +// required CameraSize boundSize, +// required ResolutionStrategyFallbackRule fallbackRule, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockResolutionStrategy(); +// }); +// when(mockProxy.newResolutionSelector).thenReturn(({ +// AspectRatioStrategy? aspectRatioStrategy, +// ResolutionStrategy? resolutionStrategy, +// ResolutionFilter? resolutionFilter, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockResolutionSelector(); +// }); +// when(mockProxy.lowerQualityThanFallbackStrategy).thenReturn(({ +// required VideoQuality quality, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockFallbackStrategy(); +// }); +// when(mockProxy.fromQualitySelector).thenReturn(({ +// required VideoQuality quality, +// FallbackStrategy? fallbackStrategy, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockQualitySelector(); +// }); +// when(mockProxy.newObserver).thenReturn(Observer.detached); +// when(mockProxy.createWithOnePreferredSizeResolutionFilter).thenReturn(({ +// required CameraSize preferredSize, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockResolutionFilter(); +// }); +// when(mockProxy.fromCamera2CameraInfo).thenReturn(({ +// required CameraInfo cameraInfo, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockCamera2CameraInfo(); +// }); +// when(mockProxy.newDeviceOrientationManager).thenReturn(({ +// required void Function( +// DeviceOrientationManager, +// String, +// ) onDeviceOrientationChanged, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockDeviceOrientationManager(); +// }); +// when(mockProxy.newSystemServicesManager).thenReturn(({ +// required void Function( +// SystemServicesManager, +// String, +// ) onCameraError, +// BinaryMessenger? pigeon_binaryMessenger, +// PigeonInstanceManager? pigeon_instanceManager, +// }) { +// return MockSystemServicesManager(); +// }); +// +// // return CameraXProxy( +// // startListeningForDeviceOrientationChange: (_, __) { +// // startedListeningForDeviceOrientationChanges = true; +// // }, +// // getUiOrientation: () => +// // Future.value(DeviceOrientation.portraitUp), +// // ); +// +// return mockProxy; +// } From 4857bf16f37e56af973bff16626eb342e36f2c42 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:47:04 -0500 Subject: [PATCH 047/148] 22 tests --- .../lib/src/android_camera_camerax.dart | 2 +- .../test/android_camera_camerax_test.dart | 95 ++++++++++++++----- 2 files changed, 73 insertions(+), 24 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 5f2b6de98c8..ba6d743398e 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -1024,7 +1024,7 @@ class AndroidCameraCameraX extends CameraPlatform { // Wait for video recording to start. VideoRecordEvent event = await videoRecordingEventStreamQueue.next; - while (event is VideoRecordEventStart) { + while (event is! VideoRecordEventStart) { event = await videoRecordingEventStreamQueue.next; } } diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 200cf3f1341..e5ff950e84d 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -2031,8 +2031,7 @@ void main() { when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); when(mockCameraInfo.getCameraState()) .thenAnswer((_) async => mockLiveCameraState); - when(mockCamera.cameraControl) - .thenReturn(mockCameraControl); + when(mockCamera.cameraControl).thenReturn(mockCameraControl); await camera.resumePreview(78); @@ -2078,7 +2077,7 @@ void main() { expect(widget is Texture, isTrue); expect((widget as Texture).textureId, cameraId); }); -/* + group('video recording', () { test( 'startVideoCapturing binds video capture use case, updates saved camera instance and its properties, and starts the recording', @@ -2095,9 +2094,6 @@ void main() { final MockLiveCameraState newMockLiveCameraState = MockLiveCameraState(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Set directly for test versus calling createCamera. camera.processCameraProvider = MockProcessCameraProvider(); @@ -2109,25 +2105,72 @@ void main() { camera.cameraInfo = MockCameraInfo(); camera.imageAnalysis = MockImageAnalysis(); - // Ignore setting target rotation for this test; tested seprately. + // Ignore setting target rotation for this test; tested separately. camera.captureOrientationLocked = true; // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); const int cameraId = 17; - const String outputPath = '/temp/REC123.temp'; // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(mockPendingRecording.start(any)) + .thenAnswer((_) async => mockRecording); when(camera.processCameraProvider!.isBound(camera.videoCapture!)) .thenAnswer((_) async => false); when(camera.processCameraProvider!.bindToLifecycle( @@ -2135,16 +2178,21 @@ void main() { .thenAnswer((_) async => newMockCamera); when(newMockCamera.getCameraInfo()) .thenAnswer((_) async => mockCameraInfo); - when(newMockCamera.getCameraControl()) - .thenAnswer((_) async => mockCameraControl); + when(newMockCamera.cameraControl).thenReturn(mockCameraControl); when(mockCameraInfo.getCameraState()) .thenAnswer((_) async => newMockLiveCameraState); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); + when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( + (_) async => InfoSupportedHardwareLevel.limited, + ); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -2168,7 +2216,7 @@ void main() { expect(camera.pendingRecording, equals(mockPendingRecording)); expect(camera.recording, mockRecording); }); - +/* test( 'startVideoCapturing binds video capture use case and starts the recording' ' on first call, and does nothing on second call', () async { @@ -2593,8 +2641,9 @@ void main() { verifyNoMoreInteractions(camera.videoCapture); verifyNoMoreInteractions(camera.camera); }); + */ }); - +/* test( 'takePicture binds ImageCapture to lifecycle and makes call to take a picture', () async { From f0247d00e96a8600db58e75241410532d520b2a4 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 16:59:20 -0500 Subject: [PATCH 048/148] 23 --- .../test/android_camera_camerax_test.dart | 184 ++++++++++++++---- 1 file changed, 146 insertions(+), 38 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index e5ff950e84d..17588187206 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -2216,7 +2216,7 @@ void main() { expect(camera.pendingRecording, equals(mockPendingRecording)); expect(camera.recording, mockRecording); }); -/* + test( 'startVideoCapturing binds video capture use case and starts the recording' ' on first call, and does nothing on second call', () async { @@ -2228,9 +2228,6 @@ void main() { final MockCameraInfo mockCameraInfo = MockCameraInfo(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Set directly for test versus calling createCamera. camera.processCameraProvider = MockProcessCameraProvider(); @@ -2244,21 +2241,68 @@ void main() { camera.captureOrientationLocked = true; // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); const int cameraId = 17; - const String outputPath = '/temp/REC123.temp'; // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(mockPendingRecording.start(any)) + .thenAnswer((_) async => mockRecording); when(camera.processCameraProvider!.isBound(camera.videoCapture!)) .thenAnswer((_) async => false); when(camera.processCameraProvider!.bindToLifecycle( @@ -2268,12 +2312,18 @@ void main() { .thenAnswer((_) => Future.value(mockCameraInfo)); when(mockCameraInfo.getCameraState()) .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - (_) async => CameraMetadata.infoSupportedHardwareLevelLimited); + when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( + (_) async => InfoSupportedHardwareLevel.limited, + ); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -2284,12 +2334,14 @@ void main() { await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); // Verify that each of these calls happened only once. - verify(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .called(1); - verifyNoMoreInteractions(mockSystemServicesApi); + verify( + camera.systemServicesManager + .getTempFilePath(camera.videoPrefix, '.temp'), + ).called(1); + verifyNoMoreInteractions(camera.systemServicesManager); verify(camera.recorder!.prepareRecording(outputPath)).called(1); verifyNoMoreInteractions(camera.recorder); - verify(mockPendingRecording.start()).called(1); + verify(mockPendingRecording.start(any)).called(1); verifyNoMoreInteractions(mockPendingRecording); }); @@ -2305,9 +2357,6 @@ void main() { final MockCameraInfo initialCameraInfo = MockCameraInfo(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Set directly for test versus calling createCamera. @@ -2324,17 +2373,72 @@ void main() { camera.captureOrientationLocked = true; // Tell plugin to create detached Analyzer for testing. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze), - getCamera2CameraInfo: (CameraInfo cameraInfo) async => - cameraInfo == initialCameraInfo - ? mockCamera2CameraInfo - : MockCamera2CameraInfo()); + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAnalyzer(); + }, + ); const int cameraId = 17; - const String outputPath = '/temp/REC123.temp'; final Completer imageDataCompleter = Completer(); final VideoCaptureOptions videoCaptureOptions = VideoCaptureOptions( @@ -2347,20 +2451,24 @@ void main() { .thenAnswer((_) async => true); when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) .thenAnswer((_) async => true); - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); when(mockProcessCameraProvider.bindToLifecycle(any, any)) .thenAnswer((_) => Future.value(camera.camera)); when(camera.camera!.getCameraInfo()) .thenAnswer((_) => Future.value(MockCameraInfo())); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); + when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( + (_) async => InfoSupportedHardwareLevel.level3, + ); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.startVideoCapturing(videoCaptureOptions); @@ -2370,7 +2478,7 @@ void main() { expect(imageDataCompleter.future, isNotNull); await camera.cameraImageDataStreamController!.close(); }); - +/* test( 'startVideoCapturing sets VideoCapture target rotation to current video orientation if orientation unlocked', () async { From 01e5f28978e2cdef2bad0eb148a498f161d9bdb9 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 20:41:47 -0500 Subject: [PATCH 049/148] 25 --- .../test/android_camera_camerax_test.dart | 130 ++++++++++++++---- 1 file changed, 107 insertions(+), 23 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 17588187206..fa5e3fda465 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -2478,7 +2478,7 @@ void main() { expect(imageDataCompleter.future, isNotNull); await camera.cameraImageDataStreamController!.close(); }); -/* + test( 'startVideoCapturing sets VideoCapture target rotation to current video orientation if orientation unlocked', () async { @@ -2490,9 +2490,6 @@ void main() { final MockCameraInfo initialCameraInfo = MockCameraInfo(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); const int defaultTargetRotation = Surface.rotation270; // Set directly for test versus calling createCamera. @@ -2505,31 +2502,103 @@ void main() { camera.cameraInfo = initialCameraInfo; // Tell plugin to mock call to get current video orientation and mock Camera2CameraInfo retrieval. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - getDefaultDisplayRotation: () => - Future.value(defaultTargetRotation), - getCamera2CameraInfo: (CameraInfo cameraInfo) async => - cameraInfo == initialCameraInfo - ? mockCamera2CameraInfo - : MockCamera2CameraInfo()); + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + cameraInfo == initialCameraInfo + ? mockCamera2CameraInfo + : MockCamera2CameraInfo(), + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager mockDeviceOrientationManager = + MockDeviceOrientationManager(); + when(mockDeviceOrientationManager.getDefaultDisplayRotation()) + .thenAnswer( + (_) async => defaultTargetRotation, + ); + return mockDeviceOrientationManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); const int cameraId = 87; - const String outputPath = '/temp/REC123.temp'; // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(mockPendingRecording.start(any)).thenAnswer( + (_) async => mockRecording, + ); when(camera.processCameraProvider!.isBound(camera.videoCapture!)) .thenAnswer((_) async => true); when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) .thenAnswer((_) async => false); + when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( + (_) async => InfoSupportedHardwareLevel.limited, + ); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); // Orientation is unlocked and plugin does not need to set default target // rotation manually. @@ -2538,8 +2607,13 @@ void main() { verifyNever(mockVideoCapture.setTargetRotation(any)); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); // Orientation is locked and plugin does not need to set default target // rotation manually. @@ -2549,8 +2623,13 @@ void main() { verifyNever(mockVideoCapture.setTargetRotation(any)); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); // Orientation is locked and plugin does need to set default target // rotation manually. @@ -2561,8 +2640,13 @@ void main() { verifyNever(mockVideoCapture.setTargetRotation(any)); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); // Orientation is unlocked and plugin does need to set default target // rotation manually. @@ -2572,7 +2656,7 @@ void main() { await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); verify(mockVideoCapture.setTargetRotation(defaultTargetRotation)); }); - +/* test('pauseVideoRecording pauses the recording', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); final MockRecording recording = MockRecording(); From 1f4c594f0a7062166900ca77bec8552171634656 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 20:48:29 -0500 Subject: [PATCH 050/148] 29 --- .../lib/src/android_camera_camerax.dart | 2 +- .../test/android_camera_camerax_test.dart | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index ba6d743398e..cd0dc9ff3d8 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -1047,7 +1047,7 @@ class AndroidCameraCameraX extends CameraPlatform { /// Stop the active recording and wait for the video recording to be finalized. await recording!.close(); VideoRecordEvent event = await videoRecordingEventStreamQueue.next; - while (event is VideoRecordEventFinalize) { + while (event is! VideoRecordEventFinalize) { event = await videoRecordingEventStreamQueue.next; } recording = null; diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index fa5e3fda465..6b904ffdb2e 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -2656,7 +2656,7 @@ void main() { await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); verify(mockVideoCapture.setTargetRotation(defaultTargetRotation)); }); -/* + test('pauseVideoRecording pauses the recording', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); final MockRecording recording = MockRecording(); @@ -2700,8 +2700,13 @@ void main() { .thenAnswer((_) async => true); // Simulate video recording being finalized so stopVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.finalize); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventFinalize.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); final XFile file = await camera.stopVideoRecording(0); expect(file.path, videoOutputPath); @@ -2725,7 +2730,7 @@ void main() { await camera.stopVideoRecording(0); }, throwsA(isA())); }); - +/* test( 'stopVideoRecording throws a camera exception if ' 'videoOutputPath is null, and sets recording to null', () async { From bb0166bb7d73f097bbf1bde0273473929d716776 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 20:50:21 -0500 Subject: [PATCH 051/148] 34 --- .../test/android_camera_camerax_test.dart | 49 ++++++++++++++----- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 6b904ffdb2e..773c8d8d087 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -2730,7 +2730,7 @@ void main() { await camera.stopVideoRecording(0); }, throwsA(isA())); }); -/* + test( 'stopVideoRecording throws a camera exception if ' 'videoOutputPath is null, and sets recording to null', () async { @@ -2750,8 +2750,13 @@ void main() { await expectLater(() async { // Simulate video recording being finalized so stopVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.finalize); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventFinalize.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.stopVideoRecording(0); }, throwsA(isA())); expect(camera.recording, null); @@ -2774,8 +2779,13 @@ void main() { camera.videoOutputPath = videoOutputPath; // Simulate video recording being finalized so stopVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.finalize); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventFinalize.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); final XFile file = await camera.stopVideoRecording(0); expect(file.path, videoOutputPath); @@ -2806,8 +2816,13 @@ void main() { .thenAnswer((_) async => true); // Simulate video recording being finalized so stopVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.finalize); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventFinalize.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.stopVideoRecording(90); verify(processCameraProvider.unbind([videoCapture])); @@ -2838,9 +2853,8 @@ void main() { verifyNoMoreInteractions(camera.videoCapture); verifyNoMoreInteractions(camera.camera); }); - */ }); -/* + test( 'takePicture binds ImageCapture to lifecycle and makes call to take a picture', () async { @@ -2861,8 +2875,19 @@ void main() { // Tell plugin to create detached camera state observers. camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged)); + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); when(mockProcessCameraProvider.isBound(camera.imageCapture)) .thenAnswer((_) async => false); @@ -2879,7 +2904,7 @@ void main() { expect(imageFile.path, equals(testPicturePath)); }); - +/* test( 'takePicture sets ImageCapture target rotation to currrent photo rotation when orientation unlocked', () async { From 6ff4f08e663abcba6fb25d2589017080a3600a13 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 20:57:12 -0500 Subject: [PATCH 052/148] 40 --- .../test/android_camera_camerax_test.dart | 52 +++++++++++++------ 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 773c8d8d087..853f2032013 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -2904,7 +2904,7 @@ void main() { expect(imageFile.path, equals(testPicturePath)); }); -/* + test( 'takePicture sets ImageCapture target rotation to currrent photo rotation when orientation unlocked', () async { @@ -2922,8 +2922,23 @@ void main() { // Tell plugin to mock call to get current photo orientation. camera.proxy = CameraXProxy( - getDefaultDisplayRotation: () => - Future.value(defaultTargetRotation)); + newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager mockDeviceOrientationManager = + MockDeviceOrientationManager(); + when(mockDeviceOrientationManager.getDefaultDisplayRotation()) + .thenAnswer( + (_) async => defaultTargetRotation, + ); + return mockDeviceOrientationManager; + }, + ); when(mockProcessCameraProvider.isBound(camera.imageCapture)) .thenAnswer((_) async => true); @@ -2976,7 +2991,7 @@ void main() { await camera.setFlashMode(cameraId, FlashMode.torch); await camera.takePicture(cameraId); - verify(camera.imageCapture!.setFlashMode(ImageCapture.flashModeOff)); + verify(camera.imageCapture!.setFlashMode(CameraXFlashMode.off)); }); test( @@ -3002,14 +3017,14 @@ void main() { for (final FlashMode flashMode in FlashMode.values) { await camera.setFlashMode(cameraId, flashMode); - int? expectedFlashMode; + CameraXFlashMode? expectedFlashMode; switch (flashMode) { case FlashMode.off: - expectedFlashMode = ImageCapture.flashModeOff; + expectedFlashMode = CameraXFlashMode.off; case FlashMode.auto: - expectedFlashMode = ImageCapture.flashModeAuto; + expectedFlashMode = CameraXFlashMode.auto; case FlashMode.always: - expectedFlashMode = ImageCapture.flashModeOn; + expectedFlashMode = CameraXFlashMode.on; case FlashMode.torch: expectedFlashMode = null; } @@ -3069,22 +3084,29 @@ void main() { test('getMinExposureOffset returns expected exposure offset', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); // Set directly for test versus calling createCamera. camera.cameraInfo = mockCameraInfo; - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); + when(mockCameraInfo.exposureState).thenReturn(exposureState); // We expect the minimum exposure to be the minimum exposure compensation * exposure compensation step. // Delta is included due to avoid catching rounding errors. expect(await camera.getMinExposureOffset(35), closeTo(0.6, 0.0000000001)); }); - +/* test('getMaxExposureOffset returns expected exposure offset', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); From 9248b1fd5a6ef108a56d818a0dffbb96271e6dda Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 21:01:03 -0500 Subject: [PATCH 053/148] 47 --- .../test/android_camera_camerax_test.dart | 79 +++++++++++++------ 1 file changed, 55 insertions(+), 24 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 853f2032013..229be75cff5 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -3106,20 +3106,27 @@ void main() { // Delta is included due to avoid catching rounding errors. expect(await camera.getMinExposureOffset(35), closeTo(0.6, 0.0000000001)); }); -/* + test('getMaxExposureOffset returns expected exposure offset', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); // Set directly for test versus calling createCamera. camera.cameraInfo = mockCameraInfo; - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); + when(mockCameraInfo.exposureState).thenReturn(exposureState); // We expect the maximum exposure to be the maximum exposure compensation * exposure compensation step. expect(await camera.getMaxExposureOffset(35), 0.8); @@ -3128,16 +3135,23 @@ void main() { test('getExposureOffsetStepSize returns expected exposure offset', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); // Set directly for test versus calling createCamera. camera.cameraInfo = mockCameraInfo; - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); + when(mockCameraInfo.exposureState).thenReturn(exposureState); expect(await camera.getExposureOffsetStepSize(55), 0.2); }); @@ -3147,16 +3161,23 @@ void main() { () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 0, maxCompensation: 0), - exposureCompensationStep: 0); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 0, + upper: 0, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0, + pigeon_instanceManager: testInstanceManager, + ); // Set directly for test versus calling createCamera. camera.cameraInfo = mockCameraInfo; - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); + when(mockCameraInfo.exposureState).thenReturn(exposureState); expect(await camera.getExposureOffsetStepSize(55), -1); }); @@ -3166,8 +3187,13 @@ void main() { final MockCameraInfo mockCameraInfo = MockCameraInfo(); const double maxZoomRatio = 1; final LiveData mockLiveZoomState = MockLiveZoomState(); - final ZoomState zoomState = - ZoomState.detached(maxZoomRatio: maxZoomRatio, minZoomRatio: 0); + final ZoomState zoomState = ZoomState.pigeon_detached( + maxZoomRatio: maxZoomRatio, + minZoomRatio: 0, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); // Set directly for test versus calling createCamera. camera.cameraInfo = mockCameraInfo; @@ -3184,8 +3210,13 @@ void main() { final MockCameraInfo mockCameraInfo = MockCameraInfo(); const double minZoomRatio = 0; final LiveData mockLiveZoomState = MockLiveZoomState(); - final ZoomState zoomState = - ZoomState.detached(maxZoomRatio: 1, minZoomRatio: minZoomRatio); + final ZoomState zoomState = ZoomState.pigeon_detached( + maxZoomRatio: 1, + minZoomRatio: minZoomRatio, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); // Set directly for test versus calling createCamera. camera.cameraInfo = mockCameraInfo; @@ -3215,7 +3246,7 @@ void main() { final AndroidCameraCameraX camera = AndroidCameraCameraX(); expect(camera.supportsImageStreaming(), true); }); - +/* test( 'onStreamedFrameAvailable emits CameraImageData when picked up from CameraImageData stream controller', () async { From bcfffc7481d44dbfd8b866a9b5b2be13e593b566 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 26 Jan 2025 21:06:13 -0500 Subject: [PATCH 054/148] 50 --- .../test/android_camera_camerax_test.dart | 77 +++++++++++++++---- 1 file changed, 63 insertions(+), 14 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 229be75cff5..7e77b4802e7 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -3246,7 +3246,7 @@ void main() { final AndroidCameraCameraX camera = AndroidCameraCameraX(); expect(camera.supportsImageStreaming(), true); }); -/* + test( 'onStreamedFrameAvailable emits CameraImageData when picked up from CameraImageData stream controller', () async { @@ -3259,9 +3259,22 @@ void main() { // Tell plugin to create detached Analyzer for testing. camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze)); + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); // Set directly for test versus calling createCamera. camera.processCameraProvider = mockProcessCameraProvider; @@ -3302,9 +3315,22 @@ void main() { // Tell plugin to create detached Analyzer for testing. camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze)); + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); // Set directly for test versus calling createCamera. camera.processCameraProvider = mockProcessCameraProvider; @@ -3362,11 +3388,34 @@ void main() { // Tell plugin to create detached Analyzer for testing. camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze), - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged)); + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); // Set directly for test versus calling createCamera. camera.processCameraProvider = mockProcessCameraProvider; @@ -3408,7 +3457,7 @@ void main() { verify(mockImageAnalysis.setAnalyzer(captureAny)).captured.single as Analyzer; - await capturedAnalyzer.analyze(mockImageProxy); + capturedAnalyzer.analyze(MockAnalyzer(), mockImageProxy); final CameraImageData imageData = await imageDataCompleter.future; @@ -3423,7 +3472,7 @@ void main() { await onStreamedFrameAvailableSubscription.cancel(); }); - +/* test( 'onStreamedFrameAvailable returns stream that responds expectedly to being canceled', () async { From 28fef62eee28318a68f987013cae597d57fceee5 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:44:58 -0500 Subject: [PATCH 055/148] 55 tests passing --- .../plugins/camerax/CameraXLibrary.g.kt | 27 +++- .../lib/src/camerax_library2.g.dart | 18 ++- .../pigeons/camerax_library.dart | 5 +- .../test/android_camera_camerax_test.dart | 122 ++++++++++++------ 4 files changed, 128 insertions(+), 44 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index cbc2ef1f926..7edec873c52 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -9613,6 +9613,9 @@ public class CaptureRequestKeyProxyApiTest { abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(options: Map, Any?>): androidx.camera.camera2.interop.CaptureRequestOptions + /** Capture request option with specific `CaptureRequest.Key` setting. */ + abstract fun options(pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions): Map, Any?> + companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequestOptions?) { @@ -9654,11 +9657,12 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL return } val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val optionsArg = options(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { + channel.send(listOf(pigeon_identifierArg, optionsArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -9698,7 +9702,13 @@ class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { @NonNull @Override public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map, Any?> options) { - return CaptureRequestOptions(options); + return CaptureRequestOptions(); + } + + @NonNull + @Override + public Map, Any?> options(CaptureRequestOptions pigeon_instance) { + return pigeon_instance.getOptions(); } } @@ -9729,7 +9739,18 @@ public class CaptureRequestOptionsProxyApiTest { public void pigeon_defaultConstructor() { final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); - assertTrue(api.pigeon_defaultConstructor(new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}) instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); + assertTrue(api.pigeon_defaultConstructor() instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); + } + + @Test + public void options() { + final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); + + final CaptureRequestOptions instance = mock(CaptureRequestOptions.class); + final Map, Any?> value = new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}; + when(instance.getOptions()).thenReturn(value); + + assertEquals(value, api.options(instance)); } } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart index be7a287e1df..6e2f94b620a 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart @@ -7739,7 +7739,7 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { CaptureRequestOptions({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, - required Map options, + required this.options, }) { final int pigeonVar_instanceIdentifier = pigeon_instanceManager.addDartCreatedInstance(this); @@ -7780,17 +7780,22 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { CaptureRequestOptions.pigeon_detached({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, + required this.options, }); late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecCaptureRequestOptions = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + /// Capture request option with specific `CaptureRequest.Key` setting. + final Map options; + static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CaptureRequestOptions Function()? pigeon_newInstance, + CaptureRequestOptions Function(Map options)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( @@ -7813,13 +7818,19 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { final int? arg_pigeon_instanceIdentifier = (args[0] as int?); assert(arg_pigeon_instanceIdentifier != null, 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null, expected non-null int.'); + final Map? arg_options = + (args[1] as Map?) + ?.cast(); + assert(arg_options != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null, expected non-null Map.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? + pigeon_newInstance?.call(arg_options!) ?? CaptureRequestOptions.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + options: arg_options!, ), arg_pigeon_instanceIdentifier!, ); @@ -7840,6 +7851,7 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { return CaptureRequestOptions.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, + options: options, ); } } diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index e855263a39c..1da813d15c8 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -1120,7 +1120,10 @@ abstract class CaptureRequestKey {} ), ) abstract class CaptureRequestOptions { - CaptureRequestOptions(Map options); + CaptureRequestOptions(); + + /// Capture request option with specific `CaptureRequest.Key` setting. + late final Map options; } /// An class that provides ability to interoperate with the diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 7e77b4802e7..52764642703 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -369,23 +369,23 @@ void main() { return proxy; } - // - // /// CameraXProxy for testing exposure and focus related controls. - // /// - // /// Modifies the creation of [MeteringPoint]s and [FocusMeteringAction]s to - // /// return objects detached from a native object. - // CameraXProxy getProxyForExposureAndFocus() => CameraXProxy( - // createMeteringPoint: - // (double x, double y, double? size, CameraInfo cameraInfo) => - // MeteringPoint.detached( - // x: x, y: y, size: size, cameraInfo: cameraInfo), - // createFocusMeteringAction: - // (List<(MeteringPoint, int?)> meteringPointInfos, - // bool? disableAutoCancel) => - // FocusMeteringAction.detached( - // meteringPointInfos: meteringPointInfos, - // disableAutoCancel: disableAutoCancel), - // ); + + /// CameraXProxy for testing exposure and focus related controls. + /// + /// Modifies the creation of [MeteringPoint]s and [FocusMeteringAction]s to + /// return objects detached from a native object. + CameraXProxy getProxyForExposureAndFocus() => CameraXProxy( + createMeteringPoint: + (double x, double y, double? size, CameraInfo cameraInfo) => + MeteringPoint.detached( + x: x, y: y, size: size, cameraInfo: cameraInfo), + createFocusMeteringAction: + (List<(MeteringPoint, int?)> meteringPointInfos, + bool? disableAutoCancel) => + FocusMeteringAction.detached( + meteringPointInfos: meteringPointInfos, + disableAutoCancel: disableAutoCancel), + ); // // /// CameraXProxy for testing setting focus and exposure points. // /// @@ -3472,7 +3472,7 @@ void main() { await onStreamedFrameAvailableSubscription.cancel(); }); -/* + test( 'onStreamedFrameAvailable returns stream that responds expectedly to being canceled', () async { @@ -3490,7 +3490,17 @@ void main() { camera.captureOrientationLocked = true; // Tell plugin to create a detached analyzer for testing purposes. - camera.proxy = CameraXProxy(createAnalyzer: (_) => MockAnalyzer()); + camera.proxy = CameraXProxy( + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockAnalyzer(), + ); when(mockProcessCameraProvider.isBound(mockImageAnalysis)) .thenAnswer((_) async => true); @@ -3521,9 +3531,31 @@ void main() { // Tell plugin to create a detached analyzer for testing purposes and mock // call to get current photo orientation. camera.proxy = CameraXProxy( - createAnalyzer: (_) => MockAnalyzer(), - getDefaultDisplayRotation: () => - Future.value(defaultTargetRotation)); + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockAnalyzer(), + newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getDefaultDisplayRotation()).thenAnswer((_) async { + return defaultTargetRotation; + }); + return manager; + }, + ); when(mockProcessCameraProvider.isBound(mockImageAnalysis)) .thenAnswer((_) async => true); @@ -3637,14 +3669,34 @@ void main() { // Tell plugin to create detached Camera2CameraControl and // CaptureRequestOptions instances for testing. + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final CaptureRequestKey controlAELockKey = + CaptureRequestKey.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); camera.proxy = CameraXProxy( - getCamera2CameraControl: (CameraControl cameraControl) => + fromCamera2CameraControl: ({ + required CameraControl cameraControl, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => cameraControl == mockCameraControl ? mockCamera2CameraControl - : Camera2CameraControl.detached(cameraControl: cameraControl), - createCaptureRequestOptions: - (List<(CaptureRequestKeySupportedType, Object?)> options) => - CaptureRequestOptions.detached(requestedOptions: options), + : Camera2CameraControl.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + newCaptureRequestOptions: ({ + required Map options, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + CaptureRequestOptions.pigeon_detached( + options: options, + pigeon_instanceManager: testInstanceManager, + ), + controlAELockCaptureRequest: () => controlAELockKey, ); // Test auto mode. @@ -3654,12 +3706,10 @@ void main() { verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); CaptureRequestOptions capturedCaptureRequestOptions = verificationResult.captured.single as CaptureRequestOptions; - List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = - capturedCaptureRequestOptions.requestedOptions; + Map requestedOptions = + capturedCaptureRequestOptions.options; expect(requestedOptions.length, equals(1)); - expect(requestedOptions.first.$1, - equals(CaptureRequestKeySupportedType.controlAeLock)); - expect(requestedOptions.first.$2, equals(false)); + expect(requestedOptions, containsPair(controlAELockKey, false)); // Test locked mode. clearInteractions(mockCamera2CameraControl); @@ -3669,11 +3719,9 @@ void main() { verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); capturedCaptureRequestOptions = verificationResult.captured.single as CaptureRequestOptions; - requestedOptions = capturedCaptureRequestOptions.requestedOptions; + requestedOptions = capturedCaptureRequestOptions.options; expect(requestedOptions.length, equals(1)); - expect(requestedOptions.first.$1, - equals(CaptureRequestKeySupportedType.controlAeLock)); - expect(requestedOptions.first.$2, equals(true)); + expect(requestedOptions, containsPair(controlAELockKey, true)); }); test( @@ -3739,7 +3787,7 @@ void main() { verify(mockCameraControl.cancelFocusAndMetering()); }); - +/* test('setExposurePoint throws CameraException if invalid point specified', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); From b1699e74036af17baac477225f48a3738c744812 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 27 Jan 2025 17:54:12 -0500 Subject: [PATCH 056/148] fix first exposure test --- .../lib/src/android_camera_camerax.dart | 120 +++++-- .../test/android_camera_camerax_test.dart | 161 +++++++--- .../android_camera_camerax_test.mocks.dart | 304 ++++++++++++++++-- 3 files changed, 478 insertions(+), 107 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index cd0dc9ff3d8..83ac99270c6 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -1481,17 +1481,25 @@ class AndroidCameraCameraX extends CameraPlatform { return false; } - late final List newMeteringPoints; - switch (meteringMode) { - case MeteringMode.ae: - newMeteringPoints = currentFocusMeteringAction!.meteringPointsAe; - case MeteringMode.af: - newMeteringPoints = currentFocusMeteringAction!.meteringPointsAf; - case MeteringMode.awb: - newMeteringPoints = currentFocusMeteringAction!.meteringPointsAwb; - } + final Iterable<(MeteringPoint, MeteringMode)> originalMeteringPoints = + _combineMeteringPoints( + currentFocusMeteringAction!, + ); - if (newMeteringPoints.isEmpty) { + // Remove metering point with specified meteringMode from current focus + // and metering action, as only one focus or exposure point may be set + // at once in this plugin. + final List<(MeteringPoint, MeteringMode)> newMeteringPointInfos = + originalMeteringPoints + .where(((MeteringPoint, MeteringMode) meteringPointInfo) => + // meteringPointInfo may technically include points without a + // mode specified, but this logic is safe because this plugin + // only uses points that explicitly have mode + // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. + meteringPointInfo.$2 != meteringMode) + .toList(); + + if (newMeteringPointInfos.isEmpty) { // If no other metering points were specified, cancel any previously // started focus and metering actions. await cameraControl.cancelFocusAndMetering(); @@ -1501,42 +1509,58 @@ class AndroidCameraCameraX extends CameraPlatform { // Create builder to potentially add more MeteringPoints to. final FocusMeteringActionBuilder actionBuilder = proxy.withModeFocusMeteringActionBuilder( - point: newMeteringPoints.first, - mode: meteringMode, + point: newMeteringPointInfos.first.$1, + mode: newMeteringPointInfos.first.$2, ); - unawaited(actionBuilder.disableAutoCancel()); + if (disableAutoCancel) { + unawaited(actionBuilder.disableAutoCancel()); + } // Add any additional metering points in order as specified by input lists. - newMeteringPoints.skip(1).forEach(actionBuilder.addPoint); + newMeteringPointInfos.skip(1).forEach( + ((MeteringPoint point, MeteringMode) info) { + actionBuilder.addPointWithMode(info.$1, info.$2); + }, + ); currentFocusMeteringAction = await actionBuilder.build(); } else { - List newMeteringPoints = []; + // Add new metering point with specified meteringMode, which may involve + // replacing a metering point with the same specified meteringMode from + // the current focus and metering action. + List<(MeteringPoint, MeteringMode)> newMeteringPointInfos = + <(MeteringPoint, MeteringMode)>[]; if (currentFocusMeteringAction != null) { - switch (meteringMode) { - case MeteringMode.ae: - newMeteringPoints = List.from( - currentFocusMeteringAction!.meteringPointsAe, - ); - case MeteringMode.af: - newMeteringPoints = List.from( - currentFocusMeteringAction!.meteringPointsAf, - ); - case MeteringMode.awb: - newMeteringPoints = List.from( - currentFocusMeteringAction!.meteringPointsAwb, - ); - } + final Iterable<(MeteringPoint, MeteringMode)> originalMeteringPoints = + _combineMeteringPoints(currentFocusMeteringAction!); + + newMeteringPointInfos = originalMeteringPoints + .where(((MeteringPoint, MeteringMode) meteringPointInfo) => + // meteringPointInfo may technically include points without a + // mode specified, but this logic is safe because this plugin + // only uses points that explicitly have mode + // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. + meteringPointInfo.$2 != meteringMode) + .toList(); } - newMeteringPoints.add(meteringPoint); + + newMeteringPointInfos.add((meteringPoint, meteringMode)); final FocusMeteringActionBuilder actionBuilder = proxy.withModeFocusMeteringActionBuilder( - point: newMeteringPoints.first, - mode: meteringMode, + point: newMeteringPointInfos.first.$1, + mode: newMeteringPointInfos.first.$2, + ); + + if (disableAutoCancel) { + unawaited(actionBuilder.disableAutoCancel()); + } + + newMeteringPointInfos.skip(1).forEach( + ((MeteringPoint point, MeteringMode mode) info) { + actionBuilder.addPointWithMode(info.$1, info.$2); + }, ); - unawaited(actionBuilder.disableAutoCancel()); - newMeteringPoints.skip(1).forEach(actionBuilder.addPoint); currentFocusMeteringAction = await actionBuilder.build(); } @@ -1545,6 +1569,34 @@ class AndroidCameraCameraX extends CameraPlatform { return result?.isFocusSuccessful ?? false; } + // Combines the metering points and metering modes of a `FocusMeteringAction` + // into a single list. + Iterable<(MeteringPoint, MeteringMode)> _combineMeteringPoints( + FocusMeteringAction focusMeteringAction, + ) { + Iterable<(MeteringPoint, MeteringMode)> toMeteringPointRecords( + Iterable points, + MeteringMode mode, + ) { + return points.map((MeteringPoint point) => (point, mode)); + } + + return <(MeteringPoint, MeteringMode)>[ + ...toMeteringPointRecords( + focusMeteringAction.meteringPointsAf, + MeteringMode.af, + ), + ...toMeteringPointRecords( + focusMeteringAction.meteringPointsAe, + MeteringMode.ae, + ), + ...toMeteringPointRecords( + focusMeteringAction.meteringPointsAwb, + MeteringMode.awb, + ), + ]; + } + static DeviceOrientation _deserializeDeviceOrientation(String orientation) { switch (orientation) { case 'LANDSCAPE_LEFT': diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 52764642703..f9599ca2436 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -33,8 +33,10 @@ import 'android_camera_camerax_test.mocks.dart'; MockSpec(), MockSpec(), MockSpec(), + MockSpec(), MockSpec(), MockSpec(), + MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -374,17 +376,65 @@ void main() { /// /// Modifies the creation of [MeteringPoint]s and [FocusMeteringAction]s to /// return objects detached from a native object. - CameraXProxy getProxyForExposureAndFocus() => CameraXProxy( - createMeteringPoint: - (double x, double y, double? size, CameraInfo cameraInfo) => - MeteringPoint.detached( - x: x, y: y, size: size, cameraInfo: cameraInfo), - createFocusMeteringAction: - (List<(MeteringPoint, int?)> meteringPointInfos, - bool? disableAutoCancel) => - FocusMeteringAction.detached( - meteringPointInfos: meteringPointInfos, - disableAutoCancel: disableAutoCancel), + CameraXProxy getProxyForExposureAndFocus({ + FocusMeteringActionBuilder Function({ + required MeteringPoint point, + required MeteringMode mode, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + })? withModeFocusMeteringActionBuilder, + }) => + CameraXProxy( + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + when(mockFactory.createPoint(any, any)).thenAnswer( + (_) async => MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ); + when(mockFactory.createPointWithSize(any, any, any)).thenAnswer( + (_) async => MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: + withModeFocusMeteringActionBuilder ?? + ({ + required MeteringPoint point, + required MeteringMode mode, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + final MockFocusMeteringActionBuilder mockBuilder = + MockFocusMeteringActionBuilder(); + bool disableAutoCancelCalled = false; + when(mockBuilder.disableAutoCancel()).thenAnswer((_) async { + disableAutoCancelCalled = true; + }); + when(mockBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: !disableAutoCancelCalled, + pigeon_instanceManager: testInstanceManager, + ), + ); + return mockBuilder; + }, ); // // /// CameraXProxy for testing setting focus and exposure points. @@ -3736,7 +3786,32 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = mockCameraInfo; - camera.proxy = getProxyForExposureAndFocus(); + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + camera.proxy = + getProxyForExposureAndFocus(withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }); // Verify nothing happens if no current focus and metering action has been // enabled. @@ -3745,43 +3820,47 @@ void main() { verifyNever(mockCameraControl.cancelFocusAndMetering()); // Verify current auto-exposure metering point is removed if previously set. - final (MeteringPoint, int?) autofocusMeteringPointInfo = ( - MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf + final FocusMeteringAction originalMeteringAction = + FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, ); - List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe - ), - autofocusMeteringPointInfo - ]; - - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + camera.currentFocusMeteringAction = originalMeteringAction; await camera.setExposurePoint(cameraId, null); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); + expect(actionBuilderMeteringMode, MeteringMode.af); expect( - capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAf.single, + ); + verifyNever(mockActionBuilder.addPoint(any)); + verifyNever(mockActionBuilder.addPointWithMode(any, any)); // Verify current focus and metering action is cleared if only previously // set metering point was for auto-exposure. - meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe - ) - ]; - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + camera.currentFocusMeteringAction = FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); await camera.setExposurePoint(cameraId, null); diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index ad38a4186c4..a1b641b84a4 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -400,9 +400,30 @@ class _FakeCaptureRequestKey_34 extends _i1.SmartFake ); } -class _FakeFocusMeteringResult_35 extends _i1.SmartFake +class _FakeMeteringPoint_35 extends _i1.SmartFake implements _i2.MeteringPoint { + _FakeMeteringPoint_35( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeFocusMeteringAction_36 extends _i1.SmartFake + implements _i2.FocusMeteringAction { + _FakeFocusMeteringAction_36( + Object parent, + Invocation parentInvocation, + ) : super( + parent, + parentInvocation, + ); +} + +class _FakeFocusMeteringResult_37 extends _i1.SmartFake implements _i2.FocusMeteringResult { - _FakeFocusMeteringResult_35( + _FakeFocusMeteringResult_37( Object parent, Invocation parentInvocation, ) : super( @@ -411,8 +432,8 @@ class _FakeFocusMeteringResult_35 extends _i1.SmartFake ); } -class _FakeImageProxy_36 extends _i1.SmartFake implements _i2.ImageProxy { - _FakeImageProxy_36( +class _FakeImageProxy_38 extends _i1.SmartFake implements _i2.ImageProxy { + _FakeImageProxy_38( Object parent, Invocation parentInvocation, ) : super( @@ -421,8 +442,8 @@ class _FakeImageProxy_36 extends _i1.SmartFake implements _i2.ImageProxy { ); } -class _FakeRecording_37 extends _i1.SmartFake implements _i2.Recording { - _FakeRecording_37( +class _FakeRecording_39 extends _i1.SmartFake implements _i2.Recording { + _FakeRecording_39( Object parent, Invocation parentInvocation, ) : super( @@ -431,9 +452,9 @@ class _FakeRecording_37 extends _i1.SmartFake implements _i2.Recording { ); } -class _FakePendingRecording_38 extends _i1.SmartFake +class _FakePendingRecording_40 extends _i1.SmartFake implements _i2.PendingRecording { - _FakePendingRecording_38( + _FakePendingRecording_40( Object parent, Invocation parentInvocation, ) : super( @@ -442,8 +463,8 @@ class _FakePendingRecording_38 extends _i1.SmartFake ); } -class _FakePlaneProxy_39 extends _i1.SmartFake implements _i2.PlaneProxy { - _FakePlaneProxy_39( +class _FakePlaneProxy_41 extends _i1.SmartFake implements _i2.PlaneProxy { + _FakePlaneProxy_41( Object parent, Invocation parentInvocation, ) : super( @@ -452,8 +473,8 @@ class _FakePlaneProxy_39 extends _i1.SmartFake implements _i2.PlaneProxy { ); } -class _FakeVideoOutput_40 extends _i1.SmartFake implements _i2.VideoOutput { - _FakeVideoOutput_40( +class _FakeVideoOutput_42 extends _i1.SmartFake implements _i2.VideoOutput { + _FakeVideoOutput_42( Object parent, Invocation parentInvocation, ) : super( @@ -462,8 +483,8 @@ class _FakeVideoOutput_40 extends _i1.SmartFake implements _i2.VideoOutput { ); } -class _FakeZoomState_41 extends _i1.SmartFake implements _i2.ZoomState { - _FakeZoomState_41( +class _FakeZoomState_43 extends _i1.SmartFake implements _i2.ZoomState { + _FakeZoomState_43( Object parent, Invocation parentInvocation, ) : super( @@ -2538,6 +2559,123 @@ class MockDeviceOrientationManager extends _i1.Mock ) as _i2.DeviceOrientationManager); } +/// A class which mocks [DisplayOrientedMeteringPointFactory]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockDisplayOrientedMeteringPointFactory extends _i1.Mock + implements _i2.DisplayOrientedMeteringPointFactory { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.DisplayOrientedMeteringPointFactory); + + @override + _i5.Future<_i2.MeteringPoint> createPoint( + double? x, + double? y, + ) => + (super.noSuchMethod( + Invocation.method( + #createPoint, + [ + x, + y, + ], + ), + returnValue: _i5.Future<_i2.MeteringPoint>.value(_FakeMeteringPoint_35( + this, + Invocation.method( + #createPoint, + [ + x, + y, + ], + ), + )), + returnValueForMissingStub: + _i5.Future<_i2.MeteringPoint>.value(_FakeMeteringPoint_35( + this, + Invocation.method( + #createPoint, + [ + x, + y, + ], + ), + )), + ) as _i5.Future<_i2.MeteringPoint>); + + @override + _i5.Future<_i2.MeteringPoint> createPointWithSize( + double? x, + double? y, + double? size, + ) => + (super.noSuchMethod( + Invocation.method( + #createPointWithSize, + [ + x, + y, + size, + ], + ), + returnValue: _i5.Future<_i2.MeteringPoint>.value(_FakeMeteringPoint_35( + this, + Invocation.method( + #createPointWithSize, + [ + x, + y, + size, + ], + ), + )), + returnValueForMissingStub: + _i5.Future<_i2.MeteringPoint>.value(_FakeMeteringPoint_35( + this, + Invocation.method( + #createPointWithSize, + [ + x, + y, + size, + ], + ), + )), + ) as _i5.Future<_i2.MeteringPoint>); +} + /// A class which mocks [ExposureState]. /// /// See the documentation for Mockito's code generation for more information. @@ -2638,6 +2776,108 @@ class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { ) as _i2.FallbackStrategy); } +/// A class which mocks [FocusMeteringActionBuilder]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockFocusMeteringActionBuilder extends _i1.Mock + implements _i2.FocusMeteringActionBuilder { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future addPoint(_i2.MeteringPoint? point) => (super.noSuchMethod( + Invocation.method( + #addPoint, + [point], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future addPointWithMode( + _i2.MeteringPoint? point, + _i2.MeteringMode? mode, + ) => + (super.noSuchMethod( + Invocation.method( + #addPointWithMode, + [ + point, + mode, + ], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future disableAutoCancel() => (super.noSuchMethod( + Invocation.method( + #disableAutoCancel, + [], + ), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future<_i2.FocusMeteringAction> build() => (super.noSuchMethod( + Invocation.method( + #build, + [], + ), + returnValue: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36( + this, + Invocation.method( + #build, + [], + ), + )), + returnValueForMissingStub: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36( + this, + Invocation.method( + #build, + [], + ), + )), + ) as _i5.Future<_i2.FocusMeteringAction>); + + @override + _i2.FocusMeteringActionBuilder pigeon_copy() => (super.noSuchMethod( + Invocation.method( + #pigeon_copy, + [], + ), + returnValue: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method( + #pigeon_copy, + [], + ), + ), + ) as _i2.FocusMeteringActionBuilder); +} + /// A class which mocks [FocusMeteringResult]. /// /// See the documentation for Mockito's code generation for more information. @@ -2669,14 +2909,14 @@ class MockFocusMeteringResult extends _i1.Mock #pigeon_copy, [], ), - returnValue: _FakeFocusMeteringResult_35( + returnValue: _FakeFocusMeteringResult_37( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeFocusMeteringResult_35( + returnValueForMissingStub: _FakeFocusMeteringResult_37( this, Invocation.method( #pigeon_copy, @@ -2905,14 +3145,14 @@ class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { #pigeon_copy, [], ), - returnValue: _FakeImageProxy_36( + returnValue: _FakeImageProxy_38( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeImageProxy_36( + returnValueForMissingStub: _FakeImageProxy_38( this, Invocation.method( #pigeon_copy, @@ -3005,7 +3245,7 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { #start, [listener], ), - returnValue: _i5.Future<_i2.Recording>.value(_FakeRecording_37( + returnValue: _i5.Future<_i2.Recording>.value(_FakeRecording_39( this, Invocation.method( #start, @@ -3013,7 +3253,7 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { ), )), returnValueForMissingStub: - _i5.Future<_i2.Recording>.value(_FakeRecording_37( + _i5.Future<_i2.Recording>.value(_FakeRecording_39( this, Invocation.method( #start, @@ -3028,14 +3268,14 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { #pigeon_copy, [], ), - returnValue: _FakePendingRecording_38( + returnValue: _FakePendingRecording_40( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakePendingRecording_38( + returnValueForMissingStub: _FakePendingRecording_40( this, Invocation.method( #pigeon_copy, @@ -3089,14 +3329,14 @@ class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { #pigeon_copy, [], ), - returnValue: _FakePlaneProxy_39( + returnValue: _FakePlaneProxy_41( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakePlaneProxy_39( + returnValueForMissingStub: _FakePlaneProxy_41( this, Invocation.method( #pigeon_copy, @@ -3415,7 +3655,7 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { [path], ), returnValue: - _i5.Future<_i2.PendingRecording>.value(_FakePendingRecording_38( + _i5.Future<_i2.PendingRecording>.value(_FakePendingRecording_40( this, Invocation.method( #prepareRecording, @@ -3423,7 +3663,7 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { ), )), returnValueForMissingStub: - _i5.Future<_i2.PendingRecording>.value(_FakePendingRecording_38( + _i5.Future<_i2.PendingRecording>.value(_FakePendingRecording_40( this, Invocation.method( #prepareRecording, @@ -3689,14 +3929,14 @@ class MockRecording extends _i1.Mock implements _i2.Recording { #pigeon_copy, [], ), - returnValue: _FakeRecording_37( + returnValue: _FakeRecording_39( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeRecording_37( + returnValueForMissingStub: _FakeRecording_39( this, Invocation.method( #pigeon_copy, @@ -3846,7 +4086,7 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { #getOutput, [], ), - returnValue: _i5.Future<_i2.VideoOutput>.value(_FakeVideoOutput_40( + returnValue: _i5.Future<_i2.VideoOutput>.value(_FakeVideoOutput_42( this, Invocation.method( #getOutput, @@ -3854,7 +4094,7 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { ), )), returnValueForMissingStub: - _i5.Future<_i2.VideoOutput>.value(_FakeVideoOutput_40( + _i5.Future<_i2.VideoOutput>.value(_FakeVideoOutput_42( this, Invocation.method( #getOutput, @@ -3933,14 +4173,14 @@ class MockZoomState extends _i1.Mock implements _i2.ZoomState { #pigeon_copy, [], ), - returnValue: _FakeZoomState_41( + returnValue: _FakeZoomState_43( this, Invocation.method( #pigeon_copy, [], ), ), - returnValueForMissingStub: _FakeZoomState_41( + returnValueForMissingStub: _FakeZoomState_43( this, Invocation.method( #pigeon_copy, From f71f535fb871cb71d6f0483b02d5c70330474cb7 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 27 Jan 2025 18:41:12 -0500 Subject: [PATCH 057/148] second exposure test --- .../test/android_camera_camerax_test.dart | 189 ++++++++++++------ 1 file changed, 123 insertions(+), 66 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index f9599ca2436..da04bd55557 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -383,31 +383,41 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, })? withModeFocusMeteringActionBuilder, + DisplayOrientedMeteringPointFactory Function({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + })? newDisplayOrientedMeteringPointFactory, }) => CameraXProxy( - newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, - required double width, - required double height, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDisplayOrientedMeteringPointFactory mockFactory = - MockDisplayOrientedMeteringPointFactory(); - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - when(mockFactory.createPoint(any, any)).thenAnswer( - (_) async => MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ); - when(mockFactory.createPointWithSize(any, any, any)).thenAnswer( - (_) async => MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ); - return mockFactory; - }, + newDisplayOrientedMeteringPointFactory: + newDisplayOrientedMeteringPointFactory ?? + ({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + when(mockFactory.createPoint(any, any)).thenAnswer( + (_) async => MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ); + when(mockFactory.createPointWithSize(any, any, any)) + .thenAnswer( + (_) async => MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ); + return mockFactory; + }, withModeFocusMeteringActionBuilder: withModeFocusMeteringActionBuilder ?? ({ @@ -3866,7 +3876,7 @@ void main() { verify(mockCameraControl.cancelFocusAndMetering()); }); -/* + test('setExposurePoint throws CameraException if invalid point specified', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); @@ -3896,68 +3906,115 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = mockCameraInfo; - camera.proxy = getProxyForExposureAndFocus(); - - // Verify current auto-exposure metering point is removed if previously set. + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); double exposurePointX = 0.8; double exposurePointY = 0.1; - Point exposurePoint = Point(exposurePointX, exposurePointY); - final (MeteringPoint, int?) autofocusMeteringPointInfo = ( - MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf + final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, ); - List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, ), - autofocusMeteringPointInfo - ]; + ); + camera.proxy = getProxyForExposureAndFocus( + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when(mockFactory.createPoint(exposurePointX, exposurePointY)) + .thenAnswer( + (_) async => createdMeteringPoint, + ); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // Verify current auto-exposure metering point is removed if previously set. + Point exposurePoint = Point(exposurePointX, exposurePointY); + FocusMeteringAction originalMeteringAction = + FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; await camera.setExposurePoint(cameraId, exposurePoint); - VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - expect( - capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); - expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); - expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); expect( - capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAf.single, + ); + expect(actionBuilderMeteringMode, MeteringMode.af); + verify( + mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.ae), + ); // Verify exposure point is set when no auto-exposure metering point // previously set, but an auto-focus point metering point has been. exposurePointX = 0.2; exposurePointY = 0.9; exposurePoint = Point(exposurePointX, exposurePointY); - meteringPointInfos = <(MeteringPoint, int?)>[autofocusMeteringPointInfo]; - - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + originalMeteringAction = FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; await camera.setExposurePoint(cameraId, exposurePoint); - verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - capturedAction = verificationResult.captured.single as FocusMeteringAction; - capturedMeteringPointInfos = capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); expect( - capturedMeteringPointInfos.first, equals(autofocusMeteringPointInfo)); - expect(capturedMeteringPointInfos[1].$1.x, equals(exposurePointX)); - expect(capturedMeteringPointInfos[1].$1.y, equals(exposurePointY)); - expect( - capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAe)); + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAf.single, + ); + expect(actionBuilderMeteringMode, MeteringMode.af); + verify( + mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.ae), + ); }); - +/* test( 'setExposurePoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', () async { From be5fd35faeab712f697ac2ddb1323251eb54f796 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 27 Jan 2025 20:02:30 -0500 Subject: [PATCH 058/148] test 60 --- .../lib/src/android_camera_camerax.dart | 2 +- .../lib/src/camerax_proxy2.dart | 8 +- .../test/android_camera_camerax_test.dart | 132 ++++++++++++------ 3 files changed, 97 insertions(+), 45 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 83ac99270c6..a5247258b40 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -27,7 +27,7 @@ class AndroidCameraCameraX extends CameraPlatform { /// Proxy for creating `JavaObject`s and calling their methods that require /// testing. @visibleForTesting - CameraXProxy proxy = const CameraXProxy(); + CameraXProxy proxy = CameraXProxy(); /// The [ProcessCameraProvider] instance used to access camera functionality. @visibleForTesting diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index 8cfa91d0cf4..4fdcb514c76 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -15,7 +15,7 @@ import 'camerax_library.dart'; /// intends to return. class CameraXProxy { /// Constructs an [CameraXProxy]. - const CameraXProxy({ + CameraXProxy({ this.setUpGenericsProxy = setUpGenerics, this.newCameraSize = CameraSize.new, this.newCameraIntegerRange = CameraIntegerRange.new, @@ -269,14 +269,14 @@ class CameraXProxy { }) withModeFocusMeteringActionBuilder; /// Constructs [CaptureRequestOptions]. - final CaptureRequestOptions Function({ + CaptureRequestOptions Function({ required Map options, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) newCaptureRequestOptions; /// Constructs [Camera2CameraControl]. - final Camera2CameraControl Function({ + Camera2CameraControl Function({ required CameraControl cameraControl, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, @@ -338,7 +338,7 @@ class CameraXProxy { ratio_4_3FallbackAutoStrategyAspectRatioStrategy; /// Calls to [CaptureRequest.controlAELock]. - final CaptureRequestKey Function() controlAELockCaptureRequest; + CaptureRequestKey Function() controlAELockCaptureRequest; /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. final CameraCharacteristicsKey Function() diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index da04bd55557..14361d70337 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -446,28 +446,46 @@ void main() { return mockBuilder; }, ); - // - // /// CameraXProxy for testing setting focus and exposure points. - // /// - // /// Modifies the retrieval of a [Camera2CameraControl] instance to depend on - // /// interaction with expected [cameraControl] instance and modifies creation - // /// of [CaptureRequestOptions] to return objects detached from a native object. - // CameraXProxy getProxyForSettingFocusandExposurePoints( - // CameraControl cameraControlForComparison, - // Camera2CameraControl camera2cameraControl) { - // final CameraXProxy proxy = getProxyForExposureAndFocus(); - // - // proxy.getCamera2CameraControl = (CameraControl cameraControl) => - // cameraControl == cameraControlForComparison - // ? camera2cameraControl - // : Camera2CameraControl.detached(cameraControl: cameraControl); - // - // proxy.createCaptureRequestOptions = - // (List<(CaptureRequestKeySupportedType, Object?)> options) => - // CaptureRequestOptions.detached(requestedOptions: options); - // - // return proxy; - // } + + /// CameraXProxy for testing setting focus and exposure points. + /// + /// Modifies the retrieval of a [Camera2CameraControl] instance to depend on + /// interaction with expected [cameraControl] instance and modifies creation + /// of [CaptureRequestOptions] to return objects detached from a native object. + CameraXProxy getProxyForSettingFocusandExposurePoints( + CameraControl cameraControlForComparison, + Camera2CameraControl camera2cameraControl) { + final CameraXProxy proxy = getProxyForExposureAndFocus(); + + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + proxy.fromCamera2CameraControl = ({ + required CameraControl cameraControl, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + cameraControl == cameraControlForComparison + ? camera2cameraControl + : Camera2CameraControl.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + proxy.newCaptureRequestOptions = ({ + required Map options, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return CaptureRequestOptions.pigeon_detached( + options: options, + pigeon_instanceManager: testInstanceManager, + ); + }; + proxy.controlAELockCaptureRequest = () => CaptureRequestKey.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + + return proxy; + } test('Should fetch CameraDescription instances for available cameras', () async { @@ -4014,7 +4032,7 @@ void main() { mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.ae), ); }); -/* + test( 'setExposurePoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', () async { @@ -4031,21 +4049,56 @@ void main() { camera.cameraInfo = MockCameraInfo(); camera.currentFocusMeteringAction = null; - camera.proxy = getProxyForExposureAndFocus(); + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + camera.proxy = getProxyForExposureAndFocus( + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when(mockFactory.createPoint(exposurePointX, exposurePointY)) + .thenAnswer( + (_) async => createdMeteringPoint, + ); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); await camera.setExposurePoint(cameraId, exposurePoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAe)); + expect(actionBuilderMeteringPoint, createdMeteringPoint); + expect(actionBuilderMeteringMode, MeteringMode.ae); }); test( @@ -4066,8 +4119,7 @@ void main() { mockCameraControl, MockCamera2CameraControl()); // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -4079,7 +4131,7 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); + expect(capturedAction.isAutoCancelEnabled, isTrue); clearInteractions(mockCameraControl); @@ -4090,9 +4142,9 @@ void main() { verificationResult = verify(mockCameraControl.startFocusAndMetering(captureAny)); capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); + expect(capturedAction.isAutoCancelEnabled, isFalse); }); - +/* test( 'setExposureOffset throws exception if exposure compensation not supported', () async { From 7c248bba4b4e81c8003686c78824aa60d198df64 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 27 Jan 2025 20:12:30 -0500 Subject: [PATCH 059/148] 63 tests --- .../test/android_camera_camerax_test.dart | 61 +++++++++++++------ 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 14361d70337..0e9be0b9c40 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -4144,7 +4144,7 @@ void main() { capturedAction = verificationResult.captured.single as FocusMeteringAction; expect(capturedAction.isAutoCancelEnabled, isFalse); }); -/* + test( 'setExposureOffset throws exception if exposure compensation not supported', () async { @@ -4152,16 +4152,23 @@ void main() { const int cameraId = 6; const double offset = 2; final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0, + pigeon_instanceManager: testInstanceManager, + ); // Set directly for test versus calling createCamera. camera.cameraInfo = mockCameraInfo; - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); + when(mockCameraInfo.exposureState).thenReturn(exposureState); expect(() => camera.setExposureOffset(cameraId, offset), throwsA(isA())); @@ -4175,17 +4182,24 @@ void main() { const double offset = 3; final MockCameraInfo mockCameraInfo = MockCameraInfo(); final CameraControl mockCameraControl = MockCameraControl(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); // Set directly for test versus calling createCamera. camera.cameraInfo = mockCameraInfo; camera.cameraControl = mockCameraControl; - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); + when(mockCameraInfo.exposureState).thenReturn(exposureState); when(mockCameraControl.setExposureCompensationIndex(15)).thenThrow( PlatformException( code: 'TEST_ERROR', @@ -4204,10 +4218,18 @@ void main() { const double offset = 5; final MockCameraInfo mockCameraInfo = MockCameraInfo(); final CameraControl mockCameraControl = MockCameraControl(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.1); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.1, + pigeon_instanceManager: testInstanceManager, + ); final int expectedExposureCompensationIndex = (offset / exposureState.exposureCompensationStep).round(); @@ -4215,8 +4237,7 @@ void main() { camera.cameraInfo = mockCameraInfo; camera.cameraControl = mockCameraControl; - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); + when(mockCameraInfo.exposureState).thenReturn(exposureState); when(mockCameraControl .setExposureCompensationIndex(expectedExposureCompensationIndex)) .thenAnswer((_) async => Future.value()); @@ -4224,7 +4245,7 @@ void main() { expect(() => camera.setExposureOffset(cameraId, offset), throwsA(isA())); }); - +/* test( 'setExposureOffset behaves as expected to successful attempt to set exposure compensation index', () async { From 5bbb31ecf0b918304e3bbef8ccd53084dc23d51c Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:30:26 -0500 Subject: [PATCH 060/148] first focus test --- .../test/android_camera_camerax_test.dart | 126 ++++++++++++------ 1 file changed, 87 insertions(+), 39 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 0e9be0b9c40..06d4e7bcff3 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -4245,7 +4245,7 @@ void main() { expect(() => camera.setExposureOffset(cameraId, offset), throwsA(isA())); }); -/* + test( 'setExposureOffset behaves as expected to successful attempt to set exposure compensation index', () async { @@ -4254,10 +4254,18 @@ void main() { const double offset = 3; final MockCameraInfo mockCameraInfo = MockCameraInfo(); final CameraControl mockCameraControl = MockCameraControl(); - final ExposureState exposureState = ExposureState.detached( - exposureCompensationRange: - ExposureCompensationRange(minCompensation: 3, maxCompensation: 4), - exposureCompensationStep: 0.2); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); final int expectedExposureCompensationIndex = (offset / exposureState.exposureCompensationStep).round(); @@ -4265,8 +4273,7 @@ void main() { camera.cameraInfo = mockCameraInfo; camera.cameraControl = mockCameraControl; - when(mockCameraInfo.getExposureState()) - .thenAnswer((_) async => exposureState); + when(mockCameraInfo.exposureState).thenReturn(exposureState); when(mockCameraControl .setExposureCompensationIndex(expectedExposureCompensationIndex)) .thenAnswer((_) async => Future.value( @@ -4290,7 +4297,32 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = mockCameraInfo; - camera.proxy = getProxyForExposureAndFocus(); + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + camera.proxy = + getProxyForExposureAndFocus(withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }); // Verify nothing happens if no current focus and metering action has been // enabled. @@ -4299,49 +4331,65 @@ void main() { verifyNever(mockCameraControl.cancelFocusAndMetering()); // Verify current auto-exposure metering point is removed if previously set. - final (MeteringPoint, int?) autoexposureMeteringPointInfo = ( - MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe - ); - List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf - ), - autoexposureMeteringPointInfo - ]; + // final (MeteringPoint, int?) autoexposureMeteringPointInfo = ( + // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAe + // ); + // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ + // ( + // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), + // FocusMeteringAction.flagAf + // ), + // autoexposureMeteringPointInfo + // ]; - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + FocusMeteringAction originalMeteringAction = + FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; await camera.setFocusPoint(cameraId, null); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first, - equals(autoexposureMeteringPointInfo)); + expect(actionBuilderMeteringMode, MeteringMode.ae); + expect( + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAe.single, + ); + verifyNever(mockActionBuilder.addPoint(any)); + verifyNever(mockActionBuilder.addPointWithMode(any, any)); // Verify current focus and metering action is cleared if only previously // set metering point was for auto-exposure. - meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf - ) - ]; - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + camera.currentFocusMeteringAction = FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); await camera.setFocusPoint(cameraId, null); verify(mockCameraControl.cancelFocusAndMetering()); }); - +/* test('setFocusPoint throws CameraException if invalid point specified', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); From 51aa98e9ad3d96bf687cc3db73df564376e4e2fd Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:50:53 -0500 Subject: [PATCH 061/148] 67 tests --- .../test/android_camera_camerax_test.dart | 159 +++++++++++------- 1 file changed, 96 insertions(+), 63 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 06d4e7bcff3..5f7604e1bdd 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -4330,20 +4330,7 @@ void main() { verifyNever(mockCameraControl.startFocusAndMetering(any)); verifyNever(mockCameraControl.cancelFocusAndMetering()); - // Verify current auto-exposure metering point is removed if previously set. - // final (MeteringPoint, int?) autoexposureMeteringPointInfo = ( - // MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAe - // ); - // List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - // ( - // MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - // FocusMeteringAction.flagAf - // ), - // autoexposureMeteringPointInfo - // ]; - - FocusMeteringAction originalMeteringAction = + final FocusMeteringAction originalMeteringAction = FocusMeteringAction.pigeon_detached( meteringPointsAe: [ MeteringPoint.pigeon_detached( @@ -4389,7 +4376,7 @@ void main() { verify(mockCameraControl.cancelFocusAndMetering()); }); -/* + test('setFocusPoint throws CameraException if invalid point specified', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); @@ -4408,7 +4395,7 @@ void main() { }); test( - 'setFocusPoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', + 'setFocusPoint adds new focus point to focus metering action to start as expected when previous metering points have been set', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); const int cameraId = 9; @@ -4419,68 +4406,114 @@ void main() { camera.cameraControl = mockCameraControl; camera.cameraInfo = mockCameraInfo; - camera.proxy = getProxyForExposureAndFocus(); - - // Verify current auto-exposure metering point is removed if previously set. + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); double focusPointX = 0.8; double focusPointY = 0.1; - Point exposurePoint = Point(focusPointX, focusPointY); - final (MeteringPoint, int?) autoExposureMeteringPointInfo = ( - MeteringPoint.detached(x: 0.3, y: 0.7, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAe + Point focusPoint = Point(focusPointX, focusPointY); + final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, ); - List<(MeteringPoint, int?)> meteringPointInfos = <(MeteringPoint, int?)>[ - ( - MeteringPoint.detached(x: 0.2, y: 0.5, cameraInfo: mockCameraInfo), - FocusMeteringAction.flagAf + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, ), - autoExposureMeteringPointInfo - ]; + ); + camera.proxy = getProxyForExposureAndFocus( + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when(mockFactory.createPoint(focusPointX, focusPointY)).thenAnswer( + (_) async => createdMeteringPoint, + ); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + // Verify current auto-exposure metering point is removed if previously set. + FocusMeteringAction originalMeteringAction = + FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; - await camera.setFocusPoint(cameraId, exposurePoint); + await camera.setFocusPoint(cameraId, focusPoint); - VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - expect(capturedMeteringPointInfos.first, - equals(autoExposureMeteringPointInfo)); - expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); expect( - capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAe.single, + ); + expect(actionBuilderMeteringMode, MeteringMode.ae); + verify( + mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.af), + ); - // Verify exposure point is set when no auto-exposure metering point - // previously set, but an auto-focus point metering point has been. + // Verify exposure point is set when no auto-focus metering point + // previously set, but an auto-exposure point metering point has been. focusPointX = 0.2; focusPointY = 0.9; - exposurePoint = Point(focusPointX, focusPointY); - meteringPointInfos = <(MeteringPoint, int?)>[autoExposureMeteringPointInfo]; - - camera.currentFocusMeteringAction = - FocusMeteringAction.detached(meteringPointInfos: meteringPointInfos); + focusPoint = Point(focusPointX, focusPointY); + originalMeteringAction = FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; - await camera.setFocusPoint(cameraId, exposurePoint); + await camera.setFocusPoint(cameraId, focusPoint); - verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - capturedAction = verificationResult.captured.single as FocusMeteringAction; - capturedMeteringPointInfos = capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - expect(capturedMeteringPointInfos.first, - equals(autoExposureMeteringPointInfo)); - expect(capturedMeteringPointInfos[1].$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos[1].$1.y, equals(focusPointY)); expect( - capturedMeteringPointInfos[1].$2, equals(FocusMeteringAction.flagAf)); + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAe.single, + ); + expect(actionBuilderMeteringMode, MeteringMode.ae); + verify( + mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.af), + ); }); - +/* test( 'setFocusPoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', () async { From 7b34e5533637b49e862fc2d810e924e03794fc43 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:58:09 -0500 Subject: [PATCH 062/148] 71 tests --- .../test/android_camera_camerax_test.dart | 78 +++++++++++++------ 1 file changed, 55 insertions(+), 23 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 5f7604e1bdd..71f7c12fb7c 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -4513,37 +4513,71 @@ void main() { mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.af), ); }); -/* + test( - 'setFocusPoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', + 'setFocusPoint adds new focus point to focus metering action to start as expected when no previous metering points have been set', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); const int cameraId = 19; final MockCameraControl mockCameraControl = MockCameraControl(); const double focusPointX = 0.8; const double focusPointY = 0.1; - const Point exposurePoint = Point(focusPointX, focusPointY); + const Point focusPoint = Point(focusPointX, focusPointY); // Set directly for test versus calling createCamera. camera.cameraControl = mockCameraControl; camera.cameraInfo = MockCameraInfo(); camera.currentFocusMeteringAction = null; - camera.proxy = getProxyForExposureAndFocus(); + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + camera.proxy = getProxyForExposureAndFocus( + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when(mockFactory.createPoint(focusPointX, focusPointY)).thenAnswer( + (_) async => createdMeteringPoint, + ); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); - await camera.setFocusPoint(cameraId, exposurePoint); + await camera.setFocusPoint(cameraId, focusPoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAf)); + expect(actionBuilderMeteringPoint, createdMeteringPoint); + expect(actionBuilderMeteringMode, MeteringMode.af); }); test('setFocusPoint disables auto-cancel for focus and metering as expected', @@ -4563,8 +4597,7 @@ void main() { mockCameraControl, MockCamera2CameraControl()); // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -4577,7 +4610,7 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); + expect(capturedAction.isAutoCancelEnabled, isTrue); clearInteractions(mockCameraControl); @@ -4589,7 +4622,7 @@ void main() { verificationResult = verify(mockCameraControl.startFocusAndMetering(captureAny)); capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); + expect(capturedAction.isAutoCancelEnabled, isFalse); }); test( @@ -4609,8 +4642,7 @@ void main() { mockCameraControl, MockCamera2CameraControl()); // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -4634,7 +4666,7 @@ void main() { verifyNoMoreInteractions(mockCameraControl); }); - +/* test( 'setFocusMode removes default auto-focus point if previously set and setting auto-focus mode', () async { From 6e7fc93a901dbe265e48af66218df1619b7dc5a5 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 30 Jan 2025 15:09:21 -0500 Subject: [PATCH 063/148] failing test still --- .../lib/src/camerax_proxy2.dart | 4 +- .../test/android_camera_camerax_test.dart | 105 +++++++++++++++--- 2 files changed, 91 insertions(+), 18 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index 4fdcb514c76..d80e5e31833 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -261,7 +261,7 @@ class CameraXProxy { }) newFocusMeteringActionBuilder; /// Constructs [FocusMeteringActionBuilder]. - final FocusMeteringActionBuilder Function({ + FocusMeteringActionBuilder Function({ required MeteringPoint point, required MeteringMode mode, BinaryMessenger? pigeon_binaryMessenger, @@ -297,7 +297,7 @@ class CameraXProxy { }) fromCamera2CameraInfo; /// Constructs [DisplayOrientedMeteringPointFactory]. - final DisplayOrientedMeteringPointFactory Function({ + DisplayOrientedMeteringPointFactory Function({ required CameraInfo cameraInfo, required double width, required double height, diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 71f7c12fb7c..a8d142dfe2e 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -453,13 +453,35 @@ void main() { /// interaction with expected [cameraControl] instance and modifies creation /// of [CaptureRequestOptions] to return objects detached from a native object. CameraXProxy getProxyForSettingFocusandExposurePoints( - CameraControl cameraControlForComparison, - Camera2CameraControl camera2cameraControl) { + CameraControl cameraControlForComparison, + Camera2CameraControl camera2cameraControl, { + FocusMeteringActionBuilder Function({ + required MeteringPoint point, + required MeteringMode mode, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + })? withModeFocusMeteringActionBuilder, + DisplayOrientedMeteringPointFactory Function({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + })? newDisplayOrientedMeteringPointFactory, + }) { final CameraXProxy proxy = getProxyForExposureAndFocus(); final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, ); + if (withModeFocusMeteringActionBuilder != null) { + proxy.withModeFocusMeteringActionBuilder = + withModeFocusMeteringActionBuilder; + } + if (newDisplayOrientedMeteringPointFactory != null) { + proxy.newDisplayOrientedMeteringPointFactory = + newDisplayOrientedMeteringPointFactory; + } proxy.fromCamera2CameraControl = ({ required CameraControl cameraControl, BinaryMessenger? pigeon_binaryMessenger, @@ -4666,7 +4688,7 @@ void main() { verifyNoMoreInteractions(mockCameraControl); }); -/* + test( 'setFocusMode removes default auto-focus point if previously set and setting auto-focus mode', () async { @@ -4687,12 +4709,59 @@ void main() { when(mockCamera2CameraControl.addCaptureRequestOptions(any)) .thenAnswer((_) async => Future.value()); + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); + mockCameraControl, + mockCamera2CameraControl, + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when(mockFactory.createPoint(exposurePointX, exposurePointY)) + .thenAnswer( + (_) async => createdMeteringPoint, + ); + when(mockFactory.createPointWithSize(0.5, 0.5, 1)).thenAnswer( + (_) async => createdMeteringPoint, + ); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -4712,19 +4781,23 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); + expect(capturedAction.isAutoCancelEnabled, isTrue); // We expect only the previously set exposure point to be re-set. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); - expect(capturedMeteringPointInfos.first.$1.size, isNull); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAe)); + expect(actionBuilderMeteringPoint, createdMeteringPoint); + expect(actionBuilderMeteringMode, MeteringMode.ae); + verify(mockActionBuilder.addPoint(any)); + verify(mockActionBuilder.addPointWithMode(any, any)); + // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = + // capturedAction.meteringPointInfos; + // expect(capturedMeteringPointInfos.length, equals(1)); + // expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); + // expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); + // expect(capturedMeteringPointInfos.first.$1.size, isNull); + // expect(capturedMeteringPointInfos.first.$2, + // equals(FocusMeteringAction.flagAe)); }); - +/* test( 'setFocusMode cancels focus and metering if only focus point previously set is a focus point', () async { From e54975e41f0ef2de424c36b075e9f3bc2a47298b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 11 Feb 2025 21:00:14 -0500 Subject: [PATCH 064/148] test --- .../test/android_camera_camerax_test.dart | 104 ++++++++++-------- 1 file changed, 61 insertions(+), 43 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index a8d142dfe2e..dee2fd284f8 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -434,11 +434,49 @@ void main() { when(mockBuilder.disableAutoCancel()).thenAnswer((_) async { disableAutoCancelCalled = true; }); + final List meteringPointsAe = + []; + final List meteringPointsAf = + []; + final List meteringPointsAwb = + []; + + switch (mode) { + case MeteringMode.ae: + meteringPointsAe.add(point); + case MeteringMode.af: + meteringPointsAf.add(point); + case MeteringMode.awb: + meteringPointsAwb.add(point); + } + + when(mockBuilder.addPointWithMode(any, any)).thenAnswer( + (Invocation invocation) async { + switch (invocation.positionalArguments[1]) { + case MeteringMode.ae: + meteringPointsAe.add( + invocation.positionalArguments.first + as MeteringPoint, + ); + case MeteringMode.af: + meteringPointsAf.add( + invocation.positionalArguments.first + as MeteringPoint, + ); + case MeteringMode.awb: + meteringPointsAwb.add( + invocation.positionalArguments.first + as MeteringPoint, + ); + } + }, + ); + when(mockBuilder.build()).thenAnswer( (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], - meteringPointsAf: const [], - meteringPointsAwb: const [], + meteringPointsAe: meteringPointsAe, + meteringPointsAf: meteringPointsAf, + meteringPointsAwb: meteringPointsAwb, isAutoCancelEnabled: !disableAutoCancelCalled, pigeon_instanceManager: testInstanceManager, ), @@ -4711,22 +4749,7 @@ void main() { final PigeonInstanceManager testInstanceManager = PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); - MeteringMode? actionBuilderMeteringMode; - MeteringPoint? actionBuilderMeteringPoint; - final MockFocusMeteringActionBuilder mockActionBuilder = - MockFocusMeteringActionBuilder(); - when(mockActionBuilder.build()).thenAnswer( - (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], - meteringPointsAf: const [], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ), - ); + final List createdMeteringPoints = []; camera.proxy = getProxyForSettingFocusandExposurePoints( mockCameraControl, mockCamera2CameraControl, @@ -4741,23 +4764,27 @@ void main() { MockDisplayOrientedMeteringPointFactory(); when(mockFactory.createPoint(exposurePointX, exposurePointY)) .thenAnswer( - (_) async => createdMeteringPoint, + (_) async { + final MeteringPoint createdMeteringPoint = + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + createdMeteringPoints.add(createdMeteringPoint); + return createdMeteringPoint; + }, ); when(mockFactory.createPointWithSize(0.5, 0.5, 1)).thenAnswer( - (_) async => createdMeteringPoint, + (_) async { + final MeteringPoint createdMeteringPoint = + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + createdMeteringPoints.add(createdMeteringPoint); + return createdMeteringPoint; + }, ); return mockFactory; }, - withModeFocusMeteringActionBuilder: ({ - required MeteringMode mode, - required MeteringPoint point, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) { - actionBuilderMeteringMode = mode; - actionBuilderMeteringPoint = point; - return mockActionBuilder; - }, ); // Make setting focus and metering action successful for test. @@ -4784,18 +4811,9 @@ void main() { expect(capturedAction.isAutoCancelEnabled, isTrue); // We expect only the previously set exposure point to be re-set. - expect(actionBuilderMeteringPoint, createdMeteringPoint); - expect(actionBuilderMeteringMode, MeteringMode.ae); - verify(mockActionBuilder.addPoint(any)); - verify(mockActionBuilder.addPointWithMode(any, any)); - // final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - // capturedAction.meteringPointInfos; - // expect(capturedMeteringPointInfos.length, equals(1)); - // expect(capturedMeteringPointInfos.first.$1.x, equals(exposurePointX)); - // expect(capturedMeteringPointInfos.first.$1.y, equals(exposurePointY)); - // expect(capturedMeteringPointInfos.first.$1.size, isNull); - // expect(capturedMeteringPointInfos.first.$2, - // equals(FocusMeteringAction.flagAe)); + expect(capturedAction.meteringPointsAe.first, createdMeteringPoints[0]); + expect(capturedAction.meteringPointsAe.length, equals(1)); + expect(capturedAction.meteringPointsAf.length, equals(0)); }); /* test( From 53fb961c7abef0502a6e76ab9bdb39e9ac907f08 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 14:53:43 -0500 Subject: [PATCH 065/148] more tests fixed --- .../test/android_camera_camerax_test.dart | 114 ++++++++++-------- 1 file changed, 62 insertions(+), 52 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index dee2fd284f8..e319859397c 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -406,14 +406,17 @@ void main() { final PigeonInstanceManager testInstanceManager = PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); when(mockFactory.createPoint(any, any)).thenAnswer( - (_) async => MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, + (Invocation invocation) async => TestMeteringPoint.detached( + x: invocation.positionalArguments[0]! as double, + y: invocation.positionalArguments[1]! as double, ), ); when(mockFactory.createPointWithSize(any, any, any)) .thenAnswer( - (_) async => MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, + (Invocation invocation) async => TestMeteringPoint.detached( + x: invocation.positionalArguments[0]! as double, + y: invocation.positionalArguments[1]! as double, + size: invocation.positionalArguments[2]! as double, ), ); return mockFactory; @@ -4815,7 +4818,7 @@ void main() { expect(capturedAction.meteringPointsAe.length, equals(1)); expect(capturedAction.meteringPointsAf.length, equals(0)); }); -/* + test( 'setFocusMode cancels focus and metering if only focus point previously set is a focus point', () async { @@ -4838,8 +4841,7 @@ void main() { mockCameraControl, mockCamera2CameraControl); // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -4876,14 +4878,15 @@ void main() { mockCameraControl, mockCamera2CameraControl); // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); // Lock a focus point. await camera.setFocusPoint( - cameraId, const Point(focusPointX, focusPointY)); + cameraId, + const Point(focusPointX, focusPointY), + ); await camera.setFocusMode(cameraId, FocusMode.locked); clearInteractions(mockCameraControl); @@ -4895,15 +4898,15 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); - expect(capturedMeteringPointInfos.first.$1.size, isNull); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAf)); + expect(capturedAction.isAutoCancelEnabled, isTrue); + expect(capturedAction.meteringPointsAe.length, equals(0)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(focusPointX)); + expect(focusPoint.y, equals(focusPointY)); + expect(focusPoint.size, isNull); }); test( @@ -4939,17 +4942,18 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); + expect(capturedAction.isAutoCancelEnabled, isFalse); // We expect the set focus point to be locked. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(focusPointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(focusPointY)); - expect(capturedMeteringPointInfos.first.$1.size, isNull); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAf)); + expect(capturedAction.meteringPointsAe.length, equals(0)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(focusPointX)); + expect(focusPoint.y, equals(focusPointY)); + expect(focusPoint.size, isNull); }); test( @@ -4989,34 +4993,27 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); + expect(capturedAction.isAutoCancelEnabled, isFalse); // We expect two MeteringPoints, the set focus point and the set exposure // point. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - - final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAf) - .toList(); - expect(focusPoints.length, equals(1)); - expect(focusPoints.first.$1.x, equals(focusPointX)); - expect(focusPoints.first.$1.y, equals(focusPointY)); - expect(focusPoints.first.$1.size, isNull); - - final List<(MeteringPoint, int?)> exposurePoints = - capturedMeteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAe) - .toList(); - expect(exposurePoints.length, equals(1)); - expect(exposurePoints.first.$1.x, equals(exposurePointX)); - expect(exposurePoints.first.$1.y, equals(exposurePointY)); - expect(exposurePoints.first.$1.size, isNull); + expect(capturedAction.meteringPointsAe.length, equals(1)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(focusPointX)); + expect(focusPoint.y, equals(focusPointY)); + expect(focusPoint.size, isNull); + + final TestMeteringPoint exposurePoint = + capturedAction.meteringPointsAe.single as TestMeteringPoint; + expect(exposurePoint.x, equals(exposurePointX)); + expect(exposurePoint.y, equals(exposurePointY)); + expect(exposurePoint.size, isNull); }); - +/* test( 'setFocusMode starts expected focus and metering action if setting locked focus mode and current focus and metering action does not contain an auto-focus point', () async { @@ -5970,3 +5967,16 @@ void main() { // // return mockProxy; // } + +class TestMeteringPoint extends MeteringPoint { + TestMeteringPoint.detached({required this.x, required this.y, this.size}) + : super.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + + final double x; + final double y; + final double? size; +} From 5d994ea984ff30147d7a79626e9656cbb0b4217b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 15:31:14 -0500 Subject: [PATCH 066/148] 84 tests --- .../test/android_camera_camerax_test.dart | 141 +++++++++--------- 1 file changed, 73 insertions(+), 68 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index e319859397c..95a78ec5a3f 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -543,9 +543,10 @@ void main() { pigeon_instanceManager: testInstanceManager, ); }; - proxy.controlAELockCaptureRequest = () => CaptureRequestKey.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + final CaptureRequestKey controlAeLock = CaptureRequestKey.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + proxy.controlAELockCaptureRequest = () => controlAeLock; return proxy; } @@ -5013,7 +5014,7 @@ void main() { expect(exposurePoint.y, equals(exposurePointY)); expect(exposurePoint.size, isNull); }); -/* + test( 'setFocusMode starts expected focus and metering action if setting locked focus mode and current focus and metering action does not contain an auto-focus point', () async { @@ -5051,32 +5052,25 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); + expect(capturedAction.isAutoCancelEnabled, isFalse); // We expect two MeteringPoints, the default focus point and the set //exposure point. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(2)); - - final List<(MeteringPoint, int?)> focusPoints = capturedMeteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAf) - .toList(); - expect(focusPoints.length, equals(1)); - expect(focusPoints.first.$1.x, equals(defaultFocusPointX)); - expect(focusPoints.first.$1.y, equals(defaultFocusPointY)); - expect(focusPoints.first.$1.size, equals(defaultFocusPointSize)); - - final List<(MeteringPoint, int?)> exposurePoints = - capturedMeteringPointInfos - .where(((MeteringPoint, int?) meteringPointInfo) => - meteringPointInfo.$2 == FocusMeteringAction.flagAe) - .toList(); - expect(exposurePoints.length, equals(1)); - expect(exposurePoints.first.$1.x, equals(exposurePointX)); - expect(exposurePoints.first.$1.y, equals(exposurePointY)); - expect(exposurePoints.first.$1.size, isNull); + expect(capturedAction.meteringPointsAe.length, equals(1)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(defaultFocusPointX)); + expect(focusPoint.y, equals(defaultFocusPointY)); + expect(focusPoint.size, equals(defaultFocusPointSize)); + + final TestMeteringPoint exposurePoint = + capturedAction.meteringPointsAe.single as TestMeteringPoint; + expect(exposurePoint.x, equals(exposurePointX)); + expect(exposurePoint.y, equals(exposurePointY)); + expect(exposurePoint.size, isNull); }); test( @@ -5108,18 +5102,18 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); + expect(capturedAction.isAutoCancelEnabled, isFalse); // We expect only the default focus point to be set. - final List<(MeteringPoint, int?)> capturedMeteringPointInfos = - capturedAction.meteringPointInfos; - expect(capturedMeteringPointInfos.length, equals(1)); - expect(capturedMeteringPointInfos.first.$1.x, equals(defaultFocusPointX)); - expect(capturedMeteringPointInfos.first.$1.y, equals(defaultFocusPointY)); - expect(capturedMeteringPointInfos.first.$1.size, - equals(defaultFocusPointSize)); - expect(capturedMeteringPointInfos.first.$2, - equals(FocusMeteringAction.flagAf)); + expect(capturedAction.meteringPointsAe.length, equals(0)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(defaultFocusPointX)); + expect(focusPoint.y, equals(defaultFocusPointY)); + expect(focusPoint.size, equals(defaultFocusPointSize)); }); test( @@ -5144,8 +5138,7 @@ void main() { mockCameraControl, mockCamera2CameraControl); // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -5160,12 +5153,10 @@ void main() { verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); final CaptureRequestOptions capturedCaptureRequestOptions = verificationResult.captured.single as CaptureRequestOptions; - final List<(CaptureRequestKeySupportedType, Object?)> requestedOptions = - capturedCaptureRequestOptions.requestedOptions; - expect(requestedOptions.length, equals(1)); - expect(requestedOptions.first.$1, - equals(CaptureRequestKeySupportedType.controlAeLock)); - expect(requestedOptions.first.$2, equals(false)); + expect( + capturedCaptureRequestOptions.options, + containsPair(camera.proxy.controlAELockCaptureRequest(), false), + ); }); test( @@ -5187,8 +5178,7 @@ void main() { // Make setting focus and metering action successful to set locked focus // mode. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -5205,8 +5195,7 @@ void main() { // Make setting focus and metering action fail to test that auto-cancel is // still disabled. reset(mockFocusMeteringResult); - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(false)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); // Test disabling auto cancel. await camera.setFocusMode(cameraId, FocusMode.auto); @@ -5217,7 +5206,7 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); + expect(capturedAction.isAutoCancelEnabled, isFalse); }); test( @@ -5239,8 +5228,7 @@ void main() { // Make setting focus and metering action successful to set locked focus // mode. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(true)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -5256,8 +5244,7 @@ void main() { // Make setting focus and metering action fail to test that auto-cancel is // still disabled. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(false)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); // Test disabling auto cancel. await camera.setFocusMode(cameraId, FocusMode.auto); @@ -5268,7 +5255,7 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isTrue); + expect(capturedAction.isAutoCancelEnabled, isFalse); }); test( @@ -5290,8 +5277,7 @@ void main() { // Make setting focus and metering action fail to test auto-cancel is not // disabled. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(false)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -5307,7 +5293,7 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); + expect(capturedAction.isAutoCancelEnabled, isTrue); }); test( @@ -5329,8 +5315,7 @@ void main() { // Make setting focus and metering action fail to test auto-cancel is not // disabled. - when(mockFocusMeteringResult.isFocusSuccessful()) - .thenAnswer((_) async => Future.value(false)); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => Future.value(mockFocusMeteringResult)); @@ -5346,7 +5331,7 @@ void main() { verify(mockCameraControl.startFocusAndMetering(captureAny)); final FocusMeteringAction capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.disableAutoCancel, isFalse); + expect(capturedAction.isAutoCancelEnabled, isTrue); }); test( @@ -5370,8 +5355,27 @@ void main() { // Tell plugin to create a detached analyzer for testing purposes. camera.proxy = CameraXProxy( - createAnalyzer: (_) => MockAnalyzer(), - createCameraStateObserver: (_) => MockObserver(), + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockAnalyzer(), + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, ); when(mockProcessCameraProvider.isBound(mockImageAnalysis)) @@ -5420,10 +5424,11 @@ void main() { // Tell plugin to create detached Observer when camera info updated. camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); + createCameraStateObserver: (void Function(Object) onChanged) => + Observer.detached(onChanged: onChanged), + getCamera2CameraInfo: (CameraInfo cameraInfo) => + Future.value(mockCamera2CameraInfo), + ); const int cameraId = 7; const String outputPath = '/temp/REC123.temp'; @@ -5457,7 +5462,7 @@ void main() { verify( camera.processCameraProvider!.unbind([camera.imageAnalysis!])); }); - +/* test( 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback not specified, camera device is level 3, and preview is not paused', () async { From 7d8c3b56fcedd07ae6a849c5c8e4d0f00d647b81 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 17:16:14 -0500 Subject: [PATCH 067/148] finish all dart unit tests --- .../test/android_camera_camerax_test.dart | 676 +++++++++++------- 1 file changed, 432 insertions(+), 244 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 95a78ec5a3f..2b0087ef4c3 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -5407,9 +5407,6 @@ void main() { final MockCamera mockCamera = MockCamera(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Set directly for test versus calling createCamera. camera.processCameraProvider = MockProcessCameraProvider(); @@ -5423,22 +5420,68 @@ void main() { camera.captureOrientationLocked = true; // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo), + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, ); const int cameraId = 7; - const String outputPath = '/temp/REC123.temp'; // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(mockPendingRecording.start(any)) + .thenAnswer((_) async => mockRecording); when(camera.processCameraProvider!.isBound(camera.videoCapture!)) .thenAnswer((_) async => false); when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) @@ -5450,19 +5493,25 @@ void main() { .thenAnswer((_) => Future.value(mockCameraInfo)); when(mockCameraInfo.getCameraState()) .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevelFull); + when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( + (_) async => InfoSupportedHardwareLevel.full, + ); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); verify( camera.processCameraProvider!.unbind([camera.imageAnalysis!])); }); -/* + test( 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback not specified, camera device is level 3, and preview is not paused', () async { @@ -5473,9 +5522,6 @@ void main() { final MockCamera mockCamera = MockCamera(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Set directly for test versus calling createCamera. camera.processCameraProvider = MockProcessCameraProvider(); @@ -5489,21 +5535,68 @@ void main() { camera.captureOrientationLocked = true; // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); const int cameraId = 77; - const String outputPath = '/temp/REC123.temp'; // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(mockPendingRecording.start(any)) + .thenAnswer((_) async => mockRecording); when(camera.processCameraProvider!.isBound(camera.videoCapture!)) .thenAnswer((_) async => false); when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) @@ -5515,12 +5608,18 @@ void main() { .thenAnswer((_) => Future.value(mockCameraInfo)); when(mockCameraInfo.getCameraState()) .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); + when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( + (_) async => InfoSupportedHardwareLevel.level3, + ); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -5538,9 +5637,6 @@ void main() { final MockCamera mockCamera = MockCamera(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Set directly for test versus calling createCamera. camera.processCameraProvider = MockProcessCameraProvider(); @@ -5554,21 +5650,68 @@ void main() { camera.captureOrientationLocked = true; // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); const int cameraId = 87; - const String outputPath = '/temp/REC123.temp'; // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(mockPendingRecording.start(any)) + .thenAnswer((_) async => mockRecording); when(camera.processCameraProvider!.isBound(camera.videoCapture!)) .thenAnswer((_) async => false); when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) @@ -5580,12 +5723,18 @@ void main() { .thenAnswer((_) => Future.value(mockCameraInfo)); when(mockCameraInfo.getCameraState()) .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - (_) async => CameraMetadata.infoSupportedHardwareLevelExternal); + when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( + (_) async => InfoSupportedHardwareLevel.external, + ); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.startVideoCapturing(VideoCaptureOptions(cameraId, streamCallback: (CameraImageData image) {})); @@ -5603,9 +5752,6 @@ void main() { final MockCamera mockCamera = MockCamera(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Set directly for test versus calling createCamera. camera.processCameraProvider = MockProcessCameraProvider(); @@ -5620,24 +5766,83 @@ void main() { camera.captureOrientationLocked = true; // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - createAnalyzer: - (Future Function(ImageProxy imageProxy) analyze) => - Analyzer.detached(analyze: analyze), - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); const int cameraId = 107; - const String outputPath = '/temp/REC123.temp'; // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(mockPendingRecording.start(any)) + .thenAnswer((_) async => mockRecording); when(camera.processCameraProvider!.isBound(camera.videoCapture!)) .thenAnswer((_) async => false); when(camera.processCameraProvider!.isBound(camera.imageCapture!)) @@ -5651,12 +5856,18 @@ void main() { .thenAnswer((_) => Future.value(mockCameraInfo)); when(mockCameraInfo.getCameraState()) .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()) - .thenAnswer((_) async => CameraMetadata.infoSupportedHardwareLevel3); + when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( + (_) async => InfoSupportedHardwareLevel.level3, + ); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.startVideoCapturing(VideoCaptureOptions(cameraId, streamCallback: (CameraImageData image) {})); @@ -5674,9 +5885,6 @@ void main() { final MockCamera mockCamera = MockCamera(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Set directly for test versus calling createCamera. camera.processCameraProvider = MockProcessCameraProvider(); @@ -5692,21 +5900,83 @@ void main() { camera.captureOrientationLocked = true; // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); const int cameraId = 97; - const String outputPath = '/temp/REC123.temp'; // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(mockPendingRecording.start(any)) + .thenAnswer((_) async => mockRecording); when(camera.processCameraProvider!.isBound(camera.videoCapture!)) .thenAnswer((_) async => false); when(camera.processCameraProvider!.bindToLifecycle( @@ -5720,8 +5990,13 @@ void main() { await camera.pausePreview(cameraId); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -5741,9 +6016,6 @@ void main() { final MockCamera mockCamera = MockCamera(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final TestSystemServicesHostApi mockSystemServicesApi = - MockTestSystemServicesHostApi(); - TestSystemServicesHostApi.setup(mockSystemServicesApi); // Set directly for test versus calling createCamera. camera.processCameraProvider = MockProcessCameraProvider(); @@ -5759,21 +6031,83 @@ void main() { camera.captureOrientationLocked = true; // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; camera.proxy = CameraXProxy( - createCameraStateObserver: (void Function(Object) onChanged) => - Observer.detached(onChanged: onChanged), - getCamera2CameraInfo: (CameraInfo cameraInfo) => - Future.value(mockCamera2CameraInfo)); + newAnalyzer: ({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when(mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, '.temp')) + .thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); const int cameraId = 44; - const String outputPath = '/temp/REC123.temp'; // Mock method calls. - when(mockSystemServicesApi.getTempFilePath(camera.videoPrefix, '.temp')) - .thenReturn(outputPath); when(camera.recorder!.prepareRecording(outputPath)) .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start()).thenAnswer((_) async => mockRecording); + when(mockPendingRecording.start(any)) + .thenAnswer((_) async => mockRecording); when(camera.processCameraProvider!.isBound(camera.videoCapture!)) .thenAnswer((_) async => false); when(camera.processCameraProvider!.isBound(camera.imageCapture!)) @@ -5787,12 +6121,18 @@ void main() { .thenAnswer((_) => Future.value(mockCameraInfo)); when(mockCameraInfo.getCameraState()) .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getSupportedHardwareLevel()).thenAnswer( - (_) async => CameraMetadata.infoSupportedHardwareLevelLegacy); + when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( + (_) async => InfoSupportedHardwareLevel.legacy, + ); // Simulate video recording being started so startVideoRecording completes. - PendingRecording.videoRecordingEventStreamController - .add(VideoRecordEvent.start); + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); @@ -5819,160 +6159,8 @@ void main() { verifyNoMoreInteractions(camera.videoCapture); verifyNoMoreInteractions(camera.camera); }); - */ } -// MockCameraXProxy createProxyWithMocks() { -// final MockCameraXProxy mockProxy = MockCameraXProxy(); -// -// when(mockProxy.newAnalyzer).thenReturn(({ -// required void Function(Analyzer, ImageProxy) analyze, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockAnalyzer(); -// }); -// when(mockProxy.newAspectRatioStrategy).thenReturn(({ -// required AspectRatio preferredAspectRatio, -// required AspectRatioStrategyFallbackRule fallbackRule, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockAspectRatioStrategy(); -// }); -// when(mockProxy.getInstanceProcessCameraProvider).thenReturn(({ -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) async { -// return MockProcessCameraProvider(); -// }); -// when(mockProxy.newCameraSelector).thenReturn(({ -// LensFacing? requireLensFacing, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockCameraSelector(); -// }); -// when(mockProxy.newPreview).thenReturn(({ -// int? targetRotation, -// ResolutionSelector? resolutionSelector, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockPreview(); -// }); -// when(mockProxy.newImageCapture).thenReturn(({ -// int? targetRotation, -// CameraXFlashMode? flashMode, -// ResolutionSelector? resolutionSelector, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockImageCapture(); -// }); -// when(mockProxy.newRecorder).thenReturn(({ -// int? aspectRatio, -// int? targetVideoEncodingBitRate, -// QualitySelector? qualitySelector, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockRecorder(); -// }); -// when(mockProxy.withOutputVideoCapture).thenReturn(({ -// required VideoOutput videoOutput, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockVideoCapture(); -// }); -// when(mockProxy.newImageAnalysis).thenReturn(({ -// int? targetRotation, -// ResolutionSelector? resolutionSelector, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockImageAnalysis(); -// }); -// when(mockProxy.newResolutionStrategy).thenReturn(({ -// required CameraSize boundSize, -// required ResolutionStrategyFallbackRule fallbackRule, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockResolutionStrategy(); -// }); -// when(mockProxy.newResolutionSelector).thenReturn(({ -// AspectRatioStrategy? aspectRatioStrategy, -// ResolutionStrategy? resolutionStrategy, -// ResolutionFilter? resolutionFilter, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockResolutionSelector(); -// }); -// when(mockProxy.lowerQualityThanFallbackStrategy).thenReturn(({ -// required VideoQuality quality, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockFallbackStrategy(); -// }); -// when(mockProxy.fromQualitySelector).thenReturn(({ -// required VideoQuality quality, -// FallbackStrategy? fallbackStrategy, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockQualitySelector(); -// }); -// when(mockProxy.newObserver).thenReturn(Observer.detached); -// when(mockProxy.createWithOnePreferredSizeResolutionFilter).thenReturn(({ -// required CameraSize preferredSize, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockResolutionFilter(); -// }); -// when(mockProxy.fromCamera2CameraInfo).thenReturn(({ -// required CameraInfo cameraInfo, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockCamera2CameraInfo(); -// }); -// when(mockProxy.newDeviceOrientationManager).thenReturn(({ -// required void Function( -// DeviceOrientationManager, -// String, -// ) onDeviceOrientationChanged, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockDeviceOrientationManager(); -// }); -// when(mockProxy.newSystemServicesManager).thenReturn(({ -// required void Function( -// SystemServicesManager, -// String, -// ) onCameraError, -// BinaryMessenger? pigeon_binaryMessenger, -// PigeonInstanceManager? pigeon_instanceManager, -// }) { -// return MockSystemServicesManager(); -// }); -// -// // return CameraXProxy( -// // startListeningForDeviceOrientationChange: (_, __) { -// // startedListeningForDeviceOrientationChanges = true; -// // }, -// // getUiOrientation: () => -// // Future.value(DeviceOrientation.portraitUp), -// // ); -// -// return mockProxy; -// } - class TestMeteringPoint extends MeteringPoint { TestMeteringPoint.detached({required this.x, required this.y, this.size}) : super.pigeon_detached( From 1f1f31da5406ea84d01cd600d96031afee2f1066 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 17:34:43 -0500 Subject: [PATCH 068/148] fix analysis errors --- .../lib/src/android_camera_camerax.dart | 4 +- .../lib/src/camerax_library.dart | 28 ++ .../test/android_camera_camerax_test.dart | 328 +++++++++++++++++- 3 files changed, 356 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index a5247258b40..4b636c89f74 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -74,11 +74,13 @@ class AndroidCameraCameraX extends CameraPlatform { @visibleForTesting String? videoOutputPath; + /// Handles access to system resources. late final SystemServicesManager systemServicesManager = proxy .newSystemServicesManager(onCameraError: (_, String errorDescription) { cameraErrorStreamController.add(errorDescription); }); + /// Handles retrieving media orientation for a device. late final DeviceOrientationManager deviceOrientationManager = proxy.newDeviceOrientationManager( onDeviceOrientationChanged: (_, String orientation) { @@ -691,7 +693,7 @@ class AndroidCameraCameraX extends CameraPlatform { @override Future setExposureOffset(int cameraId, double offset) async { final double exposureOffsetStepSize = - (await cameraInfo!.exposureState).exposureCompensationStep; + cameraInfo!.exposureState.exposureCompensationStep; if (exposureOffsetStepSize == 0) { throw CameraException(exposureCompensationNotSupported, 'Exposure compensation not supported'); diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index d107084310c..cff581d83b5 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -1,9 +1,18 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'camerax_library2.g.dart' as camerax; export 'camerax_library2.g.dart' hide CameraInfo, LiveData, Observer; +/// Handles adding support for generics to the API wrapper. +/// +/// APIs wrapped with the pigeon ProxyAPI system doesn't support generics, so +/// this handles using subclasses to add support. void setUpGenerics({ BinaryMessenger? pigeonBinaryMessenger, camerax.PigeonInstanceManager? pigeonInstanceManager, @@ -65,6 +74,9 @@ class Surface { static const int rotation270 = 3; } +/// An interface for retrieving camera information. +/// +/// See https://developer.android.com/reference/androidx/camera/core/CameraInfo. class CameraInfo extends camerax.CameraInfo { CameraInfo.detached({ required super.sensorRotationDegrees, @@ -94,7 +106,19 @@ class CameraInfo extends camerax.CameraInfo { } } +/// LiveData is a data holder class that can be observed within a given +/// lifecycle. +/// +/// This is a wrapper around the native class to better support the generic +/// type. Java has type erasure; +/// +/// See https://developer.android.com/reference/androidx/lifecycle/LiveData. class LiveData extends camerax.LiveData { + /// Constructs [LiveData] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected LiveData.detached({ required super.type, super.pigeon_binaryMessenger, @@ -121,7 +145,11 @@ class LiveData extends camerax.LiveData { } } +/// A simple callback that can receive from LiveData. +/// +/// See https://developer.android.com/reference/androidx/lifecycle/Observer. class Observer extends camerax.Observer { + /// Constructs an [Observer]. Observer({ required void Function(Observer instance, T value) onChanged, super.pigeon_binaryMessenger, diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 2b0087ef4c3..5f71895ac0a 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -12,7 +12,7 @@ import 'package:camera_android_camerax/src/camerax_proxy2.dart'; import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart' show BinaryMessenger, DeviceOrientation, PlatformException, Uint8List; -import 'package:flutter/widgets.dart' show BuildContext, Size, Texture, Widget; +import 'package:flutter/widgets.dart' show Texture, Widget; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/annotations.dart'; import 'package:mockito/mockito.dart'; @@ -113,18 +113,24 @@ void main() { MockProcessCameraProvider mockProcessCameraProvider, { ResolutionFilter Function({ required CameraSize preferredSize, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, })? createWithOnePreferredSizeResolutionFilter, FallbackStrategy Function({ required VideoQuality quality, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, })? lowerQualityOrHigherThanFallbackStrategy, QualitySelector Function({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, })? fromQualitySelector, }) { @@ -135,14 +141,18 @@ void main() { MockResolutionStrategy(); proxy = CameraXProxy( getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) async { return mockProcessCameraProvider; }, newCameraSelector: ({ LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { switch (requireLensFacing) { @@ -159,7 +169,9 @@ void main() { newPreview: ({ int? targetRotation, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockPreview mockPreview = MockPreview(); @@ -170,7 +182,9 @@ void main() { int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockImageCapture mockImageCapture = MockImageCapture(); @@ -182,7 +196,9 @@ void main() { int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockRecorder mockRecorder = MockRecorder(); @@ -193,7 +209,9 @@ void main() { }, withOutputVideoCapture: ({ required VideoOutput videoOutput, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockVideoCapture(); @@ -201,7 +219,9 @@ void main() { newImageAnalysis: ({ int? targetRotation, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); @@ -212,7 +232,9 @@ void main() { newResolutionStrategy: ({ required CameraSize boundSize, required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockResolutionStrategy resolutionStrategy = @@ -229,7 +251,9 @@ void main() { AspectRatioStrategy? aspectRatioStrategy, ResolutionStrategy? resolutionStrategy, ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockResolutionSelector mockResolutionSelector = @@ -251,14 +275,18 @@ void main() { ({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockQualitySelector(); }, newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -273,7 +301,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockSystemServicesManager(); @@ -283,7 +313,9 @@ void main() { DeviceOrientationManager, String, ) onDeviceOrientationChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDeviceOrientationManager manager = @@ -296,7 +328,9 @@ void main() { newAspectRatioStrategy: ({ required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockAspectRatioStrategy mockAspectRatioStrategy = @@ -313,14 +347,18 @@ void main() { createWithOnePreferredSizeResolutionFilter ?? ({ required CameraSize preferredSize, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockResolutionFilter(); }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockCamera2CameraInfo camera2cameraInfo = MockCamera2CameraInfo(); @@ -332,7 +370,9 @@ void main() { newCameraSize: ({ required int width, required int height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return CameraSize.pigeon_detached( @@ -350,7 +390,9 @@ void main() { lowerQualityOrHigherThanFallbackStrategy ?? ({ required VideoQuality quality, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockFallbackStrategy(); @@ -362,7 +404,9 @@ void main() { ratio_4_3FallbackAutoStrategyAspectRatioStrategy, lowerQualityThanFallbackStrategy: ({ required VideoQuality quality, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockFallbackStrategy(); @@ -380,14 +424,18 @@ void main() { FocusMeteringActionBuilder Function({ required MeteringPoint point, required MeteringMode mode, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, })? withModeFocusMeteringActionBuilder, DisplayOrientedMeteringPointFactory Function({ required CameraInfo cameraInfo, required double width, required double height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, })? newDisplayOrientedMeteringPointFactory, }) => @@ -398,13 +446,13 @@ void main() { required CameraInfo cameraInfo, required double width, required double height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDisplayOrientedMeteringPointFactory mockFactory = MockDisplayOrientedMeteringPointFactory(); - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); when(mockFactory.createPoint(any, any)).thenAnswer( (Invocation invocation) async => TestMeteringPoint.detached( x: invocation.positionalArguments[0]! as double, @@ -426,7 +474,9 @@ void main() { ({ required MeteringPoint point, required MeteringMode mode, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final PigeonInstanceManager testInstanceManager = @@ -499,14 +549,18 @@ void main() { FocusMeteringActionBuilder Function({ required MeteringPoint point, required MeteringMode mode, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, })? withModeFocusMeteringActionBuilder, DisplayOrientedMeteringPointFactory Function({ required CameraInfo cameraInfo, required double width, required double height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, })? newDisplayOrientedMeteringPointFactory, }) { @@ -525,7 +579,9 @@ void main() { } proxy.fromCamera2CameraControl = ({ required CameraControl cameraControl, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => cameraControl == cameraControlForComparison @@ -535,7 +591,9 @@ void main() { ); proxy.newCaptureRequestOptions = ({ required Map options, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return CaptureRequestOptions.pigeon_detached( @@ -583,13 +641,17 @@ void main() { PigeonInstanceManager? pigeonInstanceManager, }) {}, getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => Future.value(mockProcessCameraProvider), newCameraSelector: ({ LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { switch (requireLensFacing) { @@ -608,7 +670,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockSystemServicesManager(); @@ -683,14 +747,18 @@ void main() { camera.proxy = CameraXProxy( getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) async { return mockProcessCameraProvider; }, newCameraSelector: ({ LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { switch (requireLensFacing) { @@ -707,7 +775,9 @@ void main() { newPreview: ({ int? targetRotation, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockPreview; @@ -716,7 +786,9 @@ void main() { int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockImageCapture; @@ -725,14 +797,18 @@ void main() { int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockRecorder; }, withOutputVideoCapture: ({ required VideoOutput videoOutput, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockVideoCapture; @@ -740,7 +816,9 @@ void main() { newImageAnalysis: ({ int? targetRotation, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockImageAnalysis; @@ -748,7 +826,9 @@ void main() { newResolutionStrategy: ({ required CameraSize boundSize, required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockResolutionStrategy(); @@ -757,7 +837,9 @@ void main() { AspectRatioStrategy? aspectRatioStrategy, ResolutionStrategy? resolutionStrategy, ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockResolutionSelector(); @@ -765,14 +847,18 @@ void main() { fromQualitySelector: ({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockQualitySelector(); }, newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -787,7 +873,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { when(mockSystemServicesManager.requestCameraPermissions(any)) @@ -804,7 +892,9 @@ void main() { DeviceOrientationManager, String, ) onDeviceOrientationChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDeviceOrientationManager manager = @@ -823,21 +913,27 @@ void main() { newAspectRatioStrategy: ({ required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockAspectRatioStrategy(); }, createWithOnePreferredSizeResolutionFilter: ({ required CameraSize preferredSize, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockResolutionFilter(); }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockCamera2CameraInfo camera2cameraInfo = MockCamera2CameraInfo(); @@ -850,7 +946,9 @@ void main() { newCameraSize: ({ required int width, required int height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockCameraSize(); @@ -860,7 +958,9 @@ void main() { }, lowerQualityOrHigherThanFallbackStrategy: ({ required VideoQuality quality, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockFallbackStrategy(); @@ -955,14 +1055,18 @@ void main() { // testing of createCamera. camera.proxy = CameraXProxy( getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) async { return mockProcessCameraProvider; }, newCameraSelector: ({ LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { switch (requireLensFacing) { @@ -979,7 +1083,9 @@ void main() { newPreview: ({ int? targetRotation, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockPreview; @@ -988,7 +1094,9 @@ void main() { int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockImageCapture; @@ -997,14 +1105,18 @@ void main() { int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockRecorder; }, withOutputVideoCapture: ({ required VideoOutput videoOutput, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockVideoCapture; @@ -1012,7 +1124,9 @@ void main() { newImageAnalysis: ({ int? targetRotation, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return mockImageAnalysis; @@ -1020,7 +1134,9 @@ void main() { newResolutionStrategy: ({ required CameraSize boundSize, required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockResolutionStrategy(); @@ -1029,7 +1145,9 @@ void main() { AspectRatioStrategy? aspectRatioStrategy, ResolutionStrategy? resolutionStrategy, ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockResolutionSelector(); @@ -1037,14 +1155,18 @@ void main() { fromQualitySelector: ({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockQualitySelector(); }, newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -1059,7 +1181,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockSystemServicesManager(); @@ -1069,7 +1193,9 @@ void main() { DeviceOrientationManager, String, ) onDeviceOrientationChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDeviceOrientationManager manager = @@ -1082,21 +1208,27 @@ void main() { newAspectRatioStrategy: ({ required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockAspectRatioStrategy(); }, createWithOnePreferredSizeResolutionFilter: ({ required CameraSize preferredSize, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockResolutionFilter(); }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { when( @@ -1108,7 +1240,9 @@ void main() { newCameraSize: ({ required int width, required int height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockCameraSize(); @@ -1118,7 +1252,9 @@ void main() { }, lowerQualityOrHigherThanFallbackStrategy: ({ required VideoQuality quality, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockFallbackStrategy(); @@ -1326,7 +1462,9 @@ void main() { mockProcessCameraProvider, createWithOnePreferredSizeResolutionFilter: ({ required CameraSize preferredSize, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { lastSetPreferredSize = preferredSize; @@ -1586,7 +1724,9 @@ void main() { mockProcessCameraProvider, lowerQualityOrHigherThanFallbackStrategy: ({ required VideoQuality quality, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { fallbackStrategyVideoQuality = quality; @@ -1595,7 +1735,9 @@ void main() { fromQualitySelector: ({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { qualitySelectorVideoQuality = quality; @@ -1744,13 +1886,17 @@ void main() { // as needed. camera.proxy = CameraXProxy( getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => Future.value(mockProcessCameraProvider), newCameraSelector: ({ LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { switch (requireLensFacing) { @@ -1763,7 +1909,9 @@ void main() { newPreview: ({ int? targetRotation, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockPreview, @@ -1771,7 +1919,9 @@ void main() { int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockImageCapture, @@ -1779,27 +1929,35 @@ void main() { int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockRecorder(), withOutputVideoCapture: ({ required VideoOutput videoOutput, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockVideoCapture(), newImageAnalysis: ({ int? targetRotation, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockImageAnalysis, newResolutionStrategy: ({ required CameraSize boundSize, required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockResolutionStrategy(), @@ -1807,26 +1965,34 @@ void main() { AspectRatioStrategy? aspectRatioStrategy, ResolutionStrategy? resolutionStrategy, ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockResolutionSelector(), lowerQualityOrHigherThanFallbackStrategy: ({ required VideoQuality quality, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockFallbackStrategy(), fromQualitySelector: ({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockQualitySelector(), newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -1841,7 +2007,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockSystemServicesManager(), @@ -1850,7 +2018,9 @@ void main() { DeviceOrientationManager, String, ) onDeviceOrientationChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDeviceOrientationManager manager = @@ -1863,19 +2033,25 @@ void main() { newAspectRatioStrategy: ({ required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockAspectRatioStrategy(), createWithOnePreferredSizeResolutionFilter: ({ required CameraSize preferredSize, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockResolutionFilter(), fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockCamera2CameraInfo mockCamera2CameraInfo = @@ -1888,7 +2064,9 @@ void main() { newCameraSize: ({ required int width, required int height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockCameraSize(), @@ -2010,7 +2188,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -2048,7 +2228,9 @@ void main() { DeviceOrientationManager, String, ) onDeviceOrientationChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDeviceOrientationManager mockDeviceOrientationManager = @@ -2155,7 +2337,9 @@ void main() { camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -2255,7 +2439,9 @@ void main() { camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -2267,7 +2453,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockCamera2CameraInfo, @@ -2276,7 +2464,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -2291,7 +2481,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( @@ -2387,7 +2579,9 @@ void main() { camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -2399,7 +2593,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockCamera2CameraInfo, @@ -2408,7 +2604,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -2423,7 +2621,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( @@ -2519,7 +2719,9 @@ void main() { camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -2531,7 +2733,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockCamera2CameraInfo, @@ -2540,7 +2744,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -2555,7 +2761,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( @@ -2573,7 +2781,9 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return MockAnalyzer(); @@ -2648,7 +2858,9 @@ void main() { camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -2660,7 +2872,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => cameraInfo == initialCameraInfo @@ -2671,7 +2885,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -2686,7 +2902,9 @@ void main() { DeviceOrientationManager, String, ) onDeviceOrientationChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDeviceOrientationManager mockDeviceOrientationManager = @@ -2702,7 +2920,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( @@ -3019,7 +3239,9 @@ void main() { camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -3069,7 +3291,9 @@ void main() { DeviceOrientationManager, String, ) onDeviceOrientationChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDeviceOrientationManager mockDeviceOrientationManager = @@ -3406,7 +3630,9 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Analyzer.pigeon_detached( @@ -3462,7 +3688,9 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Analyzer.pigeon_detached( @@ -3535,7 +3763,9 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Analyzer.pigeon_detached( @@ -3547,7 +3777,9 @@ void main() { }, newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -3638,7 +3870,9 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockAnalyzer(), @@ -3678,7 +3912,9 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockAnalyzer(), @@ -3687,7 +3923,9 @@ void main() { DeviceOrientationManager, String, ) onDeviceOrientationChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDeviceOrientationManager manager = @@ -3821,7 +4059,9 @@ void main() { camera.proxy = CameraXProxy( fromCamera2CameraControl: ({ required CameraControl cameraControl, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => cameraControl == mockCameraControl @@ -3831,7 +4071,9 @@ void main() { ), newCaptureRequestOptions: ({ required Map options, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => CaptureRequestOptions.pigeon_detached( @@ -3897,7 +4139,9 @@ void main() { getProxyForExposureAndFocus(withModeFocusMeteringActionBuilder: ({ required MeteringMode mode, required MeteringPoint point, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { actionBuilderMeteringMode = mode; @@ -4013,7 +4257,9 @@ void main() { required CameraInfo cameraInfo, required double width, required double height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDisplayOrientedMeteringPointFactory mockFactory = @@ -4027,7 +4273,9 @@ void main() { withModeFocusMeteringActionBuilder: ({ required MeteringMode mode, required MeteringPoint point, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { actionBuilderMeteringMode = mode; @@ -4136,7 +4384,9 @@ void main() { required CameraInfo cameraInfo, required double width, required double height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDisplayOrientedMeteringPointFactory mockFactory = @@ -4150,7 +4400,9 @@ void main() { withModeFocusMeteringActionBuilder: ({ required MeteringMode mode, required MeteringPoint point, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { actionBuilderMeteringMode = mode; @@ -4380,7 +4632,9 @@ void main() { getProxyForExposureAndFocus(withModeFocusMeteringActionBuilder: ({ required MeteringMode mode, required MeteringPoint point, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { actionBuilderMeteringMode = mode; @@ -4496,7 +4750,9 @@ void main() { required CameraInfo cameraInfo, required double width, required double height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDisplayOrientedMeteringPointFactory mockFactory = @@ -4509,7 +4765,9 @@ void main() { withModeFocusMeteringActionBuilder: ({ required MeteringMode mode, required MeteringPoint point, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { actionBuilderMeteringMode = mode; @@ -4616,7 +4874,9 @@ void main() { required CameraInfo cameraInfo, required double width, required double height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDisplayOrientedMeteringPointFactory mockFactory = @@ -4629,7 +4889,9 @@ void main() { withModeFocusMeteringActionBuilder: ({ required MeteringMode mode, required MeteringPoint point, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { actionBuilderMeteringMode = mode; @@ -4761,7 +5023,9 @@ void main() { required CameraInfo cameraInfo, required double width, required double height, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockDisplayOrientedMeteringPointFactory mockFactory = @@ -5360,13 +5624,17 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockAnalyzer(), newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -5424,7 +5692,9 @@ void main() { camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -5436,7 +5706,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockCamera2CameraInfo, @@ -5445,7 +5717,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -5460,7 +5734,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( @@ -5539,7 +5815,9 @@ void main() { camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -5551,7 +5829,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockCamera2CameraInfo, @@ -5560,7 +5840,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -5575,7 +5857,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( @@ -5654,7 +5938,9 @@ void main() { camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -5666,7 +5952,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockCamera2CameraInfo, @@ -5675,7 +5963,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -5690,7 +5980,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( @@ -5773,7 +6065,9 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Analyzer.pigeon_detached( @@ -5785,7 +6079,9 @@ void main() { }, newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -5797,7 +6093,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockCamera2CameraInfo, @@ -5806,7 +6104,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -5821,7 +6121,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( @@ -5907,7 +6209,9 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Analyzer.pigeon_detached( @@ -5919,7 +6223,9 @@ void main() { }, newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -5931,7 +6237,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockCamera2CameraInfo, @@ -5940,7 +6248,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -5955,7 +6265,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( @@ -6038,7 +6350,9 @@ void main() { Analyzer, ImageProxy, ) analyze, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Analyzer.pigeon_detached( @@ -6050,7 +6364,9 @@ void main() { }, newObserver: ({ required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return Observer.detached( @@ -6062,7 +6378,9 @@ void main() { }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => mockCamera2CameraInfo, @@ -6071,7 +6389,9 @@ void main() { SystemServicesManager, String, ) onCameraError, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockSystemServicesManager mockSystemServicesManager = @@ -6086,7 +6406,9 @@ void main() { VideoRecordEventListener, VideoRecordEvent, ) onEvent, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { return VideoRecordEventListener.pigeon_detached( From c70f4d4619b9c0bf9f2c784a726eb0c7ee174cd2 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 17:37:37 -0500 Subject: [PATCH 069/148] fix all analysis errors --- .../lib/src/camerax_library.dart | 19 +++++++++++++++++++ .../lib/src/camerax_proxy2.dart | 5 +++++ 2 files changed, 24 insertions(+) diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index cff581d83b5..f67a31b0aec 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -78,10 +78,16 @@ class Surface { /// /// See https://developer.android.com/reference/androidx/camera/core/CameraInfo. class CameraInfo extends camerax.CameraInfo { + /// Constructs [CameraInfo] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. CameraInfo.detached({ required super.sensorRotationDegrees, required super.exposureState, + // ignore: non_constant_identifier_names super.pigeon_binaryMessenger, + // ignore: non_constant_identifier_names super.pigeon_instanceManager, }) : super.pigeon_detached(); @@ -96,6 +102,7 @@ class CameraInfo extends camerax.CameraInfo { } @override + // ignore: non_constant_identifier_names CameraInfo pigeon_copy() { return CameraInfo.detached( sensorRotationDegrees: sensorRotationDegrees, @@ -121,7 +128,9 @@ class LiveData extends camerax.LiveData { @protected LiveData.detached({ required super.type, + // ignore: non_constant_identifier_names super.pigeon_binaryMessenger, + // ignore: non_constant_identifier_names super.pigeon_instanceManager, }) : super.pigeon_detached(); @@ -136,6 +145,7 @@ class LiveData extends camerax.LiveData { } @override + // ignore: non_constant_identifier_names LiveData pigeon_copy() { return LiveData.detached( type: type, @@ -152,7 +162,9 @@ class Observer extends camerax.Observer { /// Constructs an [Observer]. Observer({ required void Function(Observer instance, T value) onChanged, + // ignore: non_constant_identifier_names super.pigeon_binaryMessenger, + // ignore: non_constant_identifier_names super.pigeon_instanceManager, }) : _genericOnChanged = onChanged, super( @@ -164,9 +176,15 @@ class Observer extends camerax.Observer { }, ); + /// Constructs [Observer] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. Observer.detached({ required void Function(Observer instance, T value) onChanged, + // ignore: non_constant_identifier_names super.pigeon_binaryMessenger, + // ignore: non_constant_identifier_names super.pigeon_instanceManager, }) : _genericOnChanged = onChanged, super.pigeon_detached( @@ -181,6 +199,7 @@ class Observer extends camerax.Observer { final void Function(Observer instance, T value) _genericOnChanged; @override + // ignore: non_constant_identifier_names Observer pigeon_copy() { return Observer.detached( onChanged: _genericOnChanged, diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart index d80e5e31833..5daf870589e 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart @@ -1,3 +1,7 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + import 'package:flutter/services.dart'; // ignore_for_file: non_constant_identifier_names @@ -68,6 +72,7 @@ class CameraXProxy { _sensorOrientationCameraCharacteristics, }); + /// Handles adding support for generic classes. final void Function({ BinaryMessenger? pigeonBinaryMessenger, PigeonInstanceManager? pigeonInstanceManager, From ee2d9594b28e06f489a081b0fcd82182317dc3a2 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 17:40:41 -0500 Subject: [PATCH 070/148] fix dart file names --- .../lib/src/android_camera_camerax.dart | 2 +- .../lib/src/camerax_library.dart | 4 +- ...library2.g.dart => camerax_library.g.dart} | 0 ...camerax_proxy2.dart => camerax_proxy.dart} | 0 .../pigeons/camerax_library.dart | 2 +- .../test/android_camera_camerax_test.dart | 2 +- .../android_camera_camerax_test.mocks.dart | 78 ++++++++++++++++++- 7 files changed, 81 insertions(+), 7 deletions(-) rename packages/camera/camera_android_camerax/lib/src/{camerax_library2.g.dart => camerax_library.g.dart} (100%) rename packages/camera/camera_android_camerax/lib/src/{camerax_proxy2.dart => camerax_proxy.dart} (100%) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 4b636c89f74..c941d816472 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -12,7 +12,7 @@ import 'package:flutter/services.dart' import 'package:flutter/widgets.dart' show Texture, Widget, visibleForTesting; import 'package:stream_transform/stream_transform.dart'; import 'camerax_library.dart'; -import 'camerax_proxy2.dart'; +import 'camerax_proxy.dart'; /// The Android implementation of [CameraPlatform] that uses the CameraX library. class AndroidCameraCameraX extends CameraPlatform { diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index f67a31b0aec..6967cc625f6 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -5,9 +5,9 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; -import 'camerax_library2.g.dart' as camerax; +import 'camerax_library.g.dart' as camerax; -export 'camerax_library2.g.dart' hide CameraInfo, LiveData, Observer; +export 'camerax_library.g.dart' hide CameraInfo, LiveData, Observer; /// Handles adding support for generics to the API wrapper. /// diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart similarity index 100% rename from packages/camera/camera_android_camerax/lib/src/camerax_library2.g.dart rename to packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart similarity index 100% rename from packages/camera/camera_android_camerax/lib/src/camerax_proxy2.dart rename to packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 1da813d15c8..0224bf1081e 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -9,7 +9,7 @@ import 'package:pigeon/pigeon.dart'; @ConfigurePigeon( PigeonOptions( copyrightHeader: 'pigeons/copyright.txt', - dartOut: 'lib/src/camerax_library2.g.dart', + dartOut: 'lib/src/camerax_library.g.dart', kotlinOut: 'android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt', kotlinOptions: KotlinOptions( diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 5f71895ac0a..b78bb397417 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -8,7 +8,7 @@ import 'dart:math' show Point; import 'package:async/async.dart'; import 'package:camera_android_camerax/camera_android_camerax.dart'; import 'package:camera_android_camerax/src/camerax_library.dart'; -import 'package:camera_android_camerax/src/camerax_proxy2.dart'; +import 'package:camera_android_camerax/src/camerax_proxy.dart'; import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart' show BinaryMessenger, DeviceOrientation, PlatformException, Uint8List; diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index a1b641b84a4..ca439ff31a2 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -7,8 +7,8 @@ import 'dart:async' as _i5; import 'dart:typed_data' as _i9; import 'package:camera_android_camerax/src/camerax_library.dart' as _i3; -import 'package:camera_android_camerax/src/camerax_library2.g.dart' as _i2; -import 'package:camera_android_camerax/src/camerax_proxy2.dart' as _i7; +import 'package:camera_android_camerax/src/camerax_library.g.dart' as _i2; +import 'package:camera_android_camerax/src/camerax_proxy.dart' as _i7; import 'package:camera_platform_interface/camera_platform_interface.dart' as _i4; import 'package:flutter/services.dart' as _i8; @@ -2101,6 +2101,22 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, })); + @override + set withModeFocusMeteringActionBuilder( + _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringMode mode, + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })? _withModeFocusMeteringActionBuilder) => + super.noSuchMethod( + Invocation.setter( + #withModeFocusMeteringActionBuilder, + _withModeFocusMeteringActionBuilder, + ), + returnValueForMissingStub: null, + ); + @override _i2.CaptureRequestOptions Function({ required Map<_i2.CaptureRequestKey, Object?> options, @@ -2132,6 +2148,21 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, })); + @override + set newCaptureRequestOptions( + _i2.CaptureRequestOptions Function({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })? _newCaptureRequestOptions) => + super.noSuchMethod( + Invocation.setter( + #newCaptureRequestOptions, + _newCaptureRequestOptions, + ), + returnValueForMissingStub: null, + ); + @override _i2.Camera2CameraControl Function({ required _i2.CameraControl cameraControl, @@ -2163,6 +2194,21 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, })); + @override + set fromCamera2CameraControl( + _i2.Camera2CameraControl Function({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })? _fromCamera2CameraControl) => + super.noSuchMethod( + Invocation.setter( + #fromCamera2CameraControl, + _fromCamera2CameraControl, + ), + returnValueForMissingStub: null, + ); + @override _i2.ResolutionFilter Function({ required _i2.CameraSize preferredSize, @@ -2264,6 +2310,23 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, })); + @override + set newDisplayOrientedMeteringPointFactory( + _i2.DisplayOrientedMeteringPointFactory Function({ + required _i3.CameraInfo cameraInfo, + required double height, + required double width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })? _newDisplayOrientedMeteringPointFactory) => + super.noSuchMethod( + Invocation.setter( + #newDisplayOrientedMeteringPointFactory, + _newDisplayOrientedMeteringPointFactory, + ), + returnValueForMissingStub: null, + ); + @override _i5.Future<_i2.ProcessCameraProvider> Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, @@ -2408,6 +2471,17 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { ), ) as _i2.CaptureRequestKey Function()); + @override + set controlAELockCaptureRequest( + _i2.CaptureRequestKey Function()? _controlAELockCaptureRequest) => + super.noSuchMethod( + Invocation.setter( + #controlAELockCaptureRequest, + _controlAELockCaptureRequest, + ), + returnValueForMissingStub: null, + ); + @override _i2.CameraCharacteristicsKey Function() get infoSupportedHardwareLevelCameraCharacteristics => (super From 61e06265a5b9a6bf9cbeaa51c148dc8d433cde87 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 18:14:13 -0500 Subject: [PATCH 071/148] fix platform side with a few missing stuff --- .../camerax/AspectRatioStrategyProxyApi.java | 28 +++ .../camerax/Camera2CameraInfoProxyApi.java | 5 +- .../CameraCharacteristicsKeyProxyApi.java | 21 -- .../plugins/camerax/CameraXLibrary.g.kt | 10 +- .../flutter/plugins/camerax/CameraXProxy.java | 68 ------- .../camerax/CaptureRequestKeyProxyApi.java | 21 -- .../CaptureRequestOptionsProxyApi.java | 2 + .../camerax/ImageAnalysisProxyApi.java | 33 ++-- .../plugins/camerax/ImageCaptureProxyApi.java | 12 +- .../plugins/camerax/PreviewHostApiImpl.java | 186 ------------------ .../plugins/camerax/PreviewProxyApi.java | 8 +- .../plugins/camerax/RecorderProxyApi.java | 7 + .../camerax/ResolutionSelectorProxyApi.java | 25 ++- .../camerax/ResolutionStrategyProxyApi.java | 28 +++ .../plugins/camerax/UseCaseProxyApi.java | 21 -- .../plugins/camerax/VideoOutputProxyApi.java | 21 -- .../VideoRecordEventFinalizeProxyApi.java | 21 -- .../camerax/VideoRecordEventListener.java | 4 + .../camerax/VideoRecordEventProxyApi.java | 21 -- .../VideoRecordEventStartProxyApi.java | 21 -- .../lib/src/camerax_library.g.dart | 4 + .../pigeons/camerax_library.dart | 9 + 22 files changed, 151 insertions(+), 425 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java delete mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java index ca7f52c87ce..15ec4e3fe8c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java @@ -56,4 +56,32 @@ public AspectRatioStrategy ratio_16_9FallbackAutoStrategy() { public AspectRatioStrategy ratio_4_3FallbackAutoStrategy() { return AspectRatioStrategy.RATIO_4_3_FALLBACK_AUTO_STRATEGY; } + + @NonNull + @Override + public AspectRatioStrategyFallbackRule getFallbackRule(@NonNull AspectRatioStrategy pigeon_instance) { + switch(pigeon_instance.getFallbackRule()) { + case AspectRatioStrategy.FALLBACK_RULE_AUTO: + return AspectRatioStrategyFallbackRule.AUTO; + case AspectRatioStrategy.FALLBACK_RULE_NONE: + return AspectRatioStrategyFallbackRule.NONE; + } + + return AspectRatioStrategyFallbackRule.UNKNOWN; + } + + @NonNull + @Override + public AspectRatio getPreferredAspectRatio(@NonNull AspectRatioStrategy pigeon_instance) { + switch(pigeon_instance.getPreferredAspectRatio()) { + case androidx.camera.core.AspectRatio.RATIO_16_9: + return AspectRatio.RATIO16TO9; + case androidx.camera.core.AspectRatio.RATIO_4_3: + return AspectRatio.RATIO4TO3; + case androidx.camera.core.AspectRatio.RATIO_DEFAULT: + return AspectRatio.RATIO_DEFAULT; + } + + return AspectRatio.UNKNOWN; + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java index f45e9d8ed76..7d6e6a8fb89 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java @@ -42,7 +42,10 @@ public String getCameraId(Camera2CameraInfo pigeon_instance) { public Object getCameraCharacteristic( Camera2CameraInfo pigeon_instance, @NonNull CameraCharacteristics.Key key) { final Object result = pigeon_instance.getCameraCharacteristic(key); - // TODO: need better solution + if (result == null) { + return null; + } + if (key == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL) { switch((Integer) result) { case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_3: diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java deleted file mode 100644 index 62a52f85b69..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CameraCharacteristics.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraCharacteristicsKey}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraCharacteristicsKeyProxyApi extends PigeonApiCameraCharacteristicsKey { - CameraCharacteristicsKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 7edec873c52..b1edd8a0aea 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -50,7 +50,7 @@ class CameraXError ( val code: String, override val message: String? = null, val details: Any? = null -) : Throwable() +) : RuntimeException() /** * Maintains instances used to communicate with the corresponding objects in Dart. * @@ -997,7 +997,9 @@ enum class AspectRatio(val raw: Int) { /** 4:3 standard aspect ratio. */ RATIO4TO3(1), /** The aspect ratio representing no preference for aspect ratio. */ - RATIO_DEFAULT(2); + RATIO_DEFAULT(2), + /** The value is not recognized by the wrapper. */ + UNKNOWN(3); companion object { fun ofRaw(raw: Int): AspectRatio? { @@ -1223,7 +1225,9 @@ enum class AspectRatioStrategyFallbackRule(val raw: Int) { * CameraX doesn't fall back to select sizes of any other aspect ratio when * this fallback rule is used. */ - NONE(1); + NONE(1), + /** The value is not recognized by the wrapper. */ + UNKNOWN(2); companion object { fun ofRaw(raw: Int): AspectRatioStrategyFallbackRule? { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java deleted file mode 100644 index 9b678e9ddd5..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXProxy.java +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.camera.core.CameraSelector; -import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.ImageCapture; -import androidx.camera.core.Preview; -import androidx.camera.video.Recorder; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -import java.io.File; - -/** Utility class used to create CameraX-related objects primarily for testing purposes. */ -public class CameraXProxy { - public static @NonNull Size sizeFromResolution(@NonNull ResolutionInfo resolutionInfo) { - return new Size(resolutionInfo.getWidth().intValue(), resolutionInfo.getHeight().intValue()); - } - - public @NonNull CameraSelector.Builder createCameraSelectorBuilder() { - return new CameraSelector.Builder(); - } - - /** Creates an instance of {@link CameraPermissionsManager}. */ - public @NonNull CameraPermissionsManager createCameraPermissionsManager() { - return new CameraPermissionsManager(); - } - - /** Creates a builder for an instance of the {@link Preview} use case. */ - public @NonNull Preview.Builder createPreviewBuilder() { - return new Preview.Builder(); - } - - /** Creates an instance of {@link Recorder.Builder}. */ - @NonNull - public Recorder.Builder createRecorderBuilder() { - return new Recorder.Builder(); - } - - /** Creates a builder for an instance of the {@link ImageCapture} use case. */ - @NonNull - public ImageCapture.Builder createImageCaptureBuilder() { - return new ImageCapture.Builder(); - } - - /** - * Creates an {@link ImageCapture.OutputFileOptions} to configure where to save a captured image. - */ - @NonNull - public ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { - return new ImageCapture.OutputFileOptions.Builder(file).build(); - } - - /** Creates an instance of {@link ImageAnalysis.Builder}. */ - @NonNull - public ImageAnalysis.Builder createImageAnalysisBuilder() { - return new ImageAnalysis.Builder(); - } - - /** Creates an array of {@code byte}s with the size provided. */ - @NonNull - public byte[] getBytesFromBuffer(int size) { - return new byte[size]; - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java deleted file mode 100644 index 55fe15829c7..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CaptureRequest.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CaptureRequestKey}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CaptureRequestKeyProxyApi extends PigeonApiCaptureRequestKey { - CaptureRequestKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java index 5fea7b41cdc..31b377b9908 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -8,6 +8,8 @@ import androidx.annotation.NonNull; import androidx.camera.camera2.interop.CaptureRequestOptions; import androidx.camera.camera2.interop.ExperimentalCamera2Interop; + +import java.util.Collections; import java.util.Map; /** diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java index ca29abd3269..c76aee596ca 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java @@ -19,6 +19,19 @@ class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { private long clearFinalizedWeakReferencesIntervalDefaultValue; static final long CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL_FOR_IMAGE_ANALYSIS = 1000; + @NonNull + @Override + public ImageAnalysis pigeon_defaultConstructor(@Nullable ResolutionSelector resolutionSelector, @Nullable Long targetRotation) { + final ImageAnalysis.Builder builder = new ImageAnalysis.Builder(); + if (resolutionSelector != null) { + builder.setResolutionSelector(resolutionSelector); + } + if (targetRotation != null) { + builder.setTargetRotation(targetRotation.intValue()); + } + return builder.build(); + } + ImageAnalysisProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { super(pigeonRegistrar); } @@ -29,20 +42,6 @@ public ProxyApiRegistrar getPigeonRegistrar() { return (ProxyApiRegistrar) super.getPigeonRegistrar(); } - @NonNull - @Override - public ImageAnalysis pigeon_defaultConstructor( - @Nullable Long targetRotation, @Nullable ResolutionSelector resolutionSelector) { - final ImageAnalysis.Builder builder = new ImageAnalysis.Builder(); - if (targetRotation != null) { - builder.setTargetRotation(targetRotation.intValue()); - } - if (resolutionSelector != null) { - builder.setResolutionSelector(resolutionSelector); - } - return builder.build(); - } - @Override public void setAnalyzer( ImageAnalysis pigeon_instance, @@ -68,4 +67,10 @@ public void clearAnalyzer(ImageAnalysis pigeon_instance) { public void setTargetRotation(ImageAnalysis pigeon_instance, long rotation) { pigeon_instance.setTargetRotation((int) rotation); } + + @Nullable + @Override + public ResolutionSelector resolutionSelector(@NonNull ImageAnalysis pigeon_instance) { + return pigeon_instance.getResolutionSelector(); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java index 6f3e27369c5..9be1cc1858c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java @@ -8,6 +8,8 @@ import androidx.annotation.Nullable; import androidx.camera.core.ImageCapture; import androidx.camera.core.ImageCaptureException; +import androidx.camera.core.resolutionselector.ResolutionSelector; + import java.io.File; import java.io.IOException; import java.util.concurrent.Executors; @@ -37,9 +39,9 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override public ImageCapture pigeon_defaultConstructor( + @Nullable androidx.camera.core.resolutionselector.ResolutionSelector resolutionSelector, @Nullable Long targetRotation, - @Nullable CameraXFlashMode flashMode, - @Nullable androidx.camera.core.resolutionselector.ResolutionSelector resolutionSelector) { + @Nullable CameraXFlashMode flashMode) { final ImageCapture.Builder builder = new ImageCapture.Builder(); if (targetRotation != null) { builder.setTargetRotation(targetRotation.intValue()); @@ -127,4 +129,10 @@ public void onError(@NonNull ImageCaptureException exception) { } }; } + + @Nullable + @Override + public ResolutionSelector resolutionSelector(@NonNull ImageCapture pigeon_instance) { + return pigeon_instance.getResolutionSelector(); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java deleted file mode 100644 index 92202dd74dc..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewHostApiImpl.java +++ /dev/null @@ -1,186 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Size; -import android.view.Surface; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.VisibleForTesting; -import androidx.camera.core.Preview; -import androidx.camera.core.SurfaceRequest; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.PreviewHostApi; -import io.flutter.view.TextureRegistry; -import java.util.Objects; -import java.util.concurrent.Executors; - -public class PreviewHostApiImpl implements PreviewHostApi { - final BinaryMessenger binaryMessenger; - private final InstanceManager instanceManager; - private final TextureRegistry textureRegistry; - - @VisibleForTesting public @NonNull CameraXProxy cameraXProxy = new CameraXProxy(); - @VisibleForTesting public @Nullable TextureRegistry.SurfaceProducer flutterSurfaceProducer; - - public PreviewHostApiImpl( - @NonNull BinaryMessenger binaryMessenger, - @NonNull InstanceManager instanceManager, - @NonNull TextureRegistry textureRegistry) { - this.binaryMessenger = binaryMessenger; - this.instanceManager = instanceManager; - this.textureRegistry = textureRegistry; - } - - /** Creates a {@link Preview} with the target rotation and resolution if specified. */ - @Override - public void create( - @NonNull Long identifier, @Nullable Long rotation, @Nullable Long resolutionSelectorId) { - Preview.Builder previewBuilder = cameraXProxy.createPreviewBuilder(); - - if (rotation != null) { - previewBuilder.setTargetRotation(rotation.intValue()); - } - if (resolutionSelectorId != null) { - ResolutionSelector resolutionSelector = - Objects.requireNonNull(instanceManager.getInstance(resolutionSelectorId)); - previewBuilder.setResolutionSelector(resolutionSelector); - } - - Preview preview = previewBuilder.build(); - instanceManager.addDartCreatedInstance(preview, identifier); - } - - /** - * Sets the {@link Preview.SurfaceProvider} that will be used to provide a {@code Surface} backed - * by a Flutter {@link TextureRegistry.SurfaceTextureEntry} used to build the {@link Preview}. - */ - @Override - public @NonNull Long setSurfaceProvider(@NonNull Long identifier) { - Preview preview = getPreviewInstance(identifier); - flutterSurfaceProducer = textureRegistry.createSurfaceProducer(); - Preview.SurfaceProvider surfaceProvider = createSurfaceProvider(flutterSurfaceProducer); - preview.setSurfaceProvider(surfaceProvider); - - return flutterSurfaceProducer.id(); - } - - /** - * Creates a {@link Preview.SurfaceProvider} that specifies how to provide a {@link Surface} to a - * {@code Preview} that is backed by a Flutter {@link TextureRegistry.SurfaceTextureEntry}. - */ - @VisibleForTesting - public @NonNull Preview.SurfaceProvider createSurfaceProvider( - @NonNull TextureRegistry.SurfaceProducer surfaceProducer) { - return new Preview.SurfaceProvider() { - @Override - public void onSurfaceRequested(@NonNull SurfaceRequest request) { - // Set callback for surfaceProducer to invalidate Surfaces that it produces when they - // get destroyed. - surfaceProducer.setCallback( - new TextureRegistry.SurfaceProducer.Callback() { - @Override - public void onSurfaceAvailable() { - // Do nothing. The Preview.SurfaceProvider will handle this whenever a new - // Surface is needed. - } - - @Override - // TODO(bparrishMines): Replace with onSurfaceCleanup once available on stable. See - // https://github.com/flutter/flutter/issues/161256. - @SuppressWarnings({"deprecation", "removal"}) - public void onSurfaceDestroyed() { - // Invalidate the SurfaceRequest so that CameraX knows to to make a new request - // for a surface. - request.invalidate(); - } - }); - - // Provide surface. - surfaceProducer.setSize( - request.getResolution().getWidth(), request.getResolution().getHeight()); - Surface flutterSurface = surfaceProducer.getSurface(); - request.provideSurface( - flutterSurface, - Executors.newSingleThreadExecutor(), - (result) -> { - // See - // https://developer.android.com/reference/androidx/camera/core/SurfaceRequest.Result - // for documentation. - // Always attempt a release. - flutterSurface.release(); - int resultCode = result.getResultCode(); - switch (resultCode) { - case SurfaceRequest.Result.RESULT_REQUEST_CANCELLED: - case SurfaceRequest.Result.RESULT_WILL_NOT_PROVIDE_SURFACE: - case SurfaceRequest.Result.RESULT_SURFACE_ALREADY_PROVIDED: - case SurfaceRequest.Result.RESULT_SURFACE_USED_SUCCESSFULLY: - // Only need to release, do nothing. - break; - case SurfaceRequest.Result.RESULT_INVALID_SURFACE: // Intentional fall through. - default: - // Release and send error. - SystemServicesFlutterApiImpl systemServicesFlutterApi = - cameraXProxy.createSystemServicesFlutterApiImpl(binaryMessenger); - systemServicesFlutterApi.sendCameraError( - getProvideSurfaceErrorDescription(resultCode), reply -> {}); - break; - } - }); - } - }; - } - - /** - * Returns an error description for each {@link SurfaceRequest.Result} that represents an error - * with providing a surface. - */ - String getProvideSurfaceErrorDescription(int resultCode) { - switch (resultCode) { - case SurfaceRequest.Result.RESULT_INVALID_SURFACE: - return resultCode + ": Provided surface could not be used by the camera."; - default: - return resultCode + ": Attempt to provide a surface resulted with unrecognizable code."; - } - } - - /** - * Releases the Flutter {@link TextureRegistry.SurfaceTextureEntry} if used to provide a surface - * for a {@link Preview}. - */ - @Override - public void releaseFlutterSurfaceTexture() { - if (flutterSurfaceProducer != null) { - flutterSurfaceProducer.release(); - } - } - - /** Returns the resolution information for the specified {@link Preview}. */ - @Override - public @NonNull GeneratedCameraXLibrary.ResolutionInfo getResolutionInfo( - @NonNull Long identifier) { - Preview preview = getPreviewInstance(identifier); - Size resolution = preview.getResolutionInfo().getResolution(); - - GeneratedCameraXLibrary.ResolutionInfo.Builder resolutionInfo = - new GeneratedCameraXLibrary.ResolutionInfo.Builder() - .setWidth(Long.valueOf(resolution.getWidth())) - .setHeight(Long.valueOf(resolution.getHeight())); - return resolutionInfo.build(); - } - - /** Dynamically sets the target rotation of the {@link Preview}. */ - @Override - public void setTargetRotation(@NonNull Long identifier, @NonNull Long rotation) { - Preview preview = getPreviewInstance(identifier); - preview.setTargetRotation(rotation.intValue()); - } - - /** Retrieves the {@link Preview} instance associated with the specified {@code identifier}. */ - private Preview getPreviewInstance(@NonNull Long identifier) { - return Objects.requireNonNull(instanceManager.getInstance(identifier)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index 792dd955c06..4e516bfe3c2 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -37,7 +37,7 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override public Preview pigeon_defaultConstructor( - @Nullable Long targetRotation, @Nullable ResolutionSelector resolutionSelector) { + @Nullable ResolutionSelector resolutionSelector, @Nullable Long targetRotation) { final Preview.Builder builder = new Preview.Builder(); if (targetRotation != null) { builder.setTargetRotation(targetRotation.intValue()); @@ -146,4 +146,10 @@ String getProvideSurfaceErrorDescription(int resultCode) { } return resultCode + ": Attempt to provide a surface resulted with unrecognizable code."; } + + @Nullable + @Override + public ResolutionSelector resolutionSelector(@NonNull Preview pigeon_instance) { + return pigeon_instance.getResolutionSelector(); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java index 08e7a1b58db..c1db2f7a1f0 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java @@ -10,6 +10,7 @@ import androidx.annotation.Nullable; import androidx.camera.video.FileOutputOptions; import androidx.camera.video.PendingRecording; +import androidx.camera.video.QualitySelector; import androidx.camera.video.Recorder; import androidx.core.content.ContextCompat; import java.io.File; @@ -85,4 +86,10 @@ File openTempFile(@NonNull String path) throws RuntimeException { throw new RuntimeException(e); } } + + @NonNull + @Override + public QualitySelector getQualitySelector(@NonNull Recorder pigeon_instance) { + return pigeon_instance.getQualitySelector(); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java index ffaadca6e5a..3d06112044d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java @@ -24,9 +24,10 @@ class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { @NonNull @Override public ResolutionSelector pigeon_defaultConstructor( - @Nullable AspectRatioStrategy aspectRatioStrategy, - @Nullable ResolutionStrategy resolutionStrategy, - @Nullable ResolutionFilter resolutionFilter) { + @Nullable ResolutionFilter resolutionFilter, + @Nullable ResolutionStrategy resolutionStrategy, + @Nullable AspectRatioStrategy aspectRatioStrategy + ) { final ResolutionSelector.Builder builder = new ResolutionSelector.Builder(); if (aspectRatioStrategy != null) { builder.setAspectRatioStrategy(aspectRatioStrategy); @@ -39,4 +40,22 @@ public ResolutionSelector pigeon_defaultConstructor( } return builder.build(); } + + @Nullable + @Override + public ResolutionFilter resolutionFilter(@NonNull ResolutionSelector pigeon_instance) { + return pigeon_instance.getResolutionFilter(); + } + + @Nullable + @Override + public ResolutionStrategy resolutionStrategy(@NonNull ResolutionSelector pigeon_instance) { + return pigeon_instance.getResolutionStrategy(); + } + + @NonNull + @Override + public AspectRatioStrategy getAspectRatioStrategy(@NonNull ResolutionSelector pigeon_instance) { + return pigeon_instance.getAspectRatioStrategy(); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java index 37b7299c807..7631e386a1b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java @@ -4,7 +4,10 @@ package io.flutter.plugins.camerax; +import android.util.Size; + import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.camera.core.resolutionselector.ResolutionStrategy; /** @@ -47,4 +50,29 @@ public ResolutionStrategy pigeon_defaultConstructor( public ResolutionStrategy highestAvailableStrategy() { return ResolutionStrategy.HIGHEST_AVAILABLE_STRATEGY; } + + @Nullable + @Override + public Size getBoundSize(@NonNull ResolutionStrategy pigeon_instance) { + return pigeon_instance.getBoundSize(); + } + + @NonNull + @Override + public ResolutionStrategyFallbackRule getFallbackRule(@NonNull ResolutionStrategy pigeon_instance) { + switch(pigeon_instance.getFallbackRule()) { + case ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER: + return ResolutionStrategyFallbackRule.CLOSEST_HIGHER; + case ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER: + return ResolutionStrategyFallbackRule.CLOSEST_HIGHER_THEN_LOWER; + case ResolutionStrategy.FALLBACK_RULE_CLOSEST_LOWER: + return ResolutionStrategyFallbackRule.CLOSEST_LOWER; + case ResolutionStrategy.FALLBACK_RULE_CLOSEST_LOWER_THEN_HIGHER: + return ResolutionStrategyFallbackRule.CLOSEST_LOWER_THEN_HIGHER; + case ResolutionStrategy.FALLBACK_RULE_NONE: + return ResolutionStrategyFallbackRule.NONE; + } + + return ResolutionStrategyFallbackRule.UNKNOWN; + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java deleted file mode 100644 index 4ed06895b5b..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/UseCaseProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.UseCase; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link UseCase}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class UseCaseProxyApi extends PigeonApiUseCase { - UseCaseProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java deleted file mode 100644 index 422ac5538f5..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoOutputProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoOutput; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoOutput}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoOutputProxyApi extends PigeonApiVideoOutput { - VideoOutputProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java deleted file mode 100644 index 90385335609..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent.Finalize; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEventFinalize}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventFinalizeProxyApi extends PigeonApiVideoRecordEventFinalize { - VideoRecordEventFinalizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java index af145a7b0d2..6fd3455754d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java @@ -1,3 +1,7 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + package io.flutter.plugins.camerax; import androidx.camera.video.VideoRecordEvent; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java deleted file mode 100644 index 2c6bafa9068..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEvent}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventProxyApi extends PigeonApiVideoRecordEvent { - VideoRecordEventProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java deleted file mode 100644 index ab18d1e2b55..00000000000 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApi.java +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent.Start; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEventStart}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventStartProxyApi extends PigeonApiVideoRecordEventStart { - VideoRecordEventStartProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 6e2f94b620a..6405311b17d 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -833,6 +833,8 @@ enum AspectRatio { ratio4To3, /// The aspect ratio representing no preference for aspect ratio. ratioDefault, + /// The value is not recognized by the wrapper. + unknown, } /// The states the camera can be in. @@ -965,6 +967,8 @@ enum AspectRatioStrategyFallbackRule { /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, + /// The value is not recognized by the wrapper. + unknown, } /// Code for a `CameraState` error. diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 0224bf1081e..15c0b5e5c2b 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -86,6 +86,9 @@ enum AspectRatio { /// The aspect ratio representing no preference for aspect ratio. ratioDefault, + + /// The value is not recognized by the wrapper. + unknown, } /// The states the camera can be in. @@ -614,6 +617,9 @@ enum ResolutionStrategyFallbackRule { /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, + + /// The value is not recognized by the wrapper. + unknown, } /// The resolution strategy defines the resolution selection sequence to select @@ -680,6 +686,9 @@ enum AspectRatioStrategyFallbackRule { /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, + + /// The value is not recognized by the wrapper. + unknown, } /// The aspect ratio strategy defines the sequence of aspect ratios that are From 755558813293561247a11f2849adcbc8cd45524d Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 18:28:58 -0500 Subject: [PATCH 072/148] fix request options --- .../plugins/camerax/CameraXLibrary.g.kt | 6734 +++------------- .../CaptureRequestOptionsProxyApi.java | 8 + .../lib/src/camerax_library.g.dart | 420 +- .../pigeons/camerax_library.dart | 7 +- .../camera_android_camerax/pubspec.yaml | 11 +- .../test/android_camera_camerax_test.dart | 51 +- .../android_camera_camerax_test.mocks.dart | 6769 ++++++++--------- 7 files changed, 4262 insertions(+), 9738 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index b1edd8a0aea..7b4e94a6927 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v22.7.1), do not edit directly. +// Autogenerated from Pigeon (v24.1.1), do not edit directly. // See also: https://pub.dev/packages/pigeon @file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") @@ -50,7 +50,7 @@ class CameraXError ( val code: String, override val message: String? = null, val details: Any? = null -) : RuntimeException() +) : Throwable() /** * Maintains instances used to communicate with the corresponding objects in Dart. * @@ -777,7 +777,15 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { - return registrar.instanceManager.getInstance(readValue(buffer) as Long) + val identifier: Long = readValue(buffer) as Long + val instance: Any? = registrar.instanceManager.getInstance(identifier) + if (instance == null) { + Log.e( + "PigeonProxyApiBaseCodec", + "Failed to find instance with identifier: $identifier" + ) + } + return instance } else -> super.readValueOfType(type, buffer) } @@ -1199,7 +1207,9 @@ enum class ResolutionStrategyFallbackRule(val raw: Int) { * CameraX doesn't select an alternate size when the specified bound size is * unavailable. */ - NONE(4); + NONE(4), + /** The value is not recognized by the wrapper. */ + UNKNOWN(5); companion object { fun ofRaw(raw: Int): ResolutionStrategyFallbackRule? { @@ -1444,127 +1454,31 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val widthArg = width(pigeon_instanceArg) - val heightArg = height(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, widthArg, heightArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val widthArg = width(pigeon_instanceArg) + val heightArg = height(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, widthArg, heightArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraSize}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraSizeProxyApi extends PigeonApiCameraSize { - CameraSizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraSize pigeon_defaultConstructor(@NonNull Long width, @NonNull Long height) { - return CameraSize(); - } - - @NonNull - @Override - public Long width(CameraSize pigeon_instance) { - return pigeon_instance.getWidth(); - } - - @NonNull - @Override - public Long height(CameraSize pigeon_instance) { - return pigeon_instance.getHeight(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraSizeProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); - - assertTrue(api.pigeon_defaultConstructor() instanceof CameraSizeProxyApi.CameraSize); - } - - @Test - public void width() { - final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); - - final CameraSize instance = mock(CameraSize.class); - final Long value = 0; - when(instance.getWidth()).thenReturn(value); - - assertEquals(value, api.width(instance)); - } - - @Test - public void height() { - final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); - - final CameraSize instance = mock(CameraSize.class); - final Long value = 0; - when(instance.getHeight()).thenReturn(value); - - assertEquals(value, api.height(instance)); - } - -} -*/ /** * A `ResolutionInfo` allows the application to know the resolution information * of a specific use case. @@ -1584,98 +1498,30 @@ abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryP callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionArg = resolution(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, resolutionArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionArg = resolution(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, resolutionArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ResolutionInfo; -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ResolutionInfo}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ResolutionInfoProxyApi extends PigeonApiResolutionInfo { - ResolutionInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public android.util.Size resolution(ResolutionInfo pigeon_instance) { - return pigeon_instance.getResolution(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ResolutionInfo -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionInfoProxyApiTest { - @Test - public void resolution() { - final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); - - final ResolutionInfo instance = mock(ResolutionInfo.class); - final android.util.Size value = mock(CameraSize.class); - when(instance.getResolution()).thenReturn(value); - - assertEquals(value, api.resolution(instance)); - } - -} -*/ /** * Immutable class for describing the range of two integer values. * @@ -1728,127 +1574,31 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val lowerArg = lower(pigeon_instanceArg) - val upperArg = upper(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, lowerArg, upperArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val lowerArg = lower(pigeon_instanceArg) + val upperArg = upper(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, lowerArg, upperArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Range<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraIntegerRange}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraIntegerRangeProxyApi extends PigeonApiCameraIntegerRange { - CameraIntegerRangeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraIntegerRange pigeon_defaultConstructor(@NonNull Long lower, @NonNull Long upper) { - return CameraIntegerRange(); - } - - @NonNull - @Override - public Long lower(CameraIntegerRange pigeon_instance) { - return pigeon_instance.getLower(); - } - - @NonNull - @Override - public Long upper(CameraIntegerRange pigeon_instance) { - return pigeon_instance.getUpper(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.util.Range<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraIntegerRangeProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); - - assertTrue(api.pigeon_defaultConstructor() instanceof CameraIntegerRangeProxyApi.CameraIntegerRange); - } - - @Test - public void lower() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); - - final CameraIntegerRange instance = mock(CameraIntegerRange.class); - final Long value = 0; - when(instance.getLower()).thenReturn(value); - - assertEquals(value, api.lower(instance)); - } - - @Test - public void upper() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); - - final CameraIntegerRange instance = mock(CameraIntegerRange.class); - final Long value = 0; - when(instance.getUpper()).thenReturn(value); - - assertEquals(value, api.upper(instance)); - } - -} -*/ /** * VideoRecordEvent is used to report video recording events and status. * @@ -1864,78 +1614,29 @@ open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPig callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEvent}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventProxyApi extends PigeonApiVideoRecordEvent { - VideoRecordEventProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventProxyApiTest { -} -*/ /** * Indicates the start of recording. * @@ -1951,27 +1652,25 @@ open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibra callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } @@ -1983,53 +1682,6 @@ open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibra } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent.Start; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEventStart}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventStartProxyApi extends PigeonApiVideoRecordEventStart { - VideoRecordEventStartProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent.Start -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventStartProxyApiTest { -} -*/ /** * Indicates the finalization of recording. * @@ -2045,27 +1697,25 @@ open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLi callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } @@ -2077,53 +1727,6 @@ open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLi } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent.Finalize; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEventFinalize}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventFinalizeProxyApi extends PigeonApiVideoRecordEventFinalize { - VideoRecordEventFinalizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent.Finalize -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventFinalizeProxyApiTest { -} -*/ /** * A MeteringPoint is used to specify a region which can then be converted to * sensor coordinate system for focus and metering purpose. @@ -2172,95 +1775,29 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.MeteringPoint; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link MeteringPoint}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class MeteringPointProxyApi extends PigeonApiMeteringPoint { - MeteringPointProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Double getSize(MeteringPoint pigeon_instance) { - return pigeon_instance.getSize(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.MeteringPoint -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class MeteringPointProxyApiTest { - @Test - public void getSize() { - final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); - - final MeteringPoint instance = mock(MeteringPoint.class); - final Double value = 1.0; - when(instance.getSize()).thenReturn(value); - - assertEquals(value, api.getSize(instance )); - } - -} -*/ /** * A simple callback that can receive from LiveData. * @@ -2303,13 +1840,13 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + callback( + Result.failure( + CameraXError("new-instance-error", "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.", ""))) } - throw IllegalStateException("Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.") } /** Called when the data is changed to value. */ @@ -2339,89 +1876,6 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.lifecycle.Observer<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Observer}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ObserverProxyApi extends PigeonApiObserver { - ObserverProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link Observer} that passes arguments of callback methods to Dart. */ - static class ObserverImpl extends Observer { - private final ObserverProxyApi api; - ObserverImpl(@NonNull ObserverProxyApi api) { - this.api = api; - } - @Override - public void onChanged(@NonNull Any value) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onChanged(this, value, reply -> null)); - } - } - - @NonNull - @Override - public Observer pigeon_defaultConstructor() { - return ObserverImpl(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.lifecycle.Observer<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ObserverProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); - - assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.ObserverImpl); - } - - @Test - public void onChanged() { - final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final ObserverImpl instance = new ObserverImpl(mockApi); - final Any value = -1; - instance.onChanged(value); - - verify(mockApi).onChanged(eq(instance), eq(value), any()); - } - -} -*/ /** * An interface for retrieving camera information. * @@ -2493,152 +1947,31 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) - val exposureStateArg = exposureState(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, sensorRotationDegreesArg, exposureStateArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) + val exposureStateArg = exposureState(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, sensorRotationDegreesArg, exposureStateArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraInfo; -import androidx.camera.core.ExposureState; -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraInfo}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraInfoProxyApi extends PigeonApiCameraInfo { - CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Long sensorRotationDegrees(CameraInfo pigeon_instance) { - return pigeon_instance.getSensorRotationDegrees(); - } - - @NonNull - @Override - public androidx.camera.core.ExposureState exposureState(CameraInfo pigeon_instance) { - return pigeon_instance.getExposureState(); - } - - @NonNull - @Override - public io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper getCameraState(CameraInfo pigeon_instance) { - return pigeon_instance.getCameraState(); - } - - @NonNull - @Override - public io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper getZoomState(CameraInfo pigeon_instance) { - return pigeon_instance.getZoomState(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraInfo -import androidx.camera.core.ExposureState -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraInfoProxyApiTest { - @Test - public void sensorRotationDegrees() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final Long value = 0; - when(instance.getSensorRotationDegrees()).thenReturn(value); - - assertEquals(value, api.sensorRotationDegrees(instance)); - } - - @Test - public void exposureState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final androidx.camera.core.ExposureState value = mock(ExposureState.class); - when(instance.getExposureState()).thenReturn(value); - - assertEquals(value, api.exposureState(instance)); - } - - @Test - public void getCameraState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); - when(instance.getCameraState()).thenReturn(value); - - assertEquals(value, api.getCameraState(instance )); - } - - @Test - public void getZoomState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); - when(instance.getZoomState()).thenReturn(value); - - assertEquals(value, api.getZoomState(instance )); - } - -} -*/ /** * A set of requirements and priorities used to select a camera or return a * filtered set of cameras. @@ -2749,123 +2082,29 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraSelector; -import androidx.camera.core.CameraInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraSelector}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraSelectorProxyApi extends PigeonApiCameraSelector { - CameraSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraSelector pigeon_defaultConstructor(@Nullable LensFacing? requireLensFacing) { - return CameraSelector(requireLensFacing); - } - - @NonNull - @Override - public androidx.camera.core.CameraSelector defaultBackCamera() { - return CameraSelector.getDefaultBackCamera(); - } - - @NonNull - @Override - public androidx.camera.core.CameraSelector defaultFrontCamera() { - return CameraSelector.getDefaultFrontCamera(); - } - - @NonNull - @Override - public List filter(CameraSelector, pigeon_instance@NonNull List cameraInfos) { - return pigeon_instance.filter(cameraInfos); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraSelector -import androidx.camera.core.CameraInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraSelectorProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); - - assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT) instanceof CameraSelectorProxyApi.CameraSelector); - } - - @Test - public void filter() { - final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); - - final CameraSelector instance = mock(CameraSelector.class); - final List cameraInfos = Arrays.asList(mock(CameraInfo.class)); - final List value = Arrays.asList(mock(CameraInfo.class)); - when(instance.filter(cameraInfos)).thenReturn(value); - - assertEquals(value, api.filter(instance, cameraInfos)); - } - -} -*/ /** * A singleton which can be used to bind the lifecycle of cameras to any * `LifecycleOwner` within an application's process. @@ -3019,264 +2258,67 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.lifecycle.ProcessCameraProvider; -import androidx.camera.core.UseCase; -import androidx.camera.core.CameraSelector; -import androidx.camera.core.CameraInfo; -import androidx.camera.core.Camera; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - /** - * ProxyApi implementation for {@link ProcessCameraProvider}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * The use case which all other use cases are built on top of. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase. */ -class ProcessCameraProviderProxyApi extends PigeonApiProcessCameraProvider { - ProcessCameraProviderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public androidx.camera.lifecycle.ProcessCameraProvider getInstance() { - return ProcessCameraProvider.getInstance(); - } - - @NonNull - @Override - public List getAvailableCameraInfos(ProcessCameraProvider pigeon_instance) { - return pigeon_instance.getAvailableCameraInfos(); - } - - @NonNull - @Override - public androidx.camera.core.Camera bindToLifecycle(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.CameraSelector cameraSelector, @NonNull List useCases) { - return pigeon_instance.bindToLifecycle(cameraSelector, useCases); +@Suppress("UNCHECKED_CAST") +open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } } - @NonNull - @Override - public Boolean isBound(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.UseCase useCase) { - return pigeon_instance.isBound(useCase); - } - - @Override - public Void unbind(ProcessCameraProvider, pigeon_instance@NonNull List useCases) { - pigeon_instance.unbind(useCases); - } - - @Override - public Void unbindAll(ProcessCameraProvider pigeon_instance) { - pigeon_instance.unbindAll(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.lifecycle.ProcessCameraProvider -import androidx.camera.core.UseCase -import androidx.camera.core.CameraSelector -import androidx.camera.core.CameraInfo -import androidx.camera.core.Camera -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ProcessCameraProviderProxyApiTest { - @Test - public void getAvailableCameraInfos() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final List value = Arrays.asList(mock(CameraInfo.class)); - when(instance.getAvailableCameraInfos()).thenReturn(value); - - assertEquals(value, api.getAvailableCameraInfos(instance )); - } - - @Test - public void bindToLifecycle() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); - final List useCases = Arrays.asList(mock(UseCase.class)); - final androidx.camera.core.Camera value = mock(Camera.class); - when(instance.bindToLifecycle(cameraSelector, useCases)).thenReturn(value); - - assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); - } - - @Test - public void isBound() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final androidx.camera.core.UseCase useCase = mock(UseCase.class); - final Boolean value = true; - when(instance.isBound(useCase)).thenReturn(value); - - assertEquals(value, api.isBound(instance, useCase)); - } - - @Test - public void unbind() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final List useCases = Arrays.asList(mock(UseCase.class)); - api.unbind(instance, useCases); - - verify(instance).unbind(useCases); - } - - @Test - public void unbindAll() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - api.unbindAll(instance ); - - verify(instance).unbindAll(); - } - -} -*/ -/** - * The use case which all other use cases are built on top of. - * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase. - */ -@Suppress("UNCHECKED_CAST") -open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit) -{ - if (pigeonRegistrar.ignoreCallsToDart) { - callback( - Result.failure( - CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.UseCase; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link UseCase}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class UseCaseProxyApi extends PigeonApiUseCase { - UseCaseProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.UseCase -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class UseCaseProxyApiTest { } -*/ /** * The camera interface is used to control the flow of data to use cases, * control the camera via the `CameraControl`, and publish the state of the @@ -3324,117 +2366,30 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val cameraControlArg = cameraControl(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, cameraControlArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val cameraControlArg = cameraControl(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, cameraControlArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.Camera; -import androidx.camera.core.CameraControl; -import androidx.camera.core.CameraInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Camera}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraProxyApi extends PigeonApiCamera { - CameraProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public androidx.camera.core.CameraControl cameraControl(Camera pigeon_instance) { - return pigeon_instance.getCameraControl(); - } - - @NonNull - @Override - public androidx.camera.core.CameraInfo getCameraInfo(Camera pigeon_instance) { - return pigeon_instance.getCameraInfo(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.Camera -import androidx.camera.core.CameraControl -import androidx.camera.core.CameraInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraProxyApiTest { - @Test - public void cameraControl() { - final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); - - final Camera instance = mock(Camera.class); - final androidx.camera.core.CameraControl value = mock(CameraControl.class); - when(instance.getCameraControl()).thenReturn(value); - - assertEquals(value, api.cameraControl(instance)); - } - - @Test - public void getCameraInfo() { - final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); - - final Camera instance = mock(Camera.class); - final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); - when(instance.getCameraInfo()).thenReturn(value); - - assertEquals(value, api.getCameraInfo(instance )); - } - -} -*/ /** Convenience class for accessing system resources. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @@ -3535,13 +2490,13 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + callback( + Result.failure( + CameraXError("new-instance-error", "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.", ""))) } - throw IllegalStateException("Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.") } fun onCameraError(pigeon_instanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit) @@ -3570,141 +2525,6 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link SystemServicesManager}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManager { - SystemServicesManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link SystemServicesManager} that passes arguments of callback methods to Dart. */ - static class SystemServicesManagerImpl extends SystemServicesManager { - private final SystemServicesManagerProxyApi api; - SystemServicesManagerImpl(@NonNull SystemServicesManagerProxyApi api) { - this.api = api; - } - @Override - public void onCameraError(@NonNull String errorDescription) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onCameraError(this, errorDescription, reply -> null)); - } - } - - @NonNull - @Override - public SystemServicesManager pigeon_defaultConstructor() { - return SystemServicesManagerImpl(); - } - - @Override - public Void requestCameraPermissions(SystemServicesManager, pigeon_instance@NonNull Boolean enableAudio) { - pigeon_instance.requestCameraPermissions(enableAudio); - } - - @NonNull - @Override - public String getTempFilePath(SystemServicesManager, pigeon_instance@NonNull String prefix, @NonNull String suffix) { - return pigeon_instance.getTempFilePath(prefix, suffix); - } - - @NonNull - @Override - public Boolean isPreviewPreTransformed(SystemServicesManager pigeon_instance) { - return pigeon_instance.isPreviewPreTransformed(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - - -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class SystemServicesManagerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - assertTrue(api.pigeon_defaultConstructor() instanceof SystemServicesManagerProxyApi.SystemServicesManager); - } - - @Test - public void requestCameraPermissions() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = mock(SystemServicesManager.class); - final Boolean enableAudio = true; - api.requestCameraPermissions(instance, enableAudio); - - verify(instance).requestCameraPermissions(enableAudio); - } - - @Test - public void getTempFilePath() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = mock(SystemServicesManager.class); - final String prefix = "myString"; - final String suffix = "myString"; - final String value = "myString"; - when(instance.getTempFilePath(prefix, suffix)).thenReturn(value); - - assertEquals(value, api.getTempFilePath(instance, prefix, suffix)); - } - - @Test - public void isPreviewPreTransformed() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = mock(SystemServicesManager.class); - final Boolean value = true; - when(instance.isPreviewPreTransformed()).thenReturn(value); - - assertEquals(value, api.isPreviewPreTransformed(instance )); - } - - @Test - public void onCameraError() { - final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final SystemServicesManagerImpl instance = new SystemServicesManagerImpl(mockApi); - final String errorDescription = "myString"; - instance.onCameraError(errorDescription); - - verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); - } - -} -*/ /** * Support class to help to determine the media orientation based on the * orientation of the device. @@ -3826,13 +2646,13 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + callback( + Result.failure( + CameraXError("new-instance-error", "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.", ""))) } - throw IllegalStateException("Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.") } fun onDeviceOrientationChanged(pigeon_instanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit) @@ -3861,189 +2681,40 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - /** - * ProxyApi implementation for {@link DeviceOrientationManager}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * A use case that provides a camera preview stream for displaying on-screen. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. */ -class DeviceOrientationManagerProxyApi extends PigeonApiDeviceOrientationManager { - DeviceOrientationManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to Dart. */ - static class DeviceOrientationManagerImpl extends DeviceOrientationManager { - private final DeviceOrientationManagerProxyApi api; - DeviceOrientationManagerImpl(@NonNull DeviceOrientationManagerProxyApi api) { - this.api = api; - } - @Override - public void onDeviceOrientationChanged(@NonNull String orientation) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onDeviceOrientationChanged(this, orientation, reply -> null)); - } - } - - @NonNull - @Override - public DeviceOrientationManager pigeon_defaultConstructor() { - return DeviceOrientationManagerImpl(); - } - - @Override - public Void startListeningForDeviceOrientationChange(DeviceOrientationManager, pigeon_instance@NonNull Boolean isFrontFacing, @NonNull Long sensorOrientation) { - pigeon_instance.startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); - } - - @Override - public Void stopListeningForDeviceOrientationChange(DeviceOrientationManager pigeon_instance) { - pigeon_instance.stopListeningForDeviceOrientationChange(); - } - - @NonNull - @Override - public Long getDefaultDisplayRotation(DeviceOrientationManager pigeon_instance) { - return pigeon_instance.getDefaultDisplayRotation(); - } +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.Preview - @NonNull - @Override - public String getUiOrientation(DeviceOrientationManager pigeon_instance) { - return pigeon_instance.getUiOrientation(); - } + abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.resolutionselector.ResolutionSelector? -} -*/ + /** + * Sets a SurfaceProvider to provide a Surface for Preview. + * + * This is a convenience function that + * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the + * Flutter engine. + * 2. Sets this method with the created `SurfaceProvider`. + * 3. Returns the texture id of the `TextureEntry` that provided the + * `SurfaceProducer`. + */ + abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager): Long -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. + /** + * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was + * created. + */ + abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) -package io.flutter.plugins.camerax + /** Gets selected resolution information of the `Preview`. */ + abstract fun getResolutionInfo(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.ResolutionInfo? - -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class DeviceOrientationManagerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - assertTrue(api.pigeon_defaultConstructor() instanceof DeviceOrientationManagerProxyApi.DeviceOrientationManager); - } - - @Test - public void startListeningForDeviceOrientationChange() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final Boolean isFrontFacing = true; - final Long sensorOrientation = 0; - api.startListeningForDeviceOrientationChange(instance, isFrontFacing, sensorOrientation); - - verify(instance).startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); - } - - @Test - public void stopListeningForDeviceOrientationChange() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - api.stopListeningForDeviceOrientationChange(instance ); - - verify(instance).stopListeningForDeviceOrientationChange(); - } - - @Test - public void getDefaultDisplayRotation() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final Long value = 0; - when(instance.getDefaultDisplayRotation()).thenReturn(value); - - assertEquals(value, api.getDefaultDisplayRotation(instance )); - } - - @Test - public void getUiOrientation() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final String value = "myString"; - when(instance.getUiOrientation()).thenReturn(value); - - assertEquals(value, api.getUiOrientation(instance )); - } - - @Test - public void onDeviceOrientationChanged() { - final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final DeviceOrientationManagerImpl instance = new DeviceOrientationManagerImpl(mockApi); - final String orientation = "myString"; - instance.onDeviceOrientationChanged(orientation); - - verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation), any()); - } - -} -*/ -/** - * A use case that provides a camera preview stream for displaying on-screen. - * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. - */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.Preview - - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.resolutionselector.ResolutionSelector? - - /** - * Sets a SurfaceProvider to provide a Surface for Preview. - * - * This is a convenience function that - * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the - * Flutter engine. - * 2. Sets this method with the created `SurfaceProvider`. - * 3. Returns the texture id of the `TextureEntry` that provided the - * `SurfaceProducer`. - */ - abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager): Long - - /** - * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was - * created. - */ - abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) - - /** Gets selected resolution information of the `Preview`. */ - abstract fun getResolutionInfo(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.ResolutionInfo? - - /** Sets the target rotation. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) + /** Sets the target rotation. */ + abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) companion object { @Suppress("LocalVariableName") @@ -4152,28 +2823,26 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } @@ -4185,153 +2854,6 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.Preview; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.ResolutionInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Preview}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class PreviewProxyApi extends PigeonApiPreview { - PreviewProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Preview pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation) { - return Preview(targetRotation); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(Preview pigeon_instance) { - return pigeon_instance.getResolutionSelector(); - } - - @NonNull - @Override - public Long setSurfaceProvider(Preview, pigeon_instance@NonNull SystemServicesManager systemServicesManager) { - return pigeon_instance.setSurfaceProvider(systemServicesManager); - } - - @Override - public Void releaseSurfaceProvider(Preview pigeon_instance) { - pigeon_instance.releaseSurfaceProvider(); - } - - @Nullable - @Override - public androidx.camera.core.ResolutionInfo? getResolutionInfo(Preview pigeon_instance) { - return pigeon_instance.getResolutionInfo(); - } - - @Override - public Void setTargetRotation(Preview, pigeon_instance@NonNull Long rotation) { - pigeon_instance.setTargetRotation(rotation); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.Preview -import androidx.camera.core.resolutionselector.ResolutionSelector -import androidx.camera.core.ResolutionInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class PreviewProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - assertTrue(api.pigeon_defaultConstructor(0) instanceof PreviewProxyApi.Preview); - } - - @Test - public void resolutionSelector() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); - when(instance.getResolutionSelector()).thenReturn(value); - - assertEquals(value, api.resolutionSelector(instance)); - } - - @Test - public void setSurfaceProvider() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); - final Long value = 0; - when(instance.setSurfaceProvider(systemServicesManager)).thenReturn(value); - - assertEquals(value, api.setSurfaceProvider(instance, systemServicesManager)); - } - - @Test - public void releaseSurfaceProvider() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - api.releaseSurfaceProvider(instance ); - - verify(instance).releaseSurfaceProvider(); - } - - @Test - public void getResolutionInfo() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); - when(instance.getResolutionInfo()).thenReturn(value); - - assertEquals(value, api.getResolutionInfo(instance )); - } - - @Test - public void setTargetRotation() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - -} -*/ /** * A use case that provides camera stream suitable for video application. * @@ -4418,27 +2940,25 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } @@ -4450,101 +2970,6 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoCapture<*>; -import androidx.camera.video.VideoOutput; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoCapture}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoCaptureProxyApi extends PigeonApiVideoCapture { - VideoCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public VideoCapture withOutput(@NonNull androidx.camera.video.VideoOutput videoOutput) { - return VideoCapture(videoOutput); - } - - @NonNull - @Override - public androidx.camera.video.VideoOutput getOutput(VideoCapture pigeon_instance) { - return pigeon_instance.getOutput(); - } - - @Override - public Void setTargetRotation(VideoCapture, pigeon_instance@NonNull Long rotation) { - pigeon_instance.setTargetRotation(rotation); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoCapture<*> -import androidx.camera.video.VideoOutput -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoCaptureProxyApiTest { - @Test - public void withOutput() { - final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); - - assertTrue(api.withOutput(mock(VideoOutput.class)) instanceof VideoCaptureProxyApi.VideoCapture); - } - - @Test - public void getOutput() { - final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); - - final VideoCapture instance = mock(VideoCapture.class); - final androidx.camera.video.VideoOutput value = mock(VideoOutput.class); - when(instance.getOutput()).thenReturn(value); - - assertEquals(value, api.getOutput(instance )); - } - - @Test - public void setTargetRotation() { - final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); - - final VideoCapture instance = mock(VideoCapture.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - -} -*/ /** * A class that will produce video data from a Surface. * @@ -4560,78 +2985,29 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoOutput; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoOutput}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoOutputProxyApi extends PigeonApiVideoOutput { - VideoOutputProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoOutput -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoOutputProxyApiTest { -} -*/ /** * An implementation of `VideoOutput` for starting video recordings that are * saved to a File, ParcelFileDescriptor, or MediaStore. @@ -4759,27 +3135,25 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } @@ -4791,143 +3165,10 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.Recorder; -import androidx.camera.video.QualitySelector; -import androidx.camera.video.PendingRecording; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Recorder}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class RecorderProxyApi extends PigeonApiRecorder { - RecorderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Recorder pigeon_defaultConstructor(@Nullable Long? aspectRatio, @Nullable Long? targetVideoEncodingBitRate, @Nullable androidx.camera.video.QualitySelector? qualitySelector) { - return Recorder(aspectRatio, targetVideoEncodingBitRate, qualitySelector); - } - - @NonNull - @Override - public Long getAspectRatio(Recorder pigeon_instance) { - return pigeon_instance.getAspectRatio(); - } - - @NonNull - @Override - public Long getTargetVideoEncodingBitRate(Recorder pigeon_instance) { - return pigeon_instance.getTargetVideoEncodingBitRate(); - } - - @NonNull - @Override - public androidx.camera.video.QualitySelector getQualitySelector(Recorder pigeon_instance) { - return pigeon_instance.getQualitySelector(); - } - - @NonNull - @Override - public androidx.camera.video.PendingRecording prepareRecording(Recorder, pigeon_instance@NonNull String path) { - return pigeon_instance.prepareRecording(path); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.Recorder -import androidx.camera.video.QualitySelector -import androidx.camera.video.PendingRecording -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class RecorderProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - assertTrue(api.pigeon_defaultConstructor(0, 0, mock(QualitySelector.class)) instanceof RecorderProxyApi.Recorder); - } - - @Test - public void getAspectRatio() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final Long value = 0; - when(instance.getAspectRatio()).thenReturn(value); - - assertEquals(value, api.getAspectRatio(instance )); - } - - @Test - public void getTargetVideoEncodingBitRate() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final Long value = 0; - when(instance.getTargetVideoEncodingBitRate()).thenReturn(value); - - assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); - } - - @Test - public void getQualitySelector() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final androidx.camera.video.QualitySelector value = mock(QualitySelector.class); - when(instance.getQualitySelector()).thenReturn(value); - - assertEquals(value, api.getQualitySelector(instance )); - } - - @Test - public void prepareRecording() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final String path = "myString"; - final androidx.camera.video.PendingRecording value = mock(PendingRecording.class); - when(instance.prepareRecording(path)).thenReturn(value); - - assertEquals(value, api.prepareRecording(instance, path)); - } - -} -*/ -/** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(): VideoRecordEventListener +/** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(): VideoRecordEventListener companion object { @Suppress("LocalVariableName") @@ -4962,13 +3203,13 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + callback( + Result.failure( + CameraXError("new-instance-error", "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.", ""))) } - throw IllegalStateException("Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.") } fun onEvent(pigeon_instanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) @@ -4997,89 +3238,6 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEventListener}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventListenerProxyApi extends PigeonApiVideoRecordEventListener { - VideoRecordEventListenerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link VideoRecordEventListener} that passes arguments of callback methods to Dart. */ - static class VideoRecordEventListenerImpl extends VideoRecordEventListener { - private final VideoRecordEventListenerProxyApi api; - VideoRecordEventListenerImpl(@NonNull VideoRecordEventListenerProxyApi api) { - this.api = api; - } - @Override - public void onEvent(@NonNull androidx.camera.video.VideoRecordEvent event) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onEvent(this, event, reply -> null)); - } - } - - @NonNull - @Override - public VideoRecordEventListener pigeon_defaultConstructor() { - return VideoRecordEventListenerImpl(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventListenerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiVideoRecordEventListener api = new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); - - assertTrue(api.pigeon_defaultConstructor() instanceof VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl); - } - - @Test - public void onEvent() { - final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final VideoRecordEventListenerImpl instance = new VideoRecordEventListenerImpl(mockApi); - final androidx.camera.video.VideoRecordEvent event = mock(VideoRecordEvent.class); - instance.onEvent(event); - - verify(mockApi).onEvent(eq(instance), eq(event), any()); - } - -} -*/ /** * A recording that can be started at a future time. * @@ -5123,98 +3281,29 @@ abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibrar callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.PendingRecording; -import androidx.camera.video.Recording; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link PendingRecording}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class PendingRecordingProxyApi extends PigeonApiPendingRecording { - PendingRecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public androidx.camera.video.Recording start(PendingRecording, pigeon_instance@NonNull VideoRecordEventListener listener) { - return pigeon_instance.start(listener); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.PendingRecording -import androidx.camera.video.Recording -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class PendingRecordingProxyApiTest { - @Test - public void start() { - final PigeonApiPendingRecording api = new TestProxyApiRegistrar().getPigeonApiPendingRecording(); - - final PendingRecording instance = mock(PendingRecording.class); - final VideoRecordEventListener listener = mock(VideoRecordEventListener.class); - final androidx.camera.video.Recording value = mock(Recording.class); - when(instance.start(listener)).thenReturn(value); - - assertEquals(value, api.start(instance, listener)); - } - -} -*/ /** * Provides controls for the currently active recording. * @@ -5325,138 +3414,29 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.Recording; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Recording}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class RecordingProxyApi extends PigeonApiRecording { - RecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @Override - public Void close(Recording pigeon_instance) { - pigeon_instance.close(); - } - - @Override - public Void pause(Recording pigeon_instance) { - pigeon_instance.pause(); - } - - @Override - public Void resume(Recording pigeon_instance) { - pigeon_instance.resume(); - } - - @Override - public Void stop(Recording pigeon_instance) { - pigeon_instance.stop(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.Recording -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class RecordingProxyApiTest { - @Test - public void close() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.close(instance ); - - verify(instance).close(); - } - - @Test - public void pause() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.pause(instance ); - - verify(instance).pause(); - } - - @Test - public void resume() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.resume(instance ); - - verify(instance).resume(); - } - - @Test - public void stop() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.stop(instance ); - - verify(instance).stop(); - } - -} -*/ /** * A use case for taking a picture. * @@ -5571,28 +3551,26 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } @@ -5604,134 +3582,6 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageCapture; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ImageCapture}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ImageCaptureProxyApi extends PigeonApiImageCapture { - ImageCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ImageCapture pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation, @Nullable CameraXFlashMode? flashMode) { - return ImageCapture(targetRotation, flashMode); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(ImageCapture pigeon_instance) { - return pigeon_instance.getResolutionSelector(); - } - - @Override - public Void setFlashMode(ImageCapture, pigeon_instance@NonNull CameraXFlashMode flashMode) { - pigeon_instance.setFlashMode(flashMode); - } - - @NonNull - @Override - public String takePicture(ImageCapture pigeon_instance) { - return pigeon_instance.takePicture(); - } - - @Override - public Void setTargetRotation(ImageCapture, pigeon_instance@NonNull Long rotation) { - pigeon_instance.setTargetRotation(rotation); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageCapture -import androidx.camera.core.resolutionselector.ResolutionSelector -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ImageCaptureProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO) instanceof ImageCaptureProxyApi.ImageCapture); - } - - @Test - public void resolutionSelector() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); - when(instance.getResolutionSelector()).thenReturn(value); - - assertEquals(value, api.resolutionSelector(instance)); - } - - @Test - public void setFlashMode() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; - api.setFlashMode(instance, flashMode); - - verify(instance).setFlashMode(flashMode); - } - - @Test - public void takePicture() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final String value = "myString"; - when(instance.takePicture()).thenReturn(value); - - assertEquals(value, api.takePicture(instance )); - } - - @Test - public void setTargetRotation() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - -} -*/ /** * The resolution strategy defines the resolution selection sequence to select * the best size. @@ -5841,133 +3691,29 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ResolutionStrategy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ResolutionStrategyProxyApi extends PigeonApiResolutionStrategy { - ResolutionStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ResolutionStrategy pigeon_defaultConstructor(@NonNull android.util.Size boundSize, @NonNull ResolutionStrategyFallbackRule fallbackRule) { - return ResolutionStrategy(boundSize, fallbackRule); - } - - @NonNull - @Override - public androidx.camera.core.resolutionselector.ResolutionStrategy highestAvailableStrategy() { - return ResolutionStrategy.getHighestAvailableStrategy(); - } - - @Nullable - @Override - public android.util.Size? getBoundSize(ResolutionStrategy pigeon_instance) { - return pigeon_instance.getBoundSize(); - } - - @NonNull - @Override - public ResolutionStrategyFallbackRule getFallbackRule(ResolutionStrategy pigeon_instance) { - return pigeon_instance.getFallbackRule(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.ResolutionStrategy -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionStrategyProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); - - assertTrue(api.pigeon_defaultConstructor(mock(CameraSize.class), io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER) instanceof ResolutionStrategyProxyApi.ResolutionStrategy); - } - - @Test - public void getBoundSize() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); - - final ResolutionStrategy instance = mock(ResolutionStrategy.class); - final android.util.Size value = mock(CameraSize.class); - when(instance.getBoundSize()).thenReturn(value); - - assertEquals(value, api.getBoundSize(instance )); - } - - @Test - public void getFallbackRule() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); - - final ResolutionStrategy instance = mock(ResolutionStrategy.class); - final ResolutionStrategyFallbackRule value = io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER; - when(instance.getFallbackRule()).thenReturn(value); - - assertEquals(value, api.getFallbackRule(instance )); - } - -} -*/ /** * A set of requirements and priorities used to select a resolution for the * `UseCase`. @@ -6044,150 +3790,31 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionFilterArg = resolutionFilter(pigeon_instanceArg) - val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, resolutionFilterArg, resolutionStrategyArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionFilterArg = resolutionFilter(pigeon_instanceArg) + val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, resolutionFilterArg, resolutionStrategyArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import androidx.camera.core.resolutionselector.ResolutionFilter; -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ResolutionSelector}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { - ResolutionSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ResolutionSelector pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter, @Nullable androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy, @Nullable androidx.camera.core.resolutionselector.AspectRatioStrategy? aspectRatioStrategy) { - return ResolutionSelector(aspectRatioStrategy); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter(ResolutionSelector pigeon_instance) { - return pigeon_instance.getResolutionFilter(); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy(ResolutionSelector pigeon_instance) { - return pigeon_instance.getResolutionStrategy(); - } - - @NonNull - @Override - public androidx.camera.core.resolutionselector.AspectRatioStrategy getAspectRatioStrategy(ResolutionSelector pigeon_instance) { - return pigeon_instance.getAspectRatioStrategy(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.ResolutionSelector -import androidx.camera.core.resolutionselector.AspectRatioStrategy -import androidx.camera.core.resolutionselector.ResolutionFilter -import androidx.camera.core.resolutionselector.ResolutionStrategy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionSelectorProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - - assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); - } - - @Test - public void resolutionFilter() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - - final ResolutionSelector instance = mock(ResolutionSelector.class); - final androidx.camera.core.resolutionselector.ResolutionFilter value = mock(ResolutionFilter.class); - when(instance.getResolutionFilter()).thenReturn(value); - - assertEquals(value, api.resolutionFilter(instance)); - } - - @Test - public void resolutionStrategy() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - - final ResolutionSelector instance = mock(ResolutionSelector.class); - final androidx.camera.core.resolutionselector.ResolutionStrategy value = mock(ResolutionStrategy.class); - when(instance.getResolutionStrategy()).thenReturn(value); - - assertEquals(value, api.resolutionStrategy(instance)); - } - - @Test - public void getAspectRatioStrategy() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - - final ResolutionSelector instance = mock(ResolutionSelector.class); - final androidx.camera.core.resolutionselector.AspectRatioStrategy value = mock(AspectRatioStrategy.class); - when(instance.getAspectRatioStrategy()).thenReturn(value); - - assertEquals(value, api.getAspectRatioStrategy(instance )); - } - -} -*/ /** * The aspect ratio strategy defines the sequence of aspect ratios that are * used to select the best size for a particular image. @@ -6328,137 +3955,29 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link AspectRatioStrategy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class AspectRatioStrategyProxyApi extends PigeonApiAspectRatioStrategy { - AspectRatioStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public AspectRatioStrategy pigeon_defaultConstructor(@NonNull AspectRatio preferredAspectRatio, @NonNull AspectRatioStrategyFallbackRule fallbackRule) { - return AspectRatioStrategy(preferredAspectRatio, fallbackRule); - } - - @NonNull - @Override - public androidx.camera.core.resolutionselector.AspectRatioStrategy ratio_16_9FallbackAutoStrategy() { - return AspectRatioStrategy.getRatio_16_9FallbackAutoStrategy(); - } - - @NonNull - @Override - public androidx.camera.core.resolutionselector.AspectRatioStrategy ratio_4_3FallbackAutoStrategy() { - return AspectRatioStrategy.getRatio_4_3FallbackAutoStrategy(); - } - - @NonNull - @Override - public AspectRatioStrategyFallbackRule getFallbackRule(AspectRatioStrategy pigeon_instance) { - return pigeon_instance.getFallbackRule(); - } - - @NonNull - @Override - public AspectRatio getPreferredAspectRatio(AspectRatioStrategy pigeon_instance) { - return pigeon_instance.getPreferredAspectRatio(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.AspectRatioStrategy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class AspectRatioStrategyProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - - assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO) instanceof AspectRatioStrategyProxyApi.AspectRatioStrategy); - } - - @Test - public void getFallbackRule() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - - final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); - final AspectRatioStrategyFallbackRule value = io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO; - when(instance.getFallbackRule()).thenReturn(value); - - assertEquals(value, api.getFallbackRule(instance )); - } - - @Test - public void getPreferredAspectRatio() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - - final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); - final AspectRatio value = io.flutter.plugins.camerax.AspectRatio.RATIO16TO9; - when(instance.getPreferredAspectRatio()).thenReturn(value); - - assertEquals(value, api.getPreferredAspectRatio(instance )); - } - -} -*/ /** * Represents the different states the camera can be in. * @@ -6480,123 +3999,31 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val typeArg = type(pigeon_instanceArg) - val errorArg = error(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, typeArg, errorArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val typeArg = type(pigeon_instanceArg) + val errorArg = error(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, typeArg, errorArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraState; -import androidx.camera.core.CameraState.StateError; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraState}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraStateProxyApi extends PigeonApiCameraState { - CameraStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraStateType type(CameraState pigeon_instance) { - switch (pigeon_instance.type) { - case CameraStateType.CLOSED: return io.flutter.plugins.camerax.CameraStateType.CLOSED; - case CameraStateType.CLOSING: return io.flutter.plugins.camerax.CameraStateType.CLOSING; - case CameraStateType.OPEN: return io.flutter.plugins.camerax.CameraStateType.OPEN; - case CameraStateType.OPENING: return io.flutter.plugins.camerax.CameraStateType.OPENING; - case CameraStateType.PENDING_OPEN: return io.flutter.plugins.camerax.CameraStateType.PENDING_OPEN; - default: return io.flutter.plugins.camerax.CameraStateType.UNKNOWN; + callback(Result.failure(createConnectionError(channelName))) + } + } } } - @Nullable - @Override - public androidx.camera.core.CameraState.StateError? error(CameraState pigeon_instance) { - return pigeon_instance.getError(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraState -import androidx.camera.core.CameraState.StateError -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraStateProxyApiTest { - @Test - public void type() { - final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); - - final CameraState instance = mock(CameraState.class); - final CameraStateType value = io.flutter.plugins.camerax.CameraStateType.CLOSED; - when(instance.getType()).thenReturn(value); - - assertEquals(value, api.type(instance)); - } - - @Test - public void error() { - final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); - - final CameraState instance = mock(CameraState.class); - final androidx.camera.core.CameraState.StateError value = mock(CameraStateStateError.class); - when(instance.getError()).thenReturn(value); - - assertEquals(value, api.error(instance)); - } - } -*/ /** * An interface which contains the camera exposure related information. * @@ -6621,120 +4048,35 @@ abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPi callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) - val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) + val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ExposureState; -import android.util.Range<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - /** - * ProxyApi implementation for {@link ExposureState}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ExposureStateProxyApi extends PigeonApiExposureState { - ExposureStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public android.util.Range<*> exposureCompensationRange(ExposureState pigeon_instance) { - return pigeon_instance.getExposureCompensationRange(); - } - - @NonNull - @Override - public Double exposureCompensationStep(ExposureState pigeon_instance) { - return pigeon_instance.getExposureCompensationStep(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ExposureState -import android.util.Range<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ExposureStateProxyApiTest { - @Test - public void exposureCompensationRange() { - final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); - - final ExposureState instance = mock(ExposureState.class); - final android.util.Range<*> value = mock(CameraIntegerRange.class); - when(instance.getExposureCompensationRange()).thenReturn(value); - - assertEquals(value, api.exposureCompensationRange(instance)); - } - - @Test - public void exposureCompensationStep() { - final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); - - final ExposureState instance = mock(ExposureState.class); - final Double value = 1.0; - when(instance.getExposureCompensationStep()).thenReturn(value); - - assertEquals(value, api.exposureCompensationStep(instance)); - } - -} -*/ -/** - * An interface which contains the zoom related information from a camera. - * - * See https://developer.android.com/reference/androidx/camera/core/ZoomState. + * An interface which contains the zoom related information from a camera. + * + * See https://developer.android.com/reference/androidx/camera/core/ZoomState. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @@ -6752,114 +4094,31 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) - val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, minZoomRatioArg, maxZoomRatioArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) + val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, minZoomRatioArg, maxZoomRatioArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ZoomState; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ZoomState}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ZoomStateProxyApi extends PigeonApiZoomState { - ZoomStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Double minZoomRatio(ZoomState pigeon_instance) { - return pigeon_instance.getMinZoomRatio(); - } - - @NonNull - @Override - public Double maxZoomRatio(ZoomState pigeon_instance) { - return pigeon_instance.getMaxZoomRatio(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ZoomState -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ZoomStateProxyApiTest { - @Test - public void minZoomRatio() { - final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); - - final ZoomState instance = mock(ZoomState.class); - final Double value = 1.0; - when(instance.getMinZoomRatio()).thenReturn(value); - - assertEquals(value, api.minZoomRatio(instance)); - } - - @Test - public void maxZoomRatio() { - final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); - - final ZoomState instance = mock(ZoomState.class); - final Double value = 1.0; - when(instance.getMaxZoomRatio()).thenReturn(value); - - assertEquals(value, api.maxZoomRatio(instance)); - } - -} -*/ /** * A use case providing CPU accessible images for an app to perform image * analysis on. @@ -6972,28 +4231,26 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } @@ -7005,134 +4262,6 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.ImageAnalysis.Analyzer; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ImageAnalysis}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { - ImageAnalysisProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ImageAnalysis pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation) { - return ImageAnalysis(targetRotation); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(ImageAnalysis pigeon_instance) { - return pigeon_instance.getResolutionSelector(); - } - - @Override - public Void setAnalyzer(ImageAnalysis, pigeon_instance@NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) { - pigeon_instance.setAnalyzer(analyzer); - } - - @Override - public Void clearAnalyzer(ImageAnalysis pigeon_instance) { - pigeon_instance.clearAnalyzer(); - } - - @Override - public Void setTargetRotation(ImageAnalysis, pigeon_instance@NonNull Long rotation) { - pigeon_instance.setTargetRotation(rotation); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageAnalysis -import androidx.camera.core.resolutionselector.ResolutionSelector -import androidx.camera.core.ImageAnalysis.Analyzer -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ImageAnalysisProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - assertTrue(api.pigeon_defaultConstructor(0) instanceof ImageAnalysisProxyApi.ImageAnalysis); - } - - @Test - public void resolutionSelector() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); - when(instance.getResolutionSelector()).thenReturn(value); - - assertEquals(value, api.resolutionSelector(instance)); - } - - @Test - public void setAnalyzer() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); - api.setAnalyzer(instance, analyzer); - - verify(instance).setAnalyzer(analyzer); - } - - @Test - public void clearAnalyzer() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - api.clearAnalyzer(instance ); - - verify(instance).clearAnalyzer(); - } - - @Test - public void setTargetRotation() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - -} -*/ /** * Interface for analyzing images. * @@ -7175,13 +4304,13 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + callback( + Result.failure( + CameraXError("new-instance-error", "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.", ""))) } - throw IllegalStateException("Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.") } /** Analyzes an image to produce a result. */ @@ -7211,91 +4340,6 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageAnalysis.Analyzer; -import androidx.camera.core.ImageProxy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Analyzer}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class AnalyzerProxyApi extends PigeonApiAnalyzer { - AnalyzerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link Analyzer} that passes arguments of callback methods to Dart. */ - static class AnalyzerImpl extends Analyzer { - private final AnalyzerProxyApi api; - AnalyzerImpl(@NonNull AnalyzerProxyApi api) { - this.api = api; - } - @Override - public void analyze(@NonNull androidx.camera.core.ImageProxy image) { - api.getPigeonRegistrar().runOnMainThread(() -> api.analyze(this, image, reply -> null)); - } - } - - @NonNull - @Override - public Analyzer pigeon_defaultConstructor() { - return AnalyzerImpl(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageAnalysis.Analyzer -import androidx.camera.core.ImageProxy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class AnalyzerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiAnalyzer api = new TestProxyApiRegistrar().getPigeonApiAnalyzer(); - - assertTrue(api.pigeon_defaultConstructor() instanceof AnalyzerProxyApi.AnalyzerImpl); - } - - @Test - public void analyze() { - final AnalyzerProxyApi mockApi = mock(AnalyzerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final AnalyzerImpl instance = new AnalyzerImpl(mockApi); - final androidx.camera.core.ImageProxy image = mock(ImageProxy.class); - instance.analyze(image); - - verify(mockApi).analyze(eq(instance), eq(image), any()); - } - -} -*/ /** * Error that the camera has encountered. * @@ -7314,105 +4358,30 @@ abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXL callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val codeArg = code(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, codeArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val codeArg = code(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, codeArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraState.StateError; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraStateStateError}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraStateStateErrorProxyApi extends PigeonApiCameraStateStateError { - CameraStateStateErrorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraStateErrorCode code(CameraStateStateError pigeon_instance) { - switch (pigeon_instance.code) { - case CameraStateErrorCode.CAMERA_DISABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; - case CameraStateErrorCode.CAMERA_FATAL_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_FATAL_ERROR; - case CameraStateErrorCode.CAMERA_IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_IN_USE; - case CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED; - case CameraStateErrorCode.MAX_CAMERAS_IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.MAX_CAMERAS_IN_USE; - case CameraStateErrorCode.OTHER_RECOVERABLE_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.OTHER_RECOVERABLE_ERROR; - case CameraStateErrorCode.STREAM_CONFIG: return io.flutter.plugins.camerax.CameraStateErrorCode.STREAM_CONFIG; - default: return io.flutter.plugins.camerax.CameraStateErrorCode.UNKNOWN; + callback(Result.failure(createConnectionError(channelName))) + } + } } } } -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraState.StateError -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraStateStateErrorProxyApiTest { - @Test - public void code() { - final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); - - final CameraStateStateError instance = mock(CameraStateStateError.class); - final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; - when(instance.getCode()).thenReturn(value); - - assertEquals(value, api.code(instance)); - } - -} -*/ /** * LiveData is a data holder class that can be observed within a given * lifecycle. @@ -7508,154 +4477,34 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val typeArg = type(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, typeArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val typeArg = type(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, typeArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; -import androidx.lifecycle.Observer<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - /** - * ProxyApi implementation for {@link LiveData}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class LiveDataProxyApi extends PigeonApiLiveData { - LiveDataProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public LiveDataSupportedType type(LiveData pigeon_instance) { - switch (pigeon_instance.type) { - case LiveDataSupportedType.CAMERA_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; - case LiveDataSupportedType.ZOOM_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.ZOOM_STATE; - default: return io.flutter.plugins.camerax.LiveDataSupportedType.UNKNOWN; - } - } - - @Override - public Void observe(LiveData, pigeon_instance@NonNull androidx.lifecycle.Observer<*> observer) { - pigeon_instance.observe(observer); - } - - @Override - public Void removeObservers(LiveData pigeon_instance) { - pigeon_instance.removeObservers(); - } - - @Nullable - @Override - public Any? getValue(LiveData pigeon_instance) { - return pigeon_instance.getValue(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper -import androidx.lifecycle.Observer<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class LiveDataProxyApiTest { - @Test - public void type() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; - when(instance.getType()).thenReturn(value); - - assertEquals(value, api.type(instance)); - } - - @Test - public void observe() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - final androidx.lifecycle.Observer<*> observer = mock(Observer.class); - api.observe(instance, observer); - - verify(instance).observe(observer); - } - - @Test - public void removeObservers() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - api.removeObservers(instance ); - - verify(instance).removeObservers(); - } - - @Test - public void getValue() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - final Any value = -1; - when(instance.getValue()).thenReturn(value); - - assertEquals(value, api.getValue(instance )); - } - -} -*/ -/** - * An image proxy which has a similar interface as `android.media.Image`. - * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. + * An image proxy which has a similar interface as `android.media.Image`. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @@ -7724,166 +4573,32 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val formatArg = format(pigeon_instanceArg) - val widthArg = width(pigeon_instanceArg) - val heightArg = height(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, formatArg, widthArg, heightArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val formatArg = format(pigeon_instanceArg) + val widthArg = width(pigeon_instanceArg) + val heightArg = height(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, formatArg, widthArg, heightArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageProxy; -import androidx.camera.core.ImageProxy.PlaneProxy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ImageProxy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ImageProxyProxyApi extends PigeonApiImageProxy { - ImageProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Long format(ImageProxy pigeon_instance) { - return pigeon_instance.getFormat(); - } - - @NonNull - @Override - public Long width(ImageProxy pigeon_instance) { - return pigeon_instance.getWidth(); - } - - @NonNull - @Override - public Long height(ImageProxy pigeon_instance) { - return pigeon_instance.getHeight(); - } - - @NonNull - @Override - public List getPlanes(ImageProxy pigeon_instance) { - return pigeon_instance.getPlanes(); - } - - @Override - public Void close(ImageProxy pigeon_instance) { - pigeon_instance.close(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageProxy -import androidx.camera.core.ImageProxy.PlaneProxy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ImageProxyProxyApiTest { - @Test - public void format() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final Long value = 0; - when(instance.getFormat()).thenReturn(value); - - assertEquals(value, api.format(instance)); - } - - @Test - public void width() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final Long value = 0; - when(instance.getWidth()).thenReturn(value); - - assertEquals(value, api.width(instance)); - } - - @Test - public void height() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final Long value = 0; - when(instance.getHeight()).thenReturn(value); - - assertEquals(value, api.height(instance)); - } - - @Test - public void getPlanes() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final List value = Arrays.asList(mock(PlaneProxy.class)); - when(instance.getPlanes()).thenReturn(value); - - assertEquals(value, api.getPlanes(instance )); - } - - @Test - public void close() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - api.close(instance ); - - verify(instance).close(); - } - -} -*/ /** * A plane proxy which has an analogous interface as * `android.media.Image.Plane`. @@ -7909,132 +4624,32 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val bufferArg = buffer(pigeon_instanceArg) - val pixelStrideArg = pixelStride(pigeon_instanceArg) - val rowStrideArg = rowStride(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, bufferArg, pixelStrideArg, rowStrideArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val bufferArg = buffer(pigeon_instanceArg) + val pixelStrideArg = pixelStride(pigeon_instanceArg) + val rowStrideArg = rowStride(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, bufferArg, pixelStrideArg, rowStrideArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageProxy.PlaneProxy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link PlaneProxy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class PlaneProxyProxyApi extends PigeonApiPlaneProxy { - PlaneProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ByteArray buffer(PlaneProxy pigeon_instance) { - return pigeon_instance.getBuffer(); - } - - @NonNull - @Override - public Long pixelStride(PlaneProxy pigeon_instance) { - return pigeon_instance.getPixelStride(); - } - - @NonNull - @Override - public Long rowStride(PlaneProxy pigeon_instance) { - return pigeon_instance.getRowStride(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageProxy.PlaneProxy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class PlaneProxyProxyApiTest { - @Test - public void buffer() { - final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); - - final PlaneProxy instance = mock(PlaneProxy.class); - final ByteArray value = {0xA1}; - when(instance.getBuffer()).thenReturn(value); - - assertEquals(value, api.buffer(instance)); - } - - @Test - public void pixelStride() { - final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); - - final PlaneProxy instance = mock(PlaneProxy.class); - final Long value = 0; - when(instance.getPixelStride()).thenReturn(value); - - assertEquals(value, api.pixelStride(instance)); - } - - @Test - public void rowStride() { - final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); - - final PlaneProxy instance = mock(PlaneProxy.class); - final Long value = 0; - when(instance.getRowStride()).thenReturn(value); - - assertEquals(value, api.rowStride(instance)); - } - -} -*/ /** * Defines a desired quality setting that can be used to configure components * with quality setting requirements such as creating a Recorder. @@ -8125,116 +4740,29 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.QualitySelector; -import androidx.camera.video.FallbackStrategy; -import androidx.camera.core.CameraInfo; -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link QualitySelector}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class QualitySelectorProxyApi extends PigeonApiQualitySelector { - QualitySelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public QualitySelector from(@NonNull VideoQuality quality, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { - return QualitySelector(quality, fallbackStrategy); - } - - @NonNull - @Override - public QualitySelector fromOrderedList(@NonNull List qualities, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { - return QualitySelector(qualities, fallbackStrategy); - } - - @Nullable - @Override - public android.util.Size? getResolution(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull VideoQuality quality) { - return QualitySelector.getResolution(cameraInfo, quality); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.QualitySelector -import androidx.camera.video.FallbackStrategy -import androidx.camera.core.CameraInfo -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class QualitySelectorProxyApiTest { - @Test - public void from() { - final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); - - assertTrue(api.from(io.flutter.plugins.camerax.VideoQuality.SD, mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); - } - - @Test - public void fromOrderedList() { - final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); - - assertTrue(api.fromOrderedList(Arrays.asList(io.flutter.plugins.camerax.VideoQuality.SD), mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); - } - -} -*/ /** * A class represents the strategy that will be adopted when the device does * not support all the desired Quality in QualitySelector in order to select @@ -8359,144 +4887,43 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.FallbackStrategy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - /** - * ProxyApi implementation for {@link FallbackStrategy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * The CameraControl provides various asynchronous operations like zoom, focus + * and metering which affects output of all UseCases currently bound to that + * camera. + * + * See https://developer.android.com/reference/androidx/camera/core/CameraControl. */ -class FallbackStrategyProxyApi extends PigeonApiFallbackStrategy { - FallbackStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public FallbackStrategy higherQualityOrLowerThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); - } - - @NonNull - @Override - public FallbackStrategy higherQualityThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); - } +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Enable the torch or disable the torch. */ + abstract fun enableTorch(pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit) - @NonNull - @Override - public FallbackStrategy lowerQualityOrHigherThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); - } - - @NonNull - @Override - public FallbackStrategy lowerQualityThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.FallbackStrategy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FallbackStrategyProxyApiTest { - @Test - public void higherQualityOrLowerThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.higherQualityOrLowerThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - - @Test - public void higherQualityThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.higherQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - - @Test - public void lowerQualityOrHigherThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.lowerQualityOrHigherThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - - @Test - public void lowerQualityThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.lowerQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - -} -*/ -/** - * The CameraControl provides various asynchronous operations like zoom, focus - * and metering which affects output of all UseCases currently bound to that - * camera. - * - * See https://developer.android.com/reference/androidx/camera/core/CameraControl. - */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** Enable the torch or disable the torch. */ - abstract fun enableTorch(pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit) - - /** Sets current zoom by ratio. */ - abstract fun setZoomRatio(pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit) + /** Sets current zoom by ratio. */ + abstract fun setZoomRatio(pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit) /** * Starts a focus and metering action configured by the @@ -8626,165 +5053,29 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraControl; -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.FocusMeteringResult; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraControl}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraControlProxyApi extends PigeonApiCameraControl { - CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @Override - public Void enableTorch(CameraControl, pigeon_instance@NonNull Boolean torch) { - pigeon_instance.enableTorch(torch); - } - - @Override - public Void setZoomRatio(CameraControl, pigeon_instance@NonNull Double ratio) { - pigeon_instance.setZoomRatio(ratio); - } - - @Nullable - @Override - public androidx.camera.core.FocusMeteringResult? startFocusAndMetering(CameraControl, pigeon_instance@NonNull androidx.camera.core.FocusMeteringAction action) { - return pigeon_instance.startFocusAndMetering(action); - } - - @Override - public Void cancelFocusAndMetering(CameraControl pigeon_instance) { - pigeon_instance.cancelFocusAndMetering(); - } - - @Nullable - @Override - public Long? setExposureCompensationIndex(CameraControl, pigeon_instance@NonNull Long index) { - return pigeon_instance.setExposureCompensationIndex(index); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraControl -import androidx.camera.core.FocusMeteringAction -import androidx.camera.core.FocusMeteringResult -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraControlProxyApiTest { - @Test - public void enableTorch() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final Boolean torch = true; - api.enableTorch(instance, torch); - - verify(instance).enableTorch(torch); - } - - @Test - public void setZoomRatio() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final Double ratio = 1.0; - api.setZoomRatio(instance, ratio); - - verify(instance).setZoomRatio(ratio); - } - - @Test - public void startFocusAndMetering() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final androidx.camera.core.FocusMeteringAction action = mock(FocusMeteringAction.class); - final androidx.camera.core.FocusMeteringResult value = mock(FocusMeteringResult.class); - when(instance.startFocusAndMetering(action)).thenReturn(value); - - assertEquals(value, api.startFocusAndMetering(instance, action)); - } - - @Test - public void cancelFocusAndMetering() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - api.cancelFocusAndMetering(instance ); - - verify(instance).cancelFocusAndMetering(); - } - - @Test - public void setExposureCompensationIndex() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final Long index = 0; - final Long value = 0; - when(instance.setExposureCompensationIndex(index)).thenReturn(value); - - assertEquals(value, api.setExposureCompensationIndex(instance, index)); - } - -} -*/ /** * The builder used to create the `FocusMeteringAction`. * @@ -8941,173 +5232,29 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.FocusMeteringAction.Builder; -import androidx.camera.core.MeteringPoint; -import androidx.camera.core.FocusMeteringAction; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link FocusMeteringActionBuilder}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class FocusMeteringActionBuilderProxyApi extends PigeonApiFocusMeteringActionBuilder { - FocusMeteringActionBuilderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public FocusMeteringActionBuilder pigeon_defaultConstructor(@NonNull androidx.camera.core.MeteringPoint point) { - return FocusMeteringActionBuilder(point); - } - - @NonNull - @Override - public FocusMeteringActionBuilder withMode(@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { - return FocusMeteringActionBuilder(point, mode); - } - - @Override - public Void addPoint(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point) { - pigeon_instance.addPoint(point); - } - - @Override - public Void addPointWithMode(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { - pigeon_instance.addPointWithMode(point, mode); - } - - @Override - public Void disableAutoCancel(FocusMeteringActionBuilder pigeon_instance) { - pigeon_instance.disableAutoCancel(); - } - - @NonNull - @Override - public androidx.camera.core.FocusMeteringAction build(FocusMeteringActionBuilder pigeon_instance) { - return pigeon_instance.build(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.FocusMeteringAction.Builder -import androidx.camera.core.MeteringPoint -import androidx.camera.core.FocusMeteringAction -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FocusMeteringActionBuilderProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - assertTrue(api.pigeon_defaultConstructor(mock(MeteringPoint.class)) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); - } - - @Test - public void withMode() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - assertTrue(api.withMode(mock(MeteringPoint.class), io.flutter.plugins.camerax.MeteringMode.AE) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); - } - - @Test - public void addPoint() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); - api.addPoint(instance, point); - - verify(instance).addPoint(point); - } - - @Test - public void addPointWithMode() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); - final MeteringMode mode = io.flutter.plugins.camerax.MeteringMode.AE; - api.addPointWithMode(instance, point, mode); - - verify(instance).addPointWithMode(point, mode); - } - - @Test - public void disableAutoCancel() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - api.disableAutoCancel(instance ); - - verify(instance).disableAutoCancel(); - } - - @Test - public void build() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); - when(instance.build()).thenReturn(value); - - assertEquals(value, api.build(instance )); - } - -} -*/ /** * A configuration used to trigger a focus and/or metering action. * @@ -9135,152 +5282,33 @@ abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLib callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) - val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) - val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) - val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, meteringPointsAeArg, meteringPointsAfArg, meteringPointsAwbArg, isAutoCancelEnabledArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) + val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) + val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) + val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, meteringPointsAeArg, meteringPointsAfArg, meteringPointsAwbArg, isAutoCancelEnabledArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.MeteringPoint; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link FocusMeteringAction}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class FocusMeteringActionProxyApi extends PigeonApiFocusMeteringAction { - FocusMeteringActionProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public List meteringPointsAe(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getMeteringPointsAe(); - } - - @NonNull - @Override - public List meteringPointsAf(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getMeteringPointsAf(); - } - - @NonNull - @Override - public List meteringPointsAwb(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getMeteringPointsAwb(); - } - - @NonNull - @Override - public Boolean isAutoCancelEnabled(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getIsAutoCancelEnabled(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.FocusMeteringAction -import androidx.camera.core.MeteringPoint -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FocusMeteringActionProxyApiTest { - @Test - public void meteringPointsAe() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Arrays.asList(mock(MeteringPoint.class)); - when(instance.getMeteringPointsAe()).thenReturn(value); - - assertEquals(value, api.meteringPointsAe(instance)); - } - - @Test - public void meteringPointsAf() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Arrays.asList(mock(MeteringPoint.class)); - when(instance.getMeteringPointsAf()).thenReturn(value); - - assertEquals(value, api.meteringPointsAf(instance)); - } - - @Test - public void meteringPointsAwb() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Arrays.asList(mock(MeteringPoint.class)); - when(instance.getMeteringPointsAwb()).thenReturn(value); - - assertEquals(value, api.meteringPointsAwb(instance)); - } - - @Test - public void isAutoCancelEnabled() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final Boolean value = true; - when(instance.getIsAutoCancelEnabled()).thenReturn(value); - - assertEquals(value, api.isAutoCancelEnabled(instance)); - } - -} -*/ /** * Result of the `CameraControl.startFocusAndMetering`. * @@ -9299,96 +5327,30 @@ abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLib callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, isFocusSuccessfulArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, isFocusSuccessfulArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.FocusMeteringResult; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link FocusMeteringResult}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class FocusMeteringResultProxyApi extends PigeonApiFocusMeteringResult { - FocusMeteringResultProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Boolean isFocusSuccessful(FocusMeteringResult pigeon_instance) { - return pigeon_instance.getIsFocusSuccessful(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.FocusMeteringResult -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FocusMeteringResultProxyApiTest { - @Test - public void isFocusSuccessful() { - final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); - - final FocusMeteringResult instance = mock(FocusMeteringResult.class); - final Boolean value = true; - when(instance.getIsFocusSuccessful()).thenReturn(value); - - assertEquals(value, api.isFocusSuccessful(instance)); - } - -} -*/ /** * An immutable package of settings and outputs needed to capture a single * image from the camera device. @@ -9440,86 +5402,29 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CaptureRequest; -import android.hardware.camera2.CaptureRequest.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CaptureRequest}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CaptureRequestProxyApi extends PigeonApiCaptureRequest { - CaptureRequestProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public android.hardware.camera2.CaptureRequest.Key<*> controlAELock() { - return CaptureRequest.getControlAELock(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CaptureRequest -import android.hardware.camera2.CaptureRequest.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestProxyApiTest { -} -*/ /** * A Key is used to do capture request field lookups with CaptureRequest.get or * to set fields with `CaptureRequest.Builder.set`. @@ -9536,78 +5441,29 @@ open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPi callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CaptureRequest.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CaptureRequestKey}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CaptureRequestKeyProxyApi extends PigeonApiCaptureRequestKey { - CaptureRequestKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CaptureRequest.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestKeyProxyApiTest { -} -*/ /** * A bundle of Camera2 capture request options. * @@ -9617,8 +5473,11 @@ public class CaptureRequestKeyProxyApiTest { abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(options: Map, Any?>): androidx.camera.camera2.interop.CaptureRequestOptions - /** Capture request option with specific `CaptureRequest.Key` setting. */ - abstract fun options(pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions): Map, Any?> + /** + * Returns a value for the given CaptureRequestKey or null if it hasn't been + * set. + */ + abstract fun getCaptureRequestOption(pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, key: android.hardware.camera2.CaptureRequest.Key<*>): Any? companion object { @Suppress("LocalVariableName") @@ -9643,6 +5502,24 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL channel.setMessageHandler(null) } } + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.CaptureRequestOptions + val keyArg = args[1] as android.hardware.camera2.CaptureRequest.Key<*> + val wrapped: List = try { + listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } } } @@ -9654,111 +5531,29 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val optionsArg = options(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, optionsArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.camera2.interop.CaptureRequestOptions; -import android.hardware.camera2.CaptureRequest.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CaptureRequestOptions}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { - CaptureRequestOptionsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map, Any?> options) { - return CaptureRequestOptions(); - } - - @NonNull - @Override - public Map, Any?> options(CaptureRequestOptions pigeon_instance) { - return pigeon_instance.getOptions(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.camera2.interop.CaptureRequestOptions -import android.hardware.camera2.CaptureRequest.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestOptionsProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); - - assertTrue(api.pigeon_defaultConstructor() instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); - } - - @Test - public void options() { - final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); - - final CaptureRequestOptions instance = mock(CaptureRequestOptions.class); - final Map, Any?> value = new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}; - when(instance.getOptions()).thenReturn(value); - - assertEquals(value, api.options(instance)); - } - -} -*/ /** * An class that provides ability to interoperate with the * 1android.hardware.camera21 APIs. @@ -9830,111 +5625,29 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.camera2.interop.Camera2CameraControl; -import androidx.camera.core.CameraControl; -import androidx.camera.camera2.interop.CaptureRequestOptions; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Camera2CameraControl}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class Camera2CameraControlProxyApi extends PigeonApiCamera2CameraControl { - Camera2CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Camera2CameraControl from(@NonNull androidx.camera.core.CameraControl cameraControl) { - return Camera2CameraControl(cameraControl); - } - - @Override - public Void addCaptureRequestOptions(Camera2CameraControl, pigeon_instance@NonNull androidx.camera.camera2.interop.CaptureRequestOptions bundle) { - pigeon_instance.addCaptureRequestOptions(bundle); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.camera2.interop.Camera2CameraControl -import androidx.camera.core.CameraControl -import androidx.camera.camera2.interop.CaptureRequestOptions -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class Camera2CameraControlProxyApiTest { - @Test - public void from() { - final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); - - assertTrue(api.from(mock(CameraControl.class)) instanceof Camera2CameraControlProxyApi.Camera2CameraControl); - } - - @Test - public void addCaptureRequestOptions() { - final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); - - final Camera2CameraControl instance = mock(Camera2CameraControl.class); - final androidx.camera.camera2.interop.CaptureRequestOptions bundle = mock(CaptureRequestOptions.class); - api.addCaptureRequestOptions(instance, bundle); - - verify(instance).addCaptureRequestOptions(bundle); - } - -} -*/ /** * Applications can filter out unsuitable sizes and sort the resolution list in * the preferred order by implementing the resolution filter interface. @@ -9961,111 +5674,47 @@ abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibrar listOf(null) } catch (exception: Throwable) { wrapError(exception) - } - reply.reply(wrapped) - } - } else { - channel.setMessageHandler(null) - } - } - } - } - - @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit) -{ - if (pigeonRegistrar.ignoreCallsToDart) { - callback( - Result.failure( - CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.resolutionselector.ResolutionFilter; -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ResolutionFilter}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ResolutionFilterProxyApi extends PigeonApiResolutionFilter { - ResolutionFilterProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ResolutionFilter createWithOnePreferredSize(@NonNull android.util.Size preferredSize) { - return ResolutionFilter(preferredSize); + } + reply.reply(wrapped) + } + } else { + channel.setMessageHandler(null) + } + } + } } -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.ResolutionFilter -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionFilterProxyApiTest { - @Test - public void createWithOnePreferredSize() { - final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); - - assertTrue(api.createWithOnePreferredSize(mock(CameraSize.class)) instanceof ResolutionFilterProxyApi.ResolutionFilter); + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } } } -*/ /** * A Key is used to do camera characteristics field lookups with * `CameraCharacteristics.get`. @@ -10082,78 +5731,29 @@ open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLi callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CameraCharacteristics.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraCharacteristicsKey}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraCharacteristicsKeyProxyApi extends PigeonApiCameraCharacteristicsKey { - CameraCharacteristicsKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CameraCharacteristics.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraCharacteristicsKeyProxyApiTest { -} -*/ /** * The properties describing a `CameraDevice`. * @@ -10231,92 +5831,29 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CameraCharacteristics; -import android.hardware.camera2.CameraCharacteristics.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraCharacteristics}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraCharacteristicsProxyApi extends PigeonApiCameraCharacteristics { - CameraCharacteristicsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public android.hardware.camera2.CameraCharacteristics.Key<*> infoSupportedHardwareLevel() { - return CameraCharacteristics.getInfoSupportedHardwareLevel(); - } - - @NonNull - @Override - public android.hardware.camera2.CameraCharacteristics.Key<*> sensorOrientation() { - return CameraCharacteristics.getSensorOrientation(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CameraCharacteristics -import android.hardware.camera2.CameraCharacteristics.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraCharacteristicsProxyApiTest { -} -*/ /** * An interface for retrieving Camera2-related camera information. * @@ -10402,130 +5939,29 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.camera2.interop.Camera2CameraInfo; -import androidx.camera.core.CameraInfo; -import android.hardware.camera2.CameraCharacteristics.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Camera2CameraInfo}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class Camera2CameraInfoProxyApi extends PigeonApiCamera2CameraInfo { - Camera2CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Camera2CameraInfo from(@NonNull androidx.camera.core.CameraInfo cameraInfo) { - return Camera2CameraInfo(cameraInfo); - } - - @NonNull - @Override - public String getCameraId(Camera2CameraInfo pigeon_instance) { - return pigeon_instance.getCameraId(); - } - - @Nullable - @Override - public Any? getCameraCharacteristic(Camera2CameraInfo, pigeon_instance@NonNull android.hardware.camera2.CameraCharacteristics.Key<*> key) { - return pigeon_instance.getCameraCharacteristic(key); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.camera2.interop.Camera2CameraInfo -import androidx.camera.core.CameraInfo -import android.hardware.camera2.CameraCharacteristics.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class Camera2CameraInfoProxyApiTest { - @Test - public void from() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - assertTrue(api.from(mock(CameraInfo.class)) instanceof Camera2CameraInfoProxyApi.Camera2CameraInfo); - } - - @Test - public void getCameraId() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); - final String value = "myString"; - when(instance.getCameraId()).thenReturn(value); - - assertEquals(value, api.getCameraId(instance )); - } - - @Test - public void getCameraCharacteristic() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); - final android.hardware.camera2.CameraCharacteristics.Key<*> key = mock(CameraCharacteristicsKey.class); - final Any value = -1; - when(instance.getCameraCharacteristic(key)).thenReturn(value); - - assertEquals(value, api.getCameraCharacteristic(instance, key)); - } - -} -*/ /** * A factory to create a MeteringPoint. * @@ -10593,119 +6029,29 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.MeteringPointFactory; -import androidx.camera.core.MeteringPoint; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link MeteringPointFactory}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class MeteringPointFactoryProxyApi extends PigeonApiMeteringPointFactory { - MeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public androidx.camera.core.MeteringPoint createPoint(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y) { - return pigeon_instance.createPoint(x, y); - } - - @NonNull - @Override - public androidx.camera.core.MeteringPoint createPointWithSize(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y, @NonNull Double size) { - return pigeon_instance.createPointWithSize(x, y, size); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.MeteringPointFactory -import androidx.camera.core.MeteringPoint -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class MeteringPointFactoryProxyApiTest { - @Test - public void createPoint() { - final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); - - final MeteringPointFactory instance = mock(MeteringPointFactory.class); - final Double x = 1.0; - final Double y = 1.0; - final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); - when(instance.createPoint(x, y)).thenReturn(value); - - assertEquals(value, api.createPoint(instance, x, y)); - } - - @Test - public void createPointWithSize() { - final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); - - final MeteringPointFactory instance = mock(MeteringPointFactory.class); - final Double x = 1.0; - final Double y = 1.0; - final Double size = 1.0; - final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); - when(instance.createPointWithSize(x, y, size)).thenReturn(value); - - assertEquals(value, api.createPointWithSize(instance, x, y, size)); - } - -} -*/ /** * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint * which can then be used to construct a FocusMeteringAction to start a focus @@ -10758,27 +6104,25 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - return - } - if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - Result.success(Unit) - return - } - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + callback(Result.failure(createConnectionError(channelName))) + } + } } } @@ -10790,65 +6134,3 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis } } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.DisplayOrientedMeteringPointFactory; -import androidx.camera.core.CameraInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link DisplayOrientedMeteringPointFactory}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class DisplayOrientedMeteringPointFactoryProxyApi extends PigeonApiDisplayOrientedMeteringPointFactory { - DisplayOrientedMeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public DisplayOrientedMeteringPointFactory pigeon_defaultConstructor(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull Double width, @NonNull Double height) { - return DisplayOrientedMeteringPointFactory(cameraInfo, width, height); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.DisplayOrientedMeteringPointFactory -import androidx.camera.core.CameraInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class DisplayOrientedMeteringPointFactoryProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiDisplayOrientedMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiDisplayOrientedMeteringPointFactory(); - - assertTrue(api.pigeon_defaultConstructor(mock(CameraInfo.class), 1.0, 1.0) instanceof DisplayOrientedMeteringPointFactoryProxyApi.DisplayOrientedMeteringPointFactory); - } - -} -*/ diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java index 31b377b9908..3234799ae36 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -6,6 +6,7 @@ import android.hardware.camera2.CaptureRequest; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.camera.camera2.interop.CaptureRequestOptions; import androidx.camera.camera2.interop.ExperimentalCamera2Interop; @@ -44,4 +45,11 @@ public CaptureRequestOptions pigeon_defaultConstructor( return builder.build(); } + + @ExperimentalCamera2Interop + @Nullable + @Override + public Object getCaptureRequestOption(@NonNull CaptureRequestOptions pigeon_instance, @NonNull CaptureRequest.Key key) { + return pigeon_instance.getCaptureRequestOption(key); + } } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 6405311b17d..aabd4198740 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v22.7.1), do not edit directly. +// Autogenerated from Pigeon (v24.1.1), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers @@ -434,375 +434,6 @@ class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { } } -/// Handles constructing objects and calling static methods for the Android -/// Interactive Media Ads native library. -/// -/// This class provides dependency injection for the implementations of the -/// platform interface classes. Improving the ease of unit testing and/or -/// overriding the underlying Android classes. -/// -/// By default each function calls the default constructor of the class it -/// intends to return. -class MyLibraryProxy { - /// Constructs an [MyLibraryProxy]. - const MyLibraryProxy({ - this.newCameraSize = CameraSize.new, - this.newCameraIntegerRange = CameraIntegerRange.new, - this.newObserver = Observer.new, - this.newCameraSelector = CameraSelector.new, - this.newSystemServicesManager = SystemServicesManager.new, - this.newDeviceOrientationManager = DeviceOrientationManager.new, - this.newPreview = Preview.new, - this.withOutputVideoCapture = VideoCapture.withOutput, - this.newRecorder = Recorder.new, - this.newVideoRecordEventListener = VideoRecordEventListener.new, - this.newImageCapture = ImageCapture.new, - this.newResolutionStrategy = ResolutionStrategy.new, - this.newResolutionSelector = ResolutionSelector.new, - this.newAspectRatioStrategy = AspectRatioStrategy.new, - this.newImageAnalysis = ImageAnalysis.new, - this.newAnalyzer = Analyzer.new, - this.fromQualitySelector = QualitySelector.from, - this.fromOrderedListQualitySelector = QualitySelector.fromOrderedList, - this.higherQualityOrLowerThanFallbackStrategy = - FallbackStrategy.higherQualityOrLowerThan, - this.higherQualityThanFallbackStrategy = FallbackStrategy.higherQualityThan, - this.lowerQualityOrHigherThanFallbackStrategy = - FallbackStrategy.lowerQualityOrHigherThan, - this.lowerQualityThanFallbackStrategy = FallbackStrategy.lowerQualityThan, - this.newFocusMeteringActionBuilder = FocusMeteringActionBuilder.new, - this.withModeFocusMeteringActionBuilder = - FocusMeteringActionBuilder.withMode, - this.newCaptureRequestOptions = CaptureRequestOptions.new, - this.fromCamera2CameraControl = Camera2CameraControl.from, - this.createWithOnePreferredSizeResolutionFilter = - ResolutionFilter.createWithOnePreferredSize, - this.fromCamera2CameraInfo = Camera2CameraInfo.from, - this.newDisplayOrientedMeteringPointFactory = - DisplayOrientedMeteringPointFactory.new, - this.getInstanceProcessCameraProvider = ProcessCameraProvider.getInstance, - this.getResolutionQualitySelector = QualitySelector.getResolution, - this.defaultBackCameraCameraSelector = _defaultBackCameraCameraSelector, - this.defaultFrontCameraCameraSelector = _defaultFrontCameraCameraSelector, - this.highestAvailableStrategyResolutionStrategy = - _highestAvailableStrategyResolutionStrategy, - this.ratio_16_9FallbackAutoStrategyAspectRatioStrategy = - _ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - this.ratio_4_3FallbackAutoStrategyAspectRatioStrategy = - _ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - this.controlAELockCaptureRequest = _controlAELockCaptureRequest, - this.infoSupportedHardwareLevelCameraCharacteristics = - _infoSupportedHardwareLevelCameraCharacteristics, - this.sensorOrientationCameraCharacteristics = - _sensorOrientationCameraCharacteristics, - }); - - /// Constructs [CameraSize]. - final CameraSize Function({ - required int width, - required int height, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newCameraSize; - - /// Constructs [CameraIntegerRange]. - final CameraIntegerRange Function({ - required int lower, - required int upper, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newCameraIntegerRange; - - /// Constructs [Observer]. - final Observer Function({ - required void Function( - Observer, - Object, - ) onChanged, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newObserver; - - /// Constructs [CameraSelector]. - final CameraSelector Function({ - LensFacing? requireLensFacing, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newCameraSelector; - - /// Constructs [SystemServicesManager]. - final SystemServicesManager Function({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newSystemServicesManager; - - /// Constructs [DeviceOrientationManager]. - final DeviceOrientationManager Function({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newDeviceOrientationManager; - - /// Constructs [Preview]. - final Preview Function({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newPreview; - - /// Constructs [VideoCapture]. - final VideoCapture Function({ - required VideoOutput videoOutput, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) withOutputVideoCapture; - - /// Constructs [Recorder]. - final Recorder Function({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newRecorder; - - /// Constructs [VideoRecordEventListener]. - final VideoRecordEventListener Function({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newVideoRecordEventListener; - - /// Constructs [ImageCapture]. - final ImageCapture Function({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newImageCapture; - - /// Constructs [ResolutionStrategy]. - final ResolutionStrategy Function({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newResolutionStrategy; - - /// Constructs [ResolutionSelector]. - final ResolutionSelector Function({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionFilter? resolutionFilter, - ResolutionStrategy? resolutionStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newResolutionSelector; - - /// Constructs [AspectRatioStrategy]. - final AspectRatioStrategy Function({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newAspectRatioStrategy; - - /// Constructs [ImageAnalysis]. - final ImageAnalysis Function({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newImageAnalysis; - - /// Constructs [Analyzer]. - final Analyzer Function({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newAnalyzer; - - /// Constructs [QualitySelector]. - final QualitySelector Function({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) fromQualitySelector; - - /// Constructs [QualitySelector]. - final QualitySelector Function({ - required List qualities, - FallbackStrategy? fallbackStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) fromOrderedListQualitySelector; - - /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) higherQualityOrLowerThanFallbackStrategy; - - /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) higherQualityThanFallbackStrategy; - - /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) lowerQualityOrHigherThanFallbackStrategy; - - /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) lowerQualityThanFallbackStrategy; - - /// Constructs [FocusMeteringActionBuilder]. - final FocusMeteringActionBuilder Function({ - required MeteringPoint point, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newFocusMeteringActionBuilder; - - /// Constructs [FocusMeteringActionBuilder]. - final FocusMeteringActionBuilder Function({ - required MeteringPoint point, - required MeteringMode mode, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) withModeFocusMeteringActionBuilder; - - /// Constructs [CaptureRequestOptions]. - final CaptureRequestOptions Function({ - required Map options, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newCaptureRequestOptions; - - /// Constructs [Camera2CameraControl]. - final Camera2CameraControl Function({ - required CameraControl cameraControl, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) fromCamera2CameraControl; - - /// Constructs [ResolutionFilter]. - final ResolutionFilter Function({ - required CameraSize preferredSize, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) createWithOnePreferredSizeResolutionFilter; - - /// Constructs [Camera2CameraInfo]. - final Camera2CameraInfo Function({ - required CameraInfo cameraInfo, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) fromCamera2CameraInfo; - - /// Constructs [DisplayOrientedMeteringPointFactory]. - final DisplayOrientedMeteringPointFactory Function({ - required CameraInfo cameraInfo, - required double width, - required double height, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newDisplayOrientedMeteringPointFactory; - - /// Calls to [ProcessCameraProvider.getInstance]. - final Future Function({ - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) getInstanceProcessCameraProvider; - - /// Calls to [QualitySelector.getResolution]. - final Future Function( - CameraInfo, - VideoQuality, { - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) getResolutionQualitySelector; - - /// Calls to [CameraSelector.defaultBackCamera]. - final CameraSelector Function() defaultBackCameraCameraSelector; - - /// Calls to [CameraSelector.defaultFrontCamera]. - final CameraSelector Function() defaultFrontCameraCameraSelector; - - /// Calls to [ResolutionStrategy.highestAvailableStrategy]. - final ResolutionStrategy Function() - highestAvailableStrategyResolutionStrategy; - - /// Calls to [AspectRatioStrategy.ratio_16_9FallbackAutoStrategy]. - final AspectRatioStrategy Function() - ratio_16_9FallbackAutoStrategyAspectRatioStrategy; - - /// Calls to [AspectRatioStrategy.ratio_4_3FallbackAutoStrategy]. - final AspectRatioStrategy Function() - ratio_4_3FallbackAutoStrategyAspectRatioStrategy; - - /// Calls to [CaptureRequest.controlAELock]. - final CaptureRequestKey Function() controlAELockCaptureRequest; - - /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. - final CameraCharacteristicsKey Function() - infoSupportedHardwareLevelCameraCharacteristics; - - /// Calls to [CameraCharacteristics.sensorOrientation]. - final CameraCharacteristicsKey Function() - sensorOrientationCameraCharacteristics; - - static CameraSelector _defaultBackCameraCameraSelector() => - CameraSelector.defaultBackCamera; - - static CameraSelector _defaultFrontCameraCameraSelector() => - CameraSelector.defaultFrontCamera; - - static ResolutionStrategy _highestAvailableStrategyResolutionStrategy() => - ResolutionStrategy.highestAvailableStrategy; - - static AspectRatioStrategy - _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; - - static AspectRatioStrategy - _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; - - static CaptureRequestKey _controlAELockCaptureRequest() => - CaptureRequest.controlAELock; - - static CameraCharacteristicsKey - _infoSupportedHardwareLevelCameraCharacteristics() => - CameraCharacteristics.infoSupportedHardwareLevel; - - static CameraCharacteristicsKey _sensorOrientationCameraCharacteristics() => - CameraCharacteristics.sensorOrientation; -} - /// Generally classifies the overall set of the camera device functionality. /// @@ -953,6 +584,8 @@ enum ResolutionStrategyFallbackRule { /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, + /// The value is not recognized by the wrapper. + unknown, } /// Fallback rule for choosing the aspect ratio when the preferred aspect ratio @@ -7743,7 +7376,7 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { CaptureRequestOptions({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, - required this.options, + required Map options, }) { final int pigeonVar_instanceIdentifier = pigeon_instanceManager.addDartCreatedInstance(this); @@ -7784,22 +7417,17 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { CaptureRequestOptions.pigeon_detached({ super.pigeon_binaryMessenger, super.pigeon_instanceManager, - required this.options, }); late final _PigeonInternalProxyApiBaseCodec _pigeonVar_codecCaptureRequestOptions = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); - /// Capture request option with specific `CaptureRequest.Key` setting. - final Map options; - static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CaptureRequestOptions Function(Map options)? - pigeon_newInstance, + CaptureRequestOptions Function()? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( @@ -7822,19 +7450,13 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { final int? arg_pigeon_instanceIdentifier = (args[0] as int?); assert(arg_pigeon_instanceIdentifier != null, 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null, expected non-null int.'); - final Map? arg_options = - (args[1] as Map?) - ?.cast(); - assert(arg_options != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null, expected non-null Map.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_options!) ?? + pigeon_newInstance?.call() ?? CaptureRequestOptions.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, - options: arg_options!, ), arg_pigeon_instanceIdentifier!, ); @@ -7850,12 +7472,40 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { } } + /// Returns a value for the given CaptureRequestKey or null if it hasn't been + /// set. + Future getCaptureRequestOption(CaptureRequestKey key) async { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _pigeonVar_codecCaptureRequestOptions; + final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; + const String pigeonVar_channelName = + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption'; + final BasicMessageChannel pigeonVar_channel = + BasicMessageChannel( + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final List? pigeonVar_replyList = + await pigeonVar_channel.send([this, key]) as List?; + if (pigeonVar_replyList == null) { + throw _createConnectionError(pigeonVar_channelName); + } else if (pigeonVar_replyList.length > 1) { + throw PlatformException( + code: pigeonVar_replyList[0]! as String, + message: pigeonVar_replyList[1] as String?, + details: pigeonVar_replyList[2], + ); + } else { + return pigeonVar_replyList[0]; + } + } + @override CaptureRequestOptions pigeon_copy() { return CaptureRequestOptions.pigeon_detached( pigeon_binaryMessenger: pigeon_binaryMessenger, pigeon_instanceManager: pigeon_instanceManager, - options: options, ); } } diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 15c0b5e5c2b..9edcfe68d0c 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -1129,10 +1129,11 @@ abstract class CaptureRequestKey {} ), ) abstract class CaptureRequestOptions { - CaptureRequestOptions(); + CaptureRequestOptions(Map options); - /// Capture request option with specific `CaptureRequest.Key` setting. - late final Map options; + /// Returns a value for the given CaptureRequestKey or null if it hasn't been + /// set. + Object? getCaptureRequestOption(CaptureRequestKey key); } /// An class that provides ability to interoperate with the diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 327349d45e2..21811010c97 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -33,11 +33,12 @@ dev_dependencies: sdk: flutter leak_tracker_flutter_testing: any mockito: ^5.4.4 - pigeon: - git: - url: git@github.com:bparrishMines/packages.git - ref: pigeon_helper - path: packages/pigeon + pigeon: ^24.1.1 +# pigeon: +# git: +# url: git@github.com:bparrishMines/packages.git +# ref: pigeon_helper +# path: packages/pigeon topics: - camera diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index b78bb397417..dbb445b3b12 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -32,6 +32,7 @@ import 'android_camera_camerax_test.mocks.dart'; MockSpec(), MockSpec(), MockSpec(), + MockSpec(), MockSpec(), MockSpec(), MockSpec(), @@ -596,10 +597,14 @@ void main() { // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { - return CaptureRequestOptions.pigeon_detached( - options: options, - pigeon_instanceManager: testInstanceManager, - ); + final MockCaptureRequestOptions mockCaptureRequestOptions = + MockCaptureRequestOptions(); + options.forEach((CaptureRequestKey key, Object? value) { + when(mockCaptureRequestOptions.getCaptureRequestOption(key)).thenAnswer( + (_) async => value, + ); + }); + return mockCaptureRequestOptions; }; final CaptureRequestKey controlAeLock = CaptureRequestKey.pigeon_detached( pigeon_instanceManager: testInstanceManager, @@ -4075,11 +4080,17 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) => - CaptureRequestOptions.pigeon_detached( - options: options, - pigeon_instanceManager: testInstanceManager, - ), + }) { + final MockCaptureRequestOptions mockCaptureRequestOptions = + MockCaptureRequestOptions(); + options.forEach((CaptureRequestKey key, Object? value) { + when(mockCaptureRequestOptions.getCaptureRequestOption(key)) + .thenAnswer( + (_) async => value, + ); + }); + return mockCaptureRequestOptions; + }, controlAELockCaptureRequest: () => controlAELockKey, ); @@ -4090,10 +4101,11 @@ void main() { verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); CaptureRequestOptions capturedCaptureRequestOptions = verificationResult.captured.single as CaptureRequestOptions; - Map requestedOptions = - capturedCaptureRequestOptions.options; - expect(requestedOptions.length, equals(1)); - expect(requestedOptions, containsPair(controlAELockKey, false)); + expect( + await capturedCaptureRequestOptions + .getCaptureRequestOption(controlAELockKey), + isFalse, + ); // Test locked mode. clearInteractions(mockCamera2CameraControl); @@ -4103,9 +4115,11 @@ void main() { verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); capturedCaptureRequestOptions = verificationResult.captured.single as CaptureRequestOptions; - requestedOptions = capturedCaptureRequestOptions.options; - expect(requestedOptions.length, equals(1)); - expect(requestedOptions, containsPair(controlAELockKey, true)); + expect( + await capturedCaptureRequestOptions + .getCaptureRequestOption(controlAELockKey), + isTrue, + ); }); test( @@ -5418,8 +5432,9 @@ void main() { final CaptureRequestOptions capturedCaptureRequestOptions = verificationResult.captured.single as CaptureRequestOptions; expect( - capturedCaptureRequestOptions.options, - containsPair(camera.proxy.controlAELockCaptureRequest(), false), + await capturedCaptureRequestOptions + .getCaptureRequestOption(camera.proxy.controlAELockCaptureRequest()), + isFalse, ); }); diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index ca439ff31a2..c466c16c8e9 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -31,340 +31,180 @@ import 'package:mockito/src/dummies.dart' as _i6; class _FakePigeonInstanceManager_0 extends _i1.SmartFake implements _i2.PigeonInstanceManager { - _FakePigeonInstanceManager_0( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakePigeonInstanceManager_0(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeAnalyzer_1 extends _i1.SmartFake implements _i2.Analyzer { - _FakeAnalyzer_1( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeAnalyzer_1(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeAspectRatioStrategy_2 extends _i1.SmartFake implements _i2.AspectRatioStrategy { - _FakeAspectRatioStrategy_2( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeAspectRatioStrategy_2(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCameraControl_3 extends _i1.SmartFake implements _i2.CameraControl { - _FakeCameraControl_3( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCameraControl_3(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCameraInfo_4 extends _i1.SmartFake implements _i2.CameraInfo { - _FakeCameraInfo_4( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCameraInfo_4(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCamera_5 extends _i1.SmartFake implements _i2.Camera { - _FakeCamera_5( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCamera_5(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeExposureState_6 extends _i1.SmartFake implements _i2.ExposureState { - _FakeExposureState_6( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeExposureState_6(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeLiveData_7 extends _i1.SmartFake implements _i3.LiveData { - _FakeLiveData_7( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeLiveData_7(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCameraInfo_8 extends _i1.SmartFake implements _i3.CameraInfo { - _FakeCameraInfo_8( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCameraInfo_8(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCameraCharacteristicsKey_9 extends _i1.SmartFake implements _i2.CameraCharacteristicsKey { - _FakeCameraCharacteristicsKey_9( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCameraCharacteristicsKey_9(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCameraSize_10 extends _i1.SmartFake implements _i2.CameraSize { - _FakeCameraSize_10( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCameraSize_10(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCamera2CameraControl_11 extends _i1.SmartFake implements _i2.Camera2CameraControl { - _FakeCamera2CameraControl_11( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCamera2CameraControl_11(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCamera2CameraInfo_12 extends _i1.SmartFake implements _i2.Camera2CameraInfo { - _FakeCamera2CameraInfo_12( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCamera2CameraInfo_12(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCameraImageFormat_13 extends _i1.SmartFake implements _i4.CameraImageFormat { - _FakeCameraImageFormat_13( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCameraImageFormat_13(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCameraSelector_14 extends _i1.SmartFake implements _i2.CameraSelector { - _FakeCameraSelector_14( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCameraSelector_14(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCameraIntegerRange_15 extends _i1.SmartFake implements _i2.CameraIntegerRange { - _FakeCameraIntegerRange_15( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCameraIntegerRange_15(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeObserver_16 extends _i1.SmartFake implements _i3.Observer { - _FakeObserver_16( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeObserver_16(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeSystemServicesManager_17 extends _i1.SmartFake implements _i2.SystemServicesManager { - _FakeSystemServicesManager_17( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeSystemServicesManager_17(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeDeviceOrientationManager_18 extends _i1.SmartFake implements _i2.DeviceOrientationManager { - _FakeDeviceOrientationManager_18( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeDeviceOrientationManager_18(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakePreview_19 extends _i1.SmartFake implements _i2.Preview { - _FakePreview_19( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakePreview_19(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeVideoCapture_20 extends _i1.SmartFake implements _i2.VideoCapture { - _FakeVideoCapture_20( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeVideoCapture_20(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeRecorder_21 extends _i1.SmartFake implements _i2.Recorder { - _FakeRecorder_21( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeRecorder_21(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeVideoRecordEventListener_22 extends _i1.SmartFake implements _i2.VideoRecordEventListener { - _FakeVideoRecordEventListener_22( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeVideoRecordEventListener_22(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeImageCapture_23 extends _i1.SmartFake implements _i2.ImageCapture { - _FakeImageCapture_23( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeImageCapture_23(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeResolutionStrategy_24 extends _i1.SmartFake implements _i2.ResolutionStrategy { - _FakeResolutionStrategy_24( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeResolutionStrategy_24(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeResolutionSelector_25 extends _i1.SmartFake implements _i2.ResolutionSelector { - _FakeResolutionSelector_25( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeResolutionSelector_25(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeImageAnalysis_26 extends _i1.SmartFake implements _i2.ImageAnalysis { - _FakeImageAnalysis_26( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeImageAnalysis_26(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeQualitySelector_27 extends _i1.SmartFake implements _i2.QualitySelector { - _FakeQualitySelector_27( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeQualitySelector_27(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeFallbackStrategy_28 extends _i1.SmartFake implements _i2.FallbackStrategy { - _FakeFallbackStrategy_28( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeFallbackStrategy_28(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeFocusMeteringActionBuilder_29 extends _i1.SmartFake implements _i2.FocusMeteringActionBuilder { - _FakeFocusMeteringActionBuilder_29( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeFocusMeteringActionBuilder_29(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCaptureRequestOptions_30 extends _i1.SmartFake implements _i2.CaptureRequestOptions { - _FakeCaptureRequestOptions_30( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCaptureRequestOptions_30(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeResolutionFilter_31 extends _i1.SmartFake implements _i2.ResolutionFilter { - _FakeResolutionFilter_31( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeResolutionFilter_31(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake @@ -372,125 +212,67 @@ class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake _FakeDisplayOrientedMeteringPointFactory_32( Object parent, Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + ) : super(parent, parentInvocation); } class _FakeProcessCameraProvider_33 extends _i1.SmartFake implements _i2.ProcessCameraProvider { - _FakeProcessCameraProvider_33( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeProcessCameraProvider_33(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeCaptureRequestKey_34 extends _i1.SmartFake implements _i2.CaptureRequestKey { - _FakeCaptureRequestKey_34( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeCaptureRequestKey_34(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeMeteringPoint_35 extends _i1.SmartFake implements _i2.MeteringPoint { - _FakeMeteringPoint_35( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeMeteringPoint_35(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeFocusMeteringAction_36 extends _i1.SmartFake implements _i2.FocusMeteringAction { - _FakeFocusMeteringAction_36( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeFocusMeteringAction_36(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeFocusMeteringResult_37 extends _i1.SmartFake implements _i2.FocusMeteringResult { - _FakeFocusMeteringResult_37( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeFocusMeteringResult_37(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeImageProxy_38 extends _i1.SmartFake implements _i2.ImageProxy { - _FakeImageProxy_38( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeImageProxy_38(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeRecording_39 extends _i1.SmartFake implements _i2.Recording { - _FakeRecording_39( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeRecording_39(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakePendingRecording_40 extends _i1.SmartFake implements _i2.PendingRecording { - _FakePendingRecording_40( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakePendingRecording_40(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakePlaneProxy_41 extends _i1.SmartFake implements _i2.PlaneProxy { - _FakePlaneProxy_41( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakePlaneProxy_41(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeVideoOutput_42 extends _i1.SmartFake implements _i2.VideoOutput { - _FakeVideoOutput_42( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeVideoOutput_42(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } class _FakeZoomState_43 extends _i1.SmartFake implements _i2.ZoomState { - _FakeZoomState_43( - Object parent, - Invocation parentInvocation, - ) : super( - parent, - parentInvocation, - ); + _FakeZoomState_43(Object parent, Invocation parentInvocation) + : super(parent, parentInvocation); } /// A class which mocks [Analyzer]. @@ -498,58 +280,45 @@ class _FakeZoomState_43 extends _i1.SmartFake implements _i2.ZoomState { /// See the documentation for Mockito's code generation for more information. class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { @override - void Function( - _i2.Analyzer, - _i2.ImageProxy, - ) get analyze => (super.noSuchMethod( - Invocation.getter(#analyze), - returnValue: ( - _i2.Analyzer pigeon_instance, - _i2.ImageProxy image, - ) {}, - returnValueForMissingStub: ( - _i2.Analyzer pigeon_instance, - _i2.ImageProxy image, - ) {}, - ) as void Function( - _i2.Analyzer, - _i2.ImageProxy, - )); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.Analyzer pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeAnalyzer_1( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeAnalyzer_1( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.Analyzer); + void Function(_i2.Analyzer, _i2.ImageProxy) get analyze => + (super.noSuchMethod( + Invocation.getter(#analyze), + returnValue: + (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + returnValueForMissingStub: + (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + ) + as void Function(_i2.Analyzer, _i2.ImageProxy)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.Analyzer pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Analyzer); } /// A class which mocks [AspectRatioStrategy]. @@ -558,65 +327,61 @@ class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { class MockAspectRatioStrategy extends _i1.Mock implements _i2.AspectRatioStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method( - #getFallbackRule, - [], - ), - returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto), - returnValueForMissingStub: - _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto), - ) as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); - - @override - _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => (super.noSuchMethod( - Invocation.method( - #getPreferredAspectRatio, - [], - ), - returnValue: - _i5.Future<_i2.AspectRatio>.value(_i2.AspectRatio.ratio16To9), - returnValueForMissingStub: - _i5.Future<_i2.AspectRatio>.value(_i2.AspectRatio.ratio16To9), - ) as _i5.Future<_i2.AspectRatio>); - - @override - _i2.AspectRatioStrategy pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeAspectRatioStrategy_2( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeAspectRatioStrategy_2( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.AspectRatioStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + returnValueForMissingStub: + _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + ) + as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); + + @override + _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => + (super.noSuchMethod( + Invocation.method(#getPreferredAspectRatio, []), + returnValue: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + returnValueForMissingStub: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + ) + as _i5.Future<_i2.AspectRatio>); + + @override + _i2.AspectRatioStrategy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.AspectRatioStrategy); } /// A class which mocks [Camera]. @@ -624,75 +389,62 @@ class MockAspectRatioStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera extends _i1.Mock implements _i2.Camera { @override - _i2.CameraControl get cameraControl => (super.noSuchMethod( - Invocation.getter(#cameraControl), - returnValue: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - ) as _i2.CameraControl); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.CameraInfo> getCameraInfo() => (super.noSuchMethod( - Invocation.method( - #getCameraInfo, - [], - ), - returnValue: _i5.Future<_i2.CameraInfo>.value(_FakeCameraInfo_4( - this, - Invocation.method( - #getCameraInfo, - [], - ), - )), - returnValueForMissingStub: - _i5.Future<_i2.CameraInfo>.value(_FakeCameraInfo_4( - this, - Invocation.method( - #getCameraInfo, - [], - ), - )), - ) as _i5.Future<_i2.CameraInfo>); - - @override - _i2.Camera pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeCamera_5( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeCamera_5( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.Camera); + _i2.CameraControl get cameraControl => + (super.noSuchMethod( + Invocation.getter(#cameraControl), + returnValue: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + ) + as _i2.CameraControl); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.CameraInfo> getCameraInfo() => + (super.noSuchMethod( + Invocation.method(#getCameraInfo, []), + returnValue: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + ) + as _i5.Future<_i2.CameraInfo>); + + @override + _i2.Camera pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Camera); } /// A class which mocks [CameraInfo]. @@ -700,110 +452,98 @@ class MockCamera extends _i1.Mock implements _i2.Camera { /// See the documentation for Mockito's code generation for more information. class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { @override - int get sensorRotationDegrees => (super.noSuchMethod( - Invocation.getter(#sensorRotationDegrees), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - _i2.ExposureState get exposureState => (super.noSuchMethod( - Invocation.getter(#exposureState), - returnValue: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - ) as _i2.ExposureState); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + int get sensorRotationDegrees => + (super.noSuchMethod( + Invocation.getter(#sensorRotationDegrees), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + _i2.ExposureState get exposureState => + (super.noSuchMethod( + Invocation.getter(#exposureState), + returnValue: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + ) + as _i2.ExposureState); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => (super.noSuchMethod( - Invocation.method( - #getCameraState, - [], - ), - returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method( - #getCameraState, - [], - ), - )), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method( - #getCameraState, - [], - ), - )), - ) as _i5.Future<_i3.LiveData<_i2.CameraState>>); - - @override - _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => (super.noSuchMethod( - Invocation.method( - #getZoomState, - [], - ), - returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method( - #getZoomState, - [], - ), - )), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method( - #getZoomState, - [], - ), - )), - ) as _i5.Future<_i3.LiveData<_i2.ZoomState>>); - - @override - _i3.CameraInfo pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeCameraInfo_8( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeCameraInfo_8( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i3.CameraInfo); + Invocation.method(#getCameraState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + ) + as _i5.Future<_i3.LiveData<_i2.CameraState>>); + + @override + _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => + (super.noSuchMethod( + Invocation.method(#getZoomState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + ) + as _i5.Future<_i3.LiveData<_i2.ZoomState>>); + + @override + _i3.CameraInfo pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i3.CameraInfo); } /// A class which mocks [CameraCharacteristicsKey]. @@ -812,39 +552,34 @@ class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { class MockCameraCharacteristicsKey extends _i1.Mock implements _i2.CameraCharacteristicsKey { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.CameraCharacteristicsKey pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.CameraCharacteristicsKey); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.CameraCharacteristicsKey pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.CameraCharacteristicsKey); } /// A class which mocks [CameraControl]. @@ -852,92 +587,82 @@ class MockCameraCharacteristicsKey extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCameraControl extends _i1.Mock implements _i2.CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future enableTorch(bool? torch) => (super.noSuchMethod( - Invocation.method( - #enableTorch, - [torch], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future setZoomRatio(double? ratio) => (super.noSuchMethod( - Invocation.method( - #setZoomRatio, - [ratio], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future enableTorch(bool? torch) => + (super.noSuchMethod( + Invocation.method(#enableTorch, [torch]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future setZoomRatio(double? ratio) => + (super.noSuchMethod( + Invocation.method(#setZoomRatio, [ratio]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override _i5.Future<_i2.FocusMeteringResult?> startFocusAndMetering( - _i2.FocusMeteringAction? action) => + _i2.FocusMeteringAction? action, + ) => (super.noSuchMethod( - Invocation.method( - #startFocusAndMetering, - [action], - ), - returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), - returnValueForMissingStub: _i5.Future<_i2.FocusMeteringResult?>.value(), - ) as _i5.Future<_i2.FocusMeteringResult?>); + Invocation.method(#startFocusAndMetering, [action]), + returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), + returnValueForMissingStub: + _i5.Future<_i2.FocusMeteringResult?>.value(), + ) + as _i5.Future<_i2.FocusMeteringResult?>); @override - _i5.Future cancelFocusAndMetering() => (super.noSuchMethod( - Invocation.method( - #cancelFocusAndMetering, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future cancelFocusAndMetering() => + (super.noSuchMethod( + Invocation.method(#cancelFocusAndMetering, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override _i5.Future setExposureCompensationIndex(int? index) => (super.noSuchMethod( - Invocation.method( - #setExposureCompensationIndex, - [index], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.CameraControl pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeCameraControl_3( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.CameraControl); + Invocation.method(#setExposureCompensationIndex, [index]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.CameraControl pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.CameraControl); } /// A class which mocks [CameraSize]. @@ -945,53 +670,52 @@ class MockCameraControl extends _i1.Mock implements _i2.CameraControl { /// See the documentation for Mockito's code generation for more information. class MockCameraSize extends _i1.Mock implements _i2.CameraSize { @override - int get width => (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - int get height => (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.CameraSize pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeCameraSize_10( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeCameraSize_10( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.CameraSize); + int get width => + (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + int get height => + (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.CameraSize pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.CameraSize); } /// A class which mocks [Camera2CameraControl]. @@ -1000,51 +724,45 @@ class MockCameraSize extends _i1.Mock implements _i2.CameraSize { class MockCamera2CameraControl extends _i1.Mock implements _i2.Camera2CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future addCaptureRequestOptions( - _i2.CaptureRequestOptions? bundle) => - (super.noSuchMethod( - Invocation.method( - #addCaptureRequestOptions, - [bundle], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.Camera2CameraControl pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeCamera2CameraControl_11( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeCamera2CameraControl_11( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.Camera2CameraControl); + _i2.CaptureRequestOptions? bundle, + ) => + (super.noSuchMethod( + Invocation.method(#addCaptureRequestOptions, [bundle]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.Camera2CameraControl pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Camera2CameraControl); } /// A class which mocks [Camera2CameraInfo]. @@ -1052,74 +770,58 @@ class MockCamera2CameraControl extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future getCameraId() => (super.noSuchMethod( - Invocation.method( - #getCameraId, - [], - ), - returnValue: _i5.Future.value(_i6.dummyValue( - this, - Invocation.method( - #getCameraId, - [], - ), - )), - returnValueForMissingStub: - _i5.Future.value(_i6.dummyValue( - this, - Invocation.method( - #getCameraId, - [], - ), - )), - ) as _i5.Future); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future getCameraId() => + (super.noSuchMethod( + Invocation.method(#getCameraId, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + ) + as _i5.Future); @override _i5.Future getCameraCharacteristic( - _i2.CameraCharacteristicsKey? key) => - (super.noSuchMethod( - Invocation.method( - #getCameraCharacteristic, - [key], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.Camera2CameraInfo pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeCamera2CameraInfo_12( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeCamera2CameraInfo_12( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.Camera2CameraInfo); + _i2.CameraCharacteristicsKey? key, + ) => + (super.noSuchMethod( + Invocation.method(#getCameraCharacteristic, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.Camera2CameraInfo pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Camera2CameraInfo); } /// A class which mocks [CameraImageData]. @@ -1128,90 +830,94 @@ class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { // ignore: must_be_immutable class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { @override - _i4.CameraImageFormat get format => (super.noSuchMethod( - Invocation.getter(#format), - returnValue: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - returnValueForMissingStub: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - ) as _i4.CameraImageFormat); - - @override - int get height => (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - int get width => (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - List<_i4.CameraImagePlane> get planes => (super.noSuchMethod( - Invocation.getter(#planes), - returnValue: <_i4.CameraImagePlane>[], - returnValueForMissingStub: <_i4.CameraImagePlane>[], - ) as List<_i4.CameraImagePlane>); -} + _i4.CameraImageFormat get format => + (super.noSuchMethod( + Invocation.getter(#format), + returnValue: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + returnValueForMissingStub: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + ) + as _i4.CameraImageFormat); -/// A class which mocks [CameraSelector]. + @override + int get height => + (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + int get width => + (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + List<_i4.CameraImagePlane> get planes => + (super.noSuchMethod( + Invocation.getter(#planes), + returnValue: <_i4.CameraImagePlane>[], + returnValueForMissingStub: <_i4.CameraImagePlane>[], + ) + as List<_i4.CameraImagePlane>); +} + +/// A class which mocks [CameraSelector]. /// /// See the documentation for Mockito's code generation for more information. class MockCameraSelector extends _i1.Mock implements _i2.CameraSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future> filter(List<_i2.CameraInfo>? cameraInfos) => (super.noSuchMethod( - Invocation.method( - #filter, - [cameraInfos], - ), - returnValue: _i5.Future>.value(<_i2.CameraInfo>[]), - returnValueForMissingStub: - _i5.Future>.value(<_i2.CameraInfo>[]), - ) as _i5.Future>); - - @override - _i2.CameraSelector pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeCameraSelector_14( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeCameraSelector_14( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.CameraSelector); + Invocation.method(#filter, [cameraInfos]), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) + as _i5.Future>); + + @override + _i2.CameraSelector pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.CameraSelector); } /// A class which mocks [CameraXProxy]. @@ -1222,20 +928,25 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { void Function({ _i8.BinaryMessenger? pigeonBinaryMessenger, _i2.PigeonInstanceManager? pigeonInstanceManager, - }) get setUpGenericsProxy => (super.noSuchMethod( - Invocation.getter(#setUpGenericsProxy), - returnValue: ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - ) as void Function({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - })); + }) + get setUpGenericsProxy => + (super.noSuchMethod( + Invocation.getter(#setUpGenericsProxy), + returnValue: + ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + ) + as void Function({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + })); @override _i2.CameraSize Function({ @@ -1243,34 +954,33 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newCameraSize => (super.noSuchMethod( - Invocation.getter(#newCameraSize), - returnValue: ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10( - this, - Invocation.getter(#newCameraSize), - ), - returnValueForMissingStub: ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10( - this, - Invocation.getter(#newCameraSize), - ), - ) as _i2.CameraSize Function({ - required int height, - required int width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newCameraSize => + (super.noSuchMethod( + Invocation.getter(#newCameraSize), + returnValue: + ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + returnValueForMissingStub: + ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + ) + as _i2.CameraSize Function({ + required int height, + required int width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraIntegerRange Function({ @@ -1278,194 +988,176 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int upper, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newCameraIntegerRange => (super.noSuchMethod( - Invocation.getter(#newCameraIntegerRange), - returnValue: ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => - _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - returnValueForMissingStub: ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => - _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - ) as _i2.CameraIntegerRange Function({ - required int lower, - required int upper, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newCameraIntegerRange => + (super.noSuchMethod( + Invocation.getter(#newCameraIntegerRange), + returnValue: + ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + returnValueForMissingStub: + ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + ) + as _i2.CameraIntegerRange Function({ + required int lower, + required int upper, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i3.Observer Function({ - required void Function( - _i3.Observer, - T, - ) onChanged, + required void Function(_i3.Observer, T) onChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newObserver => (super.noSuchMethod( - Invocation.getter(#newObserver), - returnValue: ({ - required void Function( - _i3.Observer, - T, - ) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16( - this, - Invocation.getter(#newObserver), - ), - returnValueForMissingStub: ({ - required void Function( - _i3.Observer, - T, - ) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16( - this, - Invocation.getter(#newObserver), - ), - ) as _i3.Observer Function({ - required void Function( - _i3.Observer, - T, - ) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newObserver => + (super.noSuchMethod( + Invocation.getter(#newObserver), + returnValue: + ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + returnValueForMissingStub: + ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + ) + as _i3.Observer Function({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.LensFacing? requireLensFacing, - }) get newCameraSelector => (super.noSuchMethod( - Invocation.getter(#newCameraSelector), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => - _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => - _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - ) as _i2.CameraSelector Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - })); + }) + get newCameraSelector => + (super.noSuchMethod( + Invocation.getter(#newCameraSelector), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + ) + as _i2.CameraSelector Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + })); @override _i2.SystemServicesManager Function({ - required void Function( - _i2.SystemServicesManager, - String, - ) onCameraError, + required void Function(_i2.SystemServicesManager, String) onCameraError, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newSystemServicesManager => (super.noSuchMethod( - Invocation.getter(#newSystemServicesManager), - returnValue: ({ - required void Function( - _i2.SystemServicesManager, - String, - ) onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - returnValueForMissingStub: ({ - required void Function( - _i2.SystemServicesManager, - String, - ) onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - ) as _i2.SystemServicesManager Function({ - required void Function( - _i2.SystemServicesManager, - String, - ) onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newSystemServicesManager => + (super.noSuchMethod( + Invocation.getter(#newSystemServicesManager), + returnValue: + ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + returnValueForMissingStub: + ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + ) + as _i2.SystemServicesManager Function({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DeviceOrientationManager Function({ - required void Function( - _i2.DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newDeviceOrientationManager => (super.noSuchMethod( - Invocation.getter(#newDeviceOrientationManager), - returnValue: ({ - required void Function( - _i2.DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - returnValueForMissingStub: ({ - required void Function( - _i2.DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - ) as _i2.DeviceOrientationManager Function({ - required void Function( - _i2.DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newDeviceOrientationManager => + (super.noSuchMethod( + Invocation.getter(#newDeviceOrientationManager), + returnValue: + ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + returnValueForMissingStub: + ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + ) + as _i2.DeviceOrientationManager Function({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Preview Function({ @@ -1473,65 +1165,65 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) get newPreview => (super.noSuchMethod( - Invocation.getter(#newPreview), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakePreview_19( - this, - Invocation.getter(#newPreview), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakePreview_19( - this, - Invocation.getter(#newPreview), - ), - ) as _i2.Preview Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) + get newPreview => + (super.noSuchMethod( + Invocation.getter(#newPreview), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakePreview_19(this, Invocation.getter(#newPreview)), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakePreview_19(this, Invocation.getter(#newPreview)), + ) + as _i2.Preview Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.VideoCapture Function({ required _i2.VideoOutput videoOutput, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get withOutputVideoCapture => (super.noSuchMethod( - Invocation.getter(#withOutputVideoCapture), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => - _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => - _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - ) as _i2.VideoCapture Function({ - required _i2.VideoOutput videoOutput, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get withOutputVideoCapture => + (super.noSuchMethod( + Invocation.getter(#withOutputVideoCapture), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + ) + as _i2.VideoCapture Function({ + required _i2.VideoOutput videoOutput, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Recorder Function({ @@ -1540,80 +1232,81 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.QualitySelector? qualitySelector, int? targetVideoEncodingBitRate, - }) get newRecorder => (super.noSuchMethod( - Invocation.getter(#newRecorder), - returnValue: ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => - _FakeRecorder_21( - this, - Invocation.getter(#newRecorder), - ), - returnValueForMissingStub: ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => - _FakeRecorder_21( - this, - Invocation.getter(#newRecorder), - ), - ) as _i2.Recorder Function({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - })); + }) + get newRecorder => + (super.noSuchMethod( + Invocation.getter(#newRecorder), + returnValue: + ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + returnValueForMissingStub: + ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + ) + as _i2.Recorder Function({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + })); @override _i2.VideoRecordEventListener Function({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) onEvent, + required void Function(_i2.VideoRecordEventListener, _i2.VideoRecordEvent) + onEvent, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newVideoRecordEventListener => (super.noSuchMethod( - Invocation.getter(#newVideoRecordEventListener), - returnValue: ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - returnValueForMissingStub: ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - ) as _i2.VideoRecordEventListener Function({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newVideoRecordEventListener => + (super.noSuchMethod( + Invocation.getter(#newVideoRecordEventListener), + returnValue: + ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) + onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + returnValueForMissingStub: + ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) + onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + ) + as _i2.VideoRecordEventListener Function({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) + onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageCapture Function({ @@ -1622,37 +1315,40 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) get newImageCapture => (super.noSuchMethod( - Invocation.getter(#newImageCapture), - returnValue: ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - returnValueForMissingStub: ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - ) as _i2.ImageCapture Function({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) + get newImageCapture => + (super.noSuchMethod( + Invocation.getter(#newImageCapture), + returnValue: + ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + returnValueForMissingStub: + ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + ) + as _i2.ImageCapture Function({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.ResolutionStrategy Function({ @@ -1660,34 +1356,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.ResolutionStrategyFallbackRule fallbackRule, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newResolutionStrategy => (super.noSuchMethod( - Invocation.getter(#newResolutionStrategy), - returnValue: ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - returnValueForMissingStub: ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - ) as _i2.ResolutionStrategy Function({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newResolutionStrategy => + (super.noSuchMethod( + Invocation.getter(#newResolutionStrategy), + returnValue: + ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + returnValueForMissingStub: + ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + ) + as _i2.ResolutionStrategy Function({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ResolutionSelector Function({ @@ -1696,37 +1395,40 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionFilter? resolutionFilter, _i2.ResolutionStrategy? resolutionStrategy, - }) get newResolutionSelector => (super.noSuchMethod( - Invocation.getter(#newResolutionSelector), - returnValue: ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => - _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - returnValueForMissingStub: ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => - _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - ) as _i2.ResolutionSelector Function({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - })); + }) + get newResolutionSelector => + (super.noSuchMethod( + Invocation.getter(#newResolutionSelector), + returnValue: + ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + returnValueForMissingStub: + ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + ) + as _i2.ResolutionSelector Function({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + })); @override _i2.AspectRatioStrategy Function({ @@ -1734,34 +1436,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.AspectRatio preferredAspectRatio, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newAspectRatioStrategy => (super.noSuchMethod( - Invocation.getter(#newAspectRatioStrategy), - returnValue: ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => - _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - returnValueForMissingStub: ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => - _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - ) as _i2.AspectRatioStrategy Function({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - required _i2.AspectRatio preferredAspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newAspectRatioStrategy => + (super.noSuchMethod( + Invocation.getter(#newAspectRatioStrategy), + returnValue: + ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + returnValueForMissingStub: + ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + ) + as _i2.AspectRatioStrategy Function({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + required _i2.AspectRatio preferredAspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageAnalysis Function({ @@ -1769,77 +1474,65 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) get newImageAnalysis => (super.noSuchMethod( - Invocation.getter(#newImageAnalysis), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - ) as _i2.ImageAnalysis Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) + get newImageAnalysis => + (super.noSuchMethod( + Invocation.getter(#newImageAnalysis), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + ) + as _i2.ImageAnalysis Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.Analyzer Function({ - required void Function( - _i2.Analyzer, - _i2.ImageProxy, - ) analyze, + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newAnalyzer => (super.noSuchMethod( - Invocation.getter(#newAnalyzer), - returnValue: ({ - required void Function( - _i2.Analyzer, - _i2.ImageProxy, - ) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeAnalyzer_1( - this, - Invocation.getter(#newAnalyzer), - ), - returnValueForMissingStub: ({ - required void Function( - _i2.Analyzer, - _i2.ImageProxy, - ) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeAnalyzer_1( - this, - Invocation.getter(#newAnalyzer), - ), - ) as _i2.Analyzer Function({ - required void Function( - _i2.Analyzer, - _i2.ImageProxy, - ) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newAnalyzer => + (super.noSuchMethod( + Invocation.getter(#newAnalyzer), + returnValue: + ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + returnValueForMissingStub: + ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + ) + as _i2.Analyzer Function({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1847,34 +1540,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get fromQualitySelector => (super.noSuchMethod( - Invocation.getter(#fromQualitySelector), - returnValue: ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - returnValueForMissingStub: ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - ) as _i2.QualitySelector Function({ - required _i2.VideoQuality quality, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get fromQualitySelector => + (super.noSuchMethod( + Invocation.getter(#fromQualitySelector), + returnValue: + ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + returnValueForMissingStub: + ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + ) + as _i2.QualitySelector Function({ + required _i2.VideoQuality quality, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1882,189 +1578,207 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get fromOrderedListQualitySelector => (super.noSuchMethod( - Invocation.getter(#fromOrderedListQualitySelector), - returnValue: ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => - _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - returnValueForMissingStub: ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => - _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - ) as _i2.QualitySelector Function({ - required List<_i2.VideoQuality> qualities, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get fromOrderedListQualitySelector => + (super.noSuchMethod( + Invocation.getter(#fromOrderedListQualitySelector), + returnValue: + ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + returnValueForMissingStub: + ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + ) + as _i2.QualitySelector Function({ + required List<_i2.VideoQuality> qualities, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get higherQualityOrLowerThanFallbackStrategy => (super.noSuchMethod( - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - ) as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get higherQualityOrLowerThanFallbackStrategy => + (super.noSuchMethod( + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + ) + as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get higherQualityThanFallbackStrategy => (super.noSuchMethod( - Invocation.getter(#higherQualityThanFallbackStrategy), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - ) as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get higherQualityThanFallbackStrategy => + (super.noSuchMethod( + Invocation.getter(#higherQualityThanFallbackStrategy), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + ) + as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get lowerQualityOrHigherThanFallbackStrategy => (super.noSuchMethod( - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - ) as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get lowerQualityOrHigherThanFallbackStrategy => + (super.noSuchMethod( + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + ) + as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get lowerQualityThanFallbackStrategy => (super.noSuchMethod( - Invocation.getter(#lowerQualityThanFallbackStrategy), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - ) as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get lowerQualityThanFallbackStrategy => + (super.noSuchMethod( + Invocation.getter(#lowerQualityThanFallbackStrategy), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + ) + as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newFocusMeteringActionBuilder => (super.noSuchMethod( - Invocation.getter(#newFocusMeteringActionBuilder), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => - _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => - _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - ) as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newFocusMeteringActionBuilder => + (super.noSuchMethod( + Invocation.getter(#newFocusMeteringActionBuilder), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + ) + as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ @@ -2072,204 +1786,220 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get withModeFocusMeteringActionBuilder => (super.noSuchMethod( - Invocation.getter(#withModeFocusMeteringActionBuilder), - returnValue: ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => - _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - returnValueForMissingStub: ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => - _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - ) as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringMode mode, - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); - - @override - set withModeFocusMeteringActionBuilder( - _i2.FocusMeteringActionBuilder Function({ + }) + get withModeFocusMeteringActionBuilder => + (super.noSuchMethod( + Invocation.getter(#withModeFocusMeteringActionBuilder), + returnValue: + ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + returnValueForMissingStub: + ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + ) + as _i2.FocusMeteringActionBuilder Function({ required _i2.MeteringMode mode, required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? _withModeFocusMeteringActionBuilder) => - super.noSuchMethod( - Invocation.setter( - #withModeFocusMeteringActionBuilder, - _withModeFocusMeteringActionBuilder, - ), - returnValueForMissingStub: null, - ); + })); + + @override + set withModeFocusMeteringActionBuilder( + _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringMode mode, + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })? + _withModeFocusMeteringActionBuilder, + ) => super.noSuchMethod( + Invocation.setter( + #withModeFocusMeteringActionBuilder, + _withModeFocusMeteringActionBuilder, + ), + returnValueForMissingStub: null, + ); @override _i2.CaptureRequestOptions Function({ required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newCaptureRequestOptions => (super.noSuchMethod( - Invocation.getter(#newCaptureRequestOptions), - returnValue: ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - returnValueForMissingStub: ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - ) as _i2.CaptureRequestOptions Function({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); - - @override - set newCaptureRequestOptions( - _i2.CaptureRequestOptions Function({ + }) + get newCaptureRequestOptions => + (super.noSuchMethod( + Invocation.getter(#newCaptureRequestOptions), + returnValue: + ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + returnValueForMissingStub: + ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + ) + as _i2.CaptureRequestOptions Function({ required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? _newCaptureRequestOptions) => - super.noSuchMethod( - Invocation.setter( - #newCaptureRequestOptions, - _newCaptureRequestOptions, - ), - returnValueForMissingStub: null, - ); + })); + + @override + set newCaptureRequestOptions( + _i2.CaptureRequestOptions Function({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })? + _newCaptureRequestOptions, + ) => super.noSuchMethod( + Invocation.setter(#newCaptureRequestOptions, _newCaptureRequestOptions), + returnValueForMissingStub: null, + ); @override _i2.Camera2CameraControl Function({ required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get fromCamera2CameraControl => (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraControl), - returnValue: ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - returnValueForMissingStub: ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - ) as _i2.Camera2CameraControl Function({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); - - @override - set fromCamera2CameraControl( - _i2.Camera2CameraControl Function({ + }) + get fromCamera2CameraControl => + (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraControl), + returnValue: + ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + returnValueForMissingStub: + ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + ) + as _i2.Camera2CameraControl Function({ required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? _fromCamera2CameraControl) => - super.noSuchMethod( - Invocation.setter( - #fromCamera2CameraControl, - _fromCamera2CameraControl, - ), - returnValueForMissingStub: null, - ); + })); + + @override + set fromCamera2CameraControl( + _i2.Camera2CameraControl Function({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })? + _fromCamera2CameraControl, + ) => super.noSuchMethod( + Invocation.setter(#fromCamera2CameraControl, _fromCamera2CameraControl), + returnValueForMissingStub: null, + ); @override _i2.ResolutionFilter Function({ required _i2.CameraSize preferredSize, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get createWithOnePreferredSizeResolutionFilter => (super.noSuchMethod( - Invocation.getter(#createWithOnePreferredSizeResolutionFilter), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => - _FakeResolutionFilter_31( - this, - Invocation.getter(#createWithOnePreferredSizeResolutionFilter), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => - _FakeResolutionFilter_31( - this, - Invocation.getter(#createWithOnePreferredSizeResolutionFilter), - ), - ) as _i2.ResolutionFilter Function({ - required _i2.CameraSize preferredSize, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get createWithOnePreferredSizeResolutionFilter => + (super.noSuchMethod( + Invocation.getter(#createWithOnePreferredSizeResolutionFilter), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + ) + as _i2.ResolutionFilter Function({ + required _i2.CameraSize preferredSize, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Camera2CameraInfo Function({ required _i3.CameraInfo cameraInfo, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get fromCamera2CameraInfo => (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraInfo), - returnValue: ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - returnValueForMissingStub: ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - ) as _i2.Camera2CameraInfo Function({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get fromCamera2CameraInfo => + (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraInfo), + returnValue: + ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + returnValueForMissingStub: + ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + ) + as _i2.Camera2CameraInfo Function({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DisplayOrientedMeteringPointFactory Function({ @@ -2278,83 +2008,92 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newDisplayOrientedMeteringPointFactory => (super.noSuchMethod( - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - returnValue: ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => - _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - returnValueForMissingStub: ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => - _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - ) as _i2.DisplayOrientedMeteringPointFactory Function({ - required _i3.CameraInfo cameraInfo, - required double height, - required double width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); - - @override - set newDisplayOrientedMeteringPointFactory( - _i2.DisplayOrientedMeteringPointFactory Function({ + }) + get newDisplayOrientedMeteringPointFactory => + (super.noSuchMethod( + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + returnValue: + ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + returnValueForMissingStub: + ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + ) + as _i2.DisplayOrientedMeteringPointFactory Function({ required _i3.CameraInfo cameraInfo, required double height, required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? _newDisplayOrientedMeteringPointFactory) => - super.noSuchMethod( - Invocation.setter( - #newDisplayOrientedMeteringPointFactory, - _newDisplayOrientedMeteringPointFactory, - ), - returnValueForMissingStub: null, - ); + })); + + @override + set newDisplayOrientedMeteringPointFactory( + _i2.DisplayOrientedMeteringPointFactory Function({ + required _i3.CameraInfo cameraInfo, + required double height, + required double width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })? + _newDisplayOrientedMeteringPointFactory, + ) => super.noSuchMethod( + Invocation.setter( + #newDisplayOrientedMeteringPointFactory, + _newDisplayOrientedMeteringPointFactory, + ), + returnValueForMissingStub: null, + ); @override _i5.Future<_i2.ProcessCameraProvider> Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get getInstanceProcessCameraProvider => (super.noSuchMethod( - Invocation.getter(#getInstanceProcessCameraProvider), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, - Invocation.getter(#getInstanceProcessCameraProvider), - )), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, - Invocation.getter(#getInstanceProcessCameraProvider), - )), - ) as _i5.Future<_i2.ProcessCameraProvider> Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get getInstanceProcessCameraProvider => + (super.noSuchMethod( + Invocation.getter(#getInstanceProcessCameraProvider), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, + Invocation.getter(#getInstanceProcessCameraProvider), + ), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, + Invocation.getter(#getInstanceProcessCameraProvider), + ), + ), + ) + as _i5.Future<_i2.ProcessCameraProvider> Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i5.Future<_i2.CameraSize?> Function( @@ -2362,154 +2101,248 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.VideoQuality, { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get getResolutionQualitySelector => (super.noSuchMethod( - Invocation.getter(#getResolutionQualitySelector), - returnValue: ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _i5.Future<_i2.CameraSize?>.value(), - ) as _i5.Future<_i2.CameraSize?> Function( - _i3.CameraInfo, - _i2.VideoQuality, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get getResolutionQualitySelector => + (super.noSuchMethod( + Invocation.getter(#getResolutionQualitySelector), + returnValue: + ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: + ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _i5.Future<_i2.CameraSize?>.value(), + ) + as _i5.Future<_i2.CameraSize?> Function( + _i3.CameraInfo, + _i2.VideoQuality, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function() get defaultBackCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultBackCameraCameraSelector), - returnValue: () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - returnValueForMissingStub: () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - ) as _i2.CameraSelector Function()); + Invocation.getter(#defaultBackCameraCameraSelector), + returnValue: + () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + returnValueForMissingStub: + () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + ) + as _i2.CameraSelector Function()); @override _i2.CameraSelector Function() get defaultFrontCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultFrontCameraCameraSelector), - returnValue: () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - returnValueForMissingStub: () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - ) as _i2.CameraSelector Function()); + Invocation.getter(#defaultFrontCameraCameraSelector), + returnValue: + () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + returnValueForMissingStub: + () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + ) + as _i2.CameraSelector Function()); @override _i2.ResolutionStrategy Function() - get highestAvailableStrategyResolutionStrategy => (super.noSuchMethod( + get highestAvailableStrategyResolutionStrategy => + (super.noSuchMethod( Invocation.getter(#highestAvailableStrategyResolutionStrategy), - returnValue: () => _FakeResolutionStrategy_24( - this, - Invocation.getter(#highestAvailableStrategyResolutionStrategy), + returnValue: + () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + returnValueForMissingStub: + () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + ) + as _i2.ResolutionStrategy Function()); + + @override + _i2.AspectRatioStrategy Function() + get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, ), - returnValueForMissingStub: () => _FakeResolutionStrategy_24( - this, - Invocation.getter(#highestAvailableStrategyResolutionStrategy), + returnValue: + () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: + () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) + as _i2.AspectRatioStrategy Function()); + + @override + _i2.AspectRatioStrategy Function() + get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, ), - ) as _i2.ResolutionStrategy Function()); - - @override - _i2.AspectRatioStrategy - Function() get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => (super - .noSuchMethod( - Invocation.getter(#ratio_16_9FallbackAutoStrategyAspectRatioStrategy), - returnValue: () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#ratio_16_9FallbackAutoStrategyAspectRatioStrategy), - ), - returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#ratio_16_9FallbackAutoStrategyAspectRatioStrategy), - ), - ) as _i2.AspectRatioStrategy Function()); - - @override - _i2.AspectRatioStrategy - Function() get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => (super - .noSuchMethod( - Invocation.getter(#ratio_4_3FallbackAutoStrategyAspectRatioStrategy), - returnValue: () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#ratio_4_3FallbackAutoStrategyAspectRatioStrategy), - ), - returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#ratio_4_3FallbackAutoStrategyAspectRatioStrategy), - ), - ) as _i2.AspectRatioStrategy Function()); + returnValue: + () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: + () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) + as _i2.AspectRatioStrategy Function()); @override _i2.CaptureRequestKey Function() get controlAELockCaptureRequest => (super.noSuchMethod( - Invocation.getter(#controlAELockCaptureRequest), - returnValue: () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - returnValueForMissingStub: () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - ) as _i2.CaptureRequestKey Function()); + Invocation.getter(#controlAELockCaptureRequest), + returnValue: + () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + returnValueForMissingStub: + () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + ) + as _i2.CaptureRequestKey Function()); @override set controlAELockCaptureRequest( - _i2.CaptureRequestKey Function()? _controlAELockCaptureRequest) => - super.noSuchMethod( - Invocation.setter( - #controlAELockCaptureRequest, - _controlAELockCaptureRequest, - ), - returnValueForMissingStub: null, - ); - - @override - _i2.CameraCharacteristicsKey - Function() get infoSupportedHardwareLevelCameraCharacteristics => (super - .noSuchMethod( - Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), - returnValue: () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), - ), - returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), - ), - ) as _i2.CameraCharacteristicsKey Function()); + _i2.CaptureRequestKey Function()? _controlAELockCaptureRequest, + ) => super.noSuchMethod( + Invocation.setter( + #controlAELockCaptureRequest, + _controlAELockCaptureRequest, + ), + returnValueForMissingStub: null, + ); + + @override + _i2.CameraCharacteristicsKey Function() + get infoSupportedHardwareLevelCameraCharacteristics => + (super.noSuchMethod( + Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), + returnValue: + () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + returnValueForMissingStub: + () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + ) + as _i2.CameraCharacteristicsKey Function()); @override _i2.CameraCharacteristicsKey Function() - get sensorOrientationCameraCharacteristics => (super.noSuchMethod( + get sensorOrientationCameraCharacteristics => + (super.noSuchMethod( Invocation.getter(#sensorOrientationCameraCharacteristics), - returnValue: () => _FakeCameraCharacteristicsKey_9( + returnValue: + () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + returnValueForMissingStub: + () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + ) + as _i2.CameraCharacteristicsKey Function()); +} + +/// A class which mocks [CaptureRequestOptions]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockCaptureRequestOptions extends _i1.Mock + implements _i2.CaptureRequestOptions { + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future getCaptureRequestOption(_i2.CaptureRequestKey? key) => + (super.noSuchMethod( + Invocation.method(#getCaptureRequestOption, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.CaptureRequestOptions pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCaptureRequestOptions_30( this, - Invocation.getter(#sensorOrientationCameraCharacteristics), + Invocation.method(#pigeon_copy, []), ), - returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( + returnValueForMissingStub: _FakeCaptureRequestOptions_30( this, - Invocation.getter(#sensorOrientationCameraCharacteristics), + Invocation.method(#pigeon_copy, []), ), - ) as _i2.CameraCharacteristicsKey Function()); + ) + as _i2.CaptureRequestOptions); } /// A class which mocks [DeviceOrientationManager]. @@ -2518,36 +2351,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { class MockDeviceOrientationManager extends _i1.Mock implements _i2.DeviceOrientationManager { @override - void Function( - _i2.DeviceOrientationManager, - String, - ) get onDeviceOrientationChanged => (super.noSuchMethod( - Invocation.getter(#onDeviceOrientationChanged), - returnValue: ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - returnValueForMissingStub: ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - ) as void Function( - _i2.DeviceOrientationManager, - String, - )); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + void Function(_i2.DeviceOrientationManager, String) + get onDeviceOrientationChanged => + (super.noSuchMethod( + Invocation.getter(#onDeviceOrientationChanged), + returnValue: + ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + returnValueForMissingStub: + ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + ) + as void Function(_i2.DeviceOrientationManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future startListeningForDeviceOrientationChange( @@ -2555,82 +2389,66 @@ class MockDeviceOrientationManager extends _i1.Mock int? sensorOrientation, ) => (super.noSuchMethod( - Invocation.method( - #startListeningForDeviceOrientationChange, - [ - isFrontFacing, - sensorOrientation, - ], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#startListeningForDeviceOrientationChange, [ + isFrontFacing, + sensorOrientation, + ]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override _i5.Future stopListeningForDeviceOrientationChange() => (super.noSuchMethod( - Invocation.method( - #stopListeningForDeviceOrientationChange, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future getDefaultDisplayRotation() => (super.noSuchMethod( - Invocation.method( - #getDefaultDisplayRotation, - [], - ), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) as _i5.Future); - - @override - _i5.Future getUiOrientation() => (super.noSuchMethod( - Invocation.method( - #getUiOrientation, - [], - ), - returnValue: _i5.Future.value(_i6.dummyValue( - this, - Invocation.method( - #getUiOrientation, - [], - ), - )), - returnValueForMissingStub: - _i5.Future.value(_i6.dummyValue( - this, - Invocation.method( - #getUiOrientation, - [], - ), - )), - ) as _i5.Future); - - @override - _i2.DeviceOrientationManager pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeDeviceOrientationManager_18( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeDeviceOrientationManager_18( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.DeviceOrientationManager); + Invocation.method(#stopListeningForDeviceOrientationChange, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future getDefaultDisplayRotation() => + (super.noSuchMethod( + Invocation.method(#getDefaultDisplayRotation, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) + as _i5.Future); + + @override + _i5.Future getUiOrientation() => + (super.noSuchMethod( + Invocation.method(#getUiOrientation, []), + returnValue: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getUiOrientation, []), + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getUiOrientation, []), + ), + ), + ) + as _i5.Future); + + @override + _i2.DeviceOrientationManager pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.DeviceOrientationManager); } /// A class which mocks [DisplayOrientedMeteringPointFactory]. @@ -2639,75 +2457,54 @@ class MockDeviceOrientationManager extends _i1.Mock class MockDisplayOrientedMeteringPointFactory extends _i1.Mock implements _i2.DisplayOrientedMeteringPointFactory { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.DisplayOrientedMeteringPointFactory); - - @override - _i5.Future<_i2.MeteringPoint> createPoint( - double? x, - double? y, - ) => + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: + _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.DisplayOrientedMeteringPointFactory); + + @override + _i5.Future<_i2.MeteringPoint> createPoint(double? x, double? y) => (super.noSuchMethod( - Invocation.method( - #createPoint, - [ - x, - y, - ], - ), - returnValue: _i5.Future<_i2.MeteringPoint>.value(_FakeMeteringPoint_35( - this, - Invocation.method( - #createPoint, - [ - x, - y, - ], - ), - )), - returnValueForMissingStub: - _i5.Future<_i2.MeteringPoint>.value(_FakeMeteringPoint_35( - this, - Invocation.method( - #createPoint, - [ - x, - y, - ], - ), - )), - ) as _i5.Future<_i2.MeteringPoint>); + Invocation.method(#createPoint, [x, y]), + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPoint, [x, y]), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPoint, [x, y]), + ), + ), + ) + as _i5.Future<_i2.MeteringPoint>); @override _i5.Future<_i2.MeteringPoint> createPointWithSize( @@ -2716,38 +2513,21 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock double? size, ) => (super.noSuchMethod( - Invocation.method( - #createPointWithSize, - [ - x, - y, - size, - ], - ), - returnValue: _i5.Future<_i2.MeteringPoint>.value(_FakeMeteringPoint_35( - this, - Invocation.method( - #createPointWithSize, - [ - x, - y, - size, - ], - ), - )), - returnValueForMissingStub: - _i5.Future<_i2.MeteringPoint>.value(_FakeMeteringPoint_35( - this, - Invocation.method( - #createPointWithSize, - [ - x, - y, - size, - ], - ), - )), - ) as _i5.Future<_i2.MeteringPoint>); + Invocation.method(#createPointWithSize, [x, y, size]), + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPointWithSize, [x, y, size]), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPointWithSize, [x, y, size]), + ), + ), + ) + as _i5.Future<_i2.MeteringPoint>); } /// A class which mocks [ExposureState]. @@ -2755,59 +2535,58 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockExposureState extends _i1.Mock implements _i2.ExposureState { @override - _i2.CameraIntegerRange get exposureCompensationRange => (super.noSuchMethod( - Invocation.getter(#exposureCompensationRange), - returnValue: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - returnValueForMissingStub: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - ) as _i2.CameraIntegerRange); - - @override - double get exposureCompensationStep => (super.noSuchMethod( - Invocation.getter(#exposureCompensationStep), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.ExposureState pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeExposureState_6( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.ExposureState); + _i2.CameraIntegerRange get exposureCompensationRange => + (super.noSuchMethod( + Invocation.getter(#exposureCompensationRange), + returnValue: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + returnValueForMissingStub: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + ) + as _i2.CameraIntegerRange); + + @override + double get exposureCompensationStep => + (super.noSuchMethod( + Invocation.getter(#exposureCompensationStep), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) + as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.ExposureState pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ExposureState); } /// A class which mocks [FallbackStrategy]. @@ -2815,39 +2594,34 @@ class MockExposureState extends _i1.Mock implements _i2.ExposureState { /// See the documentation for Mockito's code generation for more information. class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.FallbackStrategy pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeFallbackStrategy_28( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeFallbackStrategy_28( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.FallbackStrategy); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.FallbackStrategy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.FallbackStrategy); } /// A class which mocks [FocusMeteringActionBuilder]. @@ -2856,27 +2630,28 @@ class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { class MockFocusMeteringActionBuilder extends _i1.Mock implements _i2.FocusMeteringActionBuilder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future addPoint(_i2.MeteringPoint? point) => (super.noSuchMethod( - Invocation.method( - #addPoint, - [point], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future addPoint(_i2.MeteringPoint? point) => + (super.noSuchMethod( + Invocation.method(#addPoint, [point]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override _i5.Future addPointWithMode( @@ -2884,190 +2659,159 @@ class MockFocusMeteringActionBuilder extends _i1.Mock _i2.MeteringMode? mode, ) => (super.noSuchMethod( - Invocation.method( - #addPointWithMode, - [ - point, - mode, - ], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future disableAutoCancel() => (super.noSuchMethod( - Invocation.method( - #disableAutoCancel, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future<_i2.FocusMeteringAction> build() => (super.noSuchMethod( - Invocation.method( - #build, - [], - ), - returnValue: _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36( - this, - Invocation.method( - #build, - [], - ), - )), - returnValueForMissingStub: _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36( - this, - Invocation.method( - #build, - [], - ), - )), - ) as _i5.Future<_i2.FocusMeteringAction>); - - @override - _i2.FocusMeteringActionBuilder pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.FocusMeteringActionBuilder); -} + Invocation.method(#addPointWithMode, [point, mode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); -/// A class which mocks [FocusMeteringResult]. -/// -/// See the documentation for Mockito's code generation for more information. -class MockFocusMeteringResult extends _i1.Mock - implements _i2.FocusMeteringResult { @override - bool get isFocusSuccessful => (super.noSuchMethod( - Invocation.getter(#isFocusSuccessful), - returnValue: false, - returnValueForMissingStub: false, - ) as bool); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.FocusMeteringResult pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeFocusMeteringResult_37( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeFocusMeteringResult_37( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.FocusMeteringResult); -} + _i5.Future disableAutoCancel() => + (super.noSuchMethod( + Invocation.method(#disableAutoCancel, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future<_i2.FocusMeteringAction> build() => + (super.noSuchMethod( + Invocation.method(#build, []), + returnValue: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), + ), + returnValueForMissingStub: + _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36( + this, + Invocation.method(#build, []), + ), + ), + ) + as _i5.Future<_i2.FocusMeteringAction>); + + @override + _i2.FocusMeteringActionBuilder pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.FocusMeteringActionBuilder); +} + +/// A class which mocks [FocusMeteringResult]. +/// +/// See the documentation for Mockito's code generation for more information. +class MockFocusMeteringResult extends _i1.Mock + implements _i2.FocusMeteringResult { + @override + bool get isFocusSuccessful => + (super.noSuchMethod( + Invocation.getter(#isFocusSuccessful), + returnValue: false, + returnValueForMissingStub: false, + ) + as bool); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.FocusMeteringResult pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.FocusMeteringResult); +} /// A class which mocks [ImageAnalysis]. /// /// See the documentation for Mockito's code generation for more information. class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => (super.noSuchMethod( - Invocation.method( - #setAnalyzer, - [analyzer], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future clearAnalyzer() => (super.noSuchMethod( - Invocation.method( - #clearAnalyzer, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [rotation], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.ImageAnalysis pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeImageAnalysis_26( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeImageAnalysis_26( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.ImageAnalysis); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => + (super.noSuchMethod( + Invocation.method(#setAnalyzer, [analyzer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future clearAnalyzer() => + (super.noSuchMethod( + Invocation.method(#clearAnalyzer, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future setTargetRotation(int? rotation) => + (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.ImageAnalysis pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ImageAnalysis); } /// A class which mocks [ImageCapture]. @@ -3075,83 +2819,65 @@ class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { /// See the documentation for Mockito's code generation for more information. class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future setFlashMode(_i2.CameraXFlashMode? flashMode) => (super.noSuchMethod( - Invocation.method( - #setFlashMode, - [flashMode], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future takePicture() => (super.noSuchMethod( - Invocation.method( - #takePicture, - [], - ), - returnValue: _i5.Future.value(_i6.dummyValue( - this, - Invocation.method( - #takePicture, - [], - ), - )), - returnValueForMissingStub: - _i5.Future.value(_i6.dummyValue( - this, - Invocation.method( - #takePicture, - [], - ), - )), - ) as _i5.Future); - - @override - _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [rotation], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.ImageCapture pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeImageCapture_23( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeImageCapture_23( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.ImageCapture); + Invocation.method(#setFlashMode, [flashMode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future takePicture() => + (super.noSuchMethod( + Invocation.method(#takePicture, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + ) + as _i5.Future); + + @override + _i5.Future setTargetRotation(int? rotation) => + (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.ImageCapture pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ImageCapture); } /// A class which mocks [ImageProxy]. @@ -3159,81 +2885,83 @@ class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { /// See the documentation for Mockito's code generation for more information. class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { @override - int get format => (super.noSuchMethod( - Invocation.getter(#format), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - int get width => (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - int get height => (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future> getPlanes() => (super.noSuchMethod( - Invocation.method( - #getPlanes, - [], - ), - returnValue: _i5.Future>.value(<_i2.PlaneProxy>[]), - returnValueForMissingStub: - _i5.Future>.value(<_i2.PlaneProxy>[]), - ) as _i5.Future>); - - @override - _i5.Future close() => (super.noSuchMethod( - Invocation.method( - #close, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.ImageProxy pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeImageProxy_38( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeImageProxy_38( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.ImageProxy); + int get format => + (super.noSuchMethod( + Invocation.getter(#format), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + int get width => + (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + int get height => + (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future> getPlanes() => + (super.noSuchMethod( + Invocation.method(#getPlanes, []), + returnValue: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + ) + as _i5.Future>); + + @override + _i5.Future close() => + (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.ImageProxy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ImageProxy); } /// A class which mocks [Observer]. @@ -3241,58 +2969,44 @@ class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { /// See the documentation for Mockito's code generation for more information. class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { @override - void Function( - _i2.Observer, - Object, - ) get onChanged => (super.noSuchMethod( - Invocation.getter(#onChanged), - returnValue: ( - _i2.Observer pigeon_instance, - Object value, - ) {}, - returnValueForMissingStub: ( - _i2.Observer pigeon_instance, - Object value, - ) {}, - ) as void Function( - _i2.Observer, - Object, - )); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i3.Observer<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i3.Observer<_i2.CameraState>); + void Function(_i2.Observer, Object) get onChanged => + (super.noSuchMethod( + Invocation.getter(#onChanged), + returnValue: (_i2.Observer pigeon_instance, Object value) {}, + returnValueForMissingStub: + (_i2.Observer pigeon_instance, Object value) {}, + ) + as void Function(_i2.Observer, Object)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i3.Observer<_i2.CameraState> pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i3.Observer<_i2.CameraState>); } /// A class which mocks [PendingRecording]. @@ -3300,63 +3014,47 @@ class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { /// See the documentation for Mockito's code generation for more information. class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future<_i2.Recording> start(_i2.VideoRecordEventListener? listener) => (super.noSuchMethod( - Invocation.method( - #start, - [listener], - ), - returnValue: _i5.Future<_i2.Recording>.value(_FakeRecording_39( - this, - Invocation.method( - #start, - [listener], - ), - )), - returnValueForMissingStub: - _i5.Future<_i2.Recording>.value(_FakeRecording_39( - this, - Invocation.method( - #start, - [listener], - ), - )), - ) as _i5.Future<_i2.Recording>); - - @override - _i2.PendingRecording pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakePendingRecording_40( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakePendingRecording_40( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.PendingRecording); + Invocation.method(#start, [listener]), + returnValue: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + returnValueForMissingStub: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + ) + as _i5.Future<_i2.Recording>); + + @override + _i2.PendingRecording pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.PendingRecording); } /// A class which mocks [PlaneProxy]. @@ -3364,60 +3062,61 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { /// See the documentation for Mockito's code generation for more information. class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { @override - _i9.Uint8List get buffer => (super.noSuchMethod( - Invocation.getter(#buffer), - returnValue: _i9.Uint8List(0), - returnValueForMissingStub: _i9.Uint8List(0), - ) as _i9.Uint8List); - - @override - int get pixelStride => (super.noSuchMethod( - Invocation.getter(#pixelStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - int get rowStride => (super.noSuchMethod( - Invocation.getter(#rowStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.PlaneProxy pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakePlaneProxy_41( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakePlaneProxy_41( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.PlaneProxy); + _i9.Uint8List get buffer => + (super.noSuchMethod( + Invocation.getter(#buffer), + returnValue: _i9.Uint8List(0), + returnValueForMissingStub: _i9.Uint8List(0), + ) + as _i9.Uint8List); + + @override + int get pixelStride => + (super.noSuchMethod( + Invocation.getter(#pixelStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + int get rowStride => + (super.noSuchMethod( + Invocation.getter(#rowStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.PlaneProxy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.PlaneProxy); } /// A class which mocks [Preview]. @@ -3425,81 +3124,72 @@ class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { /// See the documentation for Mockito's code generation for more information. class MockPreview extends _i1.Mock implements _i2.Preview { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future setSurfaceProvider( - _i2.SystemServicesManager? systemServicesManager) => - (super.noSuchMethod( - Invocation.method( - #setSurfaceProvider, - [systemServicesManager], - ), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) as _i5.Future); - - @override - _i5.Future releaseSurfaceProvider() => (super.noSuchMethod( - Invocation.method( - #releaseSurfaceProvider, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => (super.noSuchMethod( - Invocation.method( - #getResolutionInfo, - [], - ), - returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), - returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), - ) as _i5.Future<_i2.ResolutionInfo?>); - - @override - _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [rotation], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.Preview pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakePreview_19( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakePreview_19( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.Preview); + _i2.SystemServicesManager? systemServicesManager, + ) => + (super.noSuchMethod( + Invocation.method(#setSurfaceProvider, [systemServicesManager]), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) + as _i5.Future); + + @override + _i5.Future releaseSurfaceProvider() => + (super.noSuchMethod( + Invocation.method(#releaseSurfaceProvider, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => + (super.noSuchMethod( + Invocation.method(#getResolutionInfo, []), + returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), + returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), + ) + as _i5.Future<_i2.ResolutionInfo?>); + + @override + _i5.Future setTargetRotation(int? rotation) => + (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.Preview pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Preview); } /// A class which mocks [ProcessCameraProvider]. @@ -3508,29 +3198,32 @@ class MockPreview extends _i1.Mock implements _i2.Preview { class MockProcessCameraProvider extends _i1.Mock implements _i2.ProcessCameraProvider { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future> getAvailableCameraInfos() => (super.noSuchMethod( - Invocation.method( - #getAvailableCameraInfos, - [], - ), - returnValue: _i5.Future>.value(<_i2.CameraInfo>[]), - returnValueForMissingStub: - _i5.Future>.value(<_i2.CameraInfo>[]), - ) as _i5.Future>); + Invocation.method(#getAvailableCameraInfos, []), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) + as _i5.Future>); @override _i5.Future<_i2.Camera> bindToLifecycle( @@ -3538,86 +3231,63 @@ class MockProcessCameraProvider extends _i1.Mock List<_i2.UseCase>? useCases, ) => (super.noSuchMethod( - Invocation.method( - #bindToLifecycle, - [ - cameraSelector, - useCases, - ], - ), - returnValue: _i5.Future<_i2.Camera>.value(_FakeCamera_5( - this, - Invocation.method( - #bindToLifecycle, - [ - cameraSelector, - useCases, - ], - ), - )), - returnValueForMissingStub: _i5.Future<_i2.Camera>.value(_FakeCamera_5( - this, - Invocation.method( - #bindToLifecycle, - [ - cameraSelector, - useCases, - ], - ), - )), - ) as _i5.Future<_i2.Camera>); - - @override - _i5.Future isBound(_i2.UseCase? useCase) => (super.noSuchMethod( - Invocation.method( - #isBound, - [useCase], - ), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) as _i5.Future); - - @override - _i5.Future unbind(List<_i2.UseCase>? useCases) => (super.noSuchMethod( - Invocation.method( - #unbind, - [useCases], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future unbindAll() => (super.noSuchMethod( - Invocation.method( - #unbindAll, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.ProcessCameraProvider pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeProcessCameraProvider_33( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeProcessCameraProvider_33( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.ProcessCameraProvider); + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + returnValue: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + ), + ), + ) + as _i5.Future<_i2.Camera>); + + @override + _i5.Future isBound(_i2.UseCase? useCase) => + (super.noSuchMethod( + Invocation.method(#isBound, [useCase]), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) + as _i5.Future); + + @override + _i5.Future unbind(List<_i2.UseCase>? useCases) => + (super.noSuchMethod( + Invocation.method(#unbind, [useCases]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future unbindAll() => + (super.noSuchMethod( + Invocation.method(#unbindAll, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.ProcessCameraProvider pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ProcessCameraProvider); } /// A class which mocks [QualitySelector]. @@ -3625,39 +3295,34 @@ class MockProcessCameraProvider extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.QualitySelector pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeQualitySelector_27( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeQualitySelector_27( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.QualitySelector); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.QualitySelector pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.QualitySelector); } /// A class which mocks [Recorder]. @@ -3665,108 +3330,90 @@ class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { /// See the documentation for Mockito's code generation for more information. class MockRecorder extends _i1.Mock implements _i2.Recorder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future getAspectRatio() => (super.noSuchMethod( - Invocation.method( - #getAspectRatio, - [], - ), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) as _i5.Future); - - @override - _i5.Future getTargetVideoEncodingBitRate() => (super.noSuchMethod( - Invocation.method( - #getTargetVideoEncodingBitRate, - [], - ), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) as _i5.Future); - - @override - _i5.Future<_i2.QualitySelector> getQualitySelector() => (super.noSuchMethod( - Invocation.method( - #getQualitySelector, - [], - ), - returnValue: - _i5.Future<_i2.QualitySelector>.value(_FakeQualitySelector_27( - this, - Invocation.method( - #getQualitySelector, - [], - ), - )), - returnValueForMissingStub: - _i5.Future<_i2.QualitySelector>.value(_FakeQualitySelector_27( - this, - Invocation.method( - #getQualitySelector, - [], - ), - )), - ) as _i5.Future<_i2.QualitySelector>); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future getAspectRatio() => + (super.noSuchMethod( + Invocation.method(#getAspectRatio, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) + as _i5.Future); + + @override + _i5.Future getTargetVideoEncodingBitRate() => + (super.noSuchMethod( + Invocation.method(#getTargetVideoEncodingBitRate, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) + as _i5.Future); + + @override + _i5.Future<_i2.QualitySelector> getQualitySelector() => + (super.noSuchMethod( + Invocation.method(#getQualitySelector, []), + returnValue: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, + Invocation.method(#getQualitySelector, []), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, + Invocation.method(#getQualitySelector, []), + ), + ), + ) + as _i5.Future<_i2.QualitySelector>); @override _i5.Future<_i2.PendingRecording> prepareRecording(String? path) => (super.noSuchMethod( - Invocation.method( - #prepareRecording, - [path], - ), - returnValue: - _i5.Future<_i2.PendingRecording>.value(_FakePendingRecording_40( - this, - Invocation.method( - #prepareRecording, - [path], - ), - )), - returnValueForMissingStub: - _i5.Future<_i2.PendingRecording>.value(_FakePendingRecording_40( - this, - Invocation.method( - #prepareRecording, - [path], - ), - )), - ) as _i5.Future<_i2.PendingRecording>); - - @override - _i2.Recorder pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeRecorder_21( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeRecorder_21( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.Recorder); + Invocation.method(#prepareRecording, [path]), + returnValue: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, + Invocation.method(#prepareRecording, [path]), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, + Invocation.method(#prepareRecording, [path]), + ), + ), + ) + as _i5.Future<_i2.PendingRecording>); + + @override + _i2.Recorder pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Recorder); } /// A class which mocks [ResolutionFilter]. @@ -3774,39 +3421,34 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { /// See the documentation for Mockito's code generation for more information. class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.ResolutionFilter pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeResolutionFilter_31( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeResolutionFilter_31( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.ResolutionFilter); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.ResolutionFilter pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ResolutionFilter); } /// A class which mocks [ResolutionSelector]. @@ -3815,64 +3457,54 @@ class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { class MockResolutionSelector extends _i1.Mock implements _i2.ResolutionSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategy> getAspectRatioStrategy() => (super.noSuchMethod( - Invocation.method( - #getAspectRatioStrategy, - [], - ), - returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, - Invocation.method( - #getAspectRatioStrategy, - [], - ), - )), - returnValueForMissingStub: _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, - Invocation.method( - #getAspectRatioStrategy, - [], - ), - )), - ) as _i5.Future<_i2.AspectRatioStrategy>); - - @override - _i2.ResolutionSelector pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeResolutionSelector_25( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeResolutionSelector_25( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.ResolutionSelector); + Invocation.method(#getAspectRatioStrategy, []), + returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, + Invocation.method(#getAspectRatioStrategy, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, + Invocation.method(#getAspectRatioStrategy, []), + ), + ), + ) + as _i5.Future<_i2.AspectRatioStrategy>); + + @override + _i2.ResolutionSelector pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ResolutionSelector); } /// A class which mocks [ResolutionStrategy]. @@ -3881,63 +3513,57 @@ class MockResolutionSelector extends _i1.Mock class MockResolutionStrategy extends _i1.Mock implements _i2.ResolutionStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.CameraSize?> getBoundSize() => (super.noSuchMethod( - Invocation.method( - #getBoundSize, - [], - ), - returnValue: _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), - ) as _i5.Future<_i2.CameraSize?>); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.CameraSize?> getBoundSize() => + (super.noSuchMethod( + Invocation.method(#getBoundSize, []), + returnValue: _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), + ) + as _i5.Future<_i2.CameraSize?>); @override _i5.Future<_i2.ResolutionStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method( - #getFallbackRule, - [], - ), - returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher), - returnValueForMissingStub: - _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher), - ) as _i5.Future<_i2.ResolutionStrategyFallbackRule>); - - @override - _i2.ResolutionStrategy pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeResolutionStrategy_24( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeResolutionStrategy_24( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.ResolutionStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + returnValueForMissingStub: + _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + ) + as _i5.Future<_i2.ResolutionStrategyFallbackRule>); + + @override + _i2.ResolutionStrategy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ResolutionStrategy); } /// A class which mocks [Recording]. @@ -3945,79 +3571,70 @@ class MockResolutionStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockRecording extends _i1.Mock implements _i2.Recording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future close() => (super.noSuchMethod( - Invocation.method( - #close, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future pause() => (super.noSuchMethod( - Invocation.method( - #pause, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future resume() => (super.noSuchMethod( - Invocation.method( - #resume, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future stop() => (super.noSuchMethod( - Invocation.method( - #stop, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.Recording pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeRecording_39( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeRecording_39( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.Recording); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future close() => + (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future pause() => + (super.noSuchMethod( + Invocation.method(#pause, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future resume() => + (super.noSuchMethod( + Invocation.method(#resume, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future stop() => + (super.noSuchMethod( + Invocation.method(#stop, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.Recording pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Recording); } /// A class which mocks [SystemServicesManager]. @@ -4026,115 +3643,88 @@ class MockRecording extends _i1.Mock implements _i2.Recording { class MockSystemServicesManager extends _i1.Mock implements _i2.SystemServicesManager { @override - void Function( - _i2.SystemServicesManager, - String, - ) get onCameraError => (super.noSuchMethod( - Invocation.getter(#onCameraError), - returnValue: ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - returnValueForMissingStub: ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - ) as void Function( - _i2.SystemServicesManager, - String, - )); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + void Function(_i2.SystemServicesManager, String) get onCameraError => + (super.noSuchMethod( + Invocation.getter(#onCameraError), + returnValue: + ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + returnValueForMissingStub: + ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + ) + as void Function(_i2.SystemServicesManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future requestCameraPermissions(bool? enableAudio) => (super.noSuchMethod( - Invocation.method( - #requestCameraPermissions, - [enableAudio], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#requestCameraPermissions, [enableAudio]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future getTempFilePath( - String? prefix, - String? suffix, - ) => + _i5.Future getTempFilePath(String? prefix, String? suffix) => (super.noSuchMethod( - Invocation.method( - #getTempFilePath, - [ - prefix, - suffix, - ], - ), - returnValue: _i5.Future.value(_i6.dummyValue( - this, - Invocation.method( - #getTempFilePath, - [ - prefix, - suffix, - ], - ), - )), - returnValueForMissingStub: - _i5.Future.value(_i6.dummyValue( - this, - Invocation.method( - #getTempFilePath, - [ - prefix, - suffix, - ], - ), - )), - ) as _i5.Future); - - @override - _i5.Future isPreviewPreTransformed() => (super.noSuchMethod( - Invocation.method( - #isPreviewPreTransformed, - [], - ), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) as _i5.Future); - - @override - _i2.SystemServicesManager pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeSystemServicesManager_17( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeSystemServicesManager_17( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.SystemServicesManager); + Invocation.method(#getTempFilePath, [prefix, suffix]), + returnValue: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getTempFilePath, [prefix, suffix]), + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getTempFilePath, [prefix, suffix]), + ), + ), + ) + as _i5.Future); + + @override + _i5.Future isPreviewPreTransformed() => + (super.noSuchMethod( + Invocation.method(#isPreviewPreTransformed, []), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) + as _i5.Future); + + @override + _i2.SystemServicesManager pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.SystemServicesManager); } /// A class which mocks [VideoCapture]. @@ -4142,72 +3732,56 @@ class MockSystemServicesManager extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.VideoOutput> getOutput() => (super.noSuchMethod( - Invocation.method( - #getOutput, - [], - ), - returnValue: _i5.Future<_i2.VideoOutput>.value(_FakeVideoOutput_42( - this, - Invocation.method( - #getOutput, - [], - ), - )), - returnValueForMissingStub: - _i5.Future<_i2.VideoOutput>.value(_FakeVideoOutput_42( - this, - Invocation.method( - #getOutput, - [], - ), - )), - ) as _i5.Future<_i2.VideoOutput>); - - @override - _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method( - #setTargetRotation, - [rotation], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.VideoCapture pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeVideoCapture_20( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeVideoCapture_20( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.VideoCapture); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.VideoOutput> getOutput() => + (super.noSuchMethod( + Invocation.method(#getOutput, []), + returnValue: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + ) + as _i5.Future<_i2.VideoOutput>); + + @override + _i5.Future setTargetRotation(int? rotation) => + (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.VideoCapture pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.VideoCapture); } /// A class which mocks [ZoomState]. @@ -4215,53 +3789,52 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { /// See the documentation for Mockito's code generation for more information. class MockZoomState extends _i1.Mock implements _i2.ZoomState { @override - double get minZoomRatio => (super.noSuchMethod( - Invocation.getter(#minZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) as double); - - @override - double get maxZoomRatio => (super.noSuchMethod( - Invocation.getter(#maxZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.ZoomState pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeZoomState_43( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - returnValueForMissingStub: _FakeZoomState_43( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i2.ZoomState); + double get minZoomRatio => + (super.noSuchMethod( + Invocation.getter(#minZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) + as double); + + @override + double get maxZoomRatio => + (super.noSuchMethod( + Invocation.getter(#maxZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) + as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.ZoomState pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ZoomState); } /// A class which mocks [LiveData]. @@ -4274,63 +3847,60 @@ class MockLiveCameraState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) as _i2.LiveDataSupportedType); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( - Invocation.method( - #observe, - [observer], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future<_i2.CameraState?> getValue() => (super.noSuchMethod( - Invocation.method( - #getValue, - [], - ), - returnValue: _i5.Future<_i2.CameraState?>.value(), - ) as _i5.Future<_i2.CameraState?>); - - @override - _i3.LiveData<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i3.LiveData<_i2.CameraState>); - - @override - _i5.Future removeObservers() => (super.noSuchMethod( - Invocation.method( - #removeObservers, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i2.LiveDataSupportedType get type => + (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) + as _i2.LiveDataSupportedType); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future observe(_i2.Observer? observer) => + (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future<_i2.CameraState?> getValue() => + (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.CameraState?>.value(), + ) + as _i5.Future<_i2.CameraState?>); + + @override + _i3.LiveData<_i2.CameraState> pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i3.LiveData<_i2.CameraState>); + + @override + _i5.Future removeObservers() => + (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); } /// A class which mocks [LiveData]. @@ -4343,61 +3913,58 @@ class MockLiveZoomState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) as _i2.LiveDataSupportedType); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( - Invocation.method( - #observe, - [observer], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future<_i2.ZoomState?> getValue() => (super.noSuchMethod( - Invocation.method( - #getValue, - [], - ), - returnValue: _i5.Future<_i2.ZoomState?>.value(), - ) as _i5.Future<_i2.ZoomState?>); - - @override - _i3.LiveData<_i2.ZoomState> pigeon_copy() => (super.noSuchMethod( - Invocation.method( - #pigeon_copy, - [], - ), - returnValue: _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method( - #pigeon_copy, - [], - ), - ), - ) as _i3.LiveData<_i2.ZoomState>); - - @override - _i5.Future removeObservers() => (super.noSuchMethod( - Invocation.method( - #removeObservers, - [], - ), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i2.LiveDataSupportedType get type => + (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) + as _i2.LiveDataSupportedType); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future observe(_i2.Observer? observer) => + (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future<_i2.ZoomState?> getValue() => + (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.ZoomState?>.value(), + ) + as _i5.Future<_i2.ZoomState?>); + + @override + _i3.LiveData<_i2.ZoomState> pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i3.LiveData<_i2.ZoomState>); + + @override + _i5.Future removeObservers() => + (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); } From b6269999db382ccdad32c52ac08e8987d6d5b64f Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 20:11:15 -0500 Subject: [PATCH 073/148] fixes --- .../java/io/flutter/plugins/camerax/CameraXLibrary.g.kt | 2 +- .../java/io/flutter/plugins/camerax/ProxyApiRegistrar.java | 6 +----- .../camera_android_camerax/example/android/app/build.gradle | 4 ++++ 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 7b4e94a6927..fd462984ff3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -50,7 +50,7 @@ class CameraXError ( val code: String, override val message: String? = null, val details: Any? = null -) : Throwable() +) : RuntimeException() /** * Maintains instances used to communicate with the corresponding objects in Dart. * diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index 515f47dd939..707abb9bd06 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -21,8 +21,6 @@ public class ProxyApiRegistrar extends CameraXLibraryPigeonProxyApiRegistrar { @NonNull private final TextureRegistry textureRegistry; - private final long defaultClearFinalizedWeakReferencesInterval; - @NonNull private Context context; @Nullable private CameraPermissionsManager.PermissionsRegistry permissionsRegistry; @@ -34,8 +32,6 @@ public ProxyApiRegistrar( super(binaryMessenger); this.context = context; this.textureRegistry = textureRegistry; - defaultClearFinalizedWeakReferencesInterval = - getInstanceManager().getClearFinalizedWeakReferencesInterval(); } // Interface for an injectable SDK version checker. @@ -115,7 +111,7 @@ TextureRegistry getTextureRegistry() { } long getDefaultClearFinalizedWeakReferencesInterval() { - return defaultClearFinalizedWeakReferencesInterval; + return 3000; } @SuppressWarnings("deprecation") diff --git a/packages/camera/camera_android_camerax/example/android/app/build.gradle b/packages/camera/camera_android_camerax/example/android/app/build.gradle index aa54980dd3b..12e848ad4bb 100644 --- a/packages/camera/camera_android_camerax/example/android/app/build.gradle +++ b/packages/camera/camera_android_camerax/example/android/app/build.gradle @@ -32,6 +32,10 @@ android { targetCompatibility JavaVersion.VERSION_11 } + kotlinOptions { + jvmTarget = '11' + } + defaultConfig { applicationId "io.flutter.plugins.cameraxexample" minSdkVersion flutter.minSdkVersion From 744138b65562c762375c06b512a2dd5cb85b20e8 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 20:14:01 -0500 Subject: [PATCH 074/148] formatting --- .../camerax/AspectRatioStrategyProxyApi.java | 27 ++++++++++--------- .../camerax/Camera2CameraInfoProxyApi.java | 3 +-- .../CaptureRequestOptionsProxyApi.java | 9 +++---- .../DeviceOrientationManagerProxyApi.java | 1 - .../FocusMeteringActionBuilderProxyApi.java | 1 - .../camerax/ImageAnalysisProxyApi.java | 3 ++- .../plugins/camerax/ImageCaptureProxyApi.java | 3 +-- .../plugins/camerax/PreviewProxyApi.java | 2 +- .../camerax/ResolutionSelectorProxyApi.java | 7 +++-- .../camerax/ResolutionStrategyProxyApi.java | 26 +++++++++--------- 10 files changed, 39 insertions(+), 43 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java index 15ec4e3fe8c..5ca154c592b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java @@ -59,12 +59,13 @@ public AspectRatioStrategy ratio_4_3FallbackAutoStrategy() { @NonNull @Override - public AspectRatioStrategyFallbackRule getFallbackRule(@NonNull AspectRatioStrategy pigeon_instance) { - switch(pigeon_instance.getFallbackRule()) { - case AspectRatioStrategy.FALLBACK_RULE_AUTO: - return AspectRatioStrategyFallbackRule.AUTO; - case AspectRatioStrategy.FALLBACK_RULE_NONE: - return AspectRatioStrategyFallbackRule.NONE; + public AspectRatioStrategyFallbackRule getFallbackRule( + @NonNull AspectRatioStrategy pigeon_instance) { + switch (pigeon_instance.getFallbackRule()) { + case AspectRatioStrategy.FALLBACK_RULE_AUTO: + return AspectRatioStrategyFallbackRule.AUTO; + case AspectRatioStrategy.FALLBACK_RULE_NONE: + return AspectRatioStrategyFallbackRule.NONE; } return AspectRatioStrategyFallbackRule.UNKNOWN; @@ -73,13 +74,13 @@ public AspectRatioStrategyFallbackRule getFallbackRule(@NonNull AspectRatioStrat @NonNull @Override public AspectRatio getPreferredAspectRatio(@NonNull AspectRatioStrategy pigeon_instance) { - switch(pigeon_instance.getPreferredAspectRatio()) { - case androidx.camera.core.AspectRatio.RATIO_16_9: - return AspectRatio.RATIO16TO9; - case androidx.camera.core.AspectRatio.RATIO_4_3: - return AspectRatio.RATIO4TO3; - case androidx.camera.core.AspectRatio.RATIO_DEFAULT: - return AspectRatio.RATIO_DEFAULT; + switch (pigeon_instance.getPreferredAspectRatio()) { + case androidx.camera.core.AspectRatio.RATIO_16_9: + return AspectRatio.RATIO16TO9; + case androidx.camera.core.AspectRatio.RATIO_4_3: + return AspectRatio.RATIO4TO3; + case androidx.camera.core.AspectRatio.RATIO_DEFAULT: + return AspectRatio.RATIO_DEFAULT; } return AspectRatio.UNKNOWN; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java index 7d6e6a8fb89..69c4b01ba69 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java @@ -6,7 +6,6 @@ import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CameraMetadata; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.OptIn; @@ -47,7 +46,7 @@ public Object getCameraCharacteristic( } if (key == CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL) { - switch((Integer) result) { + switch ((Integer) result) { case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_3: return InfoSupportedHardwareLevel.LEVEL3; case CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_EXTERNAL: diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java index 3234799ae36..6093987d564 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -9,8 +9,6 @@ import androidx.annotation.Nullable; import androidx.camera.camera2.interop.CaptureRequestOptions; import androidx.camera.camera2.interop.ExperimentalCamera2Interop; - -import java.util.Collections; import java.util.Map; /** @@ -46,10 +44,11 @@ public CaptureRequestOptions pigeon_defaultConstructor( return builder.build(); } - @ExperimentalCamera2Interop - @Nullable + @ExperimentalCamera2Interop + @Nullable @Override - public Object getCaptureRequestOption(@NonNull CaptureRequestOptions pigeon_instance, @NonNull CaptureRequest.Key key) { + public Object getCaptureRequestOption( + @NonNull CaptureRequestOptions pigeon_instance, @NonNull CaptureRequest.Key key) { return pigeon_instance.getCaptureRequestOption(key); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java index 3a361ccb030..50cc96f0d58 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java @@ -7,7 +7,6 @@ import android.content.Context; import androidx.annotation.NonNull; - /** * ProxyApi implementation for {@link DeviceOrientationManager}. This class may handle instantiating * native object instances that are attached to a Dart instance or handle method calls on the diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java index f9b80cf5bd5..5e4d4909c9e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java @@ -8,7 +8,6 @@ import androidx.camera.core.FocusMeteringAction; import androidx.camera.core.MeteringPoint; - /** * ProxyApi implementation for {@link FocusMeteringAction.Builder}. This class may handle * instantiating native object instances that are attached to a Dart instance or handle method calls diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java index c76aee596ca..0bd44433110 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java @@ -21,7 +21,8 @@ class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { @NonNull @Override - public ImageAnalysis pigeon_defaultConstructor(@Nullable ResolutionSelector resolutionSelector, @Nullable Long targetRotation) { + public ImageAnalysis pigeon_defaultConstructor( + @Nullable ResolutionSelector resolutionSelector, @Nullable Long targetRotation) { final ImageAnalysis.Builder builder = new ImageAnalysis.Builder(); if (resolutionSelector != null) { builder.setResolutionSelector(resolutionSelector); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java index 9be1cc1858c..70aade62346 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java @@ -9,7 +9,6 @@ import androidx.camera.core.ImageCapture; import androidx.camera.core.ImageCaptureException; import androidx.camera.core.resolutionselector.ResolutionSelector; - import java.io.File; import java.io.IOException; import java.util.concurrent.Executors; @@ -39,7 +38,7 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override public ImageCapture pigeon_defaultConstructor( - @Nullable androidx.camera.core.resolutionselector.ResolutionSelector resolutionSelector, + @Nullable androidx.camera.core.resolutionselector.ResolutionSelector resolutionSelector, @Nullable Long targetRotation, @Nullable CameraXFlashMode flashMode) { final ImageCapture.Builder builder = new ImageCapture.Builder(); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index 4e516bfe3c2..ae023f852dd 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -37,7 +37,7 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override public Preview pigeon_defaultConstructor( - @Nullable ResolutionSelector resolutionSelector, @Nullable Long targetRotation) { + @Nullable ResolutionSelector resolutionSelector, @Nullable Long targetRotation) { final Preview.Builder builder = new Preview.Builder(); if (targetRotation != null) { builder.setTargetRotation(targetRotation.intValue()); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java index 3d06112044d..3e1ed5d0e1d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java @@ -24,10 +24,9 @@ class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { @NonNull @Override public ResolutionSelector pigeon_defaultConstructor( - @Nullable ResolutionFilter resolutionFilter, - @Nullable ResolutionStrategy resolutionStrategy, - @Nullable AspectRatioStrategy aspectRatioStrategy - ) { + @Nullable ResolutionFilter resolutionFilter, + @Nullable ResolutionStrategy resolutionStrategy, + @Nullable AspectRatioStrategy aspectRatioStrategy) { final ResolutionSelector.Builder builder = new ResolutionSelector.Builder(); if (aspectRatioStrategy != null) { builder.setAspectRatioStrategy(aspectRatioStrategy); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java index 7631e386a1b..5cc5ff3dc51 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java @@ -5,7 +5,6 @@ package io.flutter.plugins.camerax; import android.util.Size; - import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.camera.core.resolutionselector.ResolutionStrategy; @@ -59,18 +58,19 @@ public Size getBoundSize(@NonNull ResolutionStrategy pigeon_instance) { @NonNull @Override - public ResolutionStrategyFallbackRule getFallbackRule(@NonNull ResolutionStrategy pigeon_instance) { - switch(pigeon_instance.getFallbackRule()) { - case ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER: - return ResolutionStrategyFallbackRule.CLOSEST_HIGHER; - case ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER: - return ResolutionStrategyFallbackRule.CLOSEST_HIGHER_THEN_LOWER; - case ResolutionStrategy.FALLBACK_RULE_CLOSEST_LOWER: - return ResolutionStrategyFallbackRule.CLOSEST_LOWER; - case ResolutionStrategy.FALLBACK_RULE_CLOSEST_LOWER_THEN_HIGHER: - return ResolutionStrategyFallbackRule.CLOSEST_LOWER_THEN_HIGHER; - case ResolutionStrategy.FALLBACK_RULE_NONE: - return ResolutionStrategyFallbackRule.NONE; + public ResolutionStrategyFallbackRule getFallbackRule( + @NonNull ResolutionStrategy pigeon_instance) { + switch (pigeon_instance.getFallbackRule()) { + case ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER: + return ResolutionStrategyFallbackRule.CLOSEST_HIGHER; + case ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER: + return ResolutionStrategyFallbackRule.CLOSEST_HIGHER_THEN_LOWER; + case ResolutionStrategy.FALLBACK_RULE_CLOSEST_LOWER: + return ResolutionStrategyFallbackRule.CLOSEST_LOWER; + case ResolutionStrategy.FALLBACK_RULE_CLOSEST_LOWER_THEN_HIGHER: + return ResolutionStrategyFallbackRule.CLOSEST_LOWER_THEN_HIGHER; + case ResolutionStrategy.FALLBACK_RULE_NONE: + return ResolutionStrategyFallbackRule.NONE; } return ResolutionStrategyFallbackRule.UNKNOWN; From 5582bbb9b313ab154b2e9388bdd85dd99422f419 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 12 Feb 2025 22:47:28 -0500 Subject: [PATCH 075/148] one java test done --- .../plugins/camerax/AnalyzerProxyApiTest.java | 40 -------- .../flutter/plugins/camerax/AnalyzerTest.java | 99 +++---------------- .../camerax/TestProxyApiRegistrar.java | 31 ++++++ 3 files changed, 46 insertions(+), 124 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerProxyApiTest.java deleted file mode 100644 index bae00524185..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerProxyApiTest.java +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageAnalysis.Analyzer -import androidx.camera.core.ImageProxy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class AnalyzerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiAnalyzer api = new TestProxyApiRegistrar().getPigeonApiAnalyzer(); - - assertTrue(api.pigeon_defaultConstructor() instanceof AnalyzerProxyApi.AnalyzerImpl); - } - - @Test - public void analyze() { - final AnalyzerProxyApi mockApi = mock(AnalyzerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final AnalyzerImpl instance = new AnalyzerImpl(mockApi); - final androidx.camera.core.ImageProxy image = mock(ImageProxy.class); - instance.analyze(image); - - verify(mockApi).analyze(eq(instance), eq(image), any()); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java index bcc2648e4eb..1366315e326 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java @@ -4,103 +4,34 @@ package io.flutter.plugins.camerax; +import androidx.camera.core.ImageProxy; +import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import androidx.camera.core.ImageProxy; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.AnalyzerFlutterApi; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - public class AnalyzerTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock public AnalyzerHostApiImpl.AnalyzerImpl mockImageAnalysisAnalyzer; - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public AnalyzerFlutterApi mockFlutterApi; - @Mock public AnalyzerHostApiImpl.AnalyzerProxy mockProxy; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - @Test - public void hostApiCreate_makesCallToCreateAnalyzerInstanceWithExpectedIdentifier() { - final AnalyzerHostApiImpl hostApi = - new AnalyzerHostApiImpl(mockBinaryMessenger, instanceManager, mockProxy); - final long instanceIdentifier = 90; + public void pigeon_defaultConstructor() { + final PigeonApiAnalyzer api = new TestProxyApiRegistrar().getPigeonApiAnalyzer(); - when(mockProxy.create(mockBinaryMessenger, instanceManager)) - .thenReturn(mockImageAnalysisAnalyzer); - - hostApi.create(instanceIdentifier); - - assertEquals(instanceManager.getInstance(instanceIdentifier), mockImageAnalysisAnalyzer); + assertTrue(api.pigeon_defaultConstructor() instanceof AnalyzerProxyApi.AnalyzerImpl); } @Test - public void flutterApiCreate_makesCallToDartCreate() { - final AnalyzerFlutterApiImpl flutterApi = - new AnalyzerFlutterApiImpl(mockBinaryMessenger, instanceManager); - - flutterApi.setApi(mockFlutterApi); + public void analyze() { + final AnalyzerProxyApi mockApi = mock(AnalyzerProxyApi.class); + when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); - flutterApi.create(mockImageAnalysisAnalyzer, reply -> {}); - final long instanceIdentifier = - Objects.requireNonNull( - instanceManager.getIdentifierForStrongReference(mockImageAnalysisAnalyzer)); + final AnalyzerProxyApi.AnalyzerImpl instance = new AnalyzerProxyApi.AnalyzerImpl(mockApi); + final androidx.camera.core.ImageProxy image = mock(ImageProxy.class); + instance.analyze(image); - verify(mockFlutterApi).create(eq(instanceIdentifier), any()); + verify(mockApi).analyze(eq(instance), eq(image), any()); } - @Test - public void analyze_makesCallToDartAnalyze() { - final AnalyzerFlutterApiImpl flutterApi = - new AnalyzerFlutterApiImpl(mockBinaryMessenger, instanceManager); - final ImageProxy mockImageProxy = mock(ImageProxy.class); - final long mockImageProxyIdentifier = 97; - final AnalyzerHostApiImpl.AnalyzerImpl instance = - new AnalyzerHostApiImpl.AnalyzerImpl(mockBinaryMessenger, instanceManager); - final ImageProxyFlutterApiImpl mockImageProxyApi = - spy(new ImageProxyFlutterApiImpl(mockBinaryMessenger, instanceManager)); - final long instanceIdentifier = 20; - final long format = 3; - final long height = 2; - final long width = 1; - - flutterApi.setApi(mockFlutterApi); - instance.setApi(flutterApi); - instance.imageProxyApi = mockImageProxyApi; - - instanceManager.addDartCreatedInstance(instance, instanceIdentifier); - instanceManager.addDartCreatedInstance(mockImageProxy, mockImageProxyIdentifier); - - when(mockImageProxy.getFormat()).thenReturn(3); - when(mockImageProxy.getHeight()).thenReturn(2); - when(mockImageProxy.getWidth()).thenReturn(1); - - instance.analyze(mockImageProxy); - - verify(mockFlutterApi).analyze(eq(instanceIdentifier), eq(mockImageProxyIdentifier), any()); - verify(mockImageProxyApi).create(eq(mockImageProxy), eq(format), eq(height), eq(width), any()); - } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java new file mode 100644 index 00000000000..2fb7081d6c2 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java @@ -0,0 +1,31 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.mockito.Mockito.mock; + +import android.content.Context; +import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.view.TextureRegistry; + +/** + * Test implementation of `ProxyApiRegistrar` that provides mocks, instantly runs callbacks instead + * of posting them, and makes all SDK checks pass by default. + */ +public class TestProxyApiRegistrar extends ProxyApiRegistrar { + public TestProxyApiRegistrar() { + super(mock(BinaryMessenger.class), mock(Context.class), mock(TextureRegistry.class)); + } + + @Override + void runOnMainThread(Runnable runnable) { + runnable.run(); + } + + @Override + boolean sdkIsAtLeast(int version) { + return true; + } +} From 2164d4098d1fcb621e3e7e79a8f415139b918bb5 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 13 Feb 2025 18:44:26 -0500 Subject: [PATCH 076/148] move --- .../android/build.gradle | 2 +- .../plugins/camerax/CameraXLibrary.g.kt | 4813 ++++++++++++++++- .../flutter/plugins/camerax/AnalyzerTest.java | 2 - .../AspectRatioStrategyProxyApiTest.java | 27 - .../camerax/AspectRatioStrategyTest.java | 60 +- .../Camera2CameraControlProxyApiTest.java | 22 +- .../camerax/Camera2CameraControlTest.java | 260 +- .../Camera2CameraInfoProxyApiTest.java | 104 +- .../camerax/Camera2CameraInfoTest.java | 228 +- .../CameraAndroidCameraxPluginTest.java | 774 +-- .../CameraCharacteristicsKeyProxyApiTest.java | 40 +- .../CameraCharacteristicsProxyApiTest.java | 42 +- .../camerax/CameraControlProxyApiTest.java | 156 +- .../plugins/camerax/CameraControlTest.java | 794 +-- .../camerax/CameraInfoProxyApiTest.java | 132 +- .../plugins/camerax/CameraInfoTest.java | 272 +- .../CameraIntegerRangeProxyApiTest.java | 98 +- .../camerax/CameraPermissionsManagerTest.java | 178 +- .../plugins/camerax/CameraProxyApiTest.java | 88 +- .../camerax/CameraSelectorProxyApiTest.java | 80 +- .../plugins/camerax/CameraSelectorTest.java | 194 +- .../camerax/CameraSizeProxyApiTest.java | 98 +- .../plugins/camerax/CameraStateErrorTest.java | 114 +- .../camerax/CameraStateProxyApiTest.java | 86 +- .../CameraStateStateErrorProxyApiTest.java | 62 +- .../plugins/camerax/CameraStateTest.java | 204 +- .../flutter/plugins/camerax/CameraTest.java | 182 +- .../CaptureRequestKeyProxyApiTest.java | 40 +- .../CaptureRequestOptionsProxyApiTest.java | 68 +- .../camerax/CaptureRequestOptionsTest.java | 218 +- .../camerax/CaptureRequestProxyApiTest.java | 42 +- .../DeviceOrientationManagerProxyApiTest.java | 166 +- .../camerax/DeviceOrientationManagerTest.java | 334 +- .../DeviceOrientationManagerWrapperTest.java | 216 +- ...entedMeteringPointFactoryProxyApiTest.java | 56 +- .../camerax/ExposureStateProxyApiTest.java | 86 +- .../plugins/camerax/ExposureStateTest.java | 168 +- .../camerax/FallbackStrategyProxyApiTest.java | 96 +- .../plugins/camerax/FallbackStrategyTest.java | 236 +- ...ocusMeteringActionBuilderProxyApiTest.java | 160 +- .../FocusMeteringActionProxyApiTest.java | 130 +- .../camerax/FocusMeteringActionTest.java | 384 +- .../FocusMeteringResultProxyApiTest.java | 62 +- .../camerax/FocusMeteringResultTest.java | 146 +- .../camerax/ImageAnalysisProxyApiTest.java | 133 +- .../plugins/camerax/ImageAnalysisTest.java | 236 +- .../camerax/ImageCaptureProxyApiTest.java | 133 +- .../plugins/camerax/ImageCaptureTest.java | 442 +- .../camerax/ImageProxyProxyApiTest.java | 150 +- .../plugins/camerax/ImageProxyTest.java | 238 +- .../plugins/camerax/InstanceManagerTest.java | 140 - .../camerax/JavaObjectHostApiTest.java | 64 +- .../plugins/camerax/LiveDataProxyApiTest.java | 128 +- .../flutter/plugins/camerax/LiveDataTest.java | 308 +- .../MeteringPointFactoryProxyApiTest.java | 96 +- .../camerax/MeteringPointProxyApiTest.java | 62 +- .../plugins/camerax/MeteringPointTest.java | 462 +- .../plugins/camerax/ObserverProxyApiTest.java | 78 +- .../flutter/plugins/camerax/ObserverTest.java | 264 +- .../camerax/PendingRecordingProxyApiTest.java | 66 +- .../plugins/camerax/PendingRecordingTest.java | 270 +- .../camerax/PlaneProxyProxyApiTest.java | 106 +- .../plugins/camerax/PlaneProxyTest.java | 116 +- .../plugins/camerax/PreviewProxyApiTest.java | 157 +- .../flutter/plugins/camerax/PreviewTest.java | 546 +- .../ProcessCameraProviderProxyApiTest.java | 162 +- .../camerax/ProcessCameraProviderTest.java | 374 +- .../camerax/ProxyLifecycleProviderTest.java | 242 +- .../camerax/QualitySelectorProxyApiTest.java | 74 +- .../plugins/camerax/QualitySelectorTest.java | 298 +- .../plugins/camerax/RecorderProxyApiTest.java | 137 +- .../flutter/plugins/camerax/RecorderTest.java | 356 +- .../camerax/RecordingProxyApiTest.java | 120 +- .../plugins/camerax/RecordingTest.java | 222 +- .../camerax/ResolutionFilterProxyApiTest.java | 56 +- .../plugins/camerax/ResolutionFilterTest.java | 152 +- .../camerax/ResolutionInfoProxyApiTest.java | 64 +- .../ResolutionSelectorProxyApiTest.java | 93 +- .../camerax/ResolutionSelectorTest.java | 136 +- .../ResolutionStrategyProxyApiTest.java | 78 +- .../camerax/ResolutionStrategyTest.java | 142 +- .../SystemServicesManagerProxyApiTest.java | 148 +- .../plugins/camerax/SystemServicesTest.java | 326 +- .../plugins/camerax/UseCaseProxyApiTest.java | 40 +- .../camerax/VideoCaptureProxyApiTest.java | 100 +- .../plugins/camerax/VideoCaptureTest.java | 214 +- .../camerax/VideoOutputProxyApiTest.java | 40 +- .../VideoRecordEventFinalizeProxyApiTest.java | 40 +- .../VideoRecordEventListenerProxyApiTest.java | 78 +- .../camerax/VideoRecordEventProxyApiTest.java | 40 +- .../VideoRecordEventStartProxyApiTest.java | 40 +- .../camerax/ZoomStateProxyApiTest.java | 84 +- .../plugins/camerax/ZoomStateTest.java | 126 +- .../lib/src/camerax_library.g.dart | 369 ++ .../camera_android_camerax/pubspec.yaml | 12 +- 95 files changed, 12618 insertions(+), 7660 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/InstanceManagerTest.java diff --git a/packages/camera/camera_android_camerax/android/build.gradle b/packages/camera/camera_android_camerax/android/build.gradle index 56bc1829eed..0e0498b90de 100644 --- a/packages/camera/camera_android_camerax/android/build.gradle +++ b/packages/camera/camera_android_camerax/android/build.gradle @@ -72,7 +72,7 @@ dependencies { implementation "androidx.camera:camera-video:${camerax_version}" implementation 'com.google.guava:guava:33.4.0-android' testImplementation 'junit:junit:4.13.2' - testImplementation 'org.mockito:mockito-inline:5.0.0' + testImplementation 'org.mockito:mockito-inline:5.2.0' testImplementation 'androidx.test:core:1.4.0' testImplementation 'org.robolectric:robolectric:4.10.3' } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index fd462984ff3..d5a6cb923ab 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -1479,6 +1479,100 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraSize}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraSizeProxyApi extends PigeonApiCameraSize { + CameraSizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraSize pigeon_defaultConstructor(@NonNull Long width, @NonNull Long height) { + return CameraSize(); + } + + @NonNull + @Override + public Long width(CameraSize pigeon_instance) { + return pigeon_instance.getWidth(); + } + + @NonNull + @Override + public Long height(CameraSize pigeon_instance) { + return pigeon_instance.getHeight(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraSizeProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + assertTrue(api.pigeon_defaultConstructor() instanceof CameraSizeProxyApi.CameraSize); + } + + @Test + public void width() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + final CameraSize instance = mock(CameraSize.class); + final Long value = 0; + when(instance.getWidth()).thenReturn(value); + + assertEquals(value, api.width(instance)); + } + + @Test + public void height() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + final CameraSize instance = mock(CameraSize.class); + final Long value = 0; + when(instance.getHeight()).thenReturn(value); + + assertEquals(value, api.height(instance)); + } + +} +*/ /** * A `ResolutionInfo` allows the application to know the resolution information * of a specific use case. @@ -1522,6 +1616,72 @@ abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ResolutionInfo; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionInfo}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionInfoProxyApi extends PigeonApiResolutionInfo { + ResolutionInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public android.util.Size resolution(ResolutionInfo pigeon_instance) { + return pigeon_instance.getResolution(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ResolutionInfo +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionInfoProxyApiTest { + @Test + public void resolution() { + final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); + + final ResolutionInfo instance = mock(ResolutionInfo.class); + final android.util.Size value = mock(CameraSize.class); + when(instance.getResolution()).thenReturn(value); + + assertEquals(value, api.resolution(instance)); + } + +} +*/ /** * Immutable class for describing the range of two integer values. * @@ -1599,6 +1759,100 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.util.Range<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraIntegerRange}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraIntegerRangeProxyApi extends PigeonApiCameraIntegerRange { + CameraIntegerRangeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraIntegerRange pigeon_defaultConstructor(@NonNull Long lower, @NonNull Long upper) { + return CameraIntegerRange(); + } + + @NonNull + @Override + public Long lower(CameraIntegerRange pigeon_instance) { + return pigeon_instance.getLower(); + } + + @NonNull + @Override + public Long upper(CameraIntegerRange pigeon_instance) { + return pigeon_instance.getUpper(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.util.Range<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraIntegerRangeProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + assertTrue(api.pigeon_defaultConstructor() instanceof CameraIntegerRangeProxyApi.CameraIntegerRange); + } + + @Test + public void lower() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + final CameraIntegerRange instance = mock(CameraIntegerRange.class); + final Long value = 0; + when(instance.getLower()).thenReturn(value); + + assertEquals(value, api.lower(instance)); + } + + @Test + public void upper() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + final CameraIntegerRange instance = mock(CameraIntegerRange.class); + final Long value = 0; + when(instance.getUpper()).thenReturn(value); + + assertEquals(value, api.upper(instance)); + } + +} +*/ /** * VideoRecordEvent is used to report video recording events and status. * @@ -1637,6 +1891,53 @@ open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPig } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEvent}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventProxyApi extends PigeonApiVideoRecordEvent { + VideoRecordEventProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventProxyApiTest { +} +*/ /** * Indicates the start of recording. * @@ -1682,6 +1983,53 @@ open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibra } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent.Start; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventStart}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventStartProxyApi extends PigeonApiVideoRecordEventStart { + VideoRecordEventStartProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent.Start +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventStartProxyApiTest { +} +*/ /** * Indicates the finalization of recording. * @@ -1727,6 +2075,53 @@ open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent.Finalize; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoRecordEventFinalize}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoRecordEventFinalizeProxyApi extends PigeonApiVideoRecordEventFinalize { + VideoRecordEventFinalizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent.Finalize +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventFinalizeProxyApiTest { +} +*/ /** * A MeteringPoint is used to specify a region which can then be converted to * sensor coordinate system for focus and metering purpose. @@ -1798,6 +2193,70 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.MeteringPoint; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link MeteringPoint}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class MeteringPointProxyApi extends PigeonApiMeteringPoint { + MeteringPointProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Double getSize(MeteringPoint pigeon_instance) { + return pigeon_instance.getSize(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.MeteringPoint +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MeteringPointProxyApiTest { + @Test + public void getSize() { + final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); + + final MeteringPoint instance = mock(MeteringPoint.class); + final Double value = 1.0; + when(instance.getSize()).thenReturn(value); + + assertEquals(value, api.getSize(instance )); + } + +} +*/ /** * A simple callback that can receive from LiveData. * @@ -1876,6 +2335,89 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.lifecycle.Observer<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Observer}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ObserverProxyApi extends PigeonApiObserver { + ObserverProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link Observer} that passes arguments of callback methods to Dart. */ + static class ObserverImpl extends Observer { + private final ObserverProxyApi api; + ObserverImpl(@NonNull ObserverProxyApi api) { + this.api = api; + } + @Override + public void onChanged(@NonNull Any value) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onChanged(this, value, reply -> null)); + } + } + + @NonNull + @Override + public Observer pigeon_defaultConstructor() { + return ObserverImpl(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.lifecycle.Observer<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ObserverProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); + + assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.ObserverImpl); + } + + @Test + public void onChanged() { + final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final ObserverImpl instance = new ObserverImpl(mockApi); + final Any value = -1; + instance.onChanged(value); + + verify(mockApi).onChanged(eq(instance), eq(value), any()); + } + +} +*/ /** * An interface for retrieving camera information. * @@ -1972,34 +2514,153 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraInfo; +import androidx.camera.core.ExposureState; +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** - * A set of requirements and priorities used to select a camera or return a - * filtered set of cameras. - * - * See https://developer.android.com/reference/androidx/camera/core/CameraSelector. + * ProxyApi implementation for {@link CameraInfo}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(requireLensFacing: LensFacing?): androidx.camera.core.CameraSelector +class CameraInfoProxyApi extends PigeonApiCameraInfo { + CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } - /** A static `CameraSelector` that selects the default back facing camera. */ - abstract fun defaultBackCamera(): androidx.camera.core.CameraSelector + @NonNull + @Override + public Long sensorRotationDegrees(CameraInfo pigeon_instance) { + return pigeon_instance.getSensorRotationDegrees(); + } - /** A static `CameraSelector` that selects the default front facing camera. */ - abstract fun defaultFrontCamera(): androidx.camera.core.CameraSelector + @NonNull + @Override + public androidx.camera.core.ExposureState exposureState(CameraInfo pigeon_instance) { + return pigeon_instance.getExposureState(); + } - /** - * Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the - * selector. - */ - abstract fun filter(pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List): List + @NonNull + @Override + public io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper getCameraState(CameraInfo pigeon_instance) { + return pigeon_instance.getCameraState(); + } - companion object { - @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSelector?) { - val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", codec) + @NonNull + @Override + public io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper getZoomState(CameraInfo pigeon_instance) { + return pigeon_instance.getZoomState(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraInfo +import androidx.camera.core.ExposureState +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraInfoProxyApiTest { + @Test + public void sensorRotationDegrees() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final Long value = 0; + when(instance.getSensorRotationDegrees()).thenReturn(value); + + assertEquals(value, api.sensorRotationDegrees(instance)); + } + + @Test + public void exposureState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final androidx.camera.core.ExposureState value = mock(ExposureState.class); + when(instance.getExposureState()).thenReturn(value); + + assertEquals(value, api.exposureState(instance)); + } + + @Test + public void getCameraState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); + when(instance.getCameraState()).thenReturn(value); + + assertEquals(value, api.getCameraState(instance )); + } + + @Test + public void getZoomState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); + when(instance.getZoomState()).thenReturn(value); + + assertEquals(value, api.getZoomState(instance )); + } + +} +*/ +/** + * A set of requirements and priorities used to select a camera or return a + * filtered set of cameras. + * + * See https://developer.android.com/reference/androidx/camera/core/CameraSelector. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(requireLensFacing: LensFacing?): androidx.camera.core.CameraSelector + + /** A static `CameraSelector` that selects the default back facing camera. */ + abstract fun defaultBackCamera(): androidx.camera.core.CameraSelector + + /** A static `CameraSelector` that selects the default front facing camera. */ + abstract fun defaultFrontCamera(): androidx.camera.core.CameraSelector + + /** + * Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the + * selector. + */ + abstract fun filter(pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List): List + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSelector?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -2105,6 +2766,98 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraSelector; +import androidx.camera.core.CameraInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraSelector}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraSelectorProxyApi extends PigeonApiCameraSelector { + CameraSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraSelector pigeon_defaultConstructor(@Nullable LensFacing? requireLensFacing) { + return CameraSelector(requireLensFacing); + } + + @NonNull + @Override + public androidx.camera.core.CameraSelector defaultBackCamera() { + return CameraSelector.getDefaultBackCamera(); + } + + @NonNull + @Override + public androidx.camera.core.CameraSelector defaultFrontCamera() { + return CameraSelector.getDefaultFrontCamera(); + } + + @NonNull + @Override + public List filter(CameraSelector, pigeon_instance@NonNull List cameraInfos) { + return pigeon_instance.filter(cameraInfos); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraSelector +import androidx.camera.core.CameraInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraSelectorProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); + + assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT) instanceof CameraSelectorProxyApi.CameraSelector); + } + + @Test + public void filter() { + final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); + + final CameraSelector instance = mock(CameraSelector.class); + final List cameraInfos = Arrays.asList(mock(CameraInfo.class)); + final List value = Arrays.asList(mock(CameraInfo.class)); + when(instance.filter(cameraInfos)).thenReturn(value); + + assertEquals(value, api.filter(instance, cameraInfos)); + } + +} +*/ /** * A singleton which can be used to bind the lifecycle of cameras to any * `LifecycleOwner` within an application's process. @@ -2281,6 +3034,152 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.lifecycle.ProcessCameraProvider; +import androidx.camera.core.UseCase; +import androidx.camera.core.CameraSelector; +import androidx.camera.core.CameraInfo; +import androidx.camera.core.Camera; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ProcessCameraProvider}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ProcessCameraProviderProxyApi extends PigeonApiProcessCameraProvider { + ProcessCameraProviderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public androidx.camera.lifecycle.ProcessCameraProvider getInstance() { + return ProcessCameraProvider.getInstance(); + } + + @NonNull + @Override + public List getAvailableCameraInfos(ProcessCameraProvider pigeon_instance) { + return pigeon_instance.getAvailableCameraInfos(); + } + + @NonNull + @Override + public androidx.camera.core.Camera bindToLifecycle(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.CameraSelector cameraSelector, @NonNull List useCases) { + return pigeon_instance.bindToLifecycle(cameraSelector, useCases); + } + + @NonNull + @Override + public Boolean isBound(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.UseCase useCase) { + return pigeon_instance.isBound(useCase); + } + + @Override + public Void unbind(ProcessCameraProvider, pigeon_instance@NonNull List useCases) { + pigeon_instance.unbind(useCases); + } + + @Override + public Void unbindAll(ProcessCameraProvider pigeon_instance) { + pigeon_instance.unbindAll(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.lifecycle.ProcessCameraProvider +import androidx.camera.core.UseCase +import androidx.camera.core.CameraSelector +import androidx.camera.core.CameraInfo +import androidx.camera.core.Camera +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ProcessCameraProviderProxyApiTest { + @Test + public void getAvailableCameraInfos() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final List value = Arrays.asList(mock(CameraInfo.class)); + when(instance.getAvailableCameraInfos()).thenReturn(value); + + assertEquals(value, api.getAvailableCameraInfos(instance )); + } + + @Test + public void bindToLifecycle() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); + final List useCases = Arrays.asList(mock(UseCase.class)); + final androidx.camera.core.Camera value = mock(Camera.class); + when(instance.bindToLifecycle(cameraSelector, useCases)).thenReturn(value); + + assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); + } + + @Test + public void isBound() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final androidx.camera.core.UseCase useCase = mock(UseCase.class); + final Boolean value = true; + when(instance.isBound(useCase)).thenReturn(value); + + assertEquals(value, api.isBound(instance, useCase)); + } + + @Test + public void unbind() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final List useCases = Arrays.asList(mock(UseCase.class)); + api.unbind(instance, useCases); + + verify(instance).unbind(useCases); + } + + @Test + public void unbindAll() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + api.unbindAll(instance ); + + verify(instance).unbindAll(); + } + +} +*/ /** * The use case which all other use cases are built on top of. * @@ -2319,6 +3218,53 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.UseCase; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link UseCase}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class UseCaseProxyApi extends PigeonApiUseCase { + UseCaseProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.UseCase +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class UseCaseProxyApiTest { +} +*/ /** * The camera interface is used to control the flow of data to use cases, * control the camera via the `CameraControl`, and publish the state of the @@ -2390,6 +3336,91 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.Camera; +import androidx.camera.core.CameraControl; +import androidx.camera.core.CameraInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Camera}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraProxyApi extends PigeonApiCamera { + CameraProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public androidx.camera.core.CameraControl cameraControl(Camera pigeon_instance) { + return pigeon_instance.getCameraControl(); + } + + @NonNull + @Override + public androidx.camera.core.CameraInfo getCameraInfo(Camera pigeon_instance) { + return pigeon_instance.getCameraInfo(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.Camera +import androidx.camera.core.CameraControl +import androidx.camera.core.CameraInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraProxyApiTest { + @Test + public void cameraControl() { + final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); + + final Camera instance = mock(Camera.class); + final androidx.camera.core.CameraControl value = mock(CameraControl.class); + when(instance.getCameraControl()).thenReturn(value); + + assertEquals(value, api.cameraControl(instance)); + } + + @Test + public void getCameraInfo() { + final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); + + final Camera instance = mock(Camera.class); + final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); + when(instance.getCameraInfo()).thenReturn(value); + + assertEquals(value, api.getCameraInfo(instance )); + } + +} +*/ /** Convenience class for accessing system resources. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @@ -2525,6 +3556,141 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link SystemServicesManager}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManager { + SystemServicesManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link SystemServicesManager} that passes arguments of callback methods to Dart. */ + static class SystemServicesManagerImpl extends SystemServicesManager { + private final SystemServicesManagerProxyApi api; + SystemServicesManagerImpl(@NonNull SystemServicesManagerProxyApi api) { + this.api = api; + } + @Override + public void onCameraError(@NonNull String errorDescription) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onCameraError(this, errorDescription, reply -> null)); + } + } + + @NonNull + @Override + public SystemServicesManager pigeon_defaultConstructor() { + return SystemServicesManagerImpl(); + } + + @Override + public Void requestCameraPermissions(SystemServicesManager, pigeon_instance@NonNull Boolean enableAudio) { + pigeon_instance.requestCameraPermissions(enableAudio); + } + + @NonNull + @Override + public String getTempFilePath(SystemServicesManager, pigeon_instance@NonNull String prefix, @NonNull String suffix) { + return pigeon_instance.getTempFilePath(prefix, suffix); + } + + @NonNull + @Override + public Boolean isPreviewPreTransformed(SystemServicesManager pigeon_instance) { + return pigeon_instance.isPreviewPreTransformed(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class SystemServicesManagerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + assertTrue(api.pigeon_defaultConstructor() instanceof SystemServicesManagerProxyApi.SystemServicesManager); + } + + @Test + public void requestCameraPermissions() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = mock(SystemServicesManager.class); + final Boolean enableAudio = true; + api.requestCameraPermissions(instance, enableAudio); + + verify(instance).requestCameraPermissions(enableAudio); + } + + @Test + public void getTempFilePath() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = mock(SystemServicesManager.class); + final String prefix = "myString"; + final String suffix = "myString"; + final String value = "myString"; + when(instance.getTempFilePath(prefix, suffix)).thenReturn(value); + + assertEquals(value, api.getTempFilePath(instance, prefix, suffix)); + } + + @Test + public void isPreviewPreTransformed() { + final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = mock(SystemServicesManager.class); + final Boolean value = true; + when(instance.isPreviewPreTransformed()).thenReturn(value); + + assertEquals(value, api.isPreviewPreTransformed(instance )); + } + + @Test + public void onCameraError() { + final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final SystemServicesManagerImpl instance = new SystemServicesManagerImpl(mockApi); + final String errorDescription = "myString"; + instance.onCameraError(errorDescription); + + verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); + } + +} +*/ /** * Support class to help to determine the media orientation based on the * orientation of the device. @@ -2681,11 +3847,160 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } -/** - * A use case that provides a camera preview stream for displaying on-screen. - * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. - */ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link DeviceOrientationManager}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class DeviceOrientationManagerProxyApi extends PigeonApiDeviceOrientationManager { + DeviceOrientationManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to Dart. */ + static class DeviceOrientationManagerImpl extends DeviceOrientationManager { + private final DeviceOrientationManagerProxyApi api; + DeviceOrientationManagerImpl(@NonNull DeviceOrientationManagerProxyApi api) { + this.api = api; + } + @Override + public void onDeviceOrientationChanged(@NonNull String orientation) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onDeviceOrientationChanged(this, orientation, reply -> null)); + } + } + + @NonNull + @Override + public DeviceOrientationManager pigeon_defaultConstructor() { + return DeviceOrientationManagerImpl(); + } + + @Override + public Void startListeningForDeviceOrientationChange(DeviceOrientationManager, pigeon_instance@NonNull Boolean isFrontFacing, @NonNull Long sensorOrientation) { + pigeon_instance.startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); + } + + @Override + public Void stopListeningForDeviceOrientationChange(DeviceOrientationManager pigeon_instance) { + pigeon_instance.stopListeningForDeviceOrientationChange(); + } + + @NonNull + @Override + public Long getDefaultDisplayRotation(DeviceOrientationManager pigeon_instance) { + return pigeon_instance.getDefaultDisplayRotation(); + } + + @NonNull + @Override + public String getUiOrientation(DeviceOrientationManager pigeon_instance) { + return pigeon_instance.getUiOrientation(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class DeviceOrientationManagerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + assertTrue(api.pigeon_defaultConstructor() instanceof DeviceOrientationManagerProxyApi.DeviceOrientationManager); + } + + @Test + public void startListeningForDeviceOrientationChange() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final Boolean isFrontFacing = true; + final Long sensorOrientation = 0; + api.startListeningForDeviceOrientationChange(instance, isFrontFacing, sensorOrientation); + + verify(instance).startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); + } + + @Test + public void stopListeningForDeviceOrientationChange() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + api.stopListeningForDeviceOrientationChange(instance ); + + verify(instance).stopListeningForDeviceOrientationChange(); + } + + @Test + public void getDefaultDisplayRotation() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final Long value = 0; + when(instance.getDefaultDisplayRotation()).thenReturn(value); + + assertEquals(value, api.getDefaultDisplayRotation(instance )); + } + + @Test + public void getUiOrientation() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final String value = "myString"; + when(instance.getUiOrientation()).thenReturn(value); + + assertEquals(value, api.getUiOrientation(instance )); + } + + @Test + public void onDeviceOrientationChanged() { + final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final DeviceOrientationManagerImpl instance = new DeviceOrientationManagerImpl(mockApi); + final String orientation = "myString"; + instance.onDeviceOrientationChanged(orientation); + + verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation), any()); + } + +} +*/ +/** + * A use case that provides a camera preview stream for displaying on-screen. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/Preview. + */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.Preview @@ -2854,6 +4169,153 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.Preview; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.ResolutionInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Preview}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class PreviewProxyApi extends PigeonApiPreview { + PreviewProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Preview pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation) { + return Preview(targetRotation); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(Preview pigeon_instance) { + return pigeon_instance.getResolutionSelector(); + } + + @NonNull + @Override + public Long setSurfaceProvider(Preview, pigeon_instance@NonNull SystemServicesManager systemServicesManager) { + return pigeon_instance.setSurfaceProvider(systemServicesManager); + } + + @Override + public Void releaseSurfaceProvider(Preview pigeon_instance) { + pigeon_instance.releaseSurfaceProvider(); + } + + @Nullable + @Override + public androidx.camera.core.ResolutionInfo? getResolutionInfo(Preview pigeon_instance) { + return pigeon_instance.getResolutionInfo(); + } + + @Override + public Void setTargetRotation(Preview, pigeon_instance@NonNull Long rotation) { + pigeon_instance.setTargetRotation(rotation); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.Preview +import androidx.camera.core.resolutionselector.ResolutionSelector +import androidx.camera.core.ResolutionInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PreviewProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + assertTrue(api.pigeon_defaultConstructor(0) instanceof PreviewProxyApi.Preview); + } + + @Test + public void resolutionSelector() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); + } + + @Test + public void setSurfaceProvider() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); + final Long value = 0; + when(instance.setSurfaceProvider(systemServicesManager)).thenReturn(value); + + assertEquals(value, api.setSurfaceProvider(instance, systemServicesManager)); + } + + @Test + public void releaseSurfaceProvider() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + api.releaseSurfaceProvider(instance ); + + verify(instance).releaseSurfaceProvider(); + } + + @Test + public void getResolutionInfo() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); + when(instance.getResolutionInfo()).thenReturn(value); + + assertEquals(value, api.getResolutionInfo(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} +*/ /** * A use case that provides camera stream suitable for video application. * @@ -2970,6 +4432,101 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoCapture<*>; +import androidx.camera.video.VideoOutput; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoCapture}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoCaptureProxyApi extends PigeonApiVideoCapture { + VideoCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public VideoCapture withOutput(@NonNull androidx.camera.video.VideoOutput videoOutput) { + return VideoCapture(videoOutput); + } + + @NonNull + @Override + public androidx.camera.video.VideoOutput getOutput(VideoCapture pigeon_instance) { + return pigeon_instance.getOutput(); + } + + @Override + public Void setTargetRotation(VideoCapture, pigeon_instance@NonNull Long rotation) { + pigeon_instance.setTargetRotation(rotation); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoCapture<*> +import androidx.camera.video.VideoOutput +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoCaptureProxyApiTest { + @Test + public void withOutput() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + assertTrue(api.withOutput(mock(VideoOutput.class)) instanceof VideoCaptureProxyApi.VideoCapture); + } + + @Test + public void getOutput() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + final VideoCapture instance = mock(VideoCapture.class); + final androidx.camera.video.VideoOutput value = mock(VideoOutput.class); + when(instance.getOutput()).thenReturn(value); + + assertEquals(value, api.getOutput(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + final VideoCapture instance = mock(VideoCapture.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} +*/ /** * A class that will produce video data from a Surface. * @@ -3008,6 +4565,53 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoOutput; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link VideoOutput}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class VideoOutputProxyApi extends PigeonApiVideoOutput { + VideoOutputProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoOutput +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoOutputProxyApiTest { +} +*/ /** * An implementation of `VideoOutput` for starting video recordings that are * saved to a File, ParcelFileDescriptor, or MediaStore. @@ -3165,6 +4769,139 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.Recorder; +import androidx.camera.video.QualitySelector; +import androidx.camera.video.PendingRecording; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Recorder}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class RecorderProxyApi extends PigeonApiRecorder { + RecorderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Recorder pigeon_defaultConstructor(@Nullable Long? aspectRatio, @Nullable Long? targetVideoEncodingBitRate, @Nullable androidx.camera.video.QualitySelector? qualitySelector) { + return Recorder(aspectRatio, targetVideoEncodingBitRate, qualitySelector); + } + + @NonNull + @Override + public Long getAspectRatio(Recorder pigeon_instance) { + return pigeon_instance.getAspectRatio(); + } + + @NonNull + @Override + public Long getTargetVideoEncodingBitRate(Recorder pigeon_instance) { + return pigeon_instance.getTargetVideoEncodingBitRate(); + } + + @NonNull + @Override + public androidx.camera.video.QualitySelector getQualitySelector(Recorder pigeon_instance) { + return pigeon_instance.getQualitySelector(); + } + + @NonNull + @Override + public androidx.camera.video.PendingRecording prepareRecording(Recorder, pigeon_instance@NonNull String path) { + return pigeon_instance.prepareRecording(path); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.Recorder +import androidx.camera.video.QualitySelector +import androidx.camera.video.PendingRecording +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class RecorderProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + assertTrue(api.pigeon_defaultConstructor(0, 0, mock(QualitySelector.class)) instanceof RecorderProxyApi.Recorder); + } + + @Test + public void getAspectRatio() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final Long value = 0; + when(instance.getAspectRatio()).thenReturn(value); + + assertEquals(value, api.getAspectRatio(instance )); + } + + @Test + public void getTargetVideoEncodingBitRate() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final Long value = 0; + when(instance.getTargetVideoEncodingBitRate()).thenReturn(value); + + assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); + } + + @Test + public void getQualitySelector() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final androidx.camera.video.QualitySelector value = mock(QualitySelector.class); + when(instance.getQualitySelector()).thenReturn(value); + + assertEquals(value, api.getQualitySelector(instance )); + } + + @Test + public void prepareRecording() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final String path = "myString"; + final androidx.camera.video.PendingRecording value = mock(PendingRecording.class); + when(instance.prepareRecording(path)).thenReturn(value); + + assertEquals(value, api.prepareRecording(instance, path)); + } + +} +*/ /** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @@ -3238,26 +4975,109 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.VideoRecordEvent; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + /** - * A recording that can be started at a future time. - * - * See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. + * ProxyApi implementation for {@link VideoRecordEventListener}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** Starts the recording, making it an active recording. */ - abstract fun start(pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener): androidx.camera.video.Recording +class VideoRecordEventListenerProxyApi extends PigeonApiVideoRecordEventListener { + VideoRecordEventListenerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link VideoRecordEventListener} that passes arguments of callback methods to Dart. */ + static class VideoRecordEventListenerImpl extends VideoRecordEventListener { + private final VideoRecordEventListenerProxyApi api; + VideoRecordEventListenerImpl(@NonNull VideoRecordEventListenerProxyApi api) { + this.api = api; + } + @Override + public void onEvent(@NonNull androidx.camera.video.VideoRecordEvent event) { + api.getPigeonRegistrar().runOnMainThread(() -> api.onEvent(this, event, reply -> null)); + } + } - companion object { - @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPendingRecording?) { - val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() - run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", codec) - if (api != null) { - channel.setMessageHandler { message, reply -> - val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording + @NonNull + @Override + public VideoRecordEventListener pigeon_defaultConstructor() { + return VideoRecordEventListenerImpl(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.VideoRecordEvent +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class VideoRecordEventListenerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiVideoRecordEventListener api = new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); + + assertTrue(api.pigeon_defaultConstructor() instanceof VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl); + } + + @Test + public void onEvent() { + final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final VideoRecordEventListenerImpl instance = new VideoRecordEventListenerImpl(mockApi); + final androidx.camera.video.VideoRecordEvent event = mock(VideoRecordEvent.class); + instance.onEvent(event); + + verify(mockApi).onEvent(eq(instance), eq(event), any()); + } + +} +*/ +/** + * A recording that can be started at a future time. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** Starts the recording, making it an active recording. */ + abstract fun start(pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener): androidx.camera.video.Recording + + companion object { + @Suppress("LocalVariableName") + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPendingRecording?) { + val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() + run { + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", codec) + if (api != null) { + channel.setMessageHandler { message, reply -> + val args = message as List + val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording val listenerArg = args[1] as VideoRecordEventListener val wrapped: List = try { listOf(api.start(pigeon_instanceArg, listenerArg)) @@ -3304,6 +5124,73 @@ abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibrar } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.PendingRecording; +import androidx.camera.video.Recording; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link PendingRecording}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class PendingRecordingProxyApi extends PigeonApiPendingRecording { + PendingRecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public androidx.camera.video.Recording start(PendingRecording, pigeon_instance@NonNull VideoRecordEventListener listener) { + return pigeon_instance.start(listener); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.PendingRecording +import androidx.camera.video.Recording +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PendingRecordingProxyApiTest { + @Test + public void start() { + final PigeonApiPendingRecording api = new TestProxyApiRegistrar().getPigeonApiPendingRecording(); + + final PendingRecording instance = mock(PendingRecording.class); + final VideoRecordEventListener listener = mock(VideoRecordEventListener.class); + final androidx.camera.video.Recording value = mock(Recording.class); + when(instance.start(listener)).thenReturn(value); + + assertEquals(value, api.start(instance, listener)); + } + +} +*/ /** * Provides controls for the currently active recording. * @@ -3437,6 +5324,113 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.Recording; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Recording}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class RecordingProxyApi extends PigeonApiRecording { + RecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public Void close(Recording pigeon_instance) { + pigeon_instance.close(); + } + + @Override + public Void pause(Recording pigeon_instance) { + pigeon_instance.pause(); + } + + @Override + public Void resume(Recording pigeon_instance) { + pigeon_instance.resume(); + } + + @Override + public Void stop(Recording pigeon_instance) { + pigeon_instance.stop(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.Recording +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class RecordingProxyApiTest { + @Test + public void close() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.close(instance ); + + verify(instance).close(); + } + + @Test + public void pause() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.pause(instance ); + + verify(instance).pause(); + } + + @Test + public void resume() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.resume(instance ); + + verify(instance).resume(); + } + + @Test + public void stop() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.stop(instance ); + + verify(instance).stop(); + } + +} +*/ /** * A use case for taking a picture. * @@ -3582,6 +5576,134 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageCapture; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ImageCapture}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ImageCaptureProxyApi extends PigeonApiImageCapture { + ImageCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ImageCapture pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation, @Nullable CameraXFlashMode? flashMode) { + return ImageCapture(targetRotation, flashMode); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(ImageCapture pigeon_instance) { + return pigeon_instance.getResolutionSelector(); + } + + @Override + public Void setFlashMode(ImageCapture, pigeon_instance@NonNull CameraXFlashMode flashMode) { + pigeon_instance.setFlashMode(flashMode); + } + + @NonNull + @Override + public String takePicture(ImageCapture pigeon_instance) { + return pigeon_instance.takePicture(); + } + + @Override + public Void setTargetRotation(ImageCapture, pigeon_instance@NonNull Long rotation) { + pigeon_instance.setTargetRotation(rotation); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageCapture +import androidx.camera.core.resolutionselector.ResolutionSelector +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageCaptureProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO) instanceof ImageCaptureProxyApi.ImageCapture); + } + + @Test + public void resolutionSelector() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); + } + + @Test + public void setFlashMode() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; + api.setFlashMode(instance, flashMode); + + verify(instance).setFlashMode(flashMode); + } + + @Test + public void takePicture() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final String value = "myString"; + when(instance.takePicture()).thenReturn(value); + + assertEquals(value, api.takePicture(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); + } + +} +*/ /** * The resolution strategy defines the resolution selection sequence to select * the best size. @@ -3714,6 +5836,108 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionStrategy; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionStrategy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionStrategyProxyApi extends PigeonApiResolutionStrategy { + ResolutionStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionStrategy pigeon_defaultConstructor(@NonNull android.util.Size boundSize, @NonNull ResolutionStrategyFallbackRule fallbackRule) { + return ResolutionStrategy(boundSize, fallbackRule); + } + + @NonNull + @Override + public androidx.camera.core.resolutionselector.ResolutionStrategy highestAvailableStrategy() { + return ResolutionStrategy.getHighestAvailableStrategy(); + } + + @Nullable + @Override + public android.util.Size? getBoundSize(ResolutionStrategy pigeon_instance) { + return pigeon_instance.getBoundSize(); + } + + @NonNull + @Override + public ResolutionStrategyFallbackRule getFallbackRule(ResolutionStrategy pigeon_instance) { + return pigeon_instance.getFallbackRule(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.ResolutionStrategy +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionStrategyProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + assertTrue(api.pigeon_defaultConstructor(mock(CameraSize.class), io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER) instanceof ResolutionStrategyProxyApi.ResolutionStrategy); + } + + @Test + public void getBoundSize() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + final ResolutionStrategy instance = mock(ResolutionStrategy.class); + final android.util.Size value = mock(CameraSize.class); + when(instance.getBoundSize()).thenReturn(value); + + assertEquals(value, api.getBoundSize(instance )); + } + + @Test + public void getFallbackRule() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + final ResolutionStrategy instance = mock(ResolutionStrategy.class); + final ResolutionStrategyFallbackRule value = io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER; + when(instance.getFallbackRule()).thenReturn(value); + + assertEquals(value, api.getFallbackRule(instance )); + } + +} +*/ /** * A set of requirements and priorities used to select a resolution for the * `UseCase`. @@ -3815,6 +6039,123 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.resolutionselector.AspectRatioStrategy; +import androidx.camera.core.resolutionselector.ResolutionFilter; +import androidx.camera.core.resolutionselector.ResolutionStrategy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionSelector}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { + ResolutionSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionSelector pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter, @Nullable androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy, @Nullable androidx.camera.core.resolutionselector.AspectRatioStrategy? aspectRatioStrategy) { + return ResolutionSelector(aspectRatioStrategy); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter(ResolutionSelector pigeon_instance) { + return pigeon_instance.getResolutionFilter(); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy(ResolutionSelector pigeon_instance) { + return pigeon_instance.getResolutionStrategy(); + } + + @NonNull + @Override + public androidx.camera.core.resolutionselector.AspectRatioStrategy getAspectRatioStrategy(ResolutionSelector pigeon_instance) { + return pigeon_instance.getAspectRatioStrategy(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.ResolutionSelector +import androidx.camera.core.resolutionselector.AspectRatioStrategy +import androidx.camera.core.resolutionselector.ResolutionFilter +import androidx.camera.core.resolutionselector.ResolutionStrategy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionSelectorProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); + } + + @Test + public void resolutionFilter() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionSelector instance = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.ResolutionFilter value = mock(ResolutionFilter.class); + when(instance.getResolutionFilter()).thenReturn(value); + + assertEquals(value, api.resolutionFilter(instance)); + } + + @Test + public void resolutionStrategy() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionSelector instance = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.ResolutionStrategy value = mock(ResolutionStrategy.class); + when(instance.getResolutionStrategy()).thenReturn(value); + + assertEquals(value, api.resolutionStrategy(instance)); + } + + @Test + public void getAspectRatioStrategy() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionSelector instance = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.AspectRatioStrategy value = mock(AspectRatioStrategy.class); + when(instance.getAspectRatioStrategy()).thenReturn(value); + + assertEquals(value, api.getAspectRatioStrategy(instance )); + } + +} +*/ /** * The aspect ratio strategy defines the sequence of aspect ratios that are * used to select the best size for a particular image. @@ -3978,6 +6319,112 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.AspectRatioStrategy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link AspectRatioStrategy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class AspectRatioStrategyProxyApi extends PigeonApiAspectRatioStrategy { + AspectRatioStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public AspectRatioStrategy pigeon_defaultConstructor(@NonNull AspectRatio preferredAspectRatio, @NonNull AspectRatioStrategyFallbackRule fallbackRule) { + return AspectRatioStrategy(preferredAspectRatio, fallbackRule); + } + + @NonNull + @Override + public androidx.camera.core.resolutionselector.AspectRatioStrategy ratio_16_9FallbackAutoStrategy() { + return AspectRatioStrategy.getRatio_16_9FallbackAutoStrategy(); + } + + @NonNull + @Override + public androidx.camera.core.resolutionselector.AspectRatioStrategy ratio_4_3FallbackAutoStrategy() { + return AspectRatioStrategy.getRatio_4_3FallbackAutoStrategy(); + } + + @NonNull + @Override + public AspectRatioStrategyFallbackRule getFallbackRule(AspectRatioStrategy pigeon_instance) { + return pigeon_instance.getFallbackRule(); + } + + @NonNull + @Override + public AspectRatio getPreferredAspectRatio(AspectRatioStrategy pigeon_instance) { + return pigeon_instance.getPreferredAspectRatio(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.AspectRatioStrategy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class AspectRatioStrategyProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + + assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO) instanceof AspectRatioStrategyProxyApi.AspectRatioStrategy); + } + + @Test + public void getFallbackRule() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + + final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); + final AspectRatioStrategyFallbackRule value = io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO; + when(instance.getFallbackRule()).thenReturn(value); + + assertEquals(value, api.getFallbackRule(instance )); + } + + @Test + public void getPreferredAspectRatio() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + + final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); + final AspectRatio value = io.flutter.plugins.camerax.AspectRatio.RATIO16TO9; + when(instance.getPreferredAspectRatio()).thenReturn(value); + + assertEquals(value, api.getPreferredAspectRatio(instance )); + } + +} +*/ /** * Represents the different states the camera can be in. * @@ -4024,6 +6471,96 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState; +import androidx.camera.core.CameraState.StateError; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraState}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraStateProxyApi extends PigeonApiCameraState { + CameraStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraStateType type(CameraState pigeon_instance) { + switch (pigeon_instance.type) { + case CameraStateType.CLOSED: return io.flutter.plugins.camerax.CameraStateType.CLOSED; + case CameraStateType.CLOSING: return io.flutter.plugins.camerax.CameraStateType.CLOSING; + case CameraStateType.OPEN: return io.flutter.plugins.camerax.CameraStateType.OPEN; + case CameraStateType.OPENING: return io.flutter.plugins.camerax.CameraStateType.OPENING; + case CameraStateType.PENDING_OPEN: return io.flutter.plugins.camerax.CameraStateType.PENDING_OPEN; + default: return io.flutter.plugins.camerax.CameraStateType.UNKNOWN; + } + } + + @Nullable + @Override + public androidx.camera.core.CameraState.StateError? error(CameraState pigeon_instance) { + return pigeon_instance.getError(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraState +import androidx.camera.core.CameraState.StateError +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraStateProxyApiTest { + @Test + public void type() { + final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); + + final CameraState instance = mock(CameraState.class); + final CameraStateType value = io.flutter.plugins.camerax.CameraStateType.CLOSED; + when(instance.getType()).thenReturn(value); + + assertEquals(value, api.type(instance)); + } + + @Test + public void error() { + final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); + + final CameraState instance = mock(CameraState.class); + final androidx.camera.core.CameraState.StateError value = mock(CameraStateStateError.class); + when(instance.getError()).thenReturn(value); + + assertEquals(value, api.error(instance)); + } + +} +*/ /** * An interface which contains the camera exposure related information. * @@ -4073,6 +6610,89 @@ abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ExposureState; +import android.util.Range<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ExposureState}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ExposureStateProxyApi extends PigeonApiExposureState { + ExposureStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public android.util.Range<*> exposureCompensationRange(ExposureState pigeon_instance) { + return pigeon_instance.getExposureCompensationRange(); + } + + @NonNull + @Override + public Double exposureCompensationStep(ExposureState pigeon_instance) { + return pigeon_instance.getExposureCompensationStep(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ExposureState +import android.util.Range<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ExposureStateProxyApiTest { + @Test + public void exposureCompensationRange() { + final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); + + final ExposureState instance = mock(ExposureState.class); + final android.util.Range<*> value = mock(CameraIntegerRange.class); + when(instance.getExposureCompensationRange()).thenReturn(value); + + assertEquals(value, api.exposureCompensationRange(instance)); + } + + @Test + public void exposureCompensationStep() { + final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); + + final ExposureState instance = mock(ExposureState.class); + final Double value = 1.0; + when(instance.getExposureCompensationStep()).thenReturn(value); + + assertEquals(value, api.exposureCompensationStep(instance)); + } + +} +*/ /** * An interface which contains the zoom related information from a camera. * @@ -4119,6 +6739,87 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ZoomState; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ZoomState}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ZoomStateProxyApi extends PigeonApiZoomState { + ZoomStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Double minZoomRatio(ZoomState pigeon_instance) { + return pigeon_instance.getMinZoomRatio(); + } + + @NonNull + @Override + public Double maxZoomRatio(ZoomState pigeon_instance) { + return pigeon_instance.getMaxZoomRatio(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ZoomState +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ZoomStateProxyApiTest { + @Test + public void minZoomRatio() { + final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); + + final ZoomState instance = mock(ZoomState.class); + final Double value = 1.0; + when(instance.getMinZoomRatio()).thenReturn(value); + + assertEquals(value, api.minZoomRatio(instance)); + } + + @Test + public void maxZoomRatio() { + final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); + + final ZoomState instance = mock(ZoomState.class); + final Double value = 1.0; + when(instance.getMaxZoomRatio()).thenReturn(value); + + assertEquals(value, api.maxZoomRatio(instance)); + } + +} +*/ /** * A use case providing CPU accessible images for an app to perform image * analysis on. @@ -4223,45 +6924,173 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } - @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit) -{ - if (pigeonRegistrar.ignoreCallsToDart) { - callback( - Result.failure( - CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } + } + + @Suppress("FunctionName") + /** An implementation of [PigeonApiUseCase] used to access callback methods */ + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { + return pigeonRegistrar.getPigeonApiUseCase() + } + +} + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageAnalysis; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.ImageAnalysis.Analyzer; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ImageAnalysis}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { + ImageAnalysisProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ImageAnalysis pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation) { + return ImageAnalysis(targetRotation); + } + + @Nullable + @Override + public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(ImageAnalysis pigeon_instance) { + return pigeon_instance.getResolutionSelector(); + } + + @Override + public Void setAnalyzer(ImageAnalysis, pigeon_instance@NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) { + pigeon_instance.setAnalyzer(analyzer); + } + + @Override + public Void clearAnalyzer(ImageAnalysis pigeon_instance) { + pigeon_instance.clearAnalyzer(); + } + + @Override + public Void setTargetRotation(ImageAnalysis, pigeon_instance@NonNull Long rotation) { + pigeon_instance.setTargetRotation(rotation); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageAnalysis +import androidx.camera.core.resolutionselector.ResolutionSelector +import androidx.camera.core.ImageAnalysis.Analyzer +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageAnalysisProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + assertTrue(api.pigeon_defaultConstructor(0) instanceof ImageAnalysisProxyApi.ImageAnalysis); + } + + @Test + public void resolutionSelector() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); } - @Suppress("FunctionName") - /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { - return pigeonRegistrar.getPigeonApiUseCase() + @Test + public void setAnalyzer() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); + api.setAnalyzer(instance, analyzer); + + verify(instance).setAnalyzer(analyzer); + } + + @Test + public void clearAnalyzer() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + api.clearAnalyzer(instance ); + + verify(instance).clearAnalyzer(); + } + + @Test + public void setTargetRotation() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final Long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(rotation); } } +*/ /** * Interface for analyzing images. * @@ -4340,6 +7169,91 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageAnalysis.Analyzer; +import androidx.camera.core.ImageProxy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Analyzer}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class AnalyzerProxyApi extends PigeonApiAnalyzer { + AnalyzerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + /** Implementation of {@link Analyzer} that passes arguments of callback methods to Dart. */ + static class AnalyzerImpl extends Analyzer { + private final AnalyzerProxyApi api; + AnalyzerImpl(@NonNull AnalyzerProxyApi api) { + this.api = api; + } + @Override + public void analyze(@NonNull androidx.camera.core.ImageProxy image) { + api.getPigeonRegistrar().runOnMainThread(() -> api.analyze(this, image, reply -> null)); + } + } + + @NonNull + @Override + public Analyzer pigeon_defaultConstructor() { + return AnalyzerImpl(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageAnalysis.Analyzer +import androidx.camera.core.ImageProxy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class AnalyzerProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiAnalyzer api = new TestProxyApiRegistrar().getPigeonApiAnalyzer(); + + assertTrue(api.pigeon_defaultConstructor() instanceof AnalyzerProxyApi.AnalyzerImpl); + } + + @Test + public void analyze() { + final AnalyzerProxyApi mockApi = mock(AnalyzerProxyApi.class); + when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); + + final AnalyzerImpl instance = new AnalyzerImpl(mockApi); + final androidx.camera.core.ImageProxy image = mock(ImageProxy.class); + instance.analyze(image); + + verify(mockApi).analyze(eq(instance), eq(image), any()); + } + +} +*/ /** * Error that the camera has encountered. * @@ -4382,6 +7296,79 @@ abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXL } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState.StateError; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraStateStateError}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraStateStateErrorProxyApi extends PigeonApiCameraStateStateError { + CameraStateStateErrorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CameraStateErrorCode code(CameraStateStateError pigeon_instance) { + switch (pigeon_instance.code) { + case CameraStateErrorCode.CAMERA_DISABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; + case CameraStateErrorCode.CAMERA_FATAL_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_FATAL_ERROR; + case CameraStateErrorCode.CAMERA_IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_IN_USE; + case CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED; + case CameraStateErrorCode.MAX_CAMERAS_IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.MAX_CAMERAS_IN_USE; + case CameraStateErrorCode.OTHER_RECOVERABLE_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.OTHER_RECOVERABLE_ERROR; + case CameraStateErrorCode.STREAM_CONFIG: return io.flutter.plugins.camerax.CameraStateErrorCode.STREAM_CONFIG; + default: return io.flutter.plugins.camerax.CameraStateErrorCode.UNKNOWN; + } + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraState.StateError +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraStateStateErrorProxyApiTest { + @Test + public void code() { + final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); + + final CameraStateStateError instance = mock(CameraStateStateError.class); + final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; + when(instance.getCode()).thenReturn(value); + + assertEquals(value, api.code(instance)); + } + +} +*/ /** * LiveData is a data holder class that can be observed within a given * lifecycle. @@ -4501,6 +7488,124 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; +import androidx.lifecycle.Observer<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link LiveData}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class LiveDataProxyApi extends PigeonApiLiveData { + LiveDataProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public LiveDataSupportedType type(LiveData pigeon_instance) { + switch (pigeon_instance.type) { + case LiveDataSupportedType.CAMERA_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + case LiveDataSupportedType.ZOOM_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.ZOOM_STATE; + default: return io.flutter.plugins.camerax.LiveDataSupportedType.UNKNOWN; + } + } + + @Override + public Void observe(LiveData, pigeon_instance@NonNull androidx.lifecycle.Observer<*> observer) { + pigeon_instance.observe(observer); + } + + @Override + public Void removeObservers(LiveData pigeon_instance) { + pigeon_instance.removeObservers(); + } + + @Nullable + @Override + public Any? getValue(LiveData pigeon_instance) { + return pigeon_instance.getValue(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper +import androidx.lifecycle.Observer<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class LiveDataProxyApiTest { + @Test + public void type() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + when(instance.getType()).thenReturn(value); + + assertEquals(value, api.type(instance)); + } + + @Test + public void observe() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + final androidx.lifecycle.Observer<*> observer = mock(Observer.class); + api.observe(instance, observer); + + verify(instance).observe(observer); + } + + @Test + public void removeObservers() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + api.removeObservers(instance ); + + verify(instance).removeObservers(); + } + + @Test + public void getValue() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData instance = mock(LiveData.class); + final Any value = -1; + when(instance.getValue()).thenReturn(value); + + assertEquals(value, api.getValue(instance )); + } + +} +*/ /** * An image proxy which has a similar interface as `android.media.Image`. * @@ -4599,6 +7704,138 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageProxy; +import androidx.camera.core.ImageProxy.PlaneProxy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ImageProxy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ImageProxyProxyApi extends PigeonApiImageProxy { + ImageProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Long format(ImageProxy pigeon_instance) { + return pigeon_instance.getFormat(); + } + + @NonNull + @Override + public Long width(ImageProxy pigeon_instance) { + return pigeon_instance.getWidth(); + } + + @NonNull + @Override + public Long height(ImageProxy pigeon_instance) { + return pigeon_instance.getHeight(); + } + + @NonNull + @Override + public List getPlanes(ImageProxy pigeon_instance) { + return pigeon_instance.getPlanes(); + } + + @Override + public Void close(ImageProxy pigeon_instance) { + pigeon_instance.close(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageProxy +import androidx.camera.core.ImageProxy.PlaneProxy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageProxyProxyApiTest { + @Test + public void format() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final Long value = 0; + when(instance.getFormat()).thenReturn(value); + + assertEquals(value, api.format(instance)); + } + + @Test + public void width() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final Long value = 0; + when(instance.getWidth()).thenReturn(value); + + assertEquals(value, api.width(instance)); + } + + @Test + public void height() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final Long value = 0; + when(instance.getHeight()).thenReturn(value); + + assertEquals(value, api.height(instance)); + } + + @Test + public void getPlanes() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final List value = Arrays.asList(mock(PlaneProxy.class)); + when(instance.getPlanes()).thenReturn(value); + + assertEquals(value, api.getPlanes(instance )); + } + + @Test + public void close() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + api.close(instance ); + + verify(instance).close(); + } + +} +*/ /** * A plane proxy which has an analogous interface as * `android.media.Image.Plane`. @@ -4650,6 +7887,104 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageProxy.PlaneProxy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link PlaneProxy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class PlaneProxyProxyApi extends PigeonApiPlaneProxy { + PlaneProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ByteArray buffer(PlaneProxy pigeon_instance) { + return pigeon_instance.getBuffer(); + } + + @NonNull + @Override + public Long pixelStride(PlaneProxy pigeon_instance) { + return pigeon_instance.getPixelStride(); + } + + @NonNull + @Override + public Long rowStride(PlaneProxy pigeon_instance) { + return pigeon_instance.getRowStride(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.ImageProxy.PlaneProxy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PlaneProxyProxyApiTest { + @Test + public void buffer() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final ByteArray value = {0xA1}; + when(instance.getBuffer()).thenReturn(value); + + assertEquals(value, api.buffer(instance)); + } + + @Test + public void pixelStride() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final Long value = 0; + when(instance.getPixelStride()).thenReturn(value); + + assertEquals(value, api.pixelStride(instance)); + } + + @Test + public void rowStride() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final Long value = 0; + when(instance.getRowStride()).thenReturn(value); + + assertEquals(value, api.rowStride(instance)); + } + +} +*/ /** * Defines a desired quality setting that can be used to configure components * with quality setting requirements such as creating a Recorder. @@ -4763,6 +8098,91 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.QualitySelector; +import androidx.camera.video.FallbackStrategy; +import androidx.camera.core.CameraInfo; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link QualitySelector}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class QualitySelectorProxyApi extends PigeonApiQualitySelector { + QualitySelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public QualitySelector from(@NonNull VideoQuality quality, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { + return QualitySelector(quality, fallbackStrategy); + } + + @NonNull + @Override + public QualitySelector fromOrderedList(@NonNull List qualities, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { + return QualitySelector(qualities, fallbackStrategy); + } + + @Nullable + @Override + public android.util.Size? getResolution(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull VideoQuality quality) { + return QualitySelector.getResolution(cameraInfo, quality); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.QualitySelector +import androidx.camera.video.FallbackStrategy +import androidx.camera.core.CameraInfo +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class QualitySelectorProxyApiTest { + @Test + public void from() { + final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + assertTrue(api.from(io.flutter.plugins.camerax.VideoQuality.SD, mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); + } + + @Test + public void fromOrderedList() { + final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + assertTrue(api.fromOrderedList(Arrays.asList(io.flutter.plugins.camerax.VideoQuality.SD), mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); + } + +} +*/ /** * A class represents the strategy that will be adopted when the device does * not support all the desired Quality in QualitySelector in order to select @@ -4910,6 +8330,105 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.FallbackStrategy; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FallbackStrategy}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FallbackStrategyProxyApi extends PigeonApiFallbackStrategy { + FallbackStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public FallbackStrategy higherQualityOrLowerThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + + @NonNull + @Override + public FallbackStrategy higherQualityThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + + @NonNull + @Override + public FallbackStrategy lowerQualityOrHigherThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + + @NonNull + @Override + public FallbackStrategy lowerQualityThan(@NonNull VideoQuality quality) { + return FallbackStrategy(quality); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.video.FallbackStrategy +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FallbackStrategyProxyApiTest { + @Test + public void higherQualityOrLowerThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.higherQualityOrLowerThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + + @Test + public void higherQualityThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.higherQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + + @Test + public void lowerQualityOrHigherThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.lowerQualityOrHigherThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + + @Test + public void lowerQualityThan() { + final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + assertTrue(api.lowerQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); + } + +} +*/ /** * The CameraControl provides various asynchronous operations like zoom, focus * and metering which affects output of all UseCases currently bound to that @@ -5076,6 +8595,140 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraControl; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.FocusMeteringResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraControl}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraControlProxyApi extends PigeonApiCameraControl { + CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @Override + public Void enableTorch(CameraControl, pigeon_instance@NonNull Boolean torch) { + pigeon_instance.enableTorch(torch); + } + + @Override + public Void setZoomRatio(CameraControl, pigeon_instance@NonNull Double ratio) { + pigeon_instance.setZoomRatio(ratio); + } + + @Nullable + @Override + public androidx.camera.core.FocusMeteringResult? startFocusAndMetering(CameraControl, pigeon_instance@NonNull androidx.camera.core.FocusMeteringAction action) { + return pigeon_instance.startFocusAndMetering(action); + } + + @Override + public Void cancelFocusAndMetering(CameraControl pigeon_instance) { + pigeon_instance.cancelFocusAndMetering(); + } + + @Nullable + @Override + public Long? setExposureCompensationIndex(CameraControl, pigeon_instance@NonNull Long index) { + return pigeon_instance.setExposureCompensationIndex(index); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.CameraControl +import androidx.camera.core.FocusMeteringAction +import androidx.camera.core.FocusMeteringResult +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraControlProxyApiTest { + @Test + public void enableTorch() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final Boolean torch = true; + api.enableTorch(instance, torch); + + verify(instance).enableTorch(torch); + } + + @Test + public void setZoomRatio() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final Double ratio = 1.0; + api.setZoomRatio(instance, ratio); + + verify(instance).setZoomRatio(ratio); + } + + @Test + public void startFocusAndMetering() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final androidx.camera.core.FocusMeteringAction action = mock(FocusMeteringAction.class); + final androidx.camera.core.FocusMeteringResult value = mock(FocusMeteringResult.class); + when(instance.startFocusAndMetering(action)).thenReturn(value); + + assertEquals(value, api.startFocusAndMetering(instance, action)); + } + + @Test + public void cancelFocusAndMetering() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + api.cancelFocusAndMetering(instance ); + + verify(instance).cancelFocusAndMetering(); + } + + @Test + public void setExposureCompensationIndex() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + final Long index = 0; + final Long value = 0; + when(instance.setExposureCompensationIndex(index)).thenReturn(value); + + assertEquals(value, api.setExposureCompensationIndex(instance, index)); + } + +} +*/ /** * The builder used to create the `FocusMeteringAction`. * @@ -5255,6 +8908,148 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringAction.Builder; +import androidx.camera.core.MeteringPoint; +import androidx.camera.core.FocusMeteringAction; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FocusMeteringActionBuilder}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FocusMeteringActionBuilderProxyApi extends PigeonApiFocusMeteringActionBuilder { + FocusMeteringActionBuilderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public FocusMeteringActionBuilder pigeon_defaultConstructor(@NonNull androidx.camera.core.MeteringPoint point) { + return FocusMeteringActionBuilder(point); + } + + @NonNull + @Override + public FocusMeteringActionBuilder withMode(@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { + return FocusMeteringActionBuilder(point, mode); + } + + @Override + public Void addPoint(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point) { + pigeon_instance.addPoint(point); + } + + @Override + public Void addPointWithMode(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { + pigeon_instance.addPointWithMode(point, mode); + } + + @Override + public Void disableAutoCancel(FocusMeteringActionBuilder pigeon_instance) { + pigeon_instance.disableAutoCancel(); + } + + @NonNull + @Override + public androidx.camera.core.FocusMeteringAction build(FocusMeteringActionBuilder pigeon_instance) { + return pigeon_instance.build(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.FocusMeteringAction.Builder +import androidx.camera.core.MeteringPoint +import androidx.camera.core.FocusMeteringAction +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringActionBuilderProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + assertTrue(api.pigeon_defaultConstructor(mock(MeteringPoint.class)) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); + } + + @Test + public void withMode() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + assertTrue(api.withMode(mock(MeteringPoint.class), io.flutter.plugins.camerax.MeteringMode.AE) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); + } + + @Test + public void addPoint() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); + api.addPoint(instance, point); + + verify(instance).addPoint(point); + } + + @Test + public void addPointWithMode() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); + final MeteringMode mode = io.flutter.plugins.camerax.MeteringMode.AE; + api.addPointWithMode(instance, point, mode); + + verify(instance).addPointWithMode(point, mode); + } + + @Test + public void disableAutoCancel() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + api.disableAutoCancel(instance ); + + verify(instance).disableAutoCancel(); + } + + @Test + public void build() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); + final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); + when(instance.build()).thenReturn(value); + + assertEquals(value, api.build(instance )); + } + +} +*/ /** * A configuration used to trigger a focus and/or metering action. * @@ -5309,6 +9104,123 @@ abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLib } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.MeteringPoint; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FocusMeteringAction}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FocusMeteringActionProxyApi extends PigeonApiFocusMeteringAction { + FocusMeteringActionProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public List meteringPointsAe(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getMeteringPointsAe(); + } + + @NonNull + @Override + public List meteringPointsAf(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getMeteringPointsAf(); + } + + @NonNull + @Override + public List meteringPointsAwb(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getMeteringPointsAwb(); + } + + @NonNull + @Override + public Boolean isAutoCancelEnabled(FocusMeteringAction pigeon_instance) { + return pigeon_instance.getIsAutoCancelEnabled(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.FocusMeteringAction +import androidx.camera.core.MeteringPoint +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringActionProxyApiTest { + @Test + public void meteringPointsAe() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Arrays.asList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAe()).thenReturn(value); + + assertEquals(value, api.meteringPointsAe(instance)); + } + + @Test + public void meteringPointsAf() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Arrays.asList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAf()).thenReturn(value); + + assertEquals(value, api.meteringPointsAf(instance)); + } + + @Test + public void meteringPointsAwb() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Arrays.asList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAwb()).thenReturn(value); + + assertEquals(value, api.meteringPointsAwb(instance)); + } + + @Test + public void isAutoCancelEnabled() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final Boolean value = true; + when(instance.getIsAutoCancelEnabled()).thenReturn(value); + + assertEquals(value, api.isAutoCancelEnabled(instance)); + } + +} +*/ /** * Result of the `CameraControl.startFocusAndMetering`. * @@ -5351,6 +9263,70 @@ abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLib } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringResult; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link FocusMeteringResult}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class FocusMeteringResultProxyApi extends PigeonApiFocusMeteringResult { + FocusMeteringResultProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Boolean isFocusSuccessful(FocusMeteringResult pigeon_instance) { + return pigeon_instance.getIsFocusSuccessful(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.FocusMeteringResult +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringResultProxyApiTest { + @Test + public void isFocusSuccessful() { + final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); + + final FocusMeteringResult instance = mock(FocusMeteringResult.class); + final Boolean value = true; + when(instance.getIsFocusSuccessful()).thenReturn(value); + + assertEquals(value, api.isFocusSuccessful(instance)); + } + +} +*/ /** * An immutable package of settings and outputs needed to capture a single * image from the camera device. @@ -5425,6 +9401,61 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CaptureRequest; +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequest}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestProxyApi extends PigeonApiCaptureRequest { + CaptureRequestProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public android.hardware.camera2.CaptureRequest.Key<*> controlAELock() { + return CaptureRequest.getControlAELock(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CaptureRequest +import android.hardware.camera2.CaptureRequest.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestProxyApiTest { +} +*/ /** * A Key is used to do capture request field lookups with CaptureRequest.get or * to set fields with `CaptureRequest.Builder.set`. @@ -5464,6 +9495,53 @@ open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequestKey}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestKeyProxyApi extends PigeonApiCaptureRequestKey { + CaptureRequestKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CaptureRequest.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestKeyProxyApiTest { +} +*/ /** * A bundle of Camera2 capture request options. * @@ -5554,6 +9632,86 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.CaptureRequestOptions; +import android.hardware.camera2.CaptureRequest.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CaptureRequestOptions}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { + CaptureRequestOptionsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map, Any?> options) { + return CaptureRequestOptions(options); + } + + @Nullable + @Override + public Any? getCaptureRequestOption(CaptureRequestOptions, pigeon_instance@NonNull android.hardware.camera2.CaptureRequest.Key<*> key) { + return pigeon_instance.getCaptureRequestOption(key); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.camera2.interop.CaptureRequestOptions +import android.hardware.camera2.CaptureRequest.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestOptionsProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); + + assertTrue(api.pigeon_defaultConstructor(new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}) instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); + } + + @Test + public void getCaptureRequestOption() { + final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); + + final CaptureRequestOptions instance = mock(CaptureRequestOptions.class); + final android.hardware.camera2.CaptureRequest.Key<*> key = mock(CaptureRequestKey.class); + final Any value = -1; + when(instance.getCaptureRequestOption(key)).thenReturn(value); + + assertEquals(value, api.getCaptureRequestOption(instance, key)); + } + +} +*/ /** * An class that provides ability to interoperate with the * 1android.hardware.camera21 APIs. @@ -5648,6 +9806,86 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.Camera2CameraControl; +import androidx.camera.core.CameraControl; +import androidx.camera.camera2.interop.CaptureRequestOptions; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Camera2CameraControl}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class Camera2CameraControlProxyApi extends PigeonApiCamera2CameraControl { + Camera2CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Camera2CameraControl from(@NonNull androidx.camera.core.CameraControl cameraControl) { + return Camera2CameraControl(cameraControl); + } + + @Override + public Void addCaptureRequestOptions(Camera2CameraControl, pigeon_instance@NonNull androidx.camera.camera2.interop.CaptureRequestOptions bundle) { + pigeon_instance.addCaptureRequestOptions(bundle); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.camera2.interop.Camera2CameraControl +import androidx.camera.core.CameraControl +import androidx.camera.camera2.interop.CaptureRequestOptions +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class Camera2CameraControlProxyApiTest { + @Test + public void from() { + final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + + assertTrue(api.from(mock(CameraControl.class)) instanceof Camera2CameraControlProxyApi.Camera2CameraControl); + } + + @Test + public void addCaptureRequestOptions() { + final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + + final Camera2CameraControl instance = mock(Camera2CameraControl.class); + final androidx.camera.camera2.interop.CaptureRequestOptions bundle = mock(CaptureRequestOptions.class); + api.addCaptureRequestOptions(instance, bundle); + + verify(instance).addCaptureRequestOptions(bundle); + } + +} +*/ /** * Applications can filter out unsuitable sizes and sort the resolution list in * the preferred order by implementing the resolution filter interface. @@ -5715,6 +9953,68 @@ abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibrar } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionFilter; +import android.util.Size; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link ResolutionFilter}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class ResolutionFilterProxyApi extends PigeonApiResolutionFilter { + ResolutionFilterProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public ResolutionFilter createWithOnePreferredSize(@NonNull android.util.Size preferredSize) { + return ResolutionFilter(preferredSize); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.resolutionselector.ResolutionFilter +import android.util.Size +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionFilterProxyApiTest { + @Test + public void createWithOnePreferredSize() { + final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); + + assertTrue(api.createWithOnePreferredSize(mock(CameraSize.class)) instanceof ResolutionFilterProxyApi.ResolutionFilter); + } + +} +*/ /** * A Key is used to do camera characteristics field lookups with * `CameraCharacteristics.get`. @@ -5754,6 +10054,53 @@ open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraCharacteristicsKey}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraCharacteristicsKeyProxyApi extends PigeonApiCameraCharacteristicsKey { + CameraCharacteristicsKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CameraCharacteristics.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraCharacteristicsKeyProxyApiTest { +} +*/ /** * The properties describing a `CameraDevice`. * @@ -5854,6 +10201,67 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link CameraCharacteristics}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class CameraCharacteristicsProxyApi extends PigeonApiCameraCharacteristics { + CameraCharacteristicsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public android.hardware.camera2.CameraCharacteristics.Key<*> infoSupportedHardwareLevel() { + return CameraCharacteristics.getInfoSupportedHardwareLevel(); + } + + @NonNull + @Override + public android.hardware.camera2.CameraCharacteristics.Key<*> sensorOrientation() { + return CameraCharacteristics.getSensorOrientation(); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import android.hardware.camera2.CameraCharacteristics +import android.hardware.camera2.CameraCharacteristics.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraCharacteristicsProxyApiTest { +} +*/ /** * An interface for retrieving Camera2-related camera information. * @@ -5962,6 +10370,105 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.Camera2CameraInfo; +import androidx.camera.core.CameraInfo; +import android.hardware.camera2.CameraCharacteristics.Key<*>; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link Camera2CameraInfo}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class Camera2CameraInfoProxyApi extends PigeonApiCamera2CameraInfo { + Camera2CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public Camera2CameraInfo from(@NonNull androidx.camera.core.CameraInfo cameraInfo) { + return Camera2CameraInfo(cameraInfo); + } + + @NonNull + @Override + public String getCameraId(Camera2CameraInfo pigeon_instance) { + return pigeon_instance.getCameraId(); + } + + @Nullable + @Override + public Any? getCameraCharacteristic(Camera2CameraInfo, pigeon_instance@NonNull android.hardware.camera2.CameraCharacteristics.Key<*> key) { + return pigeon_instance.getCameraCharacteristic(key); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.camera2.interop.Camera2CameraInfo +import androidx.camera.core.CameraInfo +import android.hardware.camera2.CameraCharacteristics.Key<*> +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class Camera2CameraInfoProxyApiTest { + @Test + public void from() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + assertTrue(api.from(mock(CameraInfo.class)) instanceof Camera2CameraInfoProxyApi.Camera2CameraInfo); + } + + @Test + public void getCameraId() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); + final String value = "myString"; + when(instance.getCameraId()).thenReturn(value); + + assertEquals(value, api.getCameraId(instance )); + } + + @Test + public void getCameraCharacteristic() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); + final android.hardware.camera2.CameraCharacteristics.Key<*> key = mock(CameraCharacteristicsKey.class); + final Any value = -1; + when(instance.getCameraCharacteristic(key)).thenReturn(value); + + assertEquals(value, api.getCameraCharacteristic(instance, key)); + } + +} +*/ /** * A factory to create a MeteringPoint. * @@ -6052,6 +10559,94 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.MeteringPointFactory; +import androidx.camera.core.MeteringPoint; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link MeteringPointFactory}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class MeteringPointFactoryProxyApi extends PigeonApiMeteringPointFactory { + MeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public androidx.camera.core.MeteringPoint createPoint(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y) { + return pigeon_instance.createPoint(x, y); + } + + @NonNull + @Override + public androidx.camera.core.MeteringPoint createPointWithSize(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y, @NonNull Double size) { + return pigeon_instance.createPointWithSize(x, y, size); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.MeteringPointFactory +import androidx.camera.core.MeteringPoint +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MeteringPointFactoryProxyApiTest { + @Test + public void createPoint() { + final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + + final MeteringPointFactory instance = mock(MeteringPointFactory.class); + final Double x = 1.0; + final Double y = 1.0; + final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); + when(instance.createPoint(x, y)).thenReturn(value); + + assertEquals(value, api.createPoint(instance, x, y)); + } + + @Test + public void createPointWithSize() { + final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + + final MeteringPointFactory instance = mock(MeteringPointFactory.class); + final Double x = 1.0; + final Double y = 1.0; + final Double size = 1.0; + final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); + when(instance.createPointWithSize(x, y, size)).thenReturn(value); + + assertEquals(value, api.createPointWithSize(instance, x, y, size)); + } + +} +*/ /** * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint * which can then be used to construct a FocusMeteringAction to start a focus @@ -6134,3 +10729,65 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis } } + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.DisplayOrientedMeteringPointFactory; +import androidx.camera.core.CameraInfo; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +/** + * ProxyApi implementation for {@link DisplayOrientedMeteringPointFactory}. + * This class may handle instantiating native object instances that are attached to a Dart + * instance or handle method calls on the associated native class or an instance of that class. + */ +class DisplayOrientedMeteringPointFactoryProxyApi extends PigeonApiDisplayOrientedMeteringPointFactory { + DisplayOrientedMeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public DisplayOrientedMeteringPointFactory pigeon_defaultConstructor(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull Double width, @NonNull Double height) { + return DisplayOrientedMeteringPointFactory(cameraInfo, width, height); + } + +} +*/ + +/* +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax + +import androidx.camera.core.DisplayOrientedMeteringPointFactory +import androidx.camera.core.CameraInfo +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class DisplayOrientedMeteringPointFactoryProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiDisplayOrientedMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiDisplayOrientedMeteringPointFactory(); + + assertTrue(api.pigeon_defaultConstructor(mock(CameraInfo.class), 1.0, 1.0) instanceof DisplayOrientedMeteringPointFactoryProxyApi.DisplayOrientedMeteringPointFactory); + } + +} +*/ diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java index 1366315e326..3f32458da7f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java @@ -6,7 +6,6 @@ import androidx.camera.core.ImageProxy; import org.junit.Test; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; @@ -33,5 +32,4 @@ public void analyze() { verify(mockApi).analyze(eq(instance), eq(image), any()); } - } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApiTest.java deleted file mode 100644 index ba6dd0bf516..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApiTest.java +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.AspectRatioStrategy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class AspectRatioStrategyProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - - assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO) instanceof AspectRatioStrategyProxyApi.AspectRatioStrategy); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java index 02e757dc39f..f57af5476aa 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java @@ -4,48 +4,46 @@ package io.flutter.plugins.camerax; -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.when; - import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; public class AspectRatioStrategyTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock public AspectRatioStrategy mockAspectRatioStrategy; - @Mock public AspectRatioStrategyHostApiImpl.AspectRatioStrategyProxy mockProxy; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } + @Test + public void pigeon_defaultConstructor() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); + final AspectRatioStrategy instance = api.pigeon_defaultConstructor(io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO); + assertEquals(instance.getPreferredAspectRatio(), androidx.camera.core.AspectRatio.RATIO_16_9); + assertEquals(instance.getFallbackRule(), AspectRatioStrategy.FALLBACK_RULE_AUTO); } @Test - public void hostApiCreate_createsExpectedAspectRatioStrategyInstance() { - final Long preferredAspectRatio = 0L; - final Long fallbackRule = 1L; + public void getFallbackRule() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + + final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); + final AspectRatioStrategyFallbackRule value = io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO; + when(instance.getFallbackRule()).thenReturn(AspectRatioStrategy.FALLBACK_RULE_AUTO); - when(mockProxy.create(preferredAspectRatio, fallbackRule)).thenReturn(mockAspectRatioStrategy); + assertEquals(value, api.getFallbackRule(instance)); + } - final AspectRatioStrategyHostApiImpl hostApi = - new AspectRatioStrategyHostApiImpl(instanceManager, mockProxy); + @Test + public void getPreferredAspectRatio() { + final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - final long instanceIdentifier = 0; - hostApi.create(instanceIdentifier, preferredAspectRatio, fallbackRule); + final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); + final AspectRatio value = io.flutter.plugins.camerax.AspectRatio.RATIO16TO9; + when(instance.getPreferredAspectRatio()).thenReturn(androidx.camera.core.AspectRatio.RATIO_16_9); - assertEquals(instanceManager.getInstance(instanceIdentifier), mockAspectRatioStrategy); + assertEquals(value, api.getPreferredAspectRatio(instance )); } + } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java index 545f365dd45..22b5f23857f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java @@ -2,39 +2,31 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -package io.flutter.plugins.camerax +package io.flutter.plugins.camerax; -import androidx.camera.camera2.interop.Camera2CameraControl -import androidx.camera.core.CameraControl -import androidx.camera.camera2.interop.CaptureRequestOptions +import androidx.camera.camera2.interop.Camera2CameraControl; +import androidx.camera.core.CameraControl; +import androidx.camera.camera2.interop.CaptureRequestOptions; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.mockito.Mockito; -import org.mockito.Mockito.any; +import static org.mockito.Mockito.any; import java.util.HashMap; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; +import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; public class Camera2CameraControlProxyApiTest { - @Test - public void from() { - final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); - - assertTrue(api.from(mock(CameraControl.class)) instanceof Camera2CameraControlProxyApi.Camera2CameraControl); - } - @Test public void addCaptureRequestOptions() { final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); final Camera2CameraControl instance = mock(Camera2CameraControl.class); final androidx.camera.camera2.interop.CaptureRequestOptions bundle = mock(CaptureRequestOptions.class); - api.addCaptureRequestOptions(instance, bundle); + api.addCaptureRequestOptions(instance, bundle, null); verify(instance).addCaptureRequestOptions(bundle); } - } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java index bec9d9a22a7..f4abfa1b089 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java @@ -1,130 +1,130 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import androidx.camera.camera2.interop.Camera2CameraControl; -import androidx.camera.camera2.interop.CaptureRequestOptions; -import androidx.camera.core.CameraControl; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.mockito.stubbing.Answer; - -public class Camera2CameraControlTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public Camera2CameraControl mockCamera2CameraControl; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void create_createsInstanceFromCameraControlInstance() { - final Camera2CameraControlHostApiImpl hostApi = - new Camera2CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); - final long instanceIdentifier = 40; - final CameraControl mockCameraControl = mock(CameraControl.class); - final long cameraControlIdentifier = 29; - - testInstanceManager.addDartCreatedInstance(mockCameraControl, cameraControlIdentifier); - try (MockedStatic mockedCamera2CameraControl = - Mockito.mockStatic(Camera2CameraControl.class)) { - mockedCamera2CameraControl - .when(() -> Camera2CameraControl.from(mockCameraControl)) - .thenAnswer((Answer) invocation -> mockCamera2CameraControl); - - hostApi.create(instanceIdentifier, cameraControlIdentifier); - assertEquals(testInstanceManager.getInstance(instanceIdentifier), mockCamera2CameraControl); - } - } - - @Test - public void addCaptureRequestOptions_respondsAsExpectedToSuccessfulAndFailedAttempts() { - final Camera2CameraControlHostApiImpl hostApi = - new Camera2CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); - final long instanceIdentifier = 0; - - final CaptureRequestOptions mockCaptureRequestOptions = mock(CaptureRequestOptions.class); - final long captureRequestOptionsIdentifier = 8; - - testInstanceManager.addDartCreatedInstance(mockCamera2CameraControl, instanceIdentifier); - testInstanceManager.addDartCreatedInstance( - mockCaptureRequestOptions, captureRequestOptionsIdentifier); - - try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { - @SuppressWarnings("unchecked") - final ListenableFuture addCaptureRequestOptionsFuture = mock(ListenableFuture.class); - - when(mockCamera2CameraControl.addCaptureRequestOptions(mockCaptureRequestOptions)) - .thenReturn(addCaptureRequestOptionsFuture); - - @SuppressWarnings("unchecked") - final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); - - // Test successfully adding capture request options. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result successfulMockResult = - mock(GeneratedCameraXLibrary.Result.class); - - hostApi.addCaptureRequestOptions( - instanceIdentifier, captureRequestOptionsIdentifier, successfulMockResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback successfulCallback = futureCallbackCaptor.getValue(); - - successfulCallback.onSuccess(mock(Void.class)); - verify(successfulMockResult).success(null); - - // Test failed attempt to add capture request options. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result failedMockResult = - mock(GeneratedCameraXLibrary.Result.class); - final Throwable testThrowable = new Throwable(); - hostApi.addCaptureRequestOptions( - instanceIdentifier, captureRequestOptionsIdentifier, failedMockResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); - - FutureCallback failedCallback = futureCallbackCaptor.getValue(); - - failedCallback.onFailure(testThrowable); - verify(failedMockResult).error(testThrowable); - } - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.content.Context; +//import androidx.camera.camera2.interop.Camera2CameraControl; +//import androidx.camera.camera2.interop.CaptureRequestOptions; +//import androidx.camera.core.CameraControl; +//import com.google.common.util.concurrent.FutureCallback; +//import com.google.common.util.concurrent.Futures; +//import com.google.common.util.concurrent.ListenableFuture; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.ArgumentCaptor; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +//import org.mockito.Mockito; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.mockito.stubbing.Answer; +// +//public class Camera2CameraControlTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public Camera2CameraControl mockCamera2CameraControl; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void create_createsInstanceFromCameraControlInstance() { +// final Camera2CameraControlHostApiImpl hostApi = +// new Camera2CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); +// final long instanceIdentifier = 40; +// final CameraControl mockCameraControl = mock(CameraControl.class); +// final long cameraControlIdentifier = 29; +// +// testInstanceManager.addDartCreatedInstance(mockCameraControl, cameraControlIdentifier); +// try (MockedStatic mockedCamera2CameraControl = +// Mockito.mockStatic(Camera2CameraControl.class)) { +// mockedCamera2CameraControl +// .when(() -> Camera2CameraControl.from(mockCameraControl)) +// .thenAnswer((Answer) invocation -> mockCamera2CameraControl); +// +// hostApi.create(instanceIdentifier, cameraControlIdentifier); +// assertEquals(testInstanceManager.getInstance(instanceIdentifier), mockCamera2CameraControl); +// } +// } +// +// @Test +// public void addCaptureRequestOptions_respondsAsExpectedToSuccessfulAndFailedAttempts() { +// final Camera2CameraControlHostApiImpl hostApi = +// new Camera2CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); +// final long instanceIdentifier = 0; +// +// final CaptureRequestOptions mockCaptureRequestOptions = mock(CaptureRequestOptions.class); +// final long captureRequestOptionsIdentifier = 8; +// +// testInstanceManager.addDartCreatedInstance(mockCamera2CameraControl, instanceIdentifier); +// testInstanceManager.addDartCreatedInstance( +// mockCaptureRequestOptions, captureRequestOptionsIdentifier); +// +// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { +// @SuppressWarnings("unchecked") +// final ListenableFuture addCaptureRequestOptionsFuture = mock(ListenableFuture.class); +// +// when(mockCamera2CameraControl.addCaptureRequestOptions(mockCaptureRequestOptions)) +// .thenReturn(addCaptureRequestOptionsFuture); +// +// @SuppressWarnings("unchecked") +// final ArgumentCaptor> futureCallbackCaptor = +// ArgumentCaptor.forClass(FutureCallback.class); +// +// // Test successfully adding capture request options. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result successfulMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// +// hostApi.addCaptureRequestOptions( +// instanceIdentifier, captureRequestOptionsIdentifier, successfulMockResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback successfulCallback = futureCallbackCaptor.getValue(); +// +// successfulCallback.onSuccess(mock(Void.class)); +// verify(successfulMockResult).success(null); +// +// // Test failed attempt to add capture request options. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result failedMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final Throwable testThrowable = new Throwable(); +// hostApi.addCaptureRequestOptions( +// instanceIdentifier, captureRequestOptionsIdentifier, failedMockResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); +// +// FutureCallback failedCallback = futureCallbackCaptor.getValue(); +// +// failedCallback.onFailure(testThrowable); +// verify(failedMockResult).error(testThrowable); +// } +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java index 956866125fa..eed42533c26 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java @@ -1,52 +1,52 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.camera2.interop.Camera2CameraInfo -import androidx.camera.core.CameraInfo -import android.hardware.camera2.CameraCharacteristics.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class Camera2CameraInfoProxyApiTest { - @Test - public void from() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - assertTrue(api.from(mock(CameraInfo.class)) instanceof Camera2CameraInfoProxyApi.Camera2CameraInfo); - } - - @Test - public void getCameraId() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); - final String value = "myString"; - when(instance.getCameraId()).thenReturn(value); - - assertEquals(value, api.getCameraId(instance )); - } - - @Test - public void getCameraCharacteristic() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); - final android.hardware.camera2.CameraCharacteristics.Key<*> key = mock(CameraCharacteristicsKey.class); - final Any value = -1; - when(instance.getCameraCharacteristic(key)).thenReturn(value); - - assertEquals(value, api.getCameraCharacteristic(instance, key)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.camera2.interop.Camera2CameraInfo +//import androidx.camera.core.CameraInfo +//import android.hardware.camera2.CameraCharacteristics.Key<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class Camera2CameraInfoProxyApiTest { +// @Test +// public void from() { +// final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); +// +// assertTrue(api.from(mock(CameraInfo.class)) instanceof Camera2CameraInfoProxyApi.Camera2CameraInfo); +// } +// +// @Test +// public void getCameraId() { +// final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); +// +// final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); +// final String value = "myString"; +// when(instance.getCameraId()).thenReturn(value); +// +// assertEquals(value, api.getCameraId(instance )); +// } +// +// @Test +// public void getCameraCharacteristic() { +// final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); +// +// final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); +// final android.hardware.camera2.CameraCharacteristics.Key<*> key = mock(CameraCharacteristicsKey.class); +// final Any value = -1; +// when(instance.getCameraCharacteristic(key)).thenReturn(value); +// +// assertEquals(value, api.getCameraCharacteristic(instance, key)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java index a5ab10ff79b..779db9d839b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java @@ -1,114 +1,114 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.hardware.camera2.CameraCharacteristics; -import android.hardware.camera2.CameraMetadata; -import androidx.camera.camera2.interop.Camera2CameraInfo; -import androidx.camera.core.CameraInfo; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.mockito.stubbing.Answer; - -public class Camera2CameraInfoTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public Camera2CameraInfo mockCamera2CameraInfo; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void createFrom_createsInstanceFromCameraInfoInstance() { - final Camera2CameraInfoHostApiImpl hostApi = - new Camera2CameraInfoHostApiImpl(mock(BinaryMessenger.class), testInstanceManager); - final long camera2CameraInfoIdentifier = 60; - final CameraInfo mockCameraInfo = mock(CameraInfo.class); - final long cameraInfoIdentifier = 92; - - testInstanceManager.addDartCreatedInstance(mockCameraInfo, cameraInfoIdentifier); - testInstanceManager.addDartCreatedInstance(mockCamera2CameraInfo, camera2CameraInfoIdentifier); - - try (MockedStatic mockedCamera2CameraInfo = - Mockito.mockStatic(Camera2CameraInfo.class)) { - mockedCamera2CameraInfo - .when(() -> Camera2CameraInfo.from(mockCameraInfo)) - .thenAnswer((Answer) invocation -> mockCamera2CameraInfo); - - hostApi.createFrom(cameraInfoIdentifier); - assertEquals( - testInstanceManager.getInstance(camera2CameraInfoIdentifier), mockCamera2CameraInfo); - } - } - - @Test - public void getSupportedHardwareLevel_returnsExpectedLevel() { - final Camera2CameraInfoHostApiImpl hostApi = - new Camera2CameraInfoHostApiImpl(mock(BinaryMessenger.class), testInstanceManager); - final long camera2CameraInfoIdentifier = 3; - final int expectedHardwareLevel = CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_FULL; - - testInstanceManager.addDartCreatedInstance(mockCamera2CameraInfo, camera2CameraInfoIdentifier); - when(mockCamera2CameraInfo.getCameraCharacteristic( - CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)) - .thenReturn(expectedHardwareLevel); - - assertEquals( - expectedHardwareLevel, - hostApi.getSupportedHardwareLevel(camera2CameraInfoIdentifier).intValue()); - } - - @Test - public void getCameraId_returnsExpectedId() { - final Camera2CameraInfoHostApiImpl hostApi = - new Camera2CameraInfoHostApiImpl(mock(BinaryMessenger.class), testInstanceManager); - final long camera2CameraInfoIdentifier = 13; - final String expectedCameraId = "testCameraId"; - - testInstanceManager.addDartCreatedInstance(mockCamera2CameraInfo, camera2CameraInfoIdentifier); - when(mockCamera2CameraInfo.getCameraId()).thenReturn(expectedCameraId); - - assertEquals(expectedCameraId, hostApi.getCameraId(camera2CameraInfoIdentifier)); - } - - @Test - public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { - final Camera2CameraInfoFlutterApiImpl spyFlutterApi = - spy(new Camera2CameraInfoFlutterApiImpl(mock(BinaryMessenger.class), testInstanceManager)); - - spyFlutterApi.create(mockCamera2CameraInfo, reply -> {}); - - final long identifier = - Objects.requireNonNull( - testInstanceManager.getIdentifierForStrongReference(mockCamera2CameraInfo)); - verify(spyFlutterApi).create(eq(identifier), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.hardware.camera2.CameraCharacteristics; +//import android.hardware.camera2.CameraMetadata; +//import androidx.camera.camera2.interop.Camera2CameraInfo; +//import androidx.camera.core.CameraInfo; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +//import org.mockito.Mockito; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.mockito.stubbing.Answer; +// +//public class Camera2CameraInfoTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public Camera2CameraInfo mockCamera2CameraInfo; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void createFrom_createsInstanceFromCameraInfoInstance() { +// final Camera2CameraInfoHostApiImpl hostApi = +// new Camera2CameraInfoHostApiImpl(mock(BinaryMessenger.class), testInstanceManager); +// final long camera2CameraInfoIdentifier = 60; +// final CameraInfo mockCameraInfo = mock(CameraInfo.class); +// final long cameraInfoIdentifier = 92; +// +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, cameraInfoIdentifier); +// testInstanceManager.addDartCreatedInstance(mockCamera2CameraInfo, camera2CameraInfoIdentifier); +// +// try (MockedStatic mockedCamera2CameraInfo = +// Mockito.mockStatic(Camera2CameraInfo.class)) { +// mockedCamera2CameraInfo +// .when(() -> Camera2CameraInfo.from(mockCameraInfo)) +// .thenAnswer((Answer) invocation -> mockCamera2CameraInfo); +// +// hostApi.createFrom(cameraInfoIdentifier); +// assertEquals( +// testInstanceManager.getInstance(camera2CameraInfoIdentifier), mockCamera2CameraInfo); +// } +// } +// +// @Test +// public void getSupportedHardwareLevel_returnsExpectedLevel() { +// final Camera2CameraInfoHostApiImpl hostApi = +// new Camera2CameraInfoHostApiImpl(mock(BinaryMessenger.class), testInstanceManager); +// final long camera2CameraInfoIdentifier = 3; +// final int expectedHardwareLevel = CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_FULL; +// +// testInstanceManager.addDartCreatedInstance(mockCamera2CameraInfo, camera2CameraInfoIdentifier); +// when(mockCamera2CameraInfo.getCameraCharacteristic( +// CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)) +// .thenReturn(expectedHardwareLevel); +// +// assertEquals( +// expectedHardwareLevel, +// hostApi.getSupportedHardwareLevel(camera2CameraInfoIdentifier).intValue()); +// } +// +// @Test +// public void getCameraId_returnsExpectedId() { +// final Camera2CameraInfoHostApiImpl hostApi = +// new Camera2CameraInfoHostApiImpl(mock(BinaryMessenger.class), testInstanceManager); +// final long camera2CameraInfoIdentifier = 13; +// final String expectedCameraId = "testCameraId"; +// +// testInstanceManager.addDartCreatedInstance(mockCamera2CameraInfo, camera2CameraInfoIdentifier); +// when(mockCamera2CameraInfo.getCameraId()).thenReturn(expectedCameraId); +// +// assertEquals(expectedCameraId, hostApi.getCameraId(camera2CameraInfoIdentifier)); +// } +// +// @Test +// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { +// final Camera2CameraInfoFlutterApiImpl spyFlutterApi = +// spy(new Camera2CameraInfoFlutterApiImpl(mock(BinaryMessenger.class), testInstanceManager)); +// +// spyFlutterApi.create(mockCamera2CameraInfo, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull( +// testInstanceManager.getIdentifierForStrongReference(mockCamera2CameraInfo)); +// verify(spyFlutterApi).create(eq(identifier), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java index fcca0f8eb0b..4ab865c8414 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java @@ -1,387 +1,387 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import static org.mockito.Mockito.withSettings; - -import android.app.Activity; -import android.app.Application; -import android.content.Context; -import androidx.lifecycle.LifecycleOwner; -import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding; -import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; -import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class CameraAndroidCameraxPluginTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock ActivityPluginBinding activityPluginBinding; - @Mock FlutterPluginBinding flutterPluginBinding; - - @Test - public void onAttachedToActivity_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsNeeded() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final Activity mockActivity = - mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); - final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = - mock(ProcessCameraProviderHostApiImpl.class); - final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - - doNothing().when(plugin).setUp(any(), any(), any()); - when(activityPluginBinding.getActivity()).thenReturn(mockActivity); - - plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; - plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; - plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); - plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); - - plugin.onAttachedToEngine(flutterPluginBinding); - plugin.onAttachedToActivity(activityPluginBinding); - - verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); - verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); - } - - @Test - public void - onAttachedToActivity_setsLifecycleOwnerAsProxyLifecycleProviderIfActivityNotLifecycleOwnerAsNeeded() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final Activity mockActivity = mock(Activity.class); - final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = - mock(ProcessCameraProviderHostApiImpl.class); - final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - - doNothing().when(plugin).setUp(any(), any(), any()); - when(activityPluginBinding.getActivity()).thenReturn(mockActivity); - when(mockActivity.getApplication()).thenReturn(mock(Application.class)); - - plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; - plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; - plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); - plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); - - plugin.onAttachedToEngine(flutterPluginBinding); - plugin.onAttachedToActivity(activityPluginBinding); - - verify(mockProcessCameraProviderHostApiImpl) - .setLifecycleOwner(any(ProxyLifecycleProvider.class)); - verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(ProxyLifecycleProvider.class)); - } - - @Test - public void onAttachedToActivity_setsActivityAsNeededAndPermissionsRegistry() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final Activity mockActivity = mock(Activity.class); - final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = - mock(SystemServicesHostApiImpl.class); - final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = - mock(DeviceOrientationManagerHostApiImpl.class); - final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = - mock(MeteringPointHostApiImpl.class); - final ArgumentCaptor permissionsRegistryCaptor = - ArgumentCaptor.forClass(PermissionsRegistry.class); - - doNothing().when(plugin).setUp(any(), any(), any()); - when(activityPluginBinding.getActivity()).thenReturn(mockActivity); - when(mockActivity.getApplication()).thenReturn(mock(Application.class)); - - plugin.processCameraProviderHostApiImpl = mock(ProcessCameraProviderHostApiImpl.class); - plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; - plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; - plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; - - plugin.onAttachedToEngine(flutterPluginBinding); - plugin.onAttachedToActivity(activityPluginBinding); - - // Check Activity references are set. - verify(mockSystemServicesHostApiImpl).setActivity(mockActivity); - verify(mockDeviceOrientationManagerHostApiImpl).setActivity(mockActivity); - verify(mockMeteringPointHostApiImpl).setActivity(mockActivity); - - // Check permissions registry reference is set. - verify(mockSystemServicesHostApiImpl) - .setPermissionsRegistry(permissionsRegistryCaptor.capture()); - assertNotNull(permissionsRegistryCaptor.getValue()); - assertTrue(permissionsRegistryCaptor.getValue() instanceof PermissionsRegistry); - } - - @Test - public void - onDetachedFromActivityForConfigChanges_removesReferencesToActivityPluginBindingAndActivity() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = - mock(ProcessCameraProviderHostApiImpl.class); - final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = - mock(SystemServicesHostApiImpl.class); - final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = - mock(DeviceOrientationManagerHostApiImpl.class); - final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = - mock(MeteringPointHostApiImpl.class); - - plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; - plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; - plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; - plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; - plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; - - plugin.onAttachedToEngine(flutterPluginBinding); - plugin.onDetachedFromActivityForConfigChanges(); - - verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(null); - verify(mockLiveDataHostApiImpl).setLifecycleOwner(null); - verify(mockSystemServicesHostApiImpl).setActivity(null); - verify(mockDeviceOrientationManagerHostApiImpl).setActivity(null); - verify(mockMeteringPointHostApiImpl).setActivity(null); - } - - @Test - public void - onDetachedFromActivityForConfigChanges_setsContextReferencesBasedOnFlutterPluginBinding() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final Context mockContext = mock(Context.class); - final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = - mock(ProcessCameraProviderHostApiImpl.class); - final RecorderHostApiImpl mockRecorderHostApiImpl = mock(RecorderHostApiImpl.class); - final PendingRecordingHostApiImpl mockPendingRecordingHostApiImpl = - mock(PendingRecordingHostApiImpl.class); - final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = - mock(SystemServicesHostApiImpl.class); - final ImageCaptureHostApiImpl mockImageCaptureHostApiImpl = mock(ImageCaptureHostApiImpl.class); - final ImageAnalysisHostApiImpl mockImageAnalysisHostApiImpl = - mock(ImageAnalysisHostApiImpl.class); - final CameraControlHostApiImpl mockCameraControlHostApiImpl = - mock(CameraControlHostApiImpl.class); - final Camera2CameraControlHostApiImpl mockCamera2CameraControlHostApiImpl = - mock(Camera2CameraControlHostApiImpl.class); - - when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); - - plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; - plugin.recorderHostApiImpl = mockRecorderHostApiImpl; - plugin.pendingRecordingHostApiImpl = mockPendingRecordingHostApiImpl; - plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; - plugin.imageCaptureHostApiImpl = mockImageCaptureHostApiImpl; - plugin.imageAnalysisHostApiImpl = mockImageAnalysisHostApiImpl; - plugin.cameraControlHostApiImpl = mockCameraControlHostApiImpl; - plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - plugin.camera2CameraControlHostApiImpl = mockCamera2CameraControlHostApiImpl; - - plugin.onAttachedToEngine(flutterPluginBinding); - plugin.onDetachedFromActivityForConfigChanges(); - - verify(mockProcessCameraProviderHostApiImpl).setContext(mockContext); - verify(mockRecorderHostApiImpl).setContext(mockContext); - verify(mockPendingRecordingHostApiImpl).setContext(mockContext); - verify(mockSystemServicesHostApiImpl).setContext(mockContext); - verify(mockImageCaptureHostApiImpl).setContext(mockContext); - verify(mockImageAnalysisHostApiImpl).setContext(mockContext); - verify(mockCameraControlHostApiImpl).setContext(mockContext); - verify(mockCamera2CameraControlHostApiImpl).setContext(mockContext); - } - - @Test - public void - onReattachedToActivityForConfigChanges_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsNeeded() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final Activity mockActivity = - mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); - final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = - mock(ProcessCameraProviderHostApiImpl.class); - final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - - when(activityPluginBinding.getActivity()).thenReturn(mockActivity); - - plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; - plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; - plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); - plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); - - plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); - - verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); - verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); - } - - @Test - public void - onReattachedToActivityForConfigChanges_setsLifecycleOwnerAsProxyLifecycleProviderIfActivityNotLifecycleOwnerAsNeeded() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final Activity mockActivity = mock(Activity.class); - final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = - mock(ProcessCameraProviderHostApiImpl.class); - final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - - when(activityPluginBinding.getActivity()).thenReturn(mockActivity); - when(mockActivity.getApplication()).thenReturn(mock(Application.class)); - - plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; - plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; - plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); - plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); - - plugin.onAttachedToEngine(flutterPluginBinding); - plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); - - verify(mockProcessCameraProviderHostApiImpl) - .setLifecycleOwner(any(ProxyLifecycleProvider.class)); - verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(ProxyLifecycleProvider.class)); - } - - @Test - public void onReattachedToActivityForConfigChanges_setsActivityAndPermissionsRegistryAsNeeded() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final Activity mockActivity = mock(Activity.class); - final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = - mock(ProcessCameraProviderHostApiImpl.class); - final RecorderHostApiImpl mockRecorderHostApiImpl = mock(RecorderHostApiImpl.class); - final PendingRecordingHostApiImpl mockPendingRecordingHostApiImpl = - mock(PendingRecordingHostApiImpl.class); - final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = - mock(SystemServicesHostApiImpl.class); - final ImageAnalysisHostApiImpl mockImageAnalysisHostApiImpl = - mock(ImageAnalysisHostApiImpl.class); - final ImageCaptureHostApiImpl mockImageCaptureHostApiImpl = mock(ImageCaptureHostApiImpl.class); - final CameraControlHostApiImpl mockCameraControlHostApiImpl = - mock(CameraControlHostApiImpl.class); - final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = - mock(DeviceOrientationManagerHostApiImpl.class); - final Camera2CameraControlHostApiImpl mockCamera2CameraControlHostApiImpl = - mock(Camera2CameraControlHostApiImpl.class); - final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = - mock(MeteringPointHostApiImpl.class); - final ArgumentCaptor permissionsRegistryCaptor = - ArgumentCaptor.forClass(PermissionsRegistry.class); - - when(activityPluginBinding.getActivity()).thenReturn(mockActivity); - when(mockActivity.getApplication()).thenReturn(mock(Application.class)); - - plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; - plugin.recorderHostApiImpl = mockRecorderHostApiImpl; - plugin.pendingRecordingHostApiImpl = mockPendingRecordingHostApiImpl; - plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; - plugin.imageCaptureHostApiImpl = mockImageCaptureHostApiImpl; - plugin.imageAnalysisHostApiImpl = mockImageAnalysisHostApiImpl; - plugin.cameraControlHostApiImpl = mockCameraControlHostApiImpl; - plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; - plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; - plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - plugin.camera2CameraControlHostApiImpl = mockCamera2CameraControlHostApiImpl; - - plugin.onAttachedToEngine(flutterPluginBinding); - plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); - - // Check Activity references are set. - verify(mockSystemServicesHostApiImpl).setActivity(mockActivity); - verify(mockDeviceOrientationManagerHostApiImpl).setActivity(mockActivity); - verify(mockMeteringPointHostApiImpl).setActivity(mockActivity); - - // Check Activity as Context references are set. - verify(mockProcessCameraProviderHostApiImpl).setContext(mockActivity); - verify(mockRecorderHostApiImpl).setContext(mockActivity); - verify(mockPendingRecordingHostApiImpl).setContext(mockActivity); - verify(mockSystemServicesHostApiImpl).setContext(mockActivity); - verify(mockImageCaptureHostApiImpl).setContext(mockActivity); - verify(mockImageAnalysisHostApiImpl).setContext(mockActivity); - verify(mockCameraControlHostApiImpl).setContext(mockActivity); - verify(mockCamera2CameraControlHostApiImpl).setContext(mockActivity); - - // Check permissions registry reference is set. - verify(mockSystemServicesHostApiImpl) - .setPermissionsRegistry(permissionsRegistryCaptor.capture()); - assertNotNull(permissionsRegistryCaptor.getValue()); - assertTrue(permissionsRegistryCaptor.getValue() instanceof PermissionsRegistry); - } - - @Test - public void onDetachedFromActivity_removesReferencesToActivityPluginBindingAndActivity() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = - mock(ProcessCameraProviderHostApiImpl.class); - final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = - mock(SystemServicesHostApiImpl.class); - final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = - mock(DeviceOrientationManagerHostApiImpl.class); - final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = - mock(MeteringPointHostApiImpl.class); - - plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; - plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; - plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; - plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; - plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; - - plugin.onAttachedToEngine(flutterPluginBinding); - plugin.onDetachedFromActivityForConfigChanges(); - - verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(null); - verify(mockLiveDataHostApiImpl).setLifecycleOwner(null); - verify(mockSystemServicesHostApiImpl).setActivity(null); - verify(mockDeviceOrientationManagerHostApiImpl).setActivity(null); - verify(mockMeteringPointHostApiImpl).setActivity(null); - } - - @Test - public void onDetachedFromActivity_setsContextReferencesBasedOnFlutterPluginBinding() { - final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); - final Context mockContext = mock(Context.class); - final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = - mock(ProcessCameraProviderHostApiImpl.class); - final RecorderHostApiImpl mockRecorderHostApiImpl = mock(RecorderHostApiImpl.class); - final PendingRecordingHostApiImpl mockPendingRecordingHostApiImpl = - mock(PendingRecordingHostApiImpl.class); - final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = - mock(SystemServicesHostApiImpl.class); - final ImageAnalysisHostApiImpl mockImageAnalysisHostApiImpl = - mock(ImageAnalysisHostApiImpl.class); - final ImageCaptureHostApiImpl mockImageCaptureHostApiImpl = mock(ImageCaptureHostApiImpl.class); - final CameraControlHostApiImpl mockCameraControlHostApiImpl = - mock(CameraControlHostApiImpl.class); - final Camera2CameraControlHostApiImpl mockCamera2CameraControlHostApiImpl = - mock(Camera2CameraControlHostApiImpl.class); - final ArgumentCaptor permissionsRegistryCaptor = - ArgumentCaptor.forClass(PermissionsRegistry.class); - - when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); - - plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; - plugin.recorderHostApiImpl = mockRecorderHostApiImpl; - plugin.pendingRecordingHostApiImpl = mockPendingRecordingHostApiImpl; - plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; - plugin.imageCaptureHostApiImpl = mockImageCaptureHostApiImpl; - plugin.imageAnalysisHostApiImpl = mockImageAnalysisHostApiImpl; - plugin.cameraControlHostApiImpl = mockCameraControlHostApiImpl; - plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); - plugin.camera2CameraControlHostApiImpl = mockCamera2CameraControlHostApiImpl; - - plugin.onAttachedToEngine(flutterPluginBinding); - plugin.onDetachedFromActivity(); - - verify(mockProcessCameraProviderHostApiImpl).setContext(mockContext); - verify(mockRecorderHostApiImpl).setContext(mockContext); - verify(mockPendingRecordingHostApiImpl).setContext(mockContext); - verify(mockSystemServicesHostApiImpl).setContext(mockContext); - verify(mockImageCaptureHostApiImpl).setContext(mockContext); - verify(mockImageAnalysisHostApiImpl).setContext(mockContext); - verify(mockCameraControlHostApiImpl).setContext(mockContext); - verify(mockCamera2CameraControlHostApiImpl).setContext(mockContext); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertNotNull; +//import static org.junit.Assert.assertTrue; +//import static org.mockito.Mockito.any; +//import static org.mockito.Mockito.doNothing; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +//import static org.mockito.Mockito.withSettings; +// +//import android.app.Activity; +//import android.app.Application; +//import android.content.Context; +//import androidx.lifecycle.LifecycleOwner; +//import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding; +//import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; +//import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.ArgumentCaptor; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class CameraAndroidCameraxPluginTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock ActivityPluginBinding activityPluginBinding; +// @Mock FlutterPluginBinding flutterPluginBinding; +// +// @Test +// public void onAttachedToActivity_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsNeeded() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final Activity mockActivity = +// mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); +// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = +// mock(ProcessCameraProviderHostApiImpl.class); +// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// +// doNothing().when(plugin).setUp(any(), any(), any()); +// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); +// +// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; +// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; +// plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); +// plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); +// +// plugin.onAttachedToEngine(flutterPluginBinding); +// plugin.onAttachedToActivity(activityPluginBinding); +// +// verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); +// verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); +// } +// +// @Test +// public void +// onAttachedToActivity_setsLifecycleOwnerAsProxyLifecycleProviderIfActivityNotLifecycleOwnerAsNeeded() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final Activity mockActivity = mock(Activity.class); +// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = +// mock(ProcessCameraProviderHostApiImpl.class); +// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// +// doNothing().when(plugin).setUp(any(), any(), any()); +// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); +// when(mockActivity.getApplication()).thenReturn(mock(Application.class)); +// +// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; +// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; +// plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); +// plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); +// +// plugin.onAttachedToEngine(flutterPluginBinding); +// plugin.onAttachedToActivity(activityPluginBinding); +// +// verify(mockProcessCameraProviderHostApiImpl) +// .setLifecycleOwner(any(ProxyLifecycleProvider.class)); +// verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(ProxyLifecycleProvider.class)); +// } +// +// @Test +// public void onAttachedToActivity_setsActivityAsNeededAndPermissionsRegistry() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final Activity mockActivity = mock(Activity.class); +// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = +// mock(SystemServicesHostApiImpl.class); +// final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = +// mock(DeviceOrientationManagerHostApiImpl.class); +// final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = +// mock(MeteringPointHostApiImpl.class); +// final ArgumentCaptor permissionsRegistryCaptor = +// ArgumentCaptor.forClass(PermissionsRegistry.class); +// +// doNothing().when(plugin).setUp(any(), any(), any()); +// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); +// when(mockActivity.getApplication()).thenReturn(mock(Application.class)); +// +// plugin.processCameraProviderHostApiImpl = mock(ProcessCameraProviderHostApiImpl.class); +// plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; +// plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; +// plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; +// +// plugin.onAttachedToEngine(flutterPluginBinding); +// plugin.onAttachedToActivity(activityPluginBinding); +// +// // Check Activity references are set. +// verify(mockSystemServicesHostApiImpl).setActivity(mockActivity); +// verify(mockDeviceOrientationManagerHostApiImpl).setActivity(mockActivity); +// verify(mockMeteringPointHostApiImpl).setActivity(mockActivity); +// +// // Check permissions registry reference is set. +// verify(mockSystemServicesHostApiImpl) +// .setPermissionsRegistry(permissionsRegistryCaptor.capture()); +// assertNotNull(permissionsRegistryCaptor.getValue()); +// assertTrue(permissionsRegistryCaptor.getValue() instanceof PermissionsRegistry); +// } +// +// @Test +// public void +// onDetachedFromActivityForConfigChanges_removesReferencesToActivityPluginBindingAndActivity() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = +// mock(ProcessCameraProviderHostApiImpl.class); +// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = +// mock(SystemServicesHostApiImpl.class); +// final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = +// mock(DeviceOrientationManagerHostApiImpl.class); +// final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = +// mock(MeteringPointHostApiImpl.class); +// +// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; +// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; +// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; +// plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; +// plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; +// +// plugin.onAttachedToEngine(flutterPluginBinding); +// plugin.onDetachedFromActivityForConfigChanges(); +// +// verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(null); +// verify(mockLiveDataHostApiImpl).setLifecycleOwner(null); +// verify(mockSystemServicesHostApiImpl).setActivity(null); +// verify(mockDeviceOrientationManagerHostApiImpl).setActivity(null); +// verify(mockMeteringPointHostApiImpl).setActivity(null); +// } +// +// @Test +// public void +// onDetachedFromActivityForConfigChanges_setsContextReferencesBasedOnFlutterPluginBinding() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final Context mockContext = mock(Context.class); +// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = +// mock(ProcessCameraProviderHostApiImpl.class); +// final RecorderHostApiImpl mockRecorderHostApiImpl = mock(RecorderHostApiImpl.class); +// final PendingRecordingHostApiImpl mockPendingRecordingHostApiImpl = +// mock(PendingRecordingHostApiImpl.class); +// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = +// mock(SystemServicesHostApiImpl.class); +// final ImageCaptureHostApiImpl mockImageCaptureHostApiImpl = mock(ImageCaptureHostApiImpl.class); +// final ImageAnalysisHostApiImpl mockImageAnalysisHostApiImpl = +// mock(ImageAnalysisHostApiImpl.class); +// final CameraControlHostApiImpl mockCameraControlHostApiImpl = +// mock(CameraControlHostApiImpl.class); +// final Camera2CameraControlHostApiImpl mockCamera2CameraControlHostApiImpl = +// mock(Camera2CameraControlHostApiImpl.class); +// +// when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); +// +// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; +// plugin.recorderHostApiImpl = mockRecorderHostApiImpl; +// plugin.pendingRecordingHostApiImpl = mockPendingRecordingHostApiImpl; +// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; +// plugin.imageCaptureHostApiImpl = mockImageCaptureHostApiImpl; +// plugin.imageAnalysisHostApiImpl = mockImageAnalysisHostApiImpl; +// plugin.cameraControlHostApiImpl = mockCameraControlHostApiImpl; +// plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// plugin.camera2CameraControlHostApiImpl = mockCamera2CameraControlHostApiImpl; +// +// plugin.onAttachedToEngine(flutterPluginBinding); +// plugin.onDetachedFromActivityForConfigChanges(); +// +// verify(mockProcessCameraProviderHostApiImpl).setContext(mockContext); +// verify(mockRecorderHostApiImpl).setContext(mockContext); +// verify(mockPendingRecordingHostApiImpl).setContext(mockContext); +// verify(mockSystemServicesHostApiImpl).setContext(mockContext); +// verify(mockImageCaptureHostApiImpl).setContext(mockContext); +// verify(mockImageAnalysisHostApiImpl).setContext(mockContext); +// verify(mockCameraControlHostApiImpl).setContext(mockContext); +// verify(mockCamera2CameraControlHostApiImpl).setContext(mockContext); +// } +// +// @Test +// public void +// onReattachedToActivityForConfigChanges_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsNeeded() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final Activity mockActivity = +// mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); +// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = +// mock(ProcessCameraProviderHostApiImpl.class); +// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// +// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); +// +// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; +// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; +// plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); +// plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); +// +// plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); +// +// verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); +// verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); +// } +// +// @Test +// public void +// onReattachedToActivityForConfigChanges_setsLifecycleOwnerAsProxyLifecycleProviderIfActivityNotLifecycleOwnerAsNeeded() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final Activity mockActivity = mock(Activity.class); +// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = +// mock(ProcessCameraProviderHostApiImpl.class); +// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// +// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); +// when(mockActivity.getApplication()).thenReturn(mock(Application.class)); +// +// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; +// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; +// plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); +// plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); +// +// plugin.onAttachedToEngine(flutterPluginBinding); +// plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); +// +// verify(mockProcessCameraProviderHostApiImpl) +// .setLifecycleOwner(any(ProxyLifecycleProvider.class)); +// verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(ProxyLifecycleProvider.class)); +// } +// +// @Test +// public void onReattachedToActivityForConfigChanges_setsActivityAndPermissionsRegistryAsNeeded() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final Activity mockActivity = mock(Activity.class); +// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = +// mock(ProcessCameraProviderHostApiImpl.class); +// final RecorderHostApiImpl mockRecorderHostApiImpl = mock(RecorderHostApiImpl.class); +// final PendingRecordingHostApiImpl mockPendingRecordingHostApiImpl = +// mock(PendingRecordingHostApiImpl.class); +// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = +// mock(SystemServicesHostApiImpl.class); +// final ImageAnalysisHostApiImpl mockImageAnalysisHostApiImpl = +// mock(ImageAnalysisHostApiImpl.class); +// final ImageCaptureHostApiImpl mockImageCaptureHostApiImpl = mock(ImageCaptureHostApiImpl.class); +// final CameraControlHostApiImpl mockCameraControlHostApiImpl = +// mock(CameraControlHostApiImpl.class); +// final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = +// mock(DeviceOrientationManagerHostApiImpl.class); +// final Camera2CameraControlHostApiImpl mockCamera2CameraControlHostApiImpl = +// mock(Camera2CameraControlHostApiImpl.class); +// final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = +// mock(MeteringPointHostApiImpl.class); +// final ArgumentCaptor permissionsRegistryCaptor = +// ArgumentCaptor.forClass(PermissionsRegistry.class); +// +// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); +// when(mockActivity.getApplication()).thenReturn(mock(Application.class)); +// +// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; +// plugin.recorderHostApiImpl = mockRecorderHostApiImpl; +// plugin.pendingRecordingHostApiImpl = mockPendingRecordingHostApiImpl; +// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; +// plugin.imageCaptureHostApiImpl = mockImageCaptureHostApiImpl; +// plugin.imageAnalysisHostApiImpl = mockImageAnalysisHostApiImpl; +// plugin.cameraControlHostApiImpl = mockCameraControlHostApiImpl; +// plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; +// plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; +// plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// plugin.camera2CameraControlHostApiImpl = mockCamera2CameraControlHostApiImpl; +// +// plugin.onAttachedToEngine(flutterPluginBinding); +// plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); +// +// // Check Activity references are set. +// verify(mockSystemServicesHostApiImpl).setActivity(mockActivity); +// verify(mockDeviceOrientationManagerHostApiImpl).setActivity(mockActivity); +// verify(mockMeteringPointHostApiImpl).setActivity(mockActivity); +// +// // Check Activity as Context references are set. +// verify(mockProcessCameraProviderHostApiImpl).setContext(mockActivity); +// verify(mockRecorderHostApiImpl).setContext(mockActivity); +// verify(mockPendingRecordingHostApiImpl).setContext(mockActivity); +// verify(mockSystemServicesHostApiImpl).setContext(mockActivity); +// verify(mockImageCaptureHostApiImpl).setContext(mockActivity); +// verify(mockImageAnalysisHostApiImpl).setContext(mockActivity); +// verify(mockCameraControlHostApiImpl).setContext(mockActivity); +// verify(mockCamera2CameraControlHostApiImpl).setContext(mockActivity); +// +// // Check permissions registry reference is set. +// verify(mockSystemServicesHostApiImpl) +// .setPermissionsRegistry(permissionsRegistryCaptor.capture()); +// assertNotNull(permissionsRegistryCaptor.getValue()); +// assertTrue(permissionsRegistryCaptor.getValue() instanceof PermissionsRegistry); +// } +// +// @Test +// public void onDetachedFromActivity_removesReferencesToActivityPluginBindingAndActivity() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = +// mock(ProcessCameraProviderHostApiImpl.class); +// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = +// mock(SystemServicesHostApiImpl.class); +// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = +// mock(DeviceOrientationManagerHostApiImpl.class); +// final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = +// mock(MeteringPointHostApiImpl.class); +// +// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; +// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; +// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; +// plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; +// plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; +// +// plugin.onAttachedToEngine(flutterPluginBinding); +// plugin.onDetachedFromActivityForConfigChanges(); +// +// verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(null); +// verify(mockLiveDataHostApiImpl).setLifecycleOwner(null); +// verify(mockSystemServicesHostApiImpl).setActivity(null); +// verify(mockDeviceOrientationManagerHostApiImpl).setActivity(null); +// verify(mockMeteringPointHostApiImpl).setActivity(null); +// } +// +// @Test +// public void onDetachedFromActivity_setsContextReferencesBasedOnFlutterPluginBinding() { +// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); +// final Context mockContext = mock(Context.class); +// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = +// mock(ProcessCameraProviderHostApiImpl.class); +// final RecorderHostApiImpl mockRecorderHostApiImpl = mock(RecorderHostApiImpl.class); +// final PendingRecordingHostApiImpl mockPendingRecordingHostApiImpl = +// mock(PendingRecordingHostApiImpl.class); +// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = +// mock(SystemServicesHostApiImpl.class); +// final ImageAnalysisHostApiImpl mockImageAnalysisHostApiImpl = +// mock(ImageAnalysisHostApiImpl.class); +// final ImageCaptureHostApiImpl mockImageCaptureHostApiImpl = mock(ImageCaptureHostApiImpl.class); +// final CameraControlHostApiImpl mockCameraControlHostApiImpl = +// mock(CameraControlHostApiImpl.class); +// final Camera2CameraControlHostApiImpl mockCamera2CameraControlHostApiImpl = +// mock(Camera2CameraControlHostApiImpl.class); +// final ArgumentCaptor permissionsRegistryCaptor = +// ArgumentCaptor.forClass(PermissionsRegistry.class); +// +// when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); +// +// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; +// plugin.recorderHostApiImpl = mockRecorderHostApiImpl; +// plugin.pendingRecordingHostApiImpl = mockPendingRecordingHostApiImpl; +// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; +// plugin.imageCaptureHostApiImpl = mockImageCaptureHostApiImpl; +// plugin.imageAnalysisHostApiImpl = mockImageAnalysisHostApiImpl; +// plugin.cameraControlHostApiImpl = mockCameraControlHostApiImpl; +// plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); +// plugin.camera2CameraControlHostApiImpl = mockCamera2CameraControlHostApiImpl; +// +// plugin.onAttachedToEngine(flutterPluginBinding); +// plugin.onDetachedFromActivity(); +// +// verify(mockProcessCameraProviderHostApiImpl).setContext(mockContext); +// verify(mockRecorderHostApiImpl).setContext(mockContext); +// verify(mockPendingRecordingHostApiImpl).setContext(mockContext); +// verify(mockSystemServicesHostApiImpl).setContext(mockContext); +// verify(mockImageCaptureHostApiImpl).setContext(mockContext); +// verify(mockImageAnalysisHostApiImpl).setContext(mockContext); +// verify(mockCameraControlHostApiImpl).setContext(mockContext); +// verify(mockCamera2CameraControlHostApiImpl).setContext(mockContext); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java index 8397a9c62c0..36491bdd3ef 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java @@ -1,20 +1,20 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CameraCharacteristics.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraCharacteristicsKeyProxyApiTest { -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import android.hardware.camera2.CameraCharacteristics.Key<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraCharacteristicsKeyProxyApiTest { +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java index d01a67c04eb..ef62915f5ce 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java @@ -1,21 +1,21 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CameraCharacteristics -import android.hardware.camera2.CameraCharacteristics.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraCharacteristicsProxyApiTest { -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import android.hardware.camera2.CameraCharacteristics +//import android.hardware.camera2.CameraCharacteristics.Key<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraCharacteristicsProxyApiTest { +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java index d7c23b2bf8b..bd6efb66fc9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java @@ -1,78 +1,78 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraControl -import androidx.camera.core.FocusMeteringAction -import androidx.camera.core.FocusMeteringResult -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraControlProxyApiTest { - @Test - public void enableTorch() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final Boolean torch = true; - api.enableTorch(instance, torch); - - verify(instance).enableTorch(torch); - } - - @Test - public void setZoomRatio() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final Double ratio = 1.0; - api.setZoomRatio(instance, ratio); - - verify(instance).setZoomRatio(ratio); - } - - @Test - public void startFocusAndMetering() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final androidx.camera.core.FocusMeteringAction action = mock(FocusMeteringAction.class); - final androidx.camera.core.FocusMeteringResult value = mock(FocusMeteringResult.class); - when(instance.startFocusAndMetering(action)).thenReturn(value); - - assertEquals(value, api.startFocusAndMetering(instance, action)); - } - - @Test - public void cancelFocusAndMetering() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - api.cancelFocusAndMetering(instance ); - - verify(instance).cancelFocusAndMetering(); - } - - @Test - public void setExposureCompensationIndex() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final Long index = 0; - final Long value = 0; - when(instance.setExposureCompensationIndex(index)).thenReturn(value); - - assertEquals(value, api.setExposureCompensationIndex(instance, index)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.CameraControl +//import androidx.camera.core.FocusMeteringAction +//import androidx.camera.core.FocusMeteringResult +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraControlProxyApiTest { +// @Test +// public void enableTorch() { +// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); +// +// final CameraControl instance = mock(CameraControl.class); +// final Boolean torch = true; +// api.enableTorch(instance, torch); +// +// verify(instance).enableTorch(torch); +// } +// +// @Test +// public void setZoomRatio() { +// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); +// +// final CameraControl instance = mock(CameraControl.class); +// final Double ratio = 1.0; +// api.setZoomRatio(instance, ratio); +// +// verify(instance).setZoomRatio(ratio); +// } +// +// @Test +// public void startFocusAndMetering() { +// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); +// +// final CameraControl instance = mock(CameraControl.class); +// final androidx.camera.core.FocusMeteringAction action = mock(FocusMeteringAction.class); +// final androidx.camera.core.FocusMeteringResult value = mock(FocusMeteringResult.class); +// when(instance.startFocusAndMetering(action)).thenReturn(value); +// +// assertEquals(value, api.startFocusAndMetering(instance, action)); +// } +// +// @Test +// public void cancelFocusAndMetering() { +// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); +// +// final CameraControl instance = mock(CameraControl.class); +// api.cancelFocusAndMetering(instance ); +// +// verify(instance).cancelFocusAndMetering(); +// } +// +// @Test +// public void setExposureCompensationIndex() { +// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); +// +// final CameraControl instance = mock(CameraControl.class); +// final Long index = 0; +// final Long value = 0; +// when(instance.setExposureCompensationIndex(index)).thenReturn(value); +// +// assertEquals(value, api.setExposureCompensationIndex(instance, index)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java index a0fe8f977ee..da36ecf6702 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java @@ -1,397 +1,397 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import androidx.camera.core.CameraControl; -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.FocusMeteringResult; -import com.google.common.util.concurrent.FutureCallback; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class CameraControlTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public CameraControl cameraControl; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void enableTorch_turnsTorchModeOnAndOffAsExpected() { - try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { - final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl( - mockBinaryMessenger, testInstanceManager, mock(Context.class)); - final Long cameraControlIdentifier = 88L; - final boolean enableTorch = true; - - @SuppressWarnings("unchecked") - final ListenableFuture enableTorchFuture = mock(ListenableFuture.class); - - testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); - - when(cameraControl.enableTorch(true)).thenReturn(enableTorchFuture); - - @SuppressWarnings("unchecked") - final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); - - // Test successful behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result successfulMockResult = - mock(GeneratedCameraXLibrary.Result.class); - cameraControlHostApiImpl.enableTorch( - cameraControlIdentifier, enableTorch, successfulMockResult); - mockedFutures.verify( - () -> Futures.addCallback(eq(enableTorchFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback successfulEnableTorchCallback = futureCallbackCaptor.getValue(); - - successfulEnableTorchCallback.onSuccess(mock(Void.class)); - verify(successfulMockResult).success(null); - - // Test failed behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result failedMockResult = - mock(GeneratedCameraXLibrary.Result.class); - final Throwable testThrowable = new Throwable(); - cameraControlHostApiImpl.enableTorch(cameraControlIdentifier, enableTorch, failedMockResult); - mockedFutures.verify( - () -> Futures.addCallback(eq(enableTorchFuture), futureCallbackCaptor.capture(), any())); - - FutureCallback failedEnableTorchCallback = futureCallbackCaptor.getValue(); - - failedEnableTorchCallback.onFailure(testThrowable); - verify(failedMockResult).error(testThrowable); - } - } - - @Test - public void setZoomRatio_setsZoomAsExpected() { - try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { - final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl( - mockBinaryMessenger, testInstanceManager, mock(Context.class)); - final Long cameraControlIdentifier = 33L; - final Double zoomRatio = 0.2D; - - @SuppressWarnings("unchecked") - final ListenableFuture setZoomRatioFuture = mock(ListenableFuture.class); - - testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); - - when(cameraControl.setZoomRatio(zoomRatio.floatValue())).thenReturn(setZoomRatioFuture); - - @SuppressWarnings("unchecked") - final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); - - // Test successful behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result successfulMockResult = - mock(GeneratedCameraXLibrary.Result.class); - cameraControlHostApiImpl.setZoomRatio( - cameraControlIdentifier, zoomRatio, successfulMockResult); - mockedFutures.verify( - () -> Futures.addCallback(eq(setZoomRatioFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback successfulSetZoomRatioCallback = futureCallbackCaptor.getValue(); - - successfulSetZoomRatioCallback.onSuccess(mock(Void.class)); - verify(successfulMockResult).success(null); - - // Test failed behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result failedMockResult = - mock(GeneratedCameraXLibrary.Result.class); - final Throwable testThrowable = new Throwable(); - cameraControlHostApiImpl.setZoomRatio(cameraControlIdentifier, zoomRatio, failedMockResult); - mockedFutures.verify( - () -> Futures.addCallback(eq(setZoomRatioFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback failedSetZoomRatioCallback = futureCallbackCaptor.getValue(); - - failedSetZoomRatioCallback.onFailure(testThrowable); - verify(failedMockResult).error(testThrowable); - - // Test response to canceled operation. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result canceledOpResult = - mock(GeneratedCameraXLibrary.Result.class); - final CameraControl.OperationCanceledException canceledOpThrowable = - mock(CameraControl.OperationCanceledException.class); - cameraControlHostApiImpl.setZoomRatio(cameraControlIdentifier, zoomRatio, canceledOpResult); - mockedFutures.verify( - () -> Futures.addCallback(eq(setZoomRatioFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback canceledOpCallback = futureCallbackCaptor.getValue(); - - canceledOpCallback.onFailure(canceledOpThrowable); - verify(canceledOpResult).success(null); - } - } - - @Test - public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { - try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { - final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl( - mockBinaryMessenger, testInstanceManager, mock(Context.class)); - final Long cameraControlIdentifier = 90L; - final FocusMeteringAction mockAction = mock(FocusMeteringAction.class); - final Long mockActionId = 44L; - final FocusMeteringResult mockResult = mock(FocusMeteringResult.class); - final Long mockResultId = 33L; - - @SuppressWarnings("unchecked") - final ListenableFuture startFocusAndMeteringFuture = - mock(ListenableFuture.class); - - testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); - testInstanceManager.addDartCreatedInstance(mockResult, mockResultId); - testInstanceManager.addDartCreatedInstance(mockAction, mockActionId); - - when(cameraControl.startFocusAndMetering(mockAction)).thenReturn(startFocusAndMeteringFuture); - - @SuppressWarnings("unchecked") - final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); - - // Test successful behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result successfulMockResult = - mock(GeneratedCameraXLibrary.Result.class); - cameraControlHostApiImpl.startFocusAndMetering( - cameraControlIdentifier, mockActionId, successfulMockResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback successfulCallback = futureCallbackCaptor.getValue(); - - successfulCallback.onSuccess(mockResult); - verify(successfulMockResult).success(mockResultId); - - // Test failed behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result failedMockResult = - mock(GeneratedCameraXLibrary.Result.class); - final Throwable testThrowable = new Throwable(); - cameraControlHostApiImpl.startFocusAndMetering( - cameraControlIdentifier, mockActionId, failedMockResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback failedCallback = futureCallbackCaptor.getValue(); - - failedCallback.onFailure(testThrowable); - verify(failedMockResult).error(testThrowable); - - // Test response to canceled operation. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result canceledOpResult = - mock(GeneratedCameraXLibrary.Result.class); - final CameraControl.OperationCanceledException canceledOpThrowable = - mock(CameraControl.OperationCanceledException.class); - cameraControlHostApiImpl.startFocusAndMetering( - cameraControlIdentifier, mockActionId, canceledOpResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback canceledOpCallback = futureCallbackCaptor.getValue(); - - canceledOpCallback.onFailure(canceledOpThrowable); - verify(canceledOpResult).success(null); - } - } - - @Test - public void cancelFocusAndMetering_cancelsFocusAndMeteringAsExpected() { - try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { - final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl( - mockBinaryMessenger, testInstanceManager, mock(Context.class)); - final Long cameraControlIdentifier = 8L; - - @SuppressWarnings("unchecked") - final ListenableFuture cancelFocusAndMeteringFuture = mock(ListenableFuture.class); - - testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); - - when(cameraControl.cancelFocusAndMetering()).thenReturn(cancelFocusAndMeteringFuture); - - @SuppressWarnings("unchecked") - final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); - - // Test successful behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result successfulMockResult = - mock(GeneratedCameraXLibrary.Result.class); - cameraControlHostApiImpl.cancelFocusAndMetering( - cameraControlIdentifier, successfulMockResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback successfulCallback = futureCallbackCaptor.getValue(); - - successfulCallback.onSuccess(mock(Void.class)); - verify(successfulMockResult).success(null); - - // Test failed behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result failedMockResult = - mock(GeneratedCameraXLibrary.Result.class); - final Throwable testThrowable = new Throwable(); - cameraControlHostApiImpl.cancelFocusAndMetering(cameraControlIdentifier, failedMockResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); - - FutureCallback failedCallback = futureCallbackCaptor.getValue(); - - failedCallback.onFailure(testThrowable); - verify(failedMockResult).error(testThrowable); - } - } - - @Test - public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected() { - try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { - final CameraControlHostApiImpl cameraControlHostApiImpl = - new CameraControlHostApiImpl( - mockBinaryMessenger, testInstanceManager, mock(Context.class)); - final Long cameraControlIdentifier = 53L; - final Long index = 2L; - - @SuppressWarnings("unchecked") - final ListenableFuture setExposureCompensationIndexFuture = - mock(ListenableFuture.class); - - testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); - - when(cameraControl.setExposureCompensationIndex(index.intValue())) - .thenReturn(setExposureCompensationIndexFuture); - - @SuppressWarnings("unchecked") - final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); - - // Test successful behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result successfulMockResult = - mock(GeneratedCameraXLibrary.Result.class); - cameraControlHostApiImpl.setExposureCompensationIndex( - cameraControlIdentifier, index, successfulMockResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback successfulCallback = futureCallbackCaptor.getValue(); - final Integer fakeResult = 4; - - successfulCallback.onSuccess(fakeResult); - verify(successfulMockResult).success(fakeResult.longValue()); - - // Test failed behavior. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result failedMockResult = - mock(GeneratedCameraXLibrary.Result.class); - final Throwable testThrowable = new Throwable(); - cameraControlHostApiImpl.setExposureCompensationIndex( - cameraControlIdentifier, index, failedMockResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback failedCallback = futureCallbackCaptor.getValue(); - - failedCallback.onFailure(testThrowable); - verify(failedMockResult).error(testThrowable); - - // Test response to canceled operation. - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result canceledOpResult = - mock(GeneratedCameraXLibrary.Result.class); - final CameraControl.OperationCanceledException canceledOpThrowable = - mock(CameraControl.OperationCanceledException.class); - cameraControlHostApiImpl.setExposureCompensationIndex( - cameraControlIdentifier, index, canceledOpResult); - mockedFutures.verify( - () -> - Futures.addCallback( - eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); - mockedFutures.clearInvocations(); - - FutureCallback canceledOpCallback = futureCallbackCaptor.getValue(); - - canceledOpCallback.onFailure(canceledOpThrowable); - verify(canceledOpResult).success(null); - } - } - - @Test - public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { - final CameraControlFlutterApiImpl spyFlutterApi = - spy(new CameraControlFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - - spyFlutterApi.create(cameraControl, reply -> {}); - - final long cameraControlIdentifier = - Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(cameraControl)); - verify(spyFlutterApi).create(eq(cameraControlIdentifier), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.content.Context; +//import androidx.camera.core.CameraControl; +//import androidx.camera.core.FocusMeteringAction; +//import androidx.camera.core.FocusMeteringResult; +//import com.google.common.util.concurrent.FutureCallback; +//import com.google.common.util.concurrent.Futures; +//import com.google.common.util.concurrent.ListenableFuture; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.ArgumentCaptor; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +//import org.mockito.Mockito; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class CameraControlTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public CameraControl cameraControl; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void enableTorch_turnsTorchModeOnAndOffAsExpected() { +// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { +// final CameraControlHostApiImpl cameraControlHostApiImpl = +// new CameraControlHostApiImpl( +// mockBinaryMessenger, testInstanceManager, mock(Context.class)); +// final Long cameraControlIdentifier = 88L; +// final boolean enableTorch = true; +// +// @SuppressWarnings("unchecked") +// final ListenableFuture enableTorchFuture = mock(ListenableFuture.class); +// +// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); +// +// when(cameraControl.enableTorch(true)).thenReturn(enableTorchFuture); +// +// @SuppressWarnings("unchecked") +// final ArgumentCaptor> futureCallbackCaptor = +// ArgumentCaptor.forClass(FutureCallback.class); +// +// // Test successful behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result successfulMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// cameraControlHostApiImpl.enableTorch( +// cameraControlIdentifier, enableTorch, successfulMockResult); +// mockedFutures.verify( +// () -> Futures.addCallback(eq(enableTorchFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback successfulEnableTorchCallback = futureCallbackCaptor.getValue(); +// +// successfulEnableTorchCallback.onSuccess(mock(Void.class)); +// verify(successfulMockResult).success(null); +// +// // Test failed behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result failedMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final Throwable testThrowable = new Throwable(); +// cameraControlHostApiImpl.enableTorch(cameraControlIdentifier, enableTorch, failedMockResult); +// mockedFutures.verify( +// () -> Futures.addCallback(eq(enableTorchFuture), futureCallbackCaptor.capture(), any())); +// +// FutureCallback failedEnableTorchCallback = futureCallbackCaptor.getValue(); +// +// failedEnableTorchCallback.onFailure(testThrowable); +// verify(failedMockResult).error(testThrowable); +// } +// } +// +// @Test +// public void setZoomRatio_setsZoomAsExpected() { +// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { +// final CameraControlHostApiImpl cameraControlHostApiImpl = +// new CameraControlHostApiImpl( +// mockBinaryMessenger, testInstanceManager, mock(Context.class)); +// final Long cameraControlIdentifier = 33L; +// final Double zoomRatio = 0.2D; +// +// @SuppressWarnings("unchecked") +// final ListenableFuture setZoomRatioFuture = mock(ListenableFuture.class); +// +// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); +// +// when(cameraControl.setZoomRatio(zoomRatio.floatValue())).thenReturn(setZoomRatioFuture); +// +// @SuppressWarnings("unchecked") +// final ArgumentCaptor> futureCallbackCaptor = +// ArgumentCaptor.forClass(FutureCallback.class); +// +// // Test successful behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result successfulMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// cameraControlHostApiImpl.setZoomRatio( +// cameraControlIdentifier, zoomRatio, successfulMockResult); +// mockedFutures.verify( +// () -> Futures.addCallback(eq(setZoomRatioFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback successfulSetZoomRatioCallback = futureCallbackCaptor.getValue(); +// +// successfulSetZoomRatioCallback.onSuccess(mock(Void.class)); +// verify(successfulMockResult).success(null); +// +// // Test failed behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result failedMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final Throwable testThrowable = new Throwable(); +// cameraControlHostApiImpl.setZoomRatio(cameraControlIdentifier, zoomRatio, failedMockResult); +// mockedFutures.verify( +// () -> Futures.addCallback(eq(setZoomRatioFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback failedSetZoomRatioCallback = futureCallbackCaptor.getValue(); +// +// failedSetZoomRatioCallback.onFailure(testThrowable); +// verify(failedMockResult).error(testThrowable); +// +// // Test response to canceled operation. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result canceledOpResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final CameraControl.OperationCanceledException canceledOpThrowable = +// mock(CameraControl.OperationCanceledException.class); +// cameraControlHostApiImpl.setZoomRatio(cameraControlIdentifier, zoomRatio, canceledOpResult); +// mockedFutures.verify( +// () -> Futures.addCallback(eq(setZoomRatioFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback canceledOpCallback = futureCallbackCaptor.getValue(); +// +// canceledOpCallback.onFailure(canceledOpThrowable); +// verify(canceledOpResult).success(null); +// } +// } +// +// @Test +// public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { +// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { +// final CameraControlHostApiImpl cameraControlHostApiImpl = +// new CameraControlHostApiImpl( +// mockBinaryMessenger, testInstanceManager, mock(Context.class)); +// final Long cameraControlIdentifier = 90L; +// final FocusMeteringAction mockAction = mock(FocusMeteringAction.class); +// final Long mockActionId = 44L; +// final FocusMeteringResult mockResult = mock(FocusMeteringResult.class); +// final Long mockResultId = 33L; +// +// @SuppressWarnings("unchecked") +// final ListenableFuture startFocusAndMeteringFuture = +// mock(ListenableFuture.class); +// +// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); +// testInstanceManager.addDartCreatedInstance(mockResult, mockResultId); +// testInstanceManager.addDartCreatedInstance(mockAction, mockActionId); +// +// when(cameraControl.startFocusAndMetering(mockAction)).thenReturn(startFocusAndMeteringFuture); +// +// @SuppressWarnings("unchecked") +// final ArgumentCaptor> futureCallbackCaptor = +// ArgumentCaptor.forClass(FutureCallback.class); +// +// // Test successful behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result successfulMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// cameraControlHostApiImpl.startFocusAndMetering( +// cameraControlIdentifier, mockActionId, successfulMockResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback successfulCallback = futureCallbackCaptor.getValue(); +// +// successfulCallback.onSuccess(mockResult); +// verify(successfulMockResult).success(mockResultId); +// +// // Test failed behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result failedMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final Throwable testThrowable = new Throwable(); +// cameraControlHostApiImpl.startFocusAndMetering( +// cameraControlIdentifier, mockActionId, failedMockResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback failedCallback = futureCallbackCaptor.getValue(); +// +// failedCallback.onFailure(testThrowable); +// verify(failedMockResult).error(testThrowable); +// +// // Test response to canceled operation. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result canceledOpResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final CameraControl.OperationCanceledException canceledOpThrowable = +// mock(CameraControl.OperationCanceledException.class); +// cameraControlHostApiImpl.startFocusAndMetering( +// cameraControlIdentifier, mockActionId, canceledOpResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback canceledOpCallback = futureCallbackCaptor.getValue(); +// +// canceledOpCallback.onFailure(canceledOpThrowable); +// verify(canceledOpResult).success(null); +// } +// } +// +// @Test +// public void cancelFocusAndMetering_cancelsFocusAndMeteringAsExpected() { +// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { +// final CameraControlHostApiImpl cameraControlHostApiImpl = +// new CameraControlHostApiImpl( +// mockBinaryMessenger, testInstanceManager, mock(Context.class)); +// final Long cameraControlIdentifier = 8L; +// +// @SuppressWarnings("unchecked") +// final ListenableFuture cancelFocusAndMeteringFuture = mock(ListenableFuture.class); +// +// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); +// +// when(cameraControl.cancelFocusAndMetering()).thenReturn(cancelFocusAndMeteringFuture); +// +// @SuppressWarnings("unchecked") +// final ArgumentCaptor> futureCallbackCaptor = +// ArgumentCaptor.forClass(FutureCallback.class); +// +// // Test successful behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result successfulMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// cameraControlHostApiImpl.cancelFocusAndMetering( +// cameraControlIdentifier, successfulMockResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback successfulCallback = futureCallbackCaptor.getValue(); +// +// successfulCallback.onSuccess(mock(Void.class)); +// verify(successfulMockResult).success(null); +// +// // Test failed behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result failedMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final Throwable testThrowable = new Throwable(); +// cameraControlHostApiImpl.cancelFocusAndMetering(cameraControlIdentifier, failedMockResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); +// +// FutureCallback failedCallback = futureCallbackCaptor.getValue(); +// +// failedCallback.onFailure(testThrowable); +// verify(failedMockResult).error(testThrowable); +// } +// } +// +// @Test +// public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected() { +// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { +// final CameraControlHostApiImpl cameraControlHostApiImpl = +// new CameraControlHostApiImpl( +// mockBinaryMessenger, testInstanceManager, mock(Context.class)); +// final Long cameraControlIdentifier = 53L; +// final Long index = 2L; +// +// @SuppressWarnings("unchecked") +// final ListenableFuture setExposureCompensationIndexFuture = +// mock(ListenableFuture.class); +// +// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); +// +// when(cameraControl.setExposureCompensationIndex(index.intValue())) +// .thenReturn(setExposureCompensationIndexFuture); +// +// @SuppressWarnings("unchecked") +// final ArgumentCaptor> futureCallbackCaptor = +// ArgumentCaptor.forClass(FutureCallback.class); +// +// // Test successful behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result successfulMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// cameraControlHostApiImpl.setExposureCompensationIndex( +// cameraControlIdentifier, index, successfulMockResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback successfulCallback = futureCallbackCaptor.getValue(); +// final Integer fakeResult = 4; +// +// successfulCallback.onSuccess(fakeResult); +// verify(successfulMockResult).success(fakeResult.longValue()); +// +// // Test failed behavior. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result failedMockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final Throwable testThrowable = new Throwable(); +// cameraControlHostApiImpl.setExposureCompensationIndex( +// cameraControlIdentifier, index, failedMockResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback failedCallback = futureCallbackCaptor.getValue(); +// +// failedCallback.onFailure(testThrowable); +// verify(failedMockResult).error(testThrowable); +// +// // Test response to canceled operation. +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result canceledOpResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final CameraControl.OperationCanceledException canceledOpThrowable = +// mock(CameraControl.OperationCanceledException.class); +// cameraControlHostApiImpl.setExposureCompensationIndex( +// cameraControlIdentifier, index, canceledOpResult); +// mockedFutures.verify( +// () -> +// Futures.addCallback( +// eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); +// mockedFutures.clearInvocations(); +// +// FutureCallback canceledOpCallback = futureCallbackCaptor.getValue(); +// +// canceledOpCallback.onFailure(canceledOpThrowable); +// verify(canceledOpResult).success(null); +// } +// } +// +// @Test +// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { +// final CameraControlFlutterApiImpl spyFlutterApi = +// spy(new CameraControlFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// +// spyFlutterApi.create(cameraControl, reply -> {}); +// +// final long cameraControlIdentifier = +// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(cameraControl)); +// verify(spyFlutterApi).create(eq(cameraControlIdentifier), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java index e1a11dae94b..75b4892f3ca 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java @@ -1,66 +1,66 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraInfo -import androidx.camera.core.ExposureState -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraInfoProxyApiTest { - @Test - public void sensorRotationDegrees() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final Long value = 0; - when(instance.getSensorRotationDegrees()).thenReturn(value); - - assertEquals(value, api.sensorRotationDegrees(instance)); - } - - @Test - public void exposureState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final androidx.camera.core.ExposureState value = mock(ExposureState.class); - when(instance.getExposureState()).thenReturn(value); - - assertEquals(value, api.exposureState(instance)); - } - - @Test - public void getCameraState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); - when(instance.getCameraState()).thenReturn(value); - - assertEquals(value, api.getCameraState(instance )); - } - - @Test - public void getZoomState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); - when(instance.getZoomState()).thenReturn(value); - - assertEquals(value, api.getZoomState(instance )); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.CameraInfo +//import androidx.camera.core.ExposureState +//import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraInfoProxyApiTest { +// @Test +// public void sensorRotationDegrees() { +// final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); +// +// final CameraInfo instance = mock(CameraInfo.class); +// final Long value = 0; +// when(instance.getSensorRotationDegrees()).thenReturn(value); +// +// assertEquals(value, api.sensorRotationDegrees(instance)); +// } +// +// @Test +// public void exposureState() { +// final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); +// +// final CameraInfo instance = mock(CameraInfo.class); +// final androidx.camera.core.ExposureState value = mock(ExposureState.class); +// when(instance.getExposureState()).thenReturn(value); +// +// assertEquals(value, api.exposureState(instance)); +// } +// +// @Test +// public void getCameraState() { +// final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); +// +// final CameraInfo instance = mock(CameraInfo.class); +// final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); +// when(instance.getCameraState()).thenReturn(value); +// +// assertEquals(value, api.getCameraState(instance )); +// } +// +// @Test +// public void getZoomState() { +// final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); +// +// final CameraInfo instance = mock(CameraInfo.class); +// final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); +// when(instance.getZoomState()).thenReturn(value); +// +// assertEquals(value, api.getZoomState(instance )); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java index e3cabcf4fde..0b41d6f1ba0 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java @@ -1,136 +1,136 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import androidx.camera.core.CameraInfo; -import androidx.camera.core.CameraState; -import androidx.camera.core.ExposureState; -import androidx.camera.core.ZoomState; -import androidx.lifecycle.LiveData; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedType; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class CameraInfoTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public CameraInfo mockCameraInfo; - @Mock public BinaryMessenger mockBinaryMessenger; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void getSensorRotationDegrees_makesCallToRetrieveSensorRotationDegrees() { - final CameraInfoHostApiImpl cameraInfoHostApi = - new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); - - testInstanceManager.addDartCreatedInstance(mockCameraInfo, 1); - - when(mockCameraInfo.getSensorRotationDegrees()).thenReturn(90); - - assertEquals((long) cameraInfoHostApi.getSensorRotationDegrees(1L), 90L); - verify(mockCameraInfo).getSensorRotationDegrees(); - } - - @Test - public void getCameraState_makesCallToRetrieveLiveCameraState() { - final CameraInfoHostApiImpl cameraInfoHostApiImpl = - new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); - final LiveDataFlutterApiWrapper mockLiveDataFlutterApiWrapper = - mock(LiveDataFlutterApiWrapper.class); - final Long mockCameraInfoIdentifier = 27L; - @SuppressWarnings("unchecked") - final LiveData mockLiveCameraState = (LiveData) mock(LiveData.class); - - testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); - cameraInfoHostApiImpl.liveDataFlutterApiWrapper = mockLiveDataFlutterApiWrapper; - when(mockCameraInfo.getCameraState()).thenReturn(mockLiveCameraState); - - final Long liveCameraStateIdentifier = - cameraInfoHostApiImpl.getCameraState(mockCameraInfoIdentifier); - - verify(mockLiveDataFlutterApiWrapper) - .create(eq(mockLiveCameraState), eq(LiveDataSupportedType.CAMERA_STATE), any()); - assertEquals( - liveCameraStateIdentifier, - testInstanceManager.getIdentifierForStrongReference(mockLiveCameraState)); - } - - @Test - public void getExposureState_retrievesExpectedExposureState() { - final CameraInfoHostApiImpl cameraInfoHostApiImpl = - new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); - final ExposureState mockExposureState = mock(ExposureState.class); - final Long mockCameraInfoIdentifier = 27L; - final Long mockExposureStateIdentifier = 47L; - - testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); - testInstanceManager.addDartCreatedInstance(mockExposureState, mockExposureStateIdentifier); - - when(mockCameraInfo.getExposureState()).thenReturn(mockExposureState); - - assertEquals( - cameraInfoHostApiImpl.getExposureState(mockCameraInfoIdentifier), - mockExposureStateIdentifier); - verify(mockCameraInfo).getExposureState(); - } - - @Test - @SuppressWarnings("unchecked") - public void getZoomState_retrievesExpectedZoomState() { - final CameraInfoHostApiImpl cameraInfoHostApiImpl = - new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); - final LiveData mockLiveZoomState = (LiveData) mock(LiveData.class); - final ZoomState mockZoomState = mock(ZoomState.class); - final Long mockCameraInfoIdentifier = 20L; - final Long mockLiveZoomStateIdentifier = 74L; - - testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); - testInstanceManager.addDartCreatedInstance(mockLiveZoomState, mockLiveZoomStateIdentifier); - - when(mockCameraInfo.getZoomState()).thenReturn(mockLiveZoomState); - - assertEquals( - cameraInfoHostApiImpl.getZoomState(mockCameraInfoIdentifier), mockLiveZoomStateIdentifier); - verify(mockCameraInfo).getZoomState(); - } - - @Test - public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { - final CameraInfoFlutterApiImpl spyFlutterApi = - spy(new CameraInfoFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - - spyFlutterApi.create(mockCameraInfo, reply -> {}); - - final long identifier = - Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockCameraInfo)); - verify(spyFlutterApi).create(eq(identifier), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.CameraInfo; +//import androidx.camera.core.CameraState; +//import androidx.camera.core.ExposureState; +//import androidx.camera.core.ZoomState; +//import androidx.lifecycle.LiveData; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedType; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class CameraInfoTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public CameraInfo mockCameraInfo; +// @Mock public BinaryMessenger mockBinaryMessenger; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void getSensorRotationDegrees_makesCallToRetrieveSensorRotationDegrees() { +// final CameraInfoHostApiImpl cameraInfoHostApi = +// new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); +// +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, 1); +// +// when(mockCameraInfo.getSensorRotationDegrees()).thenReturn(90); +// +// assertEquals((long) cameraInfoHostApi.getSensorRotationDegrees(1L), 90L); +// verify(mockCameraInfo).getSensorRotationDegrees(); +// } +// +// @Test +// public void getCameraState_makesCallToRetrieveLiveCameraState() { +// final CameraInfoHostApiImpl cameraInfoHostApiImpl = +// new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final LiveDataFlutterApiWrapper mockLiveDataFlutterApiWrapper = +// mock(LiveDataFlutterApiWrapper.class); +// final Long mockCameraInfoIdentifier = 27L; +// @SuppressWarnings("unchecked") +// final LiveData mockLiveCameraState = (LiveData) mock(LiveData.class); +// +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); +// cameraInfoHostApiImpl.liveDataFlutterApiWrapper = mockLiveDataFlutterApiWrapper; +// when(mockCameraInfo.getCameraState()).thenReturn(mockLiveCameraState); +// +// final Long liveCameraStateIdentifier = +// cameraInfoHostApiImpl.getCameraState(mockCameraInfoIdentifier); +// +// verify(mockLiveDataFlutterApiWrapper) +// .create(eq(mockLiveCameraState), eq(LiveDataSupportedType.CAMERA_STATE), any()); +// assertEquals( +// liveCameraStateIdentifier, +// testInstanceManager.getIdentifierForStrongReference(mockLiveCameraState)); +// } +// +// @Test +// public void getExposureState_retrievesExpectedExposureState() { +// final CameraInfoHostApiImpl cameraInfoHostApiImpl = +// new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final ExposureState mockExposureState = mock(ExposureState.class); +// final Long mockCameraInfoIdentifier = 27L; +// final Long mockExposureStateIdentifier = 47L; +// +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); +// testInstanceManager.addDartCreatedInstance(mockExposureState, mockExposureStateIdentifier); +// +// when(mockCameraInfo.getExposureState()).thenReturn(mockExposureState); +// +// assertEquals( +// cameraInfoHostApiImpl.getExposureState(mockCameraInfoIdentifier), +// mockExposureStateIdentifier); +// verify(mockCameraInfo).getExposureState(); +// } +// +// @Test +// @SuppressWarnings("unchecked") +// public void getZoomState_retrievesExpectedZoomState() { +// final CameraInfoHostApiImpl cameraInfoHostApiImpl = +// new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final LiveData mockLiveZoomState = (LiveData) mock(LiveData.class); +// final ZoomState mockZoomState = mock(ZoomState.class); +// final Long mockCameraInfoIdentifier = 20L; +// final Long mockLiveZoomStateIdentifier = 74L; +// +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); +// testInstanceManager.addDartCreatedInstance(mockLiveZoomState, mockLiveZoomStateIdentifier); +// +// when(mockCameraInfo.getZoomState()).thenReturn(mockLiveZoomState); +// +// assertEquals( +// cameraInfoHostApiImpl.getZoomState(mockCameraInfoIdentifier), mockLiveZoomStateIdentifier); +// verify(mockCameraInfo).getZoomState(); +// } +// +// @Test +// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { +// final CameraInfoFlutterApiImpl spyFlutterApi = +// spy(new CameraInfoFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// +// spyFlutterApi.create(mockCameraInfo, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockCameraInfo)); +// verify(spyFlutterApi).create(eq(identifier), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java index 2fd3b489e88..474f67d710c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java @@ -1,49 +1,49 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.util.Range<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraIntegerRangeProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); - - assertTrue(api.pigeon_defaultConstructor() instanceof CameraIntegerRangeProxyApi.CameraIntegerRange); - } - - @Test - public void lower() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); - - final CameraIntegerRange instance = mock(CameraIntegerRange.class); - final Long value = 0; - when(instance.getLower()).thenReturn(value); - - assertEquals(value, api.lower(instance)); - } - - @Test - public void upper() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); - - final CameraIntegerRange instance = mock(CameraIntegerRange.class); - final Long value = 0; - when(instance.getUpper()).thenReturn(value); - - assertEquals(value, api.upper(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import android.util.Range<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraIntegerRangeProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); +// +// assertTrue(api.pigeon_defaultConstructor() instanceof CameraIntegerRangeProxyApi.CameraIntegerRange); +// } +// +// @Test +// public void lower() { +// final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); +// +// final CameraIntegerRange instance = mock(CameraIntegerRange.class); +// final Long value = 0; +// when(instance.getLower()).thenReturn(value); +// +// assertEquals(value, api.lower(instance)); +// } +// +// @Test +// public void upper() { +// final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); +// +// final CameraIntegerRange instance = mock(CameraIntegerRange.class); +// final Long value = 0; +// when(instance.getUpper()).thenReturn(value); +// +// assertEquals(value, api.upper(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java index d90bde95330..232a294286a 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java @@ -1,89 +1,89 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static junit.framework.TestCase.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; - -import android.content.pm.PackageManager; -import io.flutter.plugins.camerax.CameraPermissionsManager.CameraRequestPermissionsListener; -import io.flutter.plugins.camerax.CameraPermissionsManager.ResultCallback; -import org.junit.Test; - -public class CameraPermissionsManagerTest { - @Test - public void listener_respondsOnce() { - final int[] calledCounter = {0}; - CameraRequestPermissionsListener permissionsListener = - new CameraRequestPermissionsListener((String code, String desc) -> calledCounter[0]++); - - permissionsListener.onRequestPermissionsResult( - 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); - permissionsListener.onRequestPermissionsResult( - 9796, null, new int[] {PackageManager.PERMISSION_GRANTED}); - - assertEquals(1, calledCounter[0]); - } - - @Test - public void callback_respondsWithCameraAccessDenied() { - ResultCallback fakeResultCallback = mock(ResultCallback.class); - CameraRequestPermissionsListener permissionsListener = - new CameraRequestPermissionsListener(fakeResultCallback); - - permissionsListener.onRequestPermissionsResult( - 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); - - verify(fakeResultCallback) - .onResult("CameraAccessDenied", "Camera access permission was denied."); - } - - @Test - public void callback_respondsWithAudioAccessDenied() { - ResultCallback fakeResultCallback = mock(ResultCallback.class); - CameraRequestPermissionsListener permissionsListener = - new CameraRequestPermissionsListener(fakeResultCallback); - - permissionsListener.onRequestPermissionsResult( - 9796, - null, - new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_DENIED}); - - verify(fakeResultCallback).onResult("AudioAccessDenied", "Audio access permission was denied."); - } - - @Test - public void callback_doesNotRespond() { - ResultCallback fakeResultCallback = mock(ResultCallback.class); - CameraRequestPermissionsListener permissionsListener = - new CameraRequestPermissionsListener(fakeResultCallback); - - permissionsListener.onRequestPermissionsResult( - 9796, - null, - new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_GRANTED}); - - verify(fakeResultCallback, never()) - .onResult("CameraAccessDenied", "Camera access permission was denied."); - verify(fakeResultCallback, never()) - .onResult("AudioAccessDenied", "Audio access permission was denied."); - } - - @Test - public void callback_respondsWithCameraAccessDeniedWhenEmptyResult() { - // Handles the case where the grantResults array is empty - - ResultCallback fakeResultCallback = mock(ResultCallback.class); - CameraRequestPermissionsListener permissionsListener = - new CameraRequestPermissionsListener(fakeResultCallback); - - permissionsListener.onRequestPermissionsResult(9796, null, new int[] {}); - - verify(fakeResultCallback) - .onResult("CameraAccessDenied", "Camera access permission was denied."); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static junit.framework.TestCase.assertEquals; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.never; +//import static org.mockito.Mockito.verify; +// +//import android.content.pm.PackageManager; +//import io.flutter.plugins.camerax.CameraPermissionsManager.CameraRequestPermissionsListener; +//import io.flutter.plugins.camerax.CameraPermissionsManager.ResultCallback; +//import org.junit.Test; +// +//public class CameraPermissionsManagerTest { +// @Test +// public void listener_respondsOnce() { +// final int[] calledCounter = {0}; +// CameraRequestPermissionsListener permissionsListener = +// new CameraRequestPermissionsListener((String code, String desc) -> calledCounter[0]++); +// +// permissionsListener.onRequestPermissionsResult( +// 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); +// permissionsListener.onRequestPermissionsResult( +// 9796, null, new int[] {PackageManager.PERMISSION_GRANTED}); +// +// assertEquals(1, calledCounter[0]); +// } +// +// @Test +// public void callback_respondsWithCameraAccessDenied() { +// ResultCallback fakeResultCallback = mock(ResultCallback.class); +// CameraRequestPermissionsListener permissionsListener = +// new CameraRequestPermissionsListener(fakeResultCallback); +// +// permissionsListener.onRequestPermissionsResult( +// 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); +// +// verify(fakeResultCallback) +// .onResult("CameraAccessDenied", "Camera access permission was denied."); +// } +// +// @Test +// public void callback_respondsWithAudioAccessDenied() { +// ResultCallback fakeResultCallback = mock(ResultCallback.class); +// CameraRequestPermissionsListener permissionsListener = +// new CameraRequestPermissionsListener(fakeResultCallback); +// +// permissionsListener.onRequestPermissionsResult( +// 9796, +// null, +// new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_DENIED}); +// +// verify(fakeResultCallback).onResult("AudioAccessDenied", "Audio access permission was denied."); +// } +// +// @Test +// public void callback_doesNotRespond() { +// ResultCallback fakeResultCallback = mock(ResultCallback.class); +// CameraRequestPermissionsListener permissionsListener = +// new CameraRequestPermissionsListener(fakeResultCallback); +// +// permissionsListener.onRequestPermissionsResult( +// 9796, +// null, +// new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_GRANTED}); +// +// verify(fakeResultCallback, never()) +// .onResult("CameraAccessDenied", "Camera access permission was denied."); +// verify(fakeResultCallback, never()) +// .onResult("AudioAccessDenied", "Audio access permission was denied."); +// } +// +// @Test +// public void callback_respondsWithCameraAccessDeniedWhenEmptyResult() { +// // Handles the case where the grantResults array is empty +// +// ResultCallback fakeResultCallback = mock(ResultCallback.class); +// CameraRequestPermissionsListener permissionsListener = +// new CameraRequestPermissionsListener(fakeResultCallback); +// +// permissionsListener.onRequestPermissionsResult(9796, null, new int[] {}); +// +// verify(fakeResultCallback) +// .onResult("CameraAccessDenied", "Camera access permission was denied."); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java index c1bb20d6bde..d56beecfc2e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java @@ -1,44 +1,44 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.Camera -import androidx.camera.core.CameraControl -import androidx.camera.core.CameraInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraProxyApiTest { - @Test - public void cameraControl() { - final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); - - final Camera instance = mock(Camera.class); - final androidx.camera.core.CameraControl value = mock(CameraControl.class); - when(instance.getCameraControl()).thenReturn(value); - - assertEquals(value, api.cameraControl(instance)); - } - - @Test - public void getCameraInfo() { - final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); - - final Camera instance = mock(Camera.class); - final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); - when(instance.getCameraInfo()).thenReturn(value); - - assertEquals(value, api.getCameraInfo(instance )); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.Camera +//import androidx.camera.core.CameraControl +//import androidx.camera.core.CameraInfo +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraProxyApiTest { +// @Test +// public void cameraControl() { +// final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); +// +// final Camera instance = mock(Camera.class); +// final androidx.camera.core.CameraControl value = mock(CameraControl.class); +// when(instance.getCameraControl()).thenReturn(value); +// +// assertEquals(value, api.cameraControl(instance)); +// } +// +// @Test +// public void getCameraInfo() { +// final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); +// +// final Camera instance = mock(Camera.class); +// final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); +// when(instance.getCameraInfo()).thenReturn(value); +// +// assertEquals(value, api.getCameraInfo(instance )); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java index 5c50678b1e8..edf23635fb8 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java @@ -1,40 +1,40 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraSelector -import androidx.camera.core.CameraInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraSelectorProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); - - assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT) instanceof CameraSelectorProxyApi.CameraSelector); - } - - @Test - public void filter() { - final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); - - final CameraSelector instance = mock(CameraSelector.class); - final List cameraInfos = Arrays.asList(mock(CameraInfo.class)); - final List value = Arrays.asList(mock(CameraInfo.class)); - when(instance.filter(cameraInfos)).thenReturn(value); - - assertEquals(value, api.filter(instance, cameraInfos)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.CameraSelector +//import androidx.camera.core.CameraInfo +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraSelectorProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); +// +// assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT) instanceof CameraSelectorProxyApi.CameraSelector); +// } +// +// @Test +// public void filter() { +// final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); +// +// final CameraSelector instance = mock(CameraSelector.class); +// final List cameraInfos = Arrays.asList(mock(CameraInfo.class)); +// final List value = Arrays.asList(mock(CameraInfo.class)); +// when(instance.filter(cameraInfos)).thenReturn(value); +// +// assertEquals(value, api.filter(instance, cameraInfos)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java index 81ae31f7475..8b582d6f4ff 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java @@ -1,97 +1,97 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import androidx.camera.core.CameraInfo; -import androidx.camera.core.CameraSelector; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.Arrays; -import java.util.List; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class CameraSelectorTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public CameraSelector mockCameraSelector; - @Mock public BinaryMessenger mockBinaryMessenger; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void createTest() { - final CameraSelectorHostApiImpl cameraSelectorHostApi = - new CameraSelectorHostApiImpl(mockBinaryMessenger, testInstanceManager); - final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); - final CameraSelector.Builder mockCameraSelectorBuilder = mock(CameraSelector.Builder.class); - - cameraSelectorHostApi.cameraXProxy = mockCameraXProxy; - when(mockCameraXProxy.createCameraSelectorBuilder()).thenReturn(mockCameraSelectorBuilder); - - when(mockCameraSelectorBuilder.requireLensFacing(1)).thenReturn(mockCameraSelectorBuilder); - when(mockCameraSelectorBuilder.build()).thenReturn(mockCameraSelector); - - cameraSelectorHostApi.create(0L, 1L); - - verify(mockCameraSelectorBuilder).requireLensFacing(CameraSelector.LENS_FACING_BACK); - assertEquals(testInstanceManager.getInstance(0L), mockCameraSelector); - } - - @Test - public void filterTest() { - final CameraSelectorHostApiImpl cameraSelectorHostApi = - new CameraSelectorHostApiImpl(mockBinaryMessenger, testInstanceManager); - final CameraInfo cameraInfo = mock(CameraInfo.class); - final List cameraInfosForFilter = Arrays.asList(cameraInfo); - final List cameraInfosIds = Arrays.asList(1L); - - testInstanceManager.addDartCreatedInstance(mockCameraSelector, 0); - testInstanceManager.addDartCreatedInstance(cameraInfo, 1); - - when(mockCameraSelector.filter(cameraInfosForFilter)).thenReturn(cameraInfosForFilter); - - assertEquals( - cameraSelectorHostApi.filter(0L, cameraInfosIds), - Arrays.asList(testInstanceManager.getIdentifierForStrongReference(cameraInfo))); - verify(mockCameraSelector).filter(cameraInfosForFilter); - } - - @Test - public void flutterApiCreateTest() { - final CameraSelectorFlutterApiImpl spyFlutterApi = - spy(new CameraSelectorFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - - spyFlutterApi.create(mockCameraSelector, 0L, reply -> {}); - - final long identifier = - Objects.requireNonNull( - testInstanceManager.getIdentifierForStrongReference(mockCameraSelector)); - verify(spyFlutterApi).create(eq(identifier), eq(0L), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.CameraInfo; +//import androidx.camera.core.CameraSelector; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.Arrays; +//import java.util.List; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class CameraSelectorTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public CameraSelector mockCameraSelector; +// @Mock public BinaryMessenger mockBinaryMessenger; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void createTest() { +// final CameraSelectorHostApiImpl cameraSelectorHostApi = +// new CameraSelectorHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); +// final CameraSelector.Builder mockCameraSelectorBuilder = mock(CameraSelector.Builder.class); +// +// cameraSelectorHostApi.cameraXProxy = mockCameraXProxy; +// when(mockCameraXProxy.createCameraSelectorBuilder()).thenReturn(mockCameraSelectorBuilder); +// +// when(mockCameraSelectorBuilder.requireLensFacing(1)).thenReturn(mockCameraSelectorBuilder); +// when(mockCameraSelectorBuilder.build()).thenReturn(mockCameraSelector); +// +// cameraSelectorHostApi.create(0L, 1L); +// +// verify(mockCameraSelectorBuilder).requireLensFacing(CameraSelector.LENS_FACING_BACK); +// assertEquals(testInstanceManager.getInstance(0L), mockCameraSelector); +// } +// +// @Test +// public void filterTest() { +// final CameraSelectorHostApiImpl cameraSelectorHostApi = +// new CameraSelectorHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final CameraInfo cameraInfo = mock(CameraInfo.class); +// final List cameraInfosForFilter = Arrays.asList(cameraInfo); +// final List cameraInfosIds = Arrays.asList(1L); +// +// testInstanceManager.addDartCreatedInstance(mockCameraSelector, 0); +// testInstanceManager.addDartCreatedInstance(cameraInfo, 1); +// +// when(mockCameraSelector.filter(cameraInfosForFilter)).thenReturn(cameraInfosForFilter); +// +// assertEquals( +// cameraSelectorHostApi.filter(0L, cameraInfosIds), +// Arrays.asList(testInstanceManager.getIdentifierForStrongReference(cameraInfo))); +// verify(mockCameraSelector).filter(cameraInfosForFilter); +// } +// +// @Test +// public void flutterApiCreateTest() { +// final CameraSelectorFlutterApiImpl spyFlutterApi = +// spy(new CameraSelectorFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// +// spyFlutterApi.create(mockCameraSelector, 0L, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull( +// testInstanceManager.getIdentifierForStrongReference(mockCameraSelector)); +// verify(spyFlutterApi).create(eq(identifier), eq(0L), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java index a3d7e67b59b..3cda72fdbb9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java @@ -1,49 +1,49 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraSizeProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); - - assertTrue(api.pigeon_defaultConstructor() instanceof CameraSizeProxyApi.CameraSize); - } - - @Test - public void width() { - final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); - - final CameraSize instance = mock(CameraSize.class); - final Long value = 0; - when(instance.getWidth()).thenReturn(value); - - assertEquals(value, api.width(instance)); - } - - @Test - public void height() { - final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); - - final CameraSize instance = mock(CameraSize.class); - final Long value = 0; - when(instance.getHeight()).thenReturn(value); - - assertEquals(value, api.height(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import android.util.Size +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraSizeProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); +// +// assertTrue(api.pigeon_defaultConstructor() instanceof CameraSizeProxyApi.CameraSize); +// } +// +// @Test +// public void width() { +// final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); +// +// final CameraSize instance = mock(CameraSize.class); +// final Long value = 0; +// when(instance.getWidth()).thenReturn(value); +// +// assertEquals(value, api.width(instance)); +// } +// +// @Test +// public void height() { +// final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); +// +// final CameraSize instance = mock(CameraSize.class); +// final Long value = 0; +// when(instance.getHeight()).thenReturn(value); +// +// assertEquals(value, api.height(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateErrorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateErrorTest.java index 0d07c496c8e..e675b8ff12d 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateErrorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateErrorTest.java @@ -1,57 +1,57 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; - -import androidx.camera.core.CameraState; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateErrorFlutterApi; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class CameraStateErrorTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public CameraState.StateError mockCameraStateError; - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public CameraStateErrorFlutterApi mockFlutterApi; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void flutterApiCreate_makesCallToDartToCreateInstance() { - final CameraStateErrorFlutterApiWrapper flutterApi = - new CameraStateErrorFlutterApiWrapper(mockBinaryMessenger, instanceManager); - flutterApi.setApi(mockFlutterApi); - - final Long code = 0L; - - flutterApi.create(mockCameraStateError, code, reply -> {}); - - final long instanceIdentifier = - Objects.requireNonNull( - instanceManager.getIdentifierForStrongReference(mockCameraStateError)); - verify(mockFlutterApi).create(eq(instanceIdentifier), eq(code), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.verify; +// +//import androidx.camera.core.CameraState; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateErrorFlutterApi; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class CameraStateErrorTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public CameraState.StateError mockCameraStateError; +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public CameraStateErrorFlutterApi mockFlutterApi; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void flutterApiCreate_makesCallToDartToCreateInstance() { +// final CameraStateErrorFlutterApiWrapper flutterApi = +// new CameraStateErrorFlutterApiWrapper(mockBinaryMessenger, instanceManager); +// flutterApi.setApi(mockFlutterApi); +// +// final Long code = 0L; +// +// flutterApi.create(mockCameraStateError, code, reply -> {}); +// +// final long instanceIdentifier = +// Objects.requireNonNull( +// instanceManager.getIdentifierForStrongReference(mockCameraStateError)); +// verify(mockFlutterApi).create(eq(instanceIdentifier), eq(code), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java index 55322cefc18..6918f498ee2 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java @@ -1,43 +1,43 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraState -import androidx.camera.core.CameraState.StateError -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraStateProxyApiTest { - @Test - public void type() { - final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); - - final CameraState instance = mock(CameraState.class); - final CameraStateType value = io.flutter.plugins.camerax.CameraStateType.CLOSED; - when(instance.getType()).thenReturn(value); - - assertEquals(value, api.type(instance)); - } - - @Test - public void error() { - final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); - - final CameraState instance = mock(CameraState.class); - final androidx.camera.core.CameraState.StateError value = mock(CameraStateStateError.class); - when(instance.getError()).thenReturn(value); - - assertEquals(value, api.error(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.CameraState +//import androidx.camera.core.CameraState.StateError +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraStateProxyApiTest { +// @Test +// public void type() { +// final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); +// +// final CameraState instance = mock(CameraState.class); +// final CameraStateType value = io.flutter.plugins.camerax.CameraStateType.CLOSED; +// when(instance.getType()).thenReturn(value); +// +// assertEquals(value, api.type(instance)); +// } +// +// @Test +// public void error() { +// final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); +// +// final CameraState instance = mock(CameraState.class); +// final androidx.camera.core.CameraState.StateError value = mock(CameraStateStateError.class); +// when(instance.getError()).thenReturn(value); +// +// assertEquals(value, api.error(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java index 18613d769f6..6776dc98cae 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java @@ -1,31 +1,31 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraState.StateError -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraStateStateErrorProxyApiTest { - @Test - public void code() { - final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); - - final CameraStateStateError instance = mock(CameraStateStateError.class); - final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; - when(instance.getCode()).thenReturn(value); - - assertEquals(value, api.code(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.CameraState.StateError +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CameraStateStateErrorProxyApiTest { +// @Test +// public void code() { +// final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); +// +// final CameraStateStateError instance = mock(CameraStateStateError.class); +// final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; +// when(instance.getCode()).thenReturn(value); +// +// assertEquals(value, api.code(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java index 726241e612c..80593cb4130 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java @@ -1,102 +1,102 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import androidx.camera.core.CameraState; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateFlutterApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateType; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateTypeData; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class CameraStateTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public CameraState mockCameraState; - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public CameraStateFlutterApi mockFlutterApi; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void flutterApiCreate_makesCallToDartToCreateInstance() { - final CameraStateFlutterApiWrapper flutterApi = - new CameraStateFlutterApiWrapper(mockBinaryMessenger, instanceManager); - flutterApi.setApi(mockFlutterApi); - - final CameraStateType type = CameraStateType.OPEN; - final CameraState.StateError mockError = mock(CameraState.StateError.class); - - flutterApi.create(mockCameraState, type, mockError, reply -> {}); - - final long instanceIdentifier = - Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockCameraState)); - final ArgumentCaptor cameraStateTypeDataCaptor = - ArgumentCaptor.forClass(CameraStateTypeData.class); - - verify(mockFlutterApi) - .create( - eq(instanceIdentifier), - cameraStateTypeDataCaptor.capture(), - eq(Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockError))), - any()); - - assertEquals(cameraStateTypeDataCaptor.getValue().getValue(), type); - } - - @Test - public void getCameraStateType_returnsExpectedType() { - for (CameraState.Type type : CameraState.Type.values()) { - switch (type) { - case CLOSED: - assertEquals( - CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.CLOSED); - break; - case CLOSING: - assertEquals( - CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.CLOSING); - break; - case OPEN: - assertEquals(CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.OPEN); - break; - case OPENING: - assertEquals( - CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.OPENING); - break; - case PENDING_OPEN: - assertEquals( - CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.PENDING_OPEN); - break; - default: - fail("The CameraState.Type " + type.toString() + " is unhandled by this test."); - } - } - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.fail; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.verify; +// +//import androidx.camera.core.CameraState; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateFlutterApi; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateType; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateTypeData; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.ArgumentCaptor; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class CameraStateTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public CameraState mockCameraState; +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public CameraStateFlutterApi mockFlutterApi; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void flutterApiCreate_makesCallToDartToCreateInstance() { +// final CameraStateFlutterApiWrapper flutterApi = +// new CameraStateFlutterApiWrapper(mockBinaryMessenger, instanceManager); +// flutterApi.setApi(mockFlutterApi); +// +// final CameraStateType type = CameraStateType.OPEN; +// final CameraState.StateError mockError = mock(CameraState.StateError.class); +// +// flutterApi.create(mockCameraState, type, mockError, reply -> {}); +// +// final long instanceIdentifier = +// Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockCameraState)); +// final ArgumentCaptor cameraStateTypeDataCaptor = +// ArgumentCaptor.forClass(CameraStateTypeData.class); +// +// verify(mockFlutterApi) +// .create( +// eq(instanceIdentifier), +// cameraStateTypeDataCaptor.capture(), +// eq(Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockError))), +// any()); +// +// assertEquals(cameraStateTypeDataCaptor.getValue().getValue(), type); +// } +// +// @Test +// public void getCameraStateType_returnsExpectedType() { +// for (CameraState.Type type : CameraState.Type.values()) { +// switch (type) { +// case CLOSED: +// assertEquals( +// CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.CLOSED); +// break; +// case CLOSING: +// assertEquals( +// CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.CLOSING); +// break; +// case OPEN: +// assertEquals(CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.OPEN); +// break; +// case OPENING: +// assertEquals( +// CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.OPENING); +// break; +// case PENDING_OPEN: +// assertEquals( +// CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.PENDING_OPEN); +// break; +// default: +// fail("The CameraState.Type " + type.toString() + " is unhandled by this test."); +// } +// } +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java index 590529c9334..22375c47f74 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java @@ -1,91 +1,91 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import androidx.camera.core.Camera; -import androidx.camera.core.CameraControl; -import androidx.camera.core.CameraInfo; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class CameraTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public Camera camera; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void getCameraInfo_retrievesExpectedCameraInfoInstance() { - final CameraHostApiImpl cameraHostApiImpl = - new CameraHostApiImpl(mockBinaryMessenger, testInstanceManager); - final CameraInfo mockCameraInfo = mock(CameraInfo.class); - final Long cameraIdentifier = 34L; - final Long mockCameraInfoIdentifier = 97L; - - testInstanceManager.addDartCreatedInstance(camera, cameraIdentifier); - testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); - - when(camera.getCameraInfo()).thenReturn(mockCameraInfo); - - assertEquals(cameraHostApiImpl.getCameraInfo(cameraIdentifier), mockCameraInfoIdentifier); - verify(camera).getCameraInfo(); - } - - @Test - public void getCameraControl_retrievesExpectedCameraControlInstance() { - final CameraHostApiImpl cameraHostApiImpl = - new CameraHostApiImpl(mockBinaryMessenger, testInstanceManager); - final CameraControl mockCameraControl = mock(CameraControl.class); - final Long cameraIdentifier = 43L; - final Long mockCameraControlIdentifier = 79L; - - testInstanceManager.addDartCreatedInstance(camera, cameraIdentifier); - testInstanceManager.addDartCreatedInstance(mockCameraControl, mockCameraControlIdentifier); - - when(camera.getCameraControl()).thenReturn(mockCameraControl); - - assertEquals(cameraHostApiImpl.getCameraControl(cameraIdentifier), mockCameraControlIdentifier); - verify(camera).getCameraControl(); - } - - @Test - public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { - final CameraFlutterApiImpl spyFlutterApi = - spy(new CameraFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - - spyFlutterApi.create(camera, reply -> {}); - - final long identifier = - Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(camera)); - verify(spyFlutterApi).create(eq(identifier), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.Camera; +//import androidx.camera.core.CameraControl; +//import androidx.camera.core.CameraInfo; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class CameraTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public Camera camera; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void getCameraInfo_retrievesExpectedCameraInfoInstance() { +// final CameraHostApiImpl cameraHostApiImpl = +// new CameraHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final CameraInfo mockCameraInfo = mock(CameraInfo.class); +// final Long cameraIdentifier = 34L; +// final Long mockCameraInfoIdentifier = 97L; +// +// testInstanceManager.addDartCreatedInstance(camera, cameraIdentifier); +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); +// +// when(camera.getCameraInfo()).thenReturn(mockCameraInfo); +// +// assertEquals(cameraHostApiImpl.getCameraInfo(cameraIdentifier), mockCameraInfoIdentifier); +// verify(camera).getCameraInfo(); +// } +// +// @Test +// public void getCameraControl_retrievesExpectedCameraControlInstance() { +// final CameraHostApiImpl cameraHostApiImpl = +// new CameraHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final CameraControl mockCameraControl = mock(CameraControl.class); +// final Long cameraIdentifier = 43L; +// final Long mockCameraControlIdentifier = 79L; +// +// testInstanceManager.addDartCreatedInstance(camera, cameraIdentifier); +// testInstanceManager.addDartCreatedInstance(mockCameraControl, mockCameraControlIdentifier); +// +// when(camera.getCameraControl()).thenReturn(mockCameraControl); +// +// assertEquals(cameraHostApiImpl.getCameraControl(cameraIdentifier), mockCameraControlIdentifier); +// verify(camera).getCameraControl(); +// } +// +// @Test +// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { +// final CameraFlutterApiImpl spyFlutterApi = +// spy(new CameraFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// +// spyFlutterApi.create(camera, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(camera)); +// verify(spyFlutterApi).create(eq(identifier), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java index b438a2f9fdf..da388392b5a 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java @@ -1,20 +1,20 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CaptureRequest.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestKeyProxyApiTest { -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import android.hardware.camera2.CaptureRequest.Key<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CaptureRequestKeyProxyApiTest { +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java index defe18a676d..a419ccd9047 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java @@ -1,28 +1,40 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.camera2.interop.CaptureRequestOptions -import android.hardware.camera2.CaptureRequest.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestOptionsProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); - - assertTrue(api.pigeon_defaultConstructor(new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}) instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.camera2.interop.CaptureRequestOptions +//import android.hardware.camera2.CaptureRequest.Key<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CaptureRequestOptionsProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); +// +// assertTrue(api.pigeon_defaultConstructor(new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}) instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); +// } +// +// @Test +// public void getCaptureRequestOption() { +// final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); +// +// final CaptureRequestOptions instance = mock(CaptureRequestOptions.class); +// final android.hardware.camera2.CaptureRequest.Key<*> key = mock(CaptureRequestKey.class); +// final Any value = -1; +// when(instance.getCaptureRequestOption(key)).thenReturn(value); +// +// assertEquals(value, api.getCaptureRequestOption(instance, key)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java index 9c3329978d4..6b2ee3b6f5c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java @@ -1,109 +1,109 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.hardware.camera2.CaptureRequest; -import androidx.camera.camera2.interop.CaptureRequestOptions; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CaptureRequestKeySupportedType; -import java.util.HashMap; -import java.util.Map; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class CaptureRequestOptionsTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public CaptureRequestOptions mockCaptureRequestOptions; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void create_buildsExpectedCaptureKeyRequestOptionsWhenOptionsNonNull() { - final CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy proxySpy = - spy(new CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy()); - final CaptureRequestOptionsHostApiImpl hostApi = - new CaptureRequestOptionsHostApiImpl(testInstanceManager, proxySpy); - final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); - final long instanceIdentifier = 44; - - // Map between CaptureRequestOptions indices and a test value for that option. - final Map options = - new HashMap() { - { - put(0L, false); - } - }; - - when(proxySpy.getCaptureRequestOptionsBuilder()).thenReturn(mockBuilder); - when(mockBuilder.build()).thenReturn(mockCaptureRequestOptions); - - hostApi.create(instanceIdentifier, options); - for (CaptureRequestKeySupportedType supportedType : CaptureRequestKeySupportedType.values()) { - final Long supportedTypeIndex = Long.valueOf(supportedType.index); - final Object testValueForSupportedType = options.get(supportedTypeIndex); - switch (supportedType) { - case CONTROL_AE_LOCK: - verify(mockBuilder) - .setCaptureRequestOption( - eq(CaptureRequest.CONTROL_AE_LOCK), eq((Boolean) testValueForSupportedType)); - break; - default: - throw new IllegalArgumentException( - "The capture request key is not currently supported by the plugin."); - } - } - - assertEquals(testInstanceManager.getInstance(instanceIdentifier), mockCaptureRequestOptions); - } - - @Test - public void create_buildsExpectedCaptureKeyRequestOptionsWhenAnOptionIsNull() { - final CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy proxySpy = - spy(new CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy()); - final CaptureRequestOptionsHostApiImpl hostApi = - new CaptureRequestOptionsHostApiImpl(testInstanceManager, proxySpy); - final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); - final long instanceIdentifier = 44; - - // Map between CaptureRequestOptions.CONTROL_AE_LOCK index and test value. - final Map options = - new HashMap() { - { - put(0L, null); - } - }; - - when(proxySpy.getCaptureRequestOptionsBuilder()).thenReturn(mockBuilder); - when(mockBuilder.build()).thenReturn(mockCaptureRequestOptions); - - hostApi.create(instanceIdentifier, options); - - verify(mockBuilder).clearCaptureRequestOption(CaptureRequest.CONTROL_AE_LOCK); - - assertEquals(testInstanceManager.getInstance(instanceIdentifier), mockCaptureRequestOptions); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.hardware.camera2.CaptureRequest; +//import androidx.camera.camera2.interop.CaptureRequestOptions; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CaptureRequestKeySupportedType; +//import java.util.HashMap; +//import java.util.Map; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class CaptureRequestOptionsTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public CaptureRequestOptions mockCaptureRequestOptions; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void create_buildsExpectedCaptureKeyRequestOptionsWhenOptionsNonNull() { +// final CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy proxySpy = +// spy(new CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy()); +// final CaptureRequestOptionsHostApiImpl hostApi = +// new CaptureRequestOptionsHostApiImpl(testInstanceManager, proxySpy); +// final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); +// final long instanceIdentifier = 44; +// +// // Map between CaptureRequestOptions indices and a test value for that option. +// final Map options = +// new HashMap() { +// { +// put(0L, false); +// } +// }; +// +// when(proxySpy.getCaptureRequestOptionsBuilder()).thenReturn(mockBuilder); +// when(mockBuilder.build()).thenReturn(mockCaptureRequestOptions); +// +// hostApi.create(instanceIdentifier, options); +// for (CaptureRequestKeySupportedType supportedType : CaptureRequestKeySupportedType.values()) { +// final Long supportedTypeIndex = Long.valueOf(supportedType.index); +// final Object testValueForSupportedType = options.get(supportedTypeIndex); +// switch (supportedType) { +// case CONTROL_AE_LOCK: +// verify(mockBuilder) +// .setCaptureRequestOption( +// eq(CaptureRequest.CONTROL_AE_LOCK), eq((Boolean) testValueForSupportedType)); +// break; +// default: +// throw new IllegalArgumentException( +// "The capture request key is not currently supported by the plugin."); +// } +// } +// +// assertEquals(testInstanceManager.getInstance(instanceIdentifier), mockCaptureRequestOptions); +// } +// +// @Test +// public void create_buildsExpectedCaptureKeyRequestOptionsWhenAnOptionIsNull() { +// final CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy proxySpy = +// spy(new CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy()); +// final CaptureRequestOptionsHostApiImpl hostApi = +// new CaptureRequestOptionsHostApiImpl(testInstanceManager, proxySpy); +// final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); +// final long instanceIdentifier = 44; +// +// // Map between CaptureRequestOptions.CONTROL_AE_LOCK index and test value. +// final Map options = +// new HashMap() { +// { +// put(0L, null); +// } +// }; +// +// when(proxySpy.getCaptureRequestOptionsBuilder()).thenReturn(mockBuilder); +// when(mockBuilder.build()).thenReturn(mockCaptureRequestOptions); +// +// hostApi.create(instanceIdentifier, options); +// +// verify(mockBuilder).clearCaptureRequestOption(CaptureRequest.CONTROL_AE_LOCK); +// +// assertEquals(testInstanceManager.getInstance(instanceIdentifier), mockCaptureRequestOptions); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java index 07c8b982dcf..be382be4df5 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java @@ -1,21 +1,21 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CaptureRequest -import android.hardware.camera2.CaptureRequest.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestProxyApiTest { -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import android.hardware.camera2.CaptureRequest +//import android.hardware.camera2.CaptureRequest.Key<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class CaptureRequestProxyApiTest { +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java index fe1c2ee72a1..3842b253d75 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java @@ -1,83 +1,83 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - - -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class DeviceOrientationManagerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - assertTrue(api.pigeon_defaultConstructor() instanceof DeviceOrientationManagerProxyApi.DeviceOrientationManager); - } - - @Test - public void startListeningForDeviceOrientationChange() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final Boolean isFrontFacing = true; - final Long sensorOrientation = 0; - api.startListeningForDeviceOrientationChange(instance, isFrontFacing, sensorOrientation); - - verify(instance).startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); - } - - @Test - public void stopListeningForDeviceOrientationChange() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - api.stopListeningForDeviceOrientationChange(instance ); - - verify(instance).stopListeningForDeviceOrientationChange(); - } - - @Test - public void getDefaultDisplayRotation() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final Long value = 0; - when(instance.getDefaultDisplayRotation()).thenReturn(value); - - assertEquals(value, api.getDefaultDisplayRotation(instance )); - } - - @Test - public void getUiOrientation() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final String value = "myString"; - when(instance.getUiOrientation()).thenReturn(value); - - assertEquals(value, api.getUiOrientation(instance )); - } - - @Test - public void onDeviceOrientationChanged() { - final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final DeviceOrientationManagerImpl instance = new DeviceOrientationManagerImpl(mockApi); - final String orientation = "myString"; - instance.onDeviceOrientationChanged(orientation); - - verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation), any()); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +// +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class DeviceOrientationManagerProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); +// +// assertTrue(api.pigeon_defaultConstructor() instanceof DeviceOrientationManagerProxyApi.DeviceOrientationManager); +// } +// +// @Test +// public void startListeningForDeviceOrientationChange() { +// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); +// +// final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); +// final Boolean isFrontFacing = true; +// final Long sensorOrientation = 0; +// api.startListeningForDeviceOrientationChange(instance, isFrontFacing, sensorOrientation); +// +// verify(instance).startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); +// } +// +// @Test +// public void stopListeningForDeviceOrientationChange() { +// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); +// +// final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); +// api.stopListeningForDeviceOrientationChange(instance ); +// +// verify(instance).stopListeningForDeviceOrientationChange(); +// } +// +// @Test +// public void getDefaultDisplayRotation() { +// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); +// +// final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); +// final Long value = 0; +// when(instance.getDefaultDisplayRotation()).thenReturn(value); +// +// assertEquals(value, api.getDefaultDisplayRotation(instance )); +// } +// +// @Test +// public void getUiOrientation() { +// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); +// +// final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); +// final String value = "myString"; +// when(instance.getUiOrientation()).thenReturn(value); +// +// assertEquals(value, api.getUiOrientation(instance )); +// } +// +// @Test +// public void onDeviceOrientationChanged() { +// final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); +// when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); +// +// final DeviceOrientationManagerImpl instance = new DeviceOrientationManagerImpl(mockApi); +// final String orientation = "myString"; +// instance.onDeviceOrientationChanged(orientation); +// +// verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation), any()); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerTest.java index 1bb4077fb6d..0619e90f1b6 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerTest.java @@ -1,167 +1,167 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.mockStatic; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.app.Activity; -import android.content.Context; -import android.content.res.Configuration; -import android.content.res.Resources; -import android.provider.Settings; -import android.view.Display; -import android.view.Surface; -import android.view.WindowManager; -import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; -import io.flutter.plugins.camerax.DeviceOrientationManager.DeviceOrientationChangeCallback; -import org.junit.Before; -import org.junit.Test; -import org.mockito.MockedStatic; - -public class DeviceOrientationManagerTest { - private Activity mockActivity; - private DeviceOrientationChangeCallback mockDeviceOrientationChangeCallback; - private WindowManager mockWindowManager; - private Display mockDisplay; - private DeviceOrientationManager deviceOrientationManager; - - @Before - @SuppressWarnings("deprecation") - public void before() { - mockActivity = mock(Activity.class); - mockDisplay = mock(Display.class); - mockWindowManager = mock(WindowManager.class); - mockDeviceOrientationChangeCallback = mock(DeviceOrientationChangeCallback.class); - - when(mockActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mockWindowManager); - when(mockWindowManager.getDefaultDisplay()).thenReturn(mockDisplay); - - deviceOrientationManager = - new DeviceOrientationManager(mockActivity, false, 0, mockDeviceOrientationChangeCallback); - } - - @Test - public void handleUIOrientationChange_shouldSendMessageWhenSensorAccessIsAllowed() { - try (MockedStatic mockedSystem = mockStatic(Settings.System.class)) { - mockedSystem - .when( - () -> - Settings.System.getInt(any(), eq(Settings.System.ACCELEROMETER_ROTATION), eq(0))) - .thenReturn(0); - setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_0); - - deviceOrientationManager.handleUIOrientationChange(); - } - - verify(mockDeviceOrientationChangeCallback, times(1)) - .onChange(DeviceOrientation.LANDSCAPE_LEFT); - } - - @Test - public void handleOrientationChange_shouldSendMessageWhenOrientationIsUpdated() { - DeviceOrientation previousOrientation = DeviceOrientation.PORTRAIT_UP; - DeviceOrientation newOrientation = DeviceOrientation.LANDSCAPE_LEFT; - - DeviceOrientationManager.handleOrientationChange( - newOrientation, previousOrientation, mockDeviceOrientationChangeCallback); - - verify(mockDeviceOrientationChangeCallback, times(1)).onChange(newOrientation); - } - - @Test - public void handleOrientationChange_shouldNotSendMessageWhenOrientationIsNotUpdated() { - DeviceOrientation previousOrientation = DeviceOrientation.PORTRAIT_UP; - DeviceOrientation newOrientation = DeviceOrientation.PORTRAIT_UP; - - DeviceOrientationManager.handleOrientationChange( - newOrientation, previousOrientation, mockDeviceOrientationChangeCallback); - - verify(mockDeviceOrientationChangeCallback, never()).onChange(any()); - } - - @Test - public void getUIOrientation() { - // Orientation portrait and rotation of 0 should translate to "PORTRAIT_UP". - setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_0); - DeviceOrientation uiOrientation = deviceOrientationManager.getUIOrientation(); - assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); - - // Orientation portrait and rotation of 90 should translate to "PORTRAIT_UP". - setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_90); - uiOrientation = deviceOrientationManager.getUIOrientation(); - assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); - - // Orientation portrait and rotation of 180 should translate to "PORTRAIT_DOWN". - setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_180); - uiOrientation = deviceOrientationManager.getUIOrientation(); - assertEquals(DeviceOrientation.PORTRAIT_DOWN, uiOrientation); - - // Orientation portrait and rotation of 270 should translate to "PORTRAIT_DOWN". - setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_270); - uiOrientation = deviceOrientationManager.getUIOrientation(); - assertEquals(DeviceOrientation.PORTRAIT_DOWN, uiOrientation); - - // Orientation landscape and rotation of 0 should translate to "LANDSCAPE_LEFT". - setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_0); - uiOrientation = deviceOrientationManager.getUIOrientation(); - assertEquals(DeviceOrientation.LANDSCAPE_LEFT, uiOrientation); - - // Orientation landscape and rotation of 90 should translate to "LANDSCAPE_LEFT". - setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_90); - uiOrientation = deviceOrientationManager.getUIOrientation(); - assertEquals(DeviceOrientation.LANDSCAPE_LEFT, uiOrientation); - - // Orientation landscape and rotation of 180 should translate to "LANDSCAPE_RIGHT". - setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_180); - uiOrientation = deviceOrientationManager.getUIOrientation(); - assertEquals(DeviceOrientation.LANDSCAPE_RIGHT, uiOrientation); - - // Orientation landscape and rotation of 270 should translate to "LANDSCAPE_RIGHT". - setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_270); - uiOrientation = deviceOrientationManager.getUIOrientation(); - assertEquals(DeviceOrientation.LANDSCAPE_RIGHT, uiOrientation); - - // Orientation undefined should default to "PORTRAIT_UP". - setUpUIOrientationMocks(Configuration.ORIENTATION_UNDEFINED, Surface.ROTATION_0); - uiOrientation = deviceOrientationManager.getUIOrientation(); - assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); - } - - private void setUpUIOrientationMocks(int orientation, int rotation) { - Resources mockResources = mock(Resources.class); - Configuration mockConfiguration = mock(Configuration.class); - - when(mockDisplay.getRotation()).thenReturn(rotation); - - mockConfiguration.orientation = orientation; - when(mockActivity.getResources()).thenReturn(mockResources); - when(mockResources.getConfiguration()).thenReturn(mockConfiguration); - } - - @Test - public void getDefaultRotation_returnsExpectedValue() { - final int expectedRotation = 90; - when(mockDisplay.getRotation()).thenReturn(expectedRotation); - - final int defaultRotation = deviceOrientationManager.getDefaultRotation(); - - assertEquals(defaultRotation, expectedRotation); - } - - @Test - public void getDisplayTest() { - Display display = deviceOrientationManager.getDisplay(); - - assertEquals(mockDisplay, display); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.mockStatic; +//import static org.mockito.Mockito.never; +//import static org.mockito.Mockito.times; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.app.Activity; +//import android.content.Context; +//import android.content.res.Configuration; +//import android.content.res.Resources; +//import android.provider.Settings; +//import android.view.Display; +//import android.view.Surface; +//import android.view.WindowManager; +//import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; +//import io.flutter.plugins.camerax.DeviceOrientationManager.DeviceOrientationChangeCallback; +//import org.junit.Before; +//import org.junit.Test; +//import org.mockito.MockedStatic; +// +//public class DeviceOrientationManagerTest { +// private Activity mockActivity; +// private DeviceOrientationChangeCallback mockDeviceOrientationChangeCallback; +// private WindowManager mockWindowManager; +// private Display mockDisplay; +// private DeviceOrientationManager deviceOrientationManager; +// +// @Before +// @SuppressWarnings("deprecation") +// public void before() { +// mockActivity = mock(Activity.class); +// mockDisplay = mock(Display.class); +// mockWindowManager = mock(WindowManager.class); +// mockDeviceOrientationChangeCallback = mock(DeviceOrientationChangeCallback.class); +// +// when(mockActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mockWindowManager); +// when(mockWindowManager.getDefaultDisplay()).thenReturn(mockDisplay); +// +// deviceOrientationManager = +// new DeviceOrientationManager(mockActivity, false, 0, mockDeviceOrientationChangeCallback); +// } +// +// @Test +// public void handleUIOrientationChange_shouldSendMessageWhenSensorAccessIsAllowed() { +// try (MockedStatic mockedSystem = mockStatic(Settings.System.class)) { +// mockedSystem +// .when( +// () -> +// Settings.System.getInt(any(), eq(Settings.System.ACCELEROMETER_ROTATION), eq(0))) +// .thenReturn(0); +// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_0); +// +// deviceOrientationManager.handleUIOrientationChange(); +// } +// +// verify(mockDeviceOrientationChangeCallback, times(1)) +// .onChange(DeviceOrientation.LANDSCAPE_LEFT); +// } +// +// @Test +// public void handleOrientationChange_shouldSendMessageWhenOrientationIsUpdated() { +// DeviceOrientation previousOrientation = DeviceOrientation.PORTRAIT_UP; +// DeviceOrientation newOrientation = DeviceOrientation.LANDSCAPE_LEFT; +// +// DeviceOrientationManager.handleOrientationChange( +// newOrientation, previousOrientation, mockDeviceOrientationChangeCallback); +// +// verify(mockDeviceOrientationChangeCallback, times(1)).onChange(newOrientation); +// } +// +// @Test +// public void handleOrientationChange_shouldNotSendMessageWhenOrientationIsNotUpdated() { +// DeviceOrientation previousOrientation = DeviceOrientation.PORTRAIT_UP; +// DeviceOrientation newOrientation = DeviceOrientation.PORTRAIT_UP; +// +// DeviceOrientationManager.handleOrientationChange( +// newOrientation, previousOrientation, mockDeviceOrientationChangeCallback); +// +// verify(mockDeviceOrientationChangeCallback, never()).onChange(any()); +// } +// +// @Test +// public void getUIOrientation() { +// // Orientation portrait and rotation of 0 should translate to "PORTRAIT_UP". +// setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_0); +// DeviceOrientation uiOrientation = deviceOrientationManager.getUIOrientation(); +// assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); +// +// // Orientation portrait and rotation of 90 should translate to "PORTRAIT_UP". +// setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_90); +// uiOrientation = deviceOrientationManager.getUIOrientation(); +// assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); +// +// // Orientation portrait and rotation of 180 should translate to "PORTRAIT_DOWN". +// setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_180); +// uiOrientation = deviceOrientationManager.getUIOrientation(); +// assertEquals(DeviceOrientation.PORTRAIT_DOWN, uiOrientation); +// +// // Orientation portrait and rotation of 270 should translate to "PORTRAIT_DOWN". +// setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_270); +// uiOrientation = deviceOrientationManager.getUIOrientation(); +// assertEquals(DeviceOrientation.PORTRAIT_DOWN, uiOrientation); +// +// // Orientation landscape and rotation of 0 should translate to "LANDSCAPE_LEFT". +// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_0); +// uiOrientation = deviceOrientationManager.getUIOrientation(); +// assertEquals(DeviceOrientation.LANDSCAPE_LEFT, uiOrientation); +// +// // Orientation landscape and rotation of 90 should translate to "LANDSCAPE_LEFT". +// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_90); +// uiOrientation = deviceOrientationManager.getUIOrientation(); +// assertEquals(DeviceOrientation.LANDSCAPE_LEFT, uiOrientation); +// +// // Orientation landscape and rotation of 180 should translate to "LANDSCAPE_RIGHT". +// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_180); +// uiOrientation = deviceOrientationManager.getUIOrientation(); +// assertEquals(DeviceOrientation.LANDSCAPE_RIGHT, uiOrientation); +// +// // Orientation landscape and rotation of 270 should translate to "LANDSCAPE_RIGHT". +// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_270); +// uiOrientation = deviceOrientationManager.getUIOrientation(); +// assertEquals(DeviceOrientation.LANDSCAPE_RIGHT, uiOrientation); +// +// // Orientation undefined should default to "PORTRAIT_UP". +// setUpUIOrientationMocks(Configuration.ORIENTATION_UNDEFINED, Surface.ROTATION_0); +// uiOrientation = deviceOrientationManager.getUIOrientation(); +// assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); +// } +// +// private void setUpUIOrientationMocks(int orientation, int rotation) { +// Resources mockResources = mock(Resources.class); +// Configuration mockConfiguration = mock(Configuration.class); +// +// when(mockDisplay.getRotation()).thenReturn(rotation); +// +// mockConfiguration.orientation = orientation; +// when(mockActivity.getResources()).thenReturn(mockResources); +// when(mockResources.getConfiguration()).thenReturn(mockConfiguration); +// } +// +// @Test +// public void getDefaultRotation_returnsExpectedValue() { +// final int expectedRotation = 90; +// when(mockDisplay.getRotation()).thenReturn(expectedRotation); +// +// final int defaultRotation = deviceOrientationManager.getDefaultRotation(); +// +// assertEquals(defaultRotation, expectedRotation); +// } +// +// @Test +// public void getDisplayTest() { +// Display display = deviceOrientationManager.getDisplay(); +// +// assertEquals(mockDisplay, display); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerWrapperTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerWrapperTest.java index ba7335971f1..6283db3f711 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerWrapperTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerWrapperTest.java @@ -1,108 +1,108 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.app.Activity; -import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.DeviceOrientationManager.DeviceOrientationChangeCallback; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.DeviceOrientationManagerFlutterApi.Reply; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.ArgumentMatchers; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class DeviceOrientationManagerWrapperTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock DeviceOrientationManager mockDeviceOrientationManager; - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public InstanceManager mockInstanceManager; - - @Test - public void deviceOrientationManagerWrapper_handlesDeviceOrientationChangesAsExpected() { - final DeviceOrientationManagerHostApiImpl hostApi = - new DeviceOrientationManagerHostApiImpl(mockBinaryMessenger, mockInstanceManager); - final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); - final Activity mockActivity = mock(Activity.class); - final Boolean isFrontFacing = true; - final int sensorOrientation = 90; - - DeviceOrientationManagerFlutterApiImpl flutterApi = - mock(DeviceOrientationManagerFlutterApiImpl.class); - hostApi.deviceOrientationManagerFlutterApiImpl = flutterApi; - - hostApi.cameraXProxy = mockCameraXProxy; - hostApi.setActivity(mockActivity); - when(mockCameraXProxy.createDeviceOrientationManager( - eq(mockActivity), - eq(isFrontFacing), - eq(sensorOrientation), - any(DeviceOrientationChangeCallback.class))) - .thenReturn(mockDeviceOrientationManager); - - final ArgumentCaptor deviceOrientationChangeCallbackCaptor = - ArgumentCaptor.forClass(DeviceOrientationChangeCallback.class); - - hostApi.startListeningForDeviceOrientationChange( - isFrontFacing, Long.valueOf(sensorOrientation)); - - // Test callback method defined in Flutter API is called when device orientation changes. - verify(mockCameraXProxy) - .createDeviceOrientationManager( - eq(mockActivity), - eq(isFrontFacing), - eq(sensorOrientation), - deviceOrientationChangeCallbackCaptor.capture()); - DeviceOrientationChangeCallback deviceOrientationChangeCallback = - deviceOrientationChangeCallbackCaptor.getValue(); - - deviceOrientationChangeCallback.onChange(DeviceOrientation.PORTRAIT_DOWN); - verify(flutterApi) - .sendDeviceOrientationChangedEvent( - eq(DeviceOrientation.PORTRAIT_DOWN.toString()), ArgumentMatchers.>any()); - - // Test that the DeviceOrientationManager starts listening for device orientation changes. - verify(mockDeviceOrientationManager).start(); - - // Test that the DeviceOrientationManager can stop listening for device orientation changes. - hostApi.stopListeningForDeviceOrientationChange(); - verify(mockDeviceOrientationManager).stop(); - } - - @Test - public void getDefaultDisplayRotation_returnsExpectedRotation() { - final DeviceOrientationManagerHostApiImpl hostApi = - new DeviceOrientationManagerHostApiImpl(mockBinaryMessenger, mockInstanceManager); - final int defaultRotation = 180; - - hostApi.deviceOrientationManager = mockDeviceOrientationManager; - when(mockDeviceOrientationManager.getDefaultRotation()).thenReturn(defaultRotation); - - assertEquals(hostApi.getDefaultDisplayRotation(), Long.valueOf(defaultRotation)); - } - - @Test - public void getUiOrientation_returnsExpectedOrientation() { - final DeviceOrientationManagerHostApiImpl hostApi = - new DeviceOrientationManagerHostApiImpl(mockBinaryMessenger, mockInstanceManager); - final DeviceOrientation uiOrientation = DeviceOrientation.LANDSCAPE_LEFT; - - hostApi.deviceOrientationManager = mockDeviceOrientationManager; - when(mockDeviceOrientationManager.getUIOrientation()).thenReturn(uiOrientation); - - assertEquals(hostApi.getUiOrientation(), uiOrientation.toString()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.app.Activity; +//import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.DeviceOrientationManager.DeviceOrientationChangeCallback; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.DeviceOrientationManagerFlutterApi.Reply; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.ArgumentCaptor; +//import org.mockito.ArgumentMatchers; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class DeviceOrientationManagerWrapperTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock DeviceOrientationManager mockDeviceOrientationManager; +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public InstanceManager mockInstanceManager; +// +// @Test +// public void deviceOrientationManagerWrapper_handlesDeviceOrientationChangesAsExpected() { +// final DeviceOrientationManagerHostApiImpl hostApi = +// new DeviceOrientationManagerHostApiImpl(mockBinaryMessenger, mockInstanceManager); +// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); +// final Activity mockActivity = mock(Activity.class); +// final Boolean isFrontFacing = true; +// final int sensorOrientation = 90; +// +// DeviceOrientationManagerFlutterApiImpl flutterApi = +// mock(DeviceOrientationManagerFlutterApiImpl.class); +// hostApi.deviceOrientationManagerFlutterApiImpl = flutterApi; +// +// hostApi.cameraXProxy = mockCameraXProxy; +// hostApi.setActivity(mockActivity); +// when(mockCameraXProxy.createDeviceOrientationManager( +// eq(mockActivity), +// eq(isFrontFacing), +// eq(sensorOrientation), +// any(DeviceOrientationChangeCallback.class))) +// .thenReturn(mockDeviceOrientationManager); +// +// final ArgumentCaptor deviceOrientationChangeCallbackCaptor = +// ArgumentCaptor.forClass(DeviceOrientationChangeCallback.class); +// +// hostApi.startListeningForDeviceOrientationChange( +// isFrontFacing, Long.valueOf(sensorOrientation)); +// +// // Test callback method defined in Flutter API is called when device orientation changes. +// verify(mockCameraXProxy) +// .createDeviceOrientationManager( +// eq(mockActivity), +// eq(isFrontFacing), +// eq(sensorOrientation), +// deviceOrientationChangeCallbackCaptor.capture()); +// DeviceOrientationChangeCallback deviceOrientationChangeCallback = +// deviceOrientationChangeCallbackCaptor.getValue(); +// +// deviceOrientationChangeCallback.onChange(DeviceOrientation.PORTRAIT_DOWN); +// verify(flutterApi) +// .sendDeviceOrientationChangedEvent( +// eq(DeviceOrientation.PORTRAIT_DOWN.toString()), ArgumentMatchers.>any()); +// +// // Test that the DeviceOrientationManager starts listening for device orientation changes. +// verify(mockDeviceOrientationManager).start(); +// +// // Test that the DeviceOrientationManager can stop listening for device orientation changes. +// hostApi.stopListeningForDeviceOrientationChange(); +// verify(mockDeviceOrientationManager).stop(); +// } +// +// @Test +// public void getDefaultDisplayRotation_returnsExpectedRotation() { +// final DeviceOrientationManagerHostApiImpl hostApi = +// new DeviceOrientationManagerHostApiImpl(mockBinaryMessenger, mockInstanceManager); +// final int defaultRotation = 180; +// +// hostApi.deviceOrientationManager = mockDeviceOrientationManager; +// when(mockDeviceOrientationManager.getDefaultRotation()).thenReturn(defaultRotation); +// +// assertEquals(hostApi.getDefaultDisplayRotation(), Long.valueOf(defaultRotation)); +// } +// +// @Test +// public void getUiOrientation_returnsExpectedOrientation() { +// final DeviceOrientationManagerHostApiImpl hostApi = +// new DeviceOrientationManagerHostApiImpl(mockBinaryMessenger, mockInstanceManager); +// final DeviceOrientation uiOrientation = DeviceOrientation.LANDSCAPE_LEFT; +// +// hostApi.deviceOrientationManager = mockDeviceOrientationManager; +// when(mockDeviceOrientationManager.getUIOrientation()).thenReturn(uiOrientation); +// +// assertEquals(hostApi.getUiOrientation(), uiOrientation.toString()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java index b429486fc31..512ae6a55db 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java @@ -1,28 +1,28 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.DisplayOrientedMeteringPointFactory -import androidx.camera.core.CameraInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class DisplayOrientedMeteringPointFactoryProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiDisplayOrientedMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiDisplayOrientedMeteringPointFactory(); - - assertTrue(api.pigeon_defaultConstructor(mock(CameraInfo.class), 1.0, 1.0) instanceof DisplayOrientedMeteringPointFactoryProxyApi.DisplayOrientedMeteringPointFactory); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.DisplayOrientedMeteringPointFactory +//import androidx.camera.core.CameraInfo +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class DisplayOrientedMeteringPointFactoryProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiDisplayOrientedMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiDisplayOrientedMeteringPointFactory(); +// +// assertTrue(api.pigeon_defaultConstructor(mock(CameraInfo.class), 1.0, 1.0) instanceof DisplayOrientedMeteringPointFactoryProxyApi.DisplayOrientedMeteringPointFactory); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java index 016baabd3d4..d3b259b5cf1 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java @@ -1,43 +1,43 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ExposureState -import android.util.Range<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ExposureStateProxyApiTest { - @Test - public void exposureCompensationRange() { - final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); - - final ExposureState instance = mock(ExposureState.class); - final android.util.Range<*> value = mock(CameraIntegerRange.class); - when(instance.getExposureCompensationRange()).thenReturn(value); - - assertEquals(value, api.exposureCompensationRange(instance)); - } - - @Test - public void exposureCompensationStep() { - final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); - - final ExposureState instance = mock(ExposureState.class); - final Double value = 1.0; - when(instance.getExposureCompensationStep()).thenReturn(value); - - assertEquals(value, api.exposureCompensationStep(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.ExposureState +//import android.util.Range<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ExposureStateProxyApiTest { +// @Test +// public void exposureCompensationRange() { +// final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); +// +// final ExposureState instance = mock(ExposureState.class); +// final android.util.Range<*> value = mock(CameraIntegerRange.class); +// when(instance.getExposureCompensationRange()).thenReturn(value); +// +// assertEquals(value, api.exposureCompensationRange(instance)); +// } +// +// @Test +// public void exposureCompensationStep() { +// final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); +// +// final ExposureState instance = mock(ExposureState.class); +// final Double value = 1.0; +// when(instance.getExposureCompensationStep()).thenReturn(value); +// +// assertEquals(value, api.exposureCompensationStep(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java index 7eef68d28d1..aaa61a00140 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java @@ -1,84 +1,84 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.util.Range; -import android.util.Rational; -import androidx.camera.core.ExposureState; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ExposureCompensationRange; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.annotation.Config; - -@RunWith(RobolectricTestRunner.class) -public class ExposureStateTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public ExposureState mockExposureState; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Config(sdk = 21) - @Test - public void create_makesExpectedCallToCreateInstanceOnDartSide() { - // SDK version configured because ExposureState requires Android 21. - ExposureStateFlutterApiImpl exposureStateFlutterApiImpl = - spy(new ExposureStateFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - final int minExposureCompensation = 0; - final int maxExposureCompensation = 1; - Range testExposueCompensationRange = - new Range(minExposureCompensation, maxExposureCompensation); - Rational textExposureCompensationStep = new Rational(1, 5); // Makes expected Double value 0.2. - - when(mockExposureState.getExposureCompensationRange()).thenReturn(testExposueCompensationRange); - when(mockExposureState.getExposureCompensationStep()).thenReturn(textExposureCompensationStep); - - final ArgumentCaptor exposureCompensationRangeCaptor = - ArgumentCaptor.forClass(ExposureCompensationRange.class); - - exposureStateFlutterApiImpl.create(mockExposureState, reply -> {}); - - final long identifier = - Objects.requireNonNull( - testInstanceManager.getIdentifierForStrongReference(mockExposureState)); - verify(exposureStateFlutterApiImpl) - .create(eq(identifier), exposureCompensationRangeCaptor.capture(), eq(0.2), any()); - - ExposureCompensationRange exposureCompensationRange = - exposureCompensationRangeCaptor.getValue(); - assertEquals( - exposureCompensationRange.getMinCompensation().intValue(), minExposureCompensation); - assertEquals( - exposureCompensationRange.getMaxCompensation().intValue(), maxExposureCompensation); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.util.Range; +//import android.util.Rational; +//import androidx.camera.core.ExposureState; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ExposureCompensationRange; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.ArgumentCaptor; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +//import org.robolectric.annotation.Config; +// +//@RunWith(RobolectricTestRunner.class) +//public class ExposureStateTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public ExposureState mockExposureState; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Config(sdk = 21) +// @Test +// public void create_makesExpectedCallToCreateInstanceOnDartSide() { +// // SDK version configured because ExposureState requires Android 21. +// ExposureStateFlutterApiImpl exposureStateFlutterApiImpl = +// spy(new ExposureStateFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// final int minExposureCompensation = 0; +// final int maxExposureCompensation = 1; +// Range testExposueCompensationRange = +// new Range(minExposureCompensation, maxExposureCompensation); +// Rational textExposureCompensationStep = new Rational(1, 5); // Makes expected Double value 0.2. +// +// when(mockExposureState.getExposureCompensationRange()).thenReturn(testExposueCompensationRange); +// when(mockExposureState.getExposureCompensationStep()).thenReturn(textExposureCompensationStep); +// +// final ArgumentCaptor exposureCompensationRangeCaptor = +// ArgumentCaptor.forClass(ExposureCompensationRange.class); +// +// exposureStateFlutterApiImpl.create(mockExposureState, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull( +// testInstanceManager.getIdentifierForStrongReference(mockExposureState)); +// verify(exposureStateFlutterApiImpl) +// .create(eq(identifier), exposureCompensationRangeCaptor.capture(), eq(0.2), any()); +// +// ExposureCompensationRange exposureCompensationRange = +// exposureCompensationRangeCaptor.getValue(); +// assertEquals( +// exposureCompensationRange.getMinCompensation().intValue(), minExposureCompensation); +// assertEquals( +// exposureCompensationRange.getMaxCompensation().intValue(), maxExposureCompensation); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java index 1194da1aac9..778f0680174 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java @@ -1,48 +1,48 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.FallbackStrategy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FallbackStrategyProxyApiTest { - @Test - public void higherQualityOrLowerThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.higherQualityOrLowerThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - - @Test - public void higherQualityThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.higherQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - - @Test - public void lowerQualityOrHigherThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.lowerQualityOrHigherThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - - @Test - public void lowerQualityThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.lowerQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.FallbackStrategy +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class FallbackStrategyProxyApiTest { +// @Test +// public void higherQualityOrLowerThan() { +// final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); +// +// assertTrue(api.higherQualityOrLowerThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); +// } +// +// @Test +// public void higherQualityThan() { +// final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); +// +// assertTrue(api.higherQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); +// } +// +// @Test +// public void lowerQualityOrHigherThan() { +// final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); +// +// assertTrue(api.lowerQualityOrHigherThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); +// } +// +// @Test +// public void lowerQualityThan() { +// final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); +// +// assertTrue(api.lowerQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java index a68384fc720..187ce45f02c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java @@ -1,118 +1,118 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.mockStatic; - -import androidx.camera.video.FallbackStrategy; -import androidx.camera.video.Quality; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoResolutionFallbackRule; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.mockito.stubbing.Answer; - -public class FallbackStrategyTest { - - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock public FallbackStrategy mockFallbackStrategy; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void hostApiCreate_makesCallToCreateExpectedFallbackStrategy() { - final FallbackStrategyHostApiImpl hostApi = new FallbackStrategyHostApiImpl(instanceManager); - final long instanceIdentifier = 45; - final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); - - try (MockedStatic mockedFallbackStrategy = - mockStatic(FallbackStrategy.class)) { - for (VideoQuality videoQuality : VideoQuality.values()) { - for (VideoResolutionFallbackRule fallbackRule : VideoResolutionFallbackRule.values()) { - // Determine expected Quality based on videoQuality being tested. - Quality convertedQuality = null; - switch (videoQuality) { - case SD: - convertedQuality = Quality.SD; - break; - case HD: - convertedQuality = Quality.HD; - break; - case FHD: - convertedQuality = Quality.FHD; - break; - case UHD: - convertedQuality = Quality.UHD; - break; - case LOWEST: - convertedQuality = Quality.LOWEST; - break; - case HIGHEST: - convertedQuality = Quality.HIGHEST; - break; - default: - fail("The VideoQuality " + videoQuality.toString() + "is unhandled by this test."); - } - // Set Quality as final local variable to avoid error about using non-final (or effecitvely final) local variables in lambda expressions. - final Quality expectedQuality = convertedQuality; - - // Mock calls to create FallbackStrategy according to fallbackRule being tested. - switch (fallbackRule) { - case HIGHER_QUALITY_OR_LOWER_THAN: - mockedFallbackStrategy - .when(() -> FallbackStrategy.higherQualityOrLowerThan(expectedQuality)) - .thenAnswer((Answer) invocation -> mockFallbackStrategy); - break; - case HIGHER_QUALITY_THAN: - mockedFallbackStrategy - .when(() -> FallbackStrategy.higherQualityThan(expectedQuality)) - .thenAnswer((Answer) invocation -> mockFallbackStrategy); - break; - case LOWER_QUALITY_OR_HIGHER_THAN: - mockedFallbackStrategy - .when(() -> FallbackStrategy.lowerQualityOrHigherThan(expectedQuality)) - .thenAnswer((Answer) invocation -> mockFallbackStrategy); - break; - case LOWER_QUALITY_THAN: - mockedFallbackStrategy - .when(() -> FallbackStrategy.lowerQualityThan(expectedQuality)) - .thenAnswer((Answer) invocation -> mockFallbackStrategy); - break; - default: - fail( - "The VideoResolutionFallbackRule " - + fallbackRule.toString() - + "is unhandled by this test."); - } - hostApi.create(instanceIdentifier, videoQuality, fallbackRule); - assertEquals(instanceManager.getInstance(instanceIdentifier), mockFallbackStrategy); - - // Clear/reset FallbackStrategy mock and InstanceManager. - mockedFallbackStrategy.reset(); - instanceManager.clear(); - } - } - } - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.fail; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.mockStatic; +// +//import androidx.camera.video.FallbackStrategy; +//import androidx.camera.video.Quality; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoResolutionFallbackRule; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.mockito.stubbing.Answer; +// +//public class FallbackStrategyTest { +// +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// @Mock public FallbackStrategy mockFallbackStrategy; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void hostApiCreate_makesCallToCreateExpectedFallbackStrategy() { +// final FallbackStrategyHostApiImpl hostApi = new FallbackStrategyHostApiImpl(instanceManager); +// final long instanceIdentifier = 45; +// final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); +// +// try (MockedStatic mockedFallbackStrategy = +// mockStatic(FallbackStrategy.class)) { +// for (VideoQuality videoQuality : VideoQuality.values()) { +// for (VideoResolutionFallbackRule fallbackRule : VideoResolutionFallbackRule.values()) { +// // Determine expected Quality based on videoQuality being tested. +// Quality convertedQuality = null; +// switch (videoQuality) { +// case SD: +// convertedQuality = Quality.SD; +// break; +// case HD: +// convertedQuality = Quality.HD; +// break; +// case FHD: +// convertedQuality = Quality.FHD; +// break; +// case UHD: +// convertedQuality = Quality.UHD; +// break; +// case LOWEST: +// convertedQuality = Quality.LOWEST; +// break; +// case HIGHEST: +// convertedQuality = Quality.HIGHEST; +// break; +// default: +// fail("The VideoQuality " + videoQuality.toString() + "is unhandled by this test."); +// } +// // Set Quality as final local variable to avoid error about using non-final (or effecitvely final) local variables in lambda expressions. +// final Quality expectedQuality = convertedQuality; +// +// // Mock calls to create FallbackStrategy according to fallbackRule being tested. +// switch (fallbackRule) { +// case HIGHER_QUALITY_OR_LOWER_THAN: +// mockedFallbackStrategy +// .when(() -> FallbackStrategy.higherQualityOrLowerThan(expectedQuality)) +// .thenAnswer((Answer) invocation -> mockFallbackStrategy); +// break; +// case HIGHER_QUALITY_THAN: +// mockedFallbackStrategy +// .when(() -> FallbackStrategy.higherQualityThan(expectedQuality)) +// .thenAnswer((Answer) invocation -> mockFallbackStrategy); +// break; +// case LOWER_QUALITY_OR_HIGHER_THAN: +// mockedFallbackStrategy +// .when(() -> FallbackStrategy.lowerQualityOrHigherThan(expectedQuality)) +// .thenAnswer((Answer) invocation -> mockFallbackStrategy); +// break; +// case LOWER_QUALITY_THAN: +// mockedFallbackStrategy +// .when(() -> FallbackStrategy.lowerQualityThan(expectedQuality)) +// .thenAnswer((Answer) invocation -> mockFallbackStrategy); +// break; +// default: +// fail( +// "The VideoResolutionFallbackRule " +// + fallbackRule.toString() +// + "is unhandled by this test."); +// } +// hostApi.create(instanceIdentifier, videoQuality, fallbackRule); +// assertEquals(instanceManager.getInstance(instanceIdentifier), mockFallbackStrategy); +// +// // Clear/reset FallbackStrategy mock and InstanceManager. +// mockedFallbackStrategy.reset(); +// instanceManager.clear(); +// } +// } +// } +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java index bdd824f1fd5..87e3f4e5eeb 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java @@ -1,80 +1,80 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.FocusMeteringAction.Builder -import androidx.camera.core.MeteringPoint -import androidx.camera.core.FocusMeteringAction -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FocusMeteringActionBuilderProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - assertTrue(api.pigeon_defaultConstructor(mock(MeteringPoint.class)) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); - } - - @Test - public void withMode() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - assertTrue(api.withMode(mock(MeteringPoint.class), io.flutter.plugins.camerax.MeteringMode.AE) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); - } - - @Test - public void addPoint() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); - api.addPoint(instance, point); - - verify(instance).addPoint(point); - } - - @Test - public void addPointWithMode() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); - final MeteringMode mode = io.flutter.plugins.camerax.MeteringMode.AE; - api.addPointWithMode(instance, point, mode); - - verify(instance).addPointWithMode(point, mode); - } - - @Test - public void disableAutoCancel() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - api.disableAutoCancel(instance ); - - verify(instance).disableAutoCancel(); - } - - @Test - public void build() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); - when(instance.build()).thenReturn(value); - - assertEquals(value, api.build(instance )); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.FocusMeteringAction.Builder +//import androidx.camera.core.MeteringPoint +//import androidx.camera.core.FocusMeteringAction +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class FocusMeteringActionBuilderProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); +// +// assertTrue(api.pigeon_defaultConstructor(mock(MeteringPoint.class)) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); +// } +// +// @Test +// public void withMode() { +// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); +// +// assertTrue(api.withMode(mock(MeteringPoint.class), io.flutter.plugins.camerax.MeteringMode.AE) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); +// } +// +// @Test +// public void addPoint() { +// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); +// +// final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); +// final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); +// api.addPoint(instance, point); +// +// verify(instance).addPoint(point); +// } +// +// @Test +// public void addPointWithMode() { +// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); +// +// final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); +// final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); +// final MeteringMode mode = io.flutter.plugins.camerax.MeteringMode.AE; +// api.addPointWithMode(instance, point, mode); +// +// verify(instance).addPointWithMode(point, mode); +// } +// +// @Test +// public void disableAutoCancel() { +// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); +// +// final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); +// api.disableAutoCancel(instance ); +// +// verify(instance).disableAutoCancel(); +// } +// +// @Test +// public void build() { +// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); +// +// final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); +// final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); +// when(instance.build()).thenReturn(value); +// +// assertEquals(value, api.build(instance )); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java index 403c61dc541..1da0e74fadd 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java @@ -1,65 +1,65 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.FocusMeteringAction -import androidx.camera.core.MeteringPoint -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FocusMeteringActionProxyApiTest { - @Test - public void meteringPointsAe() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Arrays.asList(mock(MeteringPoint.class)); - when(instance.getMeteringPointsAe()).thenReturn(value); - - assertEquals(value, api.meteringPointsAe(instance)); - } - - @Test - public void meteringPointsAf() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Arrays.asList(mock(MeteringPoint.class)); - when(instance.getMeteringPointsAf()).thenReturn(value); - - assertEquals(value, api.meteringPointsAf(instance)); - } - - @Test - public void meteringPointsAwb() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Arrays.asList(mock(MeteringPoint.class)); - when(instance.getMeteringPointsAwb()).thenReturn(value); - - assertEquals(value, api.meteringPointsAwb(instance)); - } - - @Test - public void isAutoCancelEnabled() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final Boolean value = true; - when(instance.getIsAutoCancelEnabled()).thenReturn(value); - - assertEquals(value, api.isAutoCancelEnabled(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.FocusMeteringAction +//import androidx.camera.core.MeteringPoint +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class FocusMeteringActionProxyApiTest { +// @Test +// public void meteringPointsAe() { +// final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); +// +// final FocusMeteringAction instance = mock(FocusMeteringAction.class); +// final List value = Arrays.asList(mock(MeteringPoint.class)); +// when(instance.getMeteringPointsAe()).thenReturn(value); +// +// assertEquals(value, api.meteringPointsAe(instance)); +// } +// +// @Test +// public void meteringPointsAf() { +// final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); +// +// final FocusMeteringAction instance = mock(FocusMeteringAction.class); +// final List value = Arrays.asList(mock(MeteringPoint.class)); +// when(instance.getMeteringPointsAf()).thenReturn(value); +// +// assertEquals(value, api.meteringPointsAf(instance)); +// } +// +// @Test +// public void meteringPointsAwb() { +// final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); +// +// final FocusMeteringAction instance = mock(FocusMeteringAction.class); +// final List value = Arrays.asList(mock(MeteringPoint.class)); +// when(instance.getMeteringPointsAwb()).thenReturn(value); +// +// assertEquals(value, api.meteringPointsAwb(instance)); +// } +// +// @Test +// public void isAutoCancelEnabled() { +// final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); +// +// final FocusMeteringAction instance = mock(FocusMeteringAction.class); +// final Boolean value = true; +// when(instance.getIsAutoCancelEnabled()).thenReturn(value); +// +// assertEquals(value, api.isAutoCancelEnabled(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index 6d96d3036cd..ba121fb9e48 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -1,192 +1,192 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.MeteringPoint; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointInfo; -import java.util.Arrays; -import java.util.List; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class FocusMeteringActionTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public FocusMeteringAction focusMeteringAction; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatHasMode() { - FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = - spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); - FocusMeteringActionHostApiImpl hostApi = - new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); - final Long focusMeteringActionIdentifier = 43L; - - FocusMeteringAction.Builder mockFocusMeteringActionBuilder = - mock(FocusMeteringAction.Builder.class); - final MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); - final MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); - final MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); - final Long mockMeteringPoint1Id = 47L; - final Long mockMeteringPoint2Id = 56L; - final Long mockMeteringPoint3Id = 99L; - final Integer mockMeteringPoint1Mode = FocusMeteringAction.FLAG_AE; - final Integer mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; - - MeteringPointInfo fakeMeteringPointInfo1 = - new MeteringPointInfo.Builder() - .setMeteringPointId(mockMeteringPoint1Id) - .setMeteringMode(mockMeteringPoint1Mode.longValue()) - .build(); - MeteringPointInfo fakeMeteringPointInfo2 = - new MeteringPointInfo.Builder() - .setMeteringPointId(mockMeteringPoint2Id) - .setMeteringMode(mockMeteringPoint2Mode.longValue()) - .build(); - MeteringPointInfo fakeMeteringPointInfo3 = - new MeteringPointInfo.Builder() - .setMeteringPointId(mockMeteringPoint3Id) - .setMeteringMode(null) - .build(); - - testInstanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); - testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); - testInstanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); - - when(proxySpy.getFocusMeteringActionBuilder( - mockMeteringPoint1, mockMeteringPoint1Mode.intValue())) - .thenReturn(mockFocusMeteringActionBuilder); - when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); - - List mockMeteringPointInfos = - Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); - - hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos, null); - - verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint2, mockMeteringPoint2Mode); - verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint3); - assertEquals( - testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); - } - - @Test - public void - hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { - FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = - spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); - FocusMeteringActionHostApiImpl hostApi = - new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); - final Long focusMeteringActionIdentifier = 43L; - - FocusMeteringAction.Builder mockFocusMeteringActionBuilder = - mock(FocusMeteringAction.Builder.class); - final MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); - final MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); - final MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); - final Long mockMeteringPoint1Id = 47L; - final Long mockMeteringPoint2Id = 56L; - final Long mockMeteringPoint3Id = 99L; - final Integer mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; - - MeteringPointInfo fakeMeteringPointInfo1 = - new MeteringPointInfo.Builder() - .setMeteringPointId(mockMeteringPoint1Id) - .setMeteringMode(null) - .build(); - MeteringPointInfo fakeMeteringPointInfo2 = - new MeteringPointInfo.Builder() - .setMeteringPointId(mockMeteringPoint2Id) - .setMeteringMode(mockMeteringPoint2Mode.longValue()) - .build(); - MeteringPointInfo fakeMeteringPointInfo3 = - new MeteringPointInfo.Builder() - .setMeteringPointId(mockMeteringPoint3Id) - .setMeteringMode(null) - .build(); - - testInstanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); - testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); - testInstanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); - - when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1)) - .thenReturn(mockFocusMeteringActionBuilder); - when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); - - List mockMeteringPointInfos = - Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); - - hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos, null); - - verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint2, mockMeteringPoint2Mode); - verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint3); - assertEquals( - testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); - } - - @Test - public void hostApiCreate_disablesAutoCancelAsExpected() { - FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = - spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); - FocusMeteringActionHostApiImpl hostApi = - new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); - - FocusMeteringAction.Builder mockFocusMeteringActionBuilder = - mock(FocusMeteringAction.Builder.class); - final MeteringPoint mockMeteringPoint = mock(MeteringPoint.class); - final Long mockMeteringPointId = 47L; - - MeteringPointInfo fakeMeteringPointInfo = - new MeteringPointInfo.Builder() - .setMeteringPointId(mockMeteringPointId) - .setMeteringMode(null) - .build(); - - testInstanceManager.addDartCreatedInstance(mockMeteringPoint, mockMeteringPointId); - - when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint)) - .thenReturn(mockFocusMeteringActionBuilder); - when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); - - List mockMeteringPointInfos = Arrays.asList(fakeMeteringPointInfo); - - // Test not disabling auto cancel. - hostApi.create(73L, mockMeteringPointInfos, /* disableAutoCancel */ null); - verify(mockFocusMeteringActionBuilder, never()).disableAutoCancel(); - - hostApi.create(74L, mockMeteringPointInfos, /* disableAutoCancel */ false); - verify(mockFocusMeteringActionBuilder, never()).disableAutoCancel(); - - // Test disabling auto cancel. - hostApi.create(75L, mockMeteringPointInfos, /* disableAutoCancel */ true); - verify(mockFocusMeteringActionBuilder).disableAutoCancel(); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.never; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.FocusMeteringAction; +//import androidx.camera.core.MeteringPoint; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointInfo; +//import java.util.Arrays; +//import java.util.List; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class FocusMeteringActionTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public FocusMeteringAction focusMeteringAction; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatHasMode() { +// FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = +// spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); +// FocusMeteringActionHostApiImpl hostApi = +// new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); +// final Long focusMeteringActionIdentifier = 43L; +// +// FocusMeteringAction.Builder mockFocusMeteringActionBuilder = +// mock(FocusMeteringAction.Builder.class); +// final MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); +// final MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); +// final MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); +// final Long mockMeteringPoint1Id = 47L; +// final Long mockMeteringPoint2Id = 56L; +// final Long mockMeteringPoint3Id = 99L; +// final Integer mockMeteringPoint1Mode = FocusMeteringAction.FLAG_AE; +// final Integer mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; +// +// MeteringPointInfo fakeMeteringPointInfo1 = +// new MeteringPointInfo.Builder() +// .setMeteringPointId(mockMeteringPoint1Id) +// .setMeteringMode(mockMeteringPoint1Mode.longValue()) +// .build(); +// MeteringPointInfo fakeMeteringPointInfo2 = +// new MeteringPointInfo.Builder() +// .setMeteringPointId(mockMeteringPoint2Id) +// .setMeteringMode(mockMeteringPoint2Mode.longValue()) +// .build(); +// MeteringPointInfo fakeMeteringPointInfo3 = +// new MeteringPointInfo.Builder() +// .setMeteringPointId(mockMeteringPoint3Id) +// .setMeteringMode(null) +// .build(); +// +// testInstanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); +// testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); +// testInstanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); +// +// when(proxySpy.getFocusMeteringActionBuilder( +// mockMeteringPoint1, mockMeteringPoint1Mode.intValue())) +// .thenReturn(mockFocusMeteringActionBuilder); +// when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); +// +// List mockMeteringPointInfos = +// Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); +// +// hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos, null); +// +// verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint2, mockMeteringPoint2Mode); +// verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint3); +// assertEquals( +// testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); +// } +// +// @Test +// public void +// hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { +// FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = +// spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); +// FocusMeteringActionHostApiImpl hostApi = +// new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); +// final Long focusMeteringActionIdentifier = 43L; +// +// FocusMeteringAction.Builder mockFocusMeteringActionBuilder = +// mock(FocusMeteringAction.Builder.class); +// final MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); +// final MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); +// final MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); +// final Long mockMeteringPoint1Id = 47L; +// final Long mockMeteringPoint2Id = 56L; +// final Long mockMeteringPoint3Id = 99L; +// final Integer mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; +// +// MeteringPointInfo fakeMeteringPointInfo1 = +// new MeteringPointInfo.Builder() +// .setMeteringPointId(mockMeteringPoint1Id) +// .setMeteringMode(null) +// .build(); +// MeteringPointInfo fakeMeteringPointInfo2 = +// new MeteringPointInfo.Builder() +// .setMeteringPointId(mockMeteringPoint2Id) +// .setMeteringMode(mockMeteringPoint2Mode.longValue()) +// .build(); +// MeteringPointInfo fakeMeteringPointInfo3 = +// new MeteringPointInfo.Builder() +// .setMeteringPointId(mockMeteringPoint3Id) +// .setMeteringMode(null) +// .build(); +// +// testInstanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); +// testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); +// testInstanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); +// +// when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1)) +// .thenReturn(mockFocusMeteringActionBuilder); +// when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); +// +// List mockMeteringPointInfos = +// Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); +// +// hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos, null); +// +// verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint2, mockMeteringPoint2Mode); +// verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint3); +// assertEquals( +// testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); +// } +// +// @Test +// public void hostApiCreate_disablesAutoCancelAsExpected() { +// FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = +// spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); +// FocusMeteringActionHostApiImpl hostApi = +// new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); +// +// FocusMeteringAction.Builder mockFocusMeteringActionBuilder = +// mock(FocusMeteringAction.Builder.class); +// final MeteringPoint mockMeteringPoint = mock(MeteringPoint.class); +// final Long mockMeteringPointId = 47L; +// +// MeteringPointInfo fakeMeteringPointInfo = +// new MeteringPointInfo.Builder() +// .setMeteringPointId(mockMeteringPointId) +// .setMeteringMode(null) +// .build(); +// +// testInstanceManager.addDartCreatedInstance(mockMeteringPoint, mockMeteringPointId); +// +// when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint)) +// .thenReturn(mockFocusMeteringActionBuilder); +// when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); +// +// List mockMeteringPointInfos = Arrays.asList(fakeMeteringPointInfo); +// +// // Test not disabling auto cancel. +// hostApi.create(73L, mockMeteringPointInfos, /* disableAutoCancel */ null); +// verify(mockFocusMeteringActionBuilder, never()).disableAutoCancel(); +// +// hostApi.create(74L, mockMeteringPointInfos, /* disableAutoCancel */ false); +// verify(mockFocusMeteringActionBuilder, never()).disableAutoCancel(); +// +// // Test disabling auto cancel. +// hostApi.create(75L, mockMeteringPointInfos, /* disableAutoCancel */ true); +// verify(mockFocusMeteringActionBuilder).disableAutoCancel(); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java index d1866419685..8c90ceac41d 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java @@ -1,31 +1,31 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.FocusMeteringResult -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FocusMeteringResultProxyApiTest { - @Test - public void isFocusSuccessful() { - final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); - - final FocusMeteringResult instance = mock(FocusMeteringResult.class); - final Boolean value = true; - when(instance.getIsFocusSuccessful()).thenReturn(value); - - assertEquals(value, api.isFocusSuccessful(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.FocusMeteringResult +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class FocusMeteringResultProxyApiTest { +// @Test +// public void isFocusSuccessful() { +// final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); +// +// final FocusMeteringResult instance = mock(FocusMeteringResult.class); +// final Boolean value = true; +// when(instance.getIsFocusSuccessful()).thenReturn(value); +// +// assertEquals(value, api.isFocusSuccessful(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java index dae86557b45..db64f0dcb7e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java @@ -1,73 +1,73 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import androidx.camera.core.FocusMeteringResult; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class FocusMeteringResultTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public FocusMeteringResult focusMeteringResult; - @Mock public FocusMeteringResultFlutterApi mockFlutterApi; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void isFocusSuccessful_returnsExpectedResult() { - final FocusMeteringResultHostApiImpl focusMeteringResultHostApiImpl = - new FocusMeteringResultHostApiImpl(testInstanceManager); - final Long focusMeteringResultIdentifier = 98L; - final boolean result = true; - - testInstanceManager.addDartCreatedInstance(focusMeteringResult, focusMeteringResultIdentifier); - - when(focusMeteringResult.isFocusSuccessful()).thenReturn(result); - - assertTrue(focusMeteringResultHostApiImpl.isFocusSuccessful(focusMeteringResultIdentifier)); - verify(focusMeteringResult).isFocusSuccessful(); - } - - @Test - public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { - final FocusMeteringResultFlutterApiImpl flutterApi = - new FocusMeteringResultFlutterApiImpl(mockBinaryMessenger, testInstanceManager); - - flutterApi.setApi(mockFlutterApi); - - flutterApi.create(focusMeteringResult, reply -> {}); - final long focusMeteringResultIdentifier = - Objects.requireNonNull( - testInstanceManager.getIdentifierForStrongReference(focusMeteringResult)); - - verify(mockFlutterApi).create(eq(focusMeteringResultIdentifier), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertTrue; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.FocusMeteringResult; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class FocusMeteringResultTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public FocusMeteringResult focusMeteringResult; +// @Mock public FocusMeteringResultFlutterApi mockFlutterApi; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void isFocusSuccessful_returnsExpectedResult() { +// final FocusMeteringResultHostApiImpl focusMeteringResultHostApiImpl = +// new FocusMeteringResultHostApiImpl(testInstanceManager); +// final Long focusMeteringResultIdentifier = 98L; +// final boolean result = true; +// +// testInstanceManager.addDartCreatedInstance(focusMeteringResult, focusMeteringResultIdentifier); +// +// when(focusMeteringResult.isFocusSuccessful()).thenReturn(result); +// +// assertTrue(focusMeteringResultHostApiImpl.isFocusSuccessful(focusMeteringResultIdentifier)); +// verify(focusMeteringResult).isFocusSuccessful(); +// } +// +// @Test +// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { +// final FocusMeteringResultFlutterApiImpl flutterApi = +// new FocusMeteringResultFlutterApiImpl(mockBinaryMessenger, testInstanceManager); +// +// flutterApi.setApi(mockFlutterApi); +// +// flutterApi.create(focusMeteringResult, reply -> {}); +// final long focusMeteringResultIdentifier = +// Objects.requireNonNull( +// testInstanceManager.getIdentifierForStrongReference(focusMeteringResult)); +// +// verify(mockFlutterApi).create(eq(focusMeteringResultIdentifier), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java index 9cfd5100530..584d4808511 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java @@ -1,61 +1,72 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageAnalysis -import androidx.camera.core.resolutionselector.ResolutionSelector -import androidx.camera.core.ImageAnalysis.Analyzer -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ImageAnalysisProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - assertTrue(api.pigeon_defaultConstructor(0, mock(ResolutionSelector.class)) instanceof ImageAnalysisProxyApi.ImageAnalysis); - } - - @Test - public void setAnalyzer() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); - api.setAnalyzer(instance, analyzer); - - verify(instance).setAnalyzer(analyzer); - } - - @Test - public void clearAnalyzer() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - api.clearAnalyzer(instance ); - - verify(instance).clearAnalyzer(); - } - - @Test - public void setTargetRotation() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.ImageAnalysis +//import androidx.camera.core.resolutionselector.ResolutionSelector +//import androidx.camera.core.ImageAnalysis.Analyzer +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ImageAnalysisProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); +// +// assertTrue(api.pigeon_defaultConstructor(0) instanceof ImageAnalysisProxyApi.ImageAnalysis); +// } +// +// @Test +// public void resolutionSelector() { +// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); +// +// final ImageAnalysis instance = mock(ImageAnalysis.class); +// final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); +// when(instance.getResolutionSelector()).thenReturn(value); +// +// assertEquals(value, api.resolutionSelector(instance)); +// } +// +// @Test +// public void setAnalyzer() { +// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); +// +// final ImageAnalysis instance = mock(ImageAnalysis.class); +// final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); +// api.setAnalyzer(instance, analyzer); +// +// verify(instance).setAnalyzer(analyzer); +// } +// +// @Test +// public void clearAnalyzer() { +// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); +// +// final ImageAnalysis instance = mock(ImageAnalysis.class); +// api.clearAnalyzer(instance ); +// +// verify(instance).clearAnalyzer(); +// } +// +// @Test +// public void setTargetRotation() { +// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); +// +// final ImageAnalysis instance = mock(ImageAnalysis.class); +// final Long rotation = 0; +// api.setTargetRotation(instance, rotation); +// +// verify(instance).setTargetRotation(rotation); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java index 5e4a729dbd2..36675baf372 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java @@ -1,118 +1,118 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import android.view.Surface; -import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.test.core.app.ApplicationProvider; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.concurrent.Executor; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class ImageAnalysisTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock public ImageAnalysis mockImageAnalysis; - @Mock public BinaryMessenger mockBinaryMessenger; - - InstanceManager instanceManager; - private Context context; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - context = ApplicationProvider.getApplicationContext(); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void hostApiCreate_createsExpectedImageAnalysisInstanceWithExpectedIdentifier() { - final ImageAnalysisHostApiImpl hostApi = - new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); - final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); - final ImageAnalysis.Builder mockImageAnalysisBuilder = mock(ImageAnalysis.Builder.class); - final ResolutionSelector mockResolutionSelector = mock(ResolutionSelector.class); - final long instanceIdentifier = 0; - final long mockResolutionSelectorId = 25; - final int targetRotation = Surface.ROTATION_90; - - hostApi.cameraXProxy = mockCameraXProxy; - instanceManager.addDartCreatedInstance(mockResolutionSelector, mockResolutionSelectorId); - - when(mockCameraXProxy.createImageAnalysisBuilder()).thenReturn(mockImageAnalysisBuilder); - when(mockImageAnalysisBuilder.build()).thenReturn(mockImageAnalysis); - - hostApi.create(instanceIdentifier, Long.valueOf(targetRotation), mockResolutionSelectorId); - - verify(mockImageAnalysisBuilder).setTargetRotation(targetRotation); - verify(mockImageAnalysisBuilder).setResolutionSelector(mockResolutionSelector); - assertEquals(instanceManager.getInstance(instanceIdentifier), mockImageAnalysis); - } - - @Test - public void setAnalyzer_makesCallToSetAnalyzerOnExpectedImageAnalysisInstance() { - final ImageAnalysisHostApiImpl hostApi = - new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); - - final ImageAnalysis.Analyzer mockAnalyzer = mock(ImageAnalysis.Analyzer.class); - final long analyzerIdentifier = 10; - final long instanceIdentifier = 94; - - instanceManager.addDartCreatedInstance(mockAnalyzer, analyzerIdentifier); - instanceManager.addDartCreatedInstance(mockImageAnalysis, instanceIdentifier); - - hostApi.setAnalyzer(instanceIdentifier, analyzerIdentifier); - - verify(mockImageAnalysis).setAnalyzer(any(Executor.class), eq(mockAnalyzer)); - } - - @Test - public void clearAnalyzer_makesCallToClearAnalyzerOnExpectedImageAnalysisInstance() { - final ImageAnalysisHostApiImpl hostApi = - new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); - final long instanceIdentifier = 22; - - instanceManager.addDartCreatedInstance(mockImageAnalysis, instanceIdentifier); - - hostApi.clearAnalyzer(instanceIdentifier); - - verify(mockImageAnalysis).clearAnalyzer(); - } - - @Test - public void setTargetRotation_makesCallToSetTargetRotation() { - final ImageAnalysisHostApiImpl hostApi = - new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); - final long instanceIdentifier = 32; - final int targetRotation = Surface.ROTATION_180; - - instanceManager.addDartCreatedInstance(mockImageAnalysis, instanceIdentifier); - - hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); - - verify(mockImageAnalysis).setTargetRotation(targetRotation); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.content.Context; +//import android.view.Surface; +//import androidx.camera.core.ImageAnalysis; +//import androidx.camera.core.resolutionselector.ResolutionSelector; +//import androidx.test.core.app.ApplicationProvider; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.concurrent.Executor; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +// +//@RunWith(RobolectricTestRunner.class) +//public class ImageAnalysisTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// @Mock public ImageAnalysis mockImageAnalysis; +// @Mock public BinaryMessenger mockBinaryMessenger; +// +// InstanceManager instanceManager; +// private Context context; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// context = ApplicationProvider.getApplicationContext(); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void hostApiCreate_createsExpectedImageAnalysisInstanceWithExpectedIdentifier() { +// final ImageAnalysisHostApiImpl hostApi = +// new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); +// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); +// final ImageAnalysis.Builder mockImageAnalysisBuilder = mock(ImageAnalysis.Builder.class); +// final ResolutionSelector mockResolutionSelector = mock(ResolutionSelector.class); +// final long instanceIdentifier = 0; +// final long mockResolutionSelectorId = 25; +// final int targetRotation = Surface.ROTATION_90; +// +// hostApi.cameraXProxy = mockCameraXProxy; +// instanceManager.addDartCreatedInstance(mockResolutionSelector, mockResolutionSelectorId); +// +// when(mockCameraXProxy.createImageAnalysisBuilder()).thenReturn(mockImageAnalysisBuilder); +// when(mockImageAnalysisBuilder.build()).thenReturn(mockImageAnalysis); +// +// hostApi.create(instanceIdentifier, Long.valueOf(targetRotation), mockResolutionSelectorId); +// +// verify(mockImageAnalysisBuilder).setTargetRotation(targetRotation); +// verify(mockImageAnalysisBuilder).setResolutionSelector(mockResolutionSelector); +// assertEquals(instanceManager.getInstance(instanceIdentifier), mockImageAnalysis); +// } +// +// @Test +// public void setAnalyzer_makesCallToSetAnalyzerOnExpectedImageAnalysisInstance() { +// final ImageAnalysisHostApiImpl hostApi = +// new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); +// +// final ImageAnalysis.Analyzer mockAnalyzer = mock(ImageAnalysis.Analyzer.class); +// final long analyzerIdentifier = 10; +// final long instanceIdentifier = 94; +// +// instanceManager.addDartCreatedInstance(mockAnalyzer, analyzerIdentifier); +// instanceManager.addDartCreatedInstance(mockImageAnalysis, instanceIdentifier); +// +// hostApi.setAnalyzer(instanceIdentifier, analyzerIdentifier); +// +// verify(mockImageAnalysis).setAnalyzer(any(Executor.class), eq(mockAnalyzer)); +// } +// +// @Test +// public void clearAnalyzer_makesCallToClearAnalyzerOnExpectedImageAnalysisInstance() { +// final ImageAnalysisHostApiImpl hostApi = +// new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); +// final long instanceIdentifier = 22; +// +// instanceManager.addDartCreatedInstance(mockImageAnalysis, instanceIdentifier); +// +// hostApi.clearAnalyzer(instanceIdentifier); +// +// verify(mockImageAnalysis).clearAnalyzer(); +// } +// +// @Test +// public void setTargetRotation_makesCallToSetTargetRotation() { +// final ImageAnalysisHostApiImpl hostApi = +// new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); +// final long instanceIdentifier = 32; +// final int targetRotation = Surface.ROTATION_180; +// +// instanceManager.addDartCreatedInstance(mockImageAnalysis, instanceIdentifier); +// +// hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); +// +// verify(mockImageAnalysis).setTargetRotation(targetRotation); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java index ba9a4d273dd..4cc142ef140 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java @@ -1,61 +1,72 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageCapture -import androidx.camera.core.resolutionselector.ResolutionSelector -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ImageCaptureProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO, mock(ResolutionSelector.class)) instanceof ImageCaptureProxyApi.ImageCapture); - } - - @Test - public void setFlashMode() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; - api.setFlashMode(instance, flashMode); - - verify(instance).setFlashMode(flashMode); - } - - @Test - public void takePicture() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final String value = "myString"; - when(instance.takePicture()).thenReturn(value); - - assertEquals(value, api.takePicture(instance )); - } - - @Test - public void setTargetRotation() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.ImageCapture +//import androidx.camera.core.resolutionselector.ResolutionSelector +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ImageCaptureProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); +// +// assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO) instanceof ImageCaptureProxyApi.ImageCapture); +// } +// +// @Test +// public void resolutionSelector() { +// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); +// +// final ImageCapture instance = mock(ImageCapture.class); +// final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); +// when(instance.getResolutionSelector()).thenReturn(value); +// +// assertEquals(value, api.resolutionSelector(instance)); +// } +// +// @Test +// public void setFlashMode() { +// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); +// +// final ImageCapture instance = mock(ImageCapture.class); +// final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; +// api.setFlashMode(instance, flashMode); +// +// verify(instance).setFlashMode(flashMode); +// } +// +// @Test +// public void takePicture() { +// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); +// +// final ImageCapture instance = mock(ImageCapture.class); +// final String value = "myString"; +// when(instance.takePicture()).thenReturn(value); +// +// assertEquals(value, api.takePicture(instance )); +// } +// +// @Test +// public void setTargetRotation() { +// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); +// +// final ImageCapture instance = mock(ImageCapture.class); +// final Long rotation = 0; +// api.setTargetRotation(instance, rotation); +// +// verify(instance).setTargetRotation(rotation); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java index 591037fd97c..3c3e568f676 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java @@ -1,221 +1,221 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.mockStatic; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import android.view.Surface; -import androidx.camera.core.ImageCapture; -import androidx.camera.core.ImageCaptureException; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import io.flutter.plugin.common.BinaryMessenger; -import java.io.File; -import java.io.IOException; -import java.util.concurrent.Executor; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class ImageCaptureTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public ImageCapture mockImageCapture; - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public CameraXProxy mockCameraXProxy; - - InstanceManager testInstanceManager; - private Context context; - private MockedStatic mockedStaticFile; - - @Before - public void setUp() throws Exception { - testInstanceManager = spy(InstanceManager.create(identifier -> {})); - context = mock(Context.class); - mockedStaticFile = mockStatic(File.class); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - mockedStaticFile.close(); - } - - @Test - public void create_createsImageCaptureWithCorrectConfiguration() { - final ImageCaptureHostApiImpl imageCaptureHostApiImpl = - new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final ImageCapture.Builder mockImageCaptureBuilder = mock(ImageCapture.Builder.class); - final Long imageCaptureIdentifier = 74L; - final int flashMode = ImageCapture.FLASH_MODE_ON; - final ResolutionSelector mockResolutionSelector = mock(ResolutionSelector.class); - final long mockResolutionSelectorId = 77; - final int targetRotation = Surface.ROTATION_270; - - imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; - testInstanceManager.addDartCreatedInstance(mockResolutionSelector, mockResolutionSelectorId); - when(mockCameraXProxy.createImageCaptureBuilder()).thenReturn(mockImageCaptureBuilder); - when(mockImageCaptureBuilder.build()).thenReturn(mockImageCapture); - - imageCaptureHostApiImpl.create( - imageCaptureIdentifier, - Long.valueOf(targetRotation), - Long.valueOf(flashMode), - mockResolutionSelectorId); - - verify(mockImageCaptureBuilder).setTargetRotation(targetRotation); - verify(mockImageCaptureBuilder).setFlashMode(flashMode); - verify(mockImageCaptureBuilder).setResolutionSelector(mockResolutionSelector); - verify(mockImageCaptureBuilder).build(); - verify(testInstanceManager).addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); - } - - @Test - public void setFlashMode_setsFlashModeOfImageCaptureInstance() { - final ImageCaptureHostApiImpl imageCaptureHostApiImpl = - new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final Long imageCaptureIdentifier = 85L; - final Long flashMode = Long.valueOf(ImageCapture.FLASH_MODE_AUTO); - - testInstanceManager.addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); - - imageCaptureHostApiImpl.setFlashMode(imageCaptureIdentifier, flashMode); - - verify(mockImageCapture).setFlashMode(flashMode.intValue()); - } - - @Test - public void - takePicture_sendsRequestToTakePictureWithExpectedConfigurationWhenTemporaryFileCanBeCreated() { - final ImageCaptureHostApiImpl imageCaptureHostApiImpl = - spy(new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context)); - final Long imageCaptureIdentifier = 6L; - final File mockOutputDir = mock(File.class); - final File mockFile = mock(File.class); - final ImageCapture.OutputFileOptions mockOutputFileOptions = - mock(ImageCapture.OutputFileOptions.class); - final ImageCapture.OnImageSavedCallback mockOnImageSavedCallback = - mock(ImageCapture.OnImageSavedCallback.class); - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result mockResult = - mock(GeneratedCameraXLibrary.Result.class); - - testInstanceManager.addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); - when(context.getCacheDir()).thenReturn(mockOutputDir); - imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; - mockedStaticFile - .when( - () -> - File.createTempFile( - ImageCaptureHostApiImpl.TEMPORARY_FILE_NAME, - ImageCaptureHostApiImpl.JPG_FILE_TYPE, - mockOutputDir)) - .thenReturn(mockFile); - when(mockCameraXProxy.createImageCaptureOutputFileOptions(mockFile)) - .thenReturn(mockOutputFileOptions); - when(imageCaptureHostApiImpl.createOnImageSavedCallback(mockFile, mockResult)) - .thenReturn(mockOnImageSavedCallback); - - imageCaptureHostApiImpl.takePicture(imageCaptureIdentifier, mockResult); - - verify(mockImageCapture) - .takePicture(eq(mockOutputFileOptions), any(Executor.class), eq(mockOnImageSavedCallback)); - } - - @Test - public void takePicture_sendsErrorWhenTemporaryFileCannotBeCreated() { - final ImageCaptureHostApiImpl imageCaptureHostApiImpl = - new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final Long imageCaptureIdentifier = 6L; - final File mockOutputDir = mock(File.class); - final File mockTemporaryCaptureFile = mock(File.class); - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result mockResult = - mock(GeneratedCameraXLibrary.Result.class); - final IOException fileCreationException = new IOException(); - - testInstanceManager.addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); - imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; - when(context.getCacheDir()).thenReturn(mockOutputDir); - mockedStaticFile - .when( - () -> - File.createTempFile( - ImageCaptureHostApiImpl.TEMPORARY_FILE_NAME, - ImageCaptureHostApiImpl.JPG_FILE_TYPE, - mockOutputDir)) - .thenThrow(fileCreationException); - - imageCaptureHostApiImpl.takePicture(imageCaptureIdentifier, mockResult); - - verify(mockResult).error(fileCreationException); - verify(mockImageCapture, times(0)) - .takePicture( - any(ImageCapture.OutputFileOptions.class), - any(Executor.class), - any(ImageCapture.OnImageSavedCallback.class)); - } - - @Test - public void takePicture_usesExpectedOnImageSavedCallback() { - final ImageCaptureHostApiImpl imageCaptureHostApiImpl = - new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final SystemServicesFlutterApiImpl mockSystemServicesFlutterApiImpl = - mock(SystemServicesFlutterApiImpl.class); - final File mockFile = mock(File.class); - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result mockResult = - mock(GeneratedCameraXLibrary.Result.class); - final ImageCapture.OutputFileResults mockOutputFileResults = - mock(ImageCapture.OutputFileResults.class); - final String mockFileAbsolutePath = "absolute/path/to/captured/image"; - final ImageCaptureException mockException = mock(ImageCaptureException.class); - - imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; - when(mockFile.getAbsolutePath()).thenReturn(mockFileAbsolutePath); - - ImageCapture.OnImageSavedCallback onImageSavedCallback = - imageCaptureHostApiImpl.createOnImageSavedCallback(mockFile, mockResult); - - // Test success case. - onImageSavedCallback.onImageSaved(mockOutputFileResults); - - verify(mockResult).success(mockFileAbsolutePath); - - // Test error case. - onImageSavedCallback.onError(mockException); - - verify(mockResult).error(mockException); - } - - @Test - public void setTargetRotation_makesCallToSetTargetRotation() { - final ImageCaptureHostApiImpl hostApi = - new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final long instanceIdentifier = 42; - final int targetRotation = Surface.ROTATION_90; - - testInstanceManager.addDartCreatedInstance(mockImageCapture, instanceIdentifier); - - hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); - - verify(mockImageCapture).setTargetRotation(targetRotation); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.mockStatic; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.times; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.content.Context; +//import android.view.Surface; +//import androidx.camera.core.ImageCapture; +//import androidx.camera.core.ImageCaptureException; +//import androidx.camera.core.resolutionselector.ResolutionSelector; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.io.File; +//import java.io.IOException; +//import java.util.concurrent.Executor; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +// +//@RunWith(RobolectricTestRunner.class) +//public class ImageCaptureTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public ImageCapture mockImageCapture; +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public CameraXProxy mockCameraXProxy; +// +// InstanceManager testInstanceManager; +// private Context context; +// private MockedStatic mockedStaticFile; +// +// @Before +// public void setUp() throws Exception { +// testInstanceManager = spy(InstanceManager.create(identifier -> {})); +// context = mock(Context.class); +// mockedStaticFile = mockStatic(File.class); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// mockedStaticFile.close(); +// } +// +// @Test +// public void create_createsImageCaptureWithCorrectConfiguration() { +// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = +// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final ImageCapture.Builder mockImageCaptureBuilder = mock(ImageCapture.Builder.class); +// final Long imageCaptureIdentifier = 74L; +// final int flashMode = ImageCapture.FLASH_MODE_ON; +// final ResolutionSelector mockResolutionSelector = mock(ResolutionSelector.class); +// final long mockResolutionSelectorId = 77; +// final int targetRotation = Surface.ROTATION_270; +// +// imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; +// testInstanceManager.addDartCreatedInstance(mockResolutionSelector, mockResolutionSelectorId); +// when(mockCameraXProxy.createImageCaptureBuilder()).thenReturn(mockImageCaptureBuilder); +// when(mockImageCaptureBuilder.build()).thenReturn(mockImageCapture); +// +// imageCaptureHostApiImpl.create( +// imageCaptureIdentifier, +// Long.valueOf(targetRotation), +// Long.valueOf(flashMode), +// mockResolutionSelectorId); +// +// verify(mockImageCaptureBuilder).setTargetRotation(targetRotation); +// verify(mockImageCaptureBuilder).setFlashMode(flashMode); +// verify(mockImageCaptureBuilder).setResolutionSelector(mockResolutionSelector); +// verify(mockImageCaptureBuilder).build(); +// verify(testInstanceManager).addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); +// } +// +// @Test +// public void setFlashMode_setsFlashModeOfImageCaptureInstance() { +// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = +// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final Long imageCaptureIdentifier = 85L; +// final Long flashMode = Long.valueOf(ImageCapture.FLASH_MODE_AUTO); +// +// testInstanceManager.addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); +// +// imageCaptureHostApiImpl.setFlashMode(imageCaptureIdentifier, flashMode); +// +// verify(mockImageCapture).setFlashMode(flashMode.intValue()); +// } +// +// @Test +// public void +// takePicture_sendsRequestToTakePictureWithExpectedConfigurationWhenTemporaryFileCanBeCreated() { +// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = +// spy(new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context)); +// final Long imageCaptureIdentifier = 6L; +// final File mockOutputDir = mock(File.class); +// final File mockFile = mock(File.class); +// final ImageCapture.OutputFileOptions mockOutputFileOptions = +// mock(ImageCapture.OutputFileOptions.class); +// final ImageCapture.OnImageSavedCallback mockOnImageSavedCallback = +// mock(ImageCapture.OnImageSavedCallback.class); +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result mockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// +// testInstanceManager.addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); +// when(context.getCacheDir()).thenReturn(mockOutputDir); +// imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; +// mockedStaticFile +// .when( +// () -> +// File.createTempFile( +// ImageCaptureHostApiImpl.TEMPORARY_FILE_NAME, +// ImageCaptureHostApiImpl.JPG_FILE_TYPE, +// mockOutputDir)) +// .thenReturn(mockFile); +// when(mockCameraXProxy.createImageCaptureOutputFileOptions(mockFile)) +// .thenReturn(mockOutputFileOptions); +// when(imageCaptureHostApiImpl.createOnImageSavedCallback(mockFile, mockResult)) +// .thenReturn(mockOnImageSavedCallback); +// +// imageCaptureHostApiImpl.takePicture(imageCaptureIdentifier, mockResult); +// +// verify(mockImageCapture) +// .takePicture(eq(mockOutputFileOptions), any(Executor.class), eq(mockOnImageSavedCallback)); +// } +// +// @Test +// public void takePicture_sendsErrorWhenTemporaryFileCannotBeCreated() { +// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = +// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final Long imageCaptureIdentifier = 6L; +// final File mockOutputDir = mock(File.class); +// final File mockTemporaryCaptureFile = mock(File.class); +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result mockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final IOException fileCreationException = new IOException(); +// +// testInstanceManager.addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); +// imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; +// when(context.getCacheDir()).thenReturn(mockOutputDir); +// mockedStaticFile +// .when( +// () -> +// File.createTempFile( +// ImageCaptureHostApiImpl.TEMPORARY_FILE_NAME, +// ImageCaptureHostApiImpl.JPG_FILE_TYPE, +// mockOutputDir)) +// .thenThrow(fileCreationException); +// +// imageCaptureHostApiImpl.takePicture(imageCaptureIdentifier, mockResult); +// +// verify(mockResult).error(fileCreationException); +// verify(mockImageCapture, times(0)) +// .takePicture( +// any(ImageCapture.OutputFileOptions.class), +// any(Executor.class), +// any(ImageCapture.OnImageSavedCallback.class)); +// } +// +// @Test +// public void takePicture_usesExpectedOnImageSavedCallback() { +// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = +// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final SystemServicesFlutterApiImpl mockSystemServicesFlutterApiImpl = +// mock(SystemServicesFlutterApiImpl.class); +// final File mockFile = mock(File.class); +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result mockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// final ImageCapture.OutputFileResults mockOutputFileResults = +// mock(ImageCapture.OutputFileResults.class); +// final String mockFileAbsolutePath = "absolute/path/to/captured/image"; +// final ImageCaptureException mockException = mock(ImageCaptureException.class); +// +// imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; +// when(mockFile.getAbsolutePath()).thenReturn(mockFileAbsolutePath); +// +// ImageCapture.OnImageSavedCallback onImageSavedCallback = +// imageCaptureHostApiImpl.createOnImageSavedCallback(mockFile, mockResult); +// +// // Test success case. +// onImageSavedCallback.onImageSaved(mockOutputFileResults); +// +// verify(mockResult).success(mockFileAbsolutePath); +// +// // Test error case. +// onImageSavedCallback.onError(mockException); +// +// verify(mockResult).error(mockException); +// } +// +// @Test +// public void setTargetRotation_makesCallToSetTargetRotation() { +// final ImageCaptureHostApiImpl hostApi = +// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final long instanceIdentifier = 42; +// final int targetRotation = Surface.ROTATION_90; +// +// testInstanceManager.addDartCreatedInstance(mockImageCapture, instanceIdentifier); +// +// hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); +// +// verify(mockImageCapture).setTargetRotation(targetRotation); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java index 6a66b4472a5..f33a86c3acf 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java @@ -1,75 +1,75 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageProxy -import androidx.camera.core.ImageProxy.PlaneProxy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ImageProxyProxyApiTest { - @Test - public void format() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final Long value = 0; - when(instance.getFormat()).thenReturn(value); - - assertEquals(value, api.format(instance)); - } - - @Test - public void width() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final Long value = 0; - when(instance.getWidth()).thenReturn(value); - - assertEquals(value, api.width(instance)); - } - - @Test - public void height() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final Long value = 0; - when(instance.getHeight()).thenReturn(value); - - assertEquals(value, api.height(instance)); - } - - @Test - public void getPlanes() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final List value = Arrays.asList(mock(PlaneProxy.class)); - when(instance.getPlanes()).thenReturn(value); - - assertEquals(value, api.getPlanes(instance )); - } - - @Test - public void close() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - api.close(instance ); - - verify(instance).close(); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.ImageProxy +//import androidx.camera.core.ImageProxy.PlaneProxy +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ImageProxyProxyApiTest { +// @Test +// public void format() { +// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); +// +// final ImageProxy instance = mock(ImageProxy.class); +// final Long value = 0; +// when(instance.getFormat()).thenReturn(value); +// +// assertEquals(value, api.format(instance)); +// } +// +// @Test +// public void width() { +// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); +// +// final ImageProxy instance = mock(ImageProxy.class); +// final Long value = 0; +// when(instance.getWidth()).thenReturn(value); +// +// assertEquals(value, api.width(instance)); +// } +// +// @Test +// public void height() { +// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); +// +// final ImageProxy instance = mock(ImageProxy.class); +// final Long value = 0; +// when(instance.getHeight()).thenReturn(value); +// +// assertEquals(value, api.height(instance)); +// } +// +// @Test +// public void getPlanes() { +// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); +// +// final ImageProxy instance = mock(ImageProxy.class); +// final List value = Arrays.asList(mock(PlaneProxy.class)); +// when(instance.getPlanes()).thenReturn(value); +// +// assertEquals(value, api.getPlanes(instance )); +// } +// +// @Test +// public void close() { +// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); +// +// final ImageProxy instance = mock(ImageProxy.class); +// api.close(instance ); +// +// verify(instance).close(); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java index 99cd06a7bea..d0bfd62fb7c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java @@ -1,119 +1,119 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import androidx.camera.core.ImageProxy; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ImageProxyFlutterApi; -import java.nio.ByteBuffer; -import java.util.List; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.annotation.Config; - -public class ImageProxyTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock public ImageProxy mockImageProxy; - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public ImageProxyFlutterApi mockFlutterApi; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Config(sdk = 21) - @Test - public void getPlanes_returnsExpectedPlanesFromExpectedImageProxyInstance() { - final ImageProxyHostApiImpl hostApi = - new ImageProxyHostApiImpl(mockBinaryMessenger, instanceManager); - final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); - final PlaneProxyFlutterApiImpl mockPlaneProxyFlutterApiImpl = - mock(PlaneProxyFlutterApiImpl.class); - final long instanceIdentifier = 24; - final long mockPlaneProxyIdentifier = 45; - final ImageProxy.PlaneProxy mockPlaneProxy = mock(ImageProxy.PlaneProxy.class); - final ImageProxy.PlaneProxy[] returnValue = new ImageProxy.PlaneProxy[] {mockPlaneProxy}; - final ByteBuffer mockByteBuffer = mock(ByteBuffer.class); - final int bufferRemaining = 23; - final byte[] buffer = new byte[bufferRemaining]; - final int pixelStride = 2; - final int rowStride = 65; - - instanceManager.addDartCreatedInstance(mockImageProxy, instanceIdentifier); - - hostApi.cameraXProxy = mockCameraXProxy; - hostApi.planeProxyFlutterApiImpl = mockPlaneProxyFlutterApiImpl; - - when(mockImageProxy.getPlanes()).thenReturn(returnValue); - when(mockPlaneProxy.getBuffer()).thenReturn(mockByteBuffer); - when(mockByteBuffer.remaining()).thenReturn(bufferRemaining); - when(mockCameraXProxy.getBytesFromBuffer(bufferRemaining)).thenReturn(buffer); - when(mockPlaneProxy.getPixelStride()).thenReturn(pixelStride); - when(mockPlaneProxy.getRowStride()).thenReturn(rowStride); - - final List result = hostApi.getPlanes(instanceIdentifier); - - verify(mockImageProxy).getPlanes(); - verify(mockPlaneProxyFlutterApiImpl) - .create( - eq(mockPlaneProxy), - eq(buffer), - eq(Long.valueOf(pixelStride)), - eq(Long.valueOf(rowStride)), - any()); - assertEquals(result.size(), 1); - } - - @Test - public void close_makesCallToCloseExpectedImageProxyInstance() { - final ImageProxyHostApiImpl hostApi = - new ImageProxyHostApiImpl(mockBinaryMessenger, instanceManager); - final long instanceIdentifier = 9; - - instanceManager.addDartCreatedInstance(mockImageProxy, instanceIdentifier); - - hostApi.close(instanceIdentifier); - - verify(mockImageProxy).close(); - } - - @Test - public void flutterApiCreate_makesCallToDartCreate() { - final ImageProxyFlutterApiImpl flutterApi = - new ImageProxyFlutterApiImpl(mockBinaryMessenger, instanceManager); - final long format = 3; - final long height = 2; - final long width = 1; - - flutterApi.setApi(mockFlutterApi); - - flutterApi.create(mockImageProxy, format, height, width, reply -> {}); - final long instanceIdentifier = - Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockImageProxy)); - - verify(mockFlutterApi).create(eq(instanceIdentifier), eq(format), eq(height), eq(width), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.ImageProxy; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ImageProxyFlutterApi; +//import java.nio.ByteBuffer; +//import java.util.List; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.annotation.Config; +// +//public class ImageProxyTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// @Mock public ImageProxy mockImageProxy; +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public ImageProxyFlutterApi mockFlutterApi; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Config(sdk = 21) +// @Test +// public void getPlanes_returnsExpectedPlanesFromExpectedImageProxyInstance() { +// final ImageProxyHostApiImpl hostApi = +// new ImageProxyHostApiImpl(mockBinaryMessenger, instanceManager); +// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); +// final PlaneProxyFlutterApiImpl mockPlaneProxyFlutterApiImpl = +// mock(PlaneProxyFlutterApiImpl.class); +// final long instanceIdentifier = 24; +// final long mockPlaneProxyIdentifier = 45; +// final ImageProxy.PlaneProxy mockPlaneProxy = mock(ImageProxy.PlaneProxy.class); +// final ImageProxy.PlaneProxy[] returnValue = new ImageProxy.PlaneProxy[] {mockPlaneProxy}; +// final ByteBuffer mockByteBuffer = mock(ByteBuffer.class); +// final int bufferRemaining = 23; +// final byte[] buffer = new byte[bufferRemaining]; +// final int pixelStride = 2; +// final int rowStride = 65; +// +// instanceManager.addDartCreatedInstance(mockImageProxy, instanceIdentifier); +// +// hostApi.cameraXProxy = mockCameraXProxy; +// hostApi.planeProxyFlutterApiImpl = mockPlaneProxyFlutterApiImpl; +// +// when(mockImageProxy.getPlanes()).thenReturn(returnValue); +// when(mockPlaneProxy.getBuffer()).thenReturn(mockByteBuffer); +// when(mockByteBuffer.remaining()).thenReturn(bufferRemaining); +// when(mockCameraXProxy.getBytesFromBuffer(bufferRemaining)).thenReturn(buffer); +// when(mockPlaneProxy.getPixelStride()).thenReturn(pixelStride); +// when(mockPlaneProxy.getRowStride()).thenReturn(rowStride); +// +// final List result = hostApi.getPlanes(instanceIdentifier); +// +// verify(mockImageProxy).getPlanes(); +// verify(mockPlaneProxyFlutterApiImpl) +// .create( +// eq(mockPlaneProxy), +// eq(buffer), +// eq(Long.valueOf(pixelStride)), +// eq(Long.valueOf(rowStride)), +// any()); +// assertEquals(result.size(), 1); +// } +// +// @Test +// public void close_makesCallToCloseExpectedImageProxyInstance() { +// final ImageProxyHostApiImpl hostApi = +// new ImageProxyHostApiImpl(mockBinaryMessenger, instanceManager); +// final long instanceIdentifier = 9; +// +// instanceManager.addDartCreatedInstance(mockImageProxy, instanceIdentifier); +// +// hostApi.close(instanceIdentifier); +// +// verify(mockImageProxy).close(); +// } +// +// @Test +// public void flutterApiCreate_makesCallToDartCreate() { +// final ImageProxyFlutterApiImpl flutterApi = +// new ImageProxyFlutterApiImpl(mockBinaryMessenger, instanceManager); +// final long format = 3; +// final long height = 2; +// final long width = 1; +// +// flutterApi.setApi(mockFlutterApi); +// +// flutterApi.create(mockImageProxy, format, height, width, reply -> {}); +// final long instanceIdentifier = +// Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockImageProxy)); +// +// verify(mockFlutterApi).create(eq(instanceIdentifier), eq(format), eq(height), eq(width), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/InstanceManagerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/InstanceManagerTest.java deleted file mode 100644 index 7dd5e62acab..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/InstanceManagerTest.java +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; - -public class InstanceManagerTest { - @Test - public void addDartCreatedInstance() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - - final Object object = new Object(); - instanceManager.addDartCreatedInstance(object, 0); - - assertEquals(object, instanceManager.getInstance(0)); - assertEquals((Long) 0L, instanceManager.getIdentifierForStrongReference(object)); - assertTrue(instanceManager.containsInstance(object)); - - instanceManager.stopFinalizationListener(); - } - - @Test - public void addHostCreatedInstance() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - - final Object object = new Object(); - long identifier = instanceManager.addHostCreatedInstance(object); - - assertNotNull(instanceManager.getInstance(identifier)); - assertEquals(object, instanceManager.getInstance(identifier)); - assertTrue(instanceManager.containsInstance(object)); - - instanceManager.stopFinalizationListener(); - } - - @Test - public void removeReturnsRemovedObjectAndClearsIdentifier() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - - Object object = new Object(); - instanceManager.addDartCreatedInstance(object, 0); - - assertEquals(object, instanceManager.remove(0)); - - // To allow for object to be garbage collected. - //noinspection UnusedAssignment - object = null; - - Runtime.getRuntime().gc(); - - assertNull(instanceManager.getInstance(0)); - - instanceManager.stopFinalizationListener(); - } - - @Test - public void clear() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - - final Object instance = new Object(); - - instanceManager.addDartCreatedInstance(instance, 0); - assertTrue(instanceManager.containsInstance(instance)); - - instanceManager.clear(); - assertFalse(instanceManager.containsInstance(instance)); - - instanceManager.stopFinalizationListener(); - } - - @Test - public void canAddSameObjectWithAddDartCreatedInstance() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - - final Object instance = new Object(); - - instanceManager.addDartCreatedInstance(instance, 0); - instanceManager.addDartCreatedInstance(instance, 1); - - assertTrue(instanceManager.containsInstance(instance)); - - assertEquals(instanceManager.getInstance(0), instance); - assertEquals(instanceManager.getInstance(1), instance); - - instanceManager.stopFinalizationListener(); - } - - @Test(expected = IllegalArgumentException.class) - public void cannotAddSameObjectsWithAddHostCreatedInstance() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - - final Object instance = new Object(); - - instanceManager.addHostCreatedInstance(instance); - instanceManager.addHostCreatedInstance(instance); - - instanceManager.stopFinalizationListener(); - } - - @Test(expected = IllegalArgumentException.class) - public void cannotUseIdentifierLessThanZero() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - - instanceManager.addDartCreatedInstance(new Object(), -1); - - instanceManager.stopFinalizationListener(); - } - - @Test(expected = IllegalArgumentException.class) - public void identifiersMustBeUnique() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - - instanceManager.addDartCreatedInstance(new Object(), 0); - instanceManager.addDartCreatedInstance(new Object(), 0); - - instanceManager.stopFinalizationListener(); - } - - @Test - public void managerIsUsableWhileListenerHasStopped() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - instanceManager.stopFinalizationListener(); - - final Object instance = new Object(); - final long identifier = 0; - - instanceManager.addDartCreatedInstance(instance, identifier); - assertEquals(instanceManager.getInstance(identifier), instance); - assertEquals(instanceManager.getIdentifierForStrongReference(instance), (Long) identifier); - assertTrue(instanceManager.containsInstance(instance)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/JavaObjectHostApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/JavaObjectHostApiTest.java index d05bf5bc46b..ad732f2c2e8 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/JavaObjectHostApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/JavaObjectHostApiTest.java @@ -1,32 +1,32 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertNull; - -import org.junit.Test; - -public class JavaObjectHostApiTest { - @Test - public void dispose() { - final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); - - final JavaObjectHostApiImpl hostApi = new JavaObjectHostApiImpl(instanceManager); - - Object object = new Object(); - instanceManager.addDartCreatedInstance(object, 0); - - // To free object for garbage collection. - //noinspection UnusedAssignment - object = null; - - hostApi.dispose(0L); - Runtime.getRuntime().gc(); - - assertNull(instanceManager.getInstance(0)); - - instanceManager.stopFinalizationListener(); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertNull; +// +//import org.junit.Test; +// +//public class JavaObjectHostApiTest { +// @Test +// public void dispose() { +// final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); +// +// final JavaObjectHostApiImpl hostApi = new JavaObjectHostApiImpl(instanceManager); +// +// Object object = new Object(); +// instanceManager.addDartCreatedInstance(object, 0); +// +// // To free object for garbage collection. +// //noinspection UnusedAssignment +// object = null; +// +// hostApi.dispose(0L); +// Runtime.getRuntime().gc(); +// +// assertNull(instanceManager.getInstance(0)); +// +// instanceManager.stopFinalizationListener(); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java index c4317cf11e8..492801ba430 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java @@ -1,64 +1,64 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper -import androidx.lifecycle.Observer<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class LiveDataProxyApiTest { - @Test - public void type() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; - when(instance.getType()).thenReturn(value); - - assertEquals(value, api.type(instance)); - } - - @Test - public void observe() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - final androidx.lifecycle.Observer<*> observer = mock(Observer.class); - api.observe(instance, observer); - - verify(instance).observe(observer); - } - - @Test - public void removeObservers() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - api.removeObservers(instance ); - - verify(instance).removeObservers(); - } - - @Test - public void getValue() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - final Any value = -1; - when(instance.getValue()).thenReturn(value); - - assertEquals(value, api.getValue(instance )); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper +//import androidx.lifecycle.Observer<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class LiveDataProxyApiTest { +// @Test +// public void type() { +// final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); +// +// final LiveData instance = mock(LiveData.class); +// final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; +// when(instance.getType()).thenReturn(value); +// +// assertEquals(value, api.type(instance)); +// } +// +// @Test +// public void observe() { +// final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); +// +// final LiveData instance = mock(LiveData.class); +// final androidx.lifecycle.Observer<*> observer = mock(Observer.class); +// api.observe(instance, observer); +// +// verify(instance).observe(observer); +// } +// +// @Test +// public void removeObservers() { +// final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); +// +// final LiveData instance = mock(LiveData.class); +// api.removeObservers(instance ); +// +// verify(instance).removeObservers(); +// } +// +// @Test +// public void getValue() { +// final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); +// +// final LiveData instance = mock(LiveData.class); +// final Any value = -1; +// when(instance.getValue()).thenReturn(value); +// +// assertEquals(value, api.getValue(instance )); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java index 8002ff94de9..e5ecea79ac5 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java @@ -1,154 +1,154 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import androidx.camera.core.CameraState; -import androidx.camera.core.ZoomState; -import androidx.lifecycle.LifecycleOwner; -import androidx.lifecycle.LiveData; -import androidx.lifecycle.Observer; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataFlutterApi; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedType; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedTypeData; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class LiveDataTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public LiveData mockLiveData; - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public LiveDataFlutterApi mockFlutterApi; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - @SuppressWarnings({"unchecked", "rawtypes"}) - public void observe_addsExpectedObserverToLiveDataInstance() { - final LiveDataHostApiImpl hostApi = - new LiveDataHostApiImpl(mockBinaryMessenger, instanceManager); - final Observer mockObserver = mock(Observer.class); - final long observerIdentifier = 20; - final long instanceIdentifier = 29; - final LifecycleOwner mockLifecycleOwner = mock(LifecycleOwner.class); - - instanceManager.addDartCreatedInstance(mockObserver, observerIdentifier); - instanceManager.addDartCreatedInstance(mockLiveData, instanceIdentifier); - - hostApi.setLifecycleOwner(mockLifecycleOwner); - hostApi.observe(instanceIdentifier, observerIdentifier); - - verify(mockLiveData).observe(mockLifecycleOwner, mockObserver); - } - - @Test - public void removeObservers_makesCallToRemoveObserversFromLiveDataInstance() { - final LiveDataHostApiImpl hostApi = - new LiveDataHostApiImpl(mockBinaryMessenger, instanceManager); - final long instanceIdentifier = 10; - final LifecycleOwner mockLifecycleOwner = mock(LifecycleOwner.class); - - instanceManager.addDartCreatedInstance(mockLiveData, instanceIdentifier); - - hostApi.setLifecycleOwner(mockLifecycleOwner); - hostApi.removeObservers(instanceIdentifier); - - verify(mockLiveData).removeObservers(mockLifecycleOwner); - } - - @Test - @SuppressWarnings("unchecked") - public void getValue_returnsExpectedValue() { - final LiveDataHostApiImpl hostApi = - new LiveDataHostApiImpl(mockBinaryMessenger, instanceManager); - - for (LiveDataSupportedType supportedType : LiveDataSupportedType.values()) { - LiveDataSupportedTypeData typeData = - new LiveDataSupportedTypeData.Builder().setValue(supportedType).build(); - - switch (supportedType) { - case CAMERA_STATE: - CameraState mockCameraState = mock(CameraState.class); - final Long mockCameraStateIdentifier = 56L; - final long instanceIdentifier = 33; - - instanceManager.addDartCreatedInstance(mockLiveData, instanceIdentifier); - instanceManager.addDartCreatedInstance(mockCameraState, mockCameraStateIdentifier); - - when(mockLiveData.getValue()).thenReturn(mockCameraState); - when(mockCameraState.getType()).thenReturn(CameraState.Type.CLOSED); - when(mockCameraState.getError()).thenReturn(null); - - assertEquals(hostApi.getValue(instanceIdentifier, typeData), mockCameraStateIdentifier); - break; - case ZOOM_STATE: - final LiveData mockLiveZoomState = (LiveData) mock(LiveData.class); - ZoomState mockZoomState = mock(ZoomState.class); - final Long mockLiveZoomStateIdentifier = 22L; - final Long mockZoomStateIdentifier = 8L; - - when(mockLiveZoomState.getValue()).thenReturn(mockZoomState); - instanceManager.addDartCreatedInstance(mockLiveZoomState, mockLiveZoomStateIdentifier); - instanceManager.addDartCreatedInstance(mockZoomState, mockZoomStateIdentifier); - - assertEquals( - hostApi.getValue(mockLiveZoomStateIdentifier, typeData), mockZoomStateIdentifier); - break; - default: - fail( - "The LiveDataSupportedType " - + supportedType.toString() - + "is unhandled by this test."); - } - } - } - - @Test - public void flutterApiCreate_makesCallToDartToCreateInstance() { - final LiveDataFlutterApiWrapper flutterApi = - new LiveDataFlutterApiWrapper(mockBinaryMessenger, instanceManager); - final LiveDataSupportedType liveDataType = LiveDataSupportedType.CAMERA_STATE; - - flutterApi.setApi(mockFlutterApi); - - final ArgumentCaptor liveDataSupportedTypeDataCaptor = - ArgumentCaptor.forClass(LiveDataSupportedTypeData.class); - - flutterApi.create(mockLiveData, liveDataType, reply -> {}); - - final long instanceIdentifier = - Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockLiveData)); - verify(mockFlutterApi) - .create(eq(instanceIdentifier), liveDataSupportedTypeDataCaptor.capture(), any()); - assertEquals(liveDataSupportedTypeDataCaptor.getValue().getValue(), liveDataType); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.fail; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.CameraState; +//import androidx.camera.core.ZoomState; +//import androidx.lifecycle.LifecycleOwner; +//import androidx.lifecycle.LiveData; +//import androidx.lifecycle.Observer; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataFlutterApi; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedType; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedTypeData; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.ArgumentCaptor; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class LiveDataTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public LiveData mockLiveData; +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public LiveDataFlutterApi mockFlutterApi; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// @SuppressWarnings({"unchecked", "rawtypes"}) +// public void observe_addsExpectedObserverToLiveDataInstance() { +// final LiveDataHostApiImpl hostApi = +// new LiveDataHostApiImpl(mockBinaryMessenger, instanceManager); +// final Observer mockObserver = mock(Observer.class); +// final long observerIdentifier = 20; +// final long instanceIdentifier = 29; +// final LifecycleOwner mockLifecycleOwner = mock(LifecycleOwner.class); +// +// instanceManager.addDartCreatedInstance(mockObserver, observerIdentifier); +// instanceManager.addDartCreatedInstance(mockLiveData, instanceIdentifier); +// +// hostApi.setLifecycleOwner(mockLifecycleOwner); +// hostApi.observe(instanceIdentifier, observerIdentifier); +// +// verify(mockLiveData).observe(mockLifecycleOwner, mockObserver); +// } +// +// @Test +// public void removeObservers_makesCallToRemoveObserversFromLiveDataInstance() { +// final LiveDataHostApiImpl hostApi = +// new LiveDataHostApiImpl(mockBinaryMessenger, instanceManager); +// final long instanceIdentifier = 10; +// final LifecycleOwner mockLifecycleOwner = mock(LifecycleOwner.class); +// +// instanceManager.addDartCreatedInstance(mockLiveData, instanceIdentifier); +// +// hostApi.setLifecycleOwner(mockLifecycleOwner); +// hostApi.removeObservers(instanceIdentifier); +// +// verify(mockLiveData).removeObservers(mockLifecycleOwner); +// } +// +// @Test +// @SuppressWarnings("unchecked") +// public void getValue_returnsExpectedValue() { +// final LiveDataHostApiImpl hostApi = +// new LiveDataHostApiImpl(mockBinaryMessenger, instanceManager); +// +// for (LiveDataSupportedType supportedType : LiveDataSupportedType.values()) { +// LiveDataSupportedTypeData typeData = +// new LiveDataSupportedTypeData.Builder().setValue(supportedType).build(); +// +// switch (supportedType) { +// case CAMERA_STATE: +// CameraState mockCameraState = mock(CameraState.class); +// final Long mockCameraStateIdentifier = 56L; +// final long instanceIdentifier = 33; +// +// instanceManager.addDartCreatedInstance(mockLiveData, instanceIdentifier); +// instanceManager.addDartCreatedInstance(mockCameraState, mockCameraStateIdentifier); +// +// when(mockLiveData.getValue()).thenReturn(mockCameraState); +// when(mockCameraState.getType()).thenReturn(CameraState.Type.CLOSED); +// when(mockCameraState.getError()).thenReturn(null); +// +// assertEquals(hostApi.getValue(instanceIdentifier, typeData), mockCameraStateIdentifier); +// break; +// case ZOOM_STATE: +// final LiveData mockLiveZoomState = (LiveData) mock(LiveData.class); +// ZoomState mockZoomState = mock(ZoomState.class); +// final Long mockLiveZoomStateIdentifier = 22L; +// final Long mockZoomStateIdentifier = 8L; +// +// when(mockLiveZoomState.getValue()).thenReturn(mockZoomState); +// instanceManager.addDartCreatedInstance(mockLiveZoomState, mockLiveZoomStateIdentifier); +// instanceManager.addDartCreatedInstance(mockZoomState, mockZoomStateIdentifier); +// +// assertEquals( +// hostApi.getValue(mockLiveZoomStateIdentifier, typeData), mockZoomStateIdentifier); +// break; +// default: +// fail( +// "The LiveDataSupportedType " +// + supportedType.toString() +// + "is unhandled by this test."); +// } +// } +// } +// +// @Test +// public void flutterApiCreate_makesCallToDartToCreateInstance() { +// final LiveDataFlutterApiWrapper flutterApi = +// new LiveDataFlutterApiWrapper(mockBinaryMessenger, instanceManager); +// final LiveDataSupportedType liveDataType = LiveDataSupportedType.CAMERA_STATE; +// +// flutterApi.setApi(mockFlutterApi); +// +// final ArgumentCaptor liveDataSupportedTypeDataCaptor = +// ArgumentCaptor.forClass(LiveDataSupportedTypeData.class); +// +// flutterApi.create(mockLiveData, liveDataType, reply -> {}); +// +// final long instanceIdentifier = +// Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockLiveData)); +// verify(mockFlutterApi) +// .create(eq(instanceIdentifier), liveDataSupportedTypeDataCaptor.capture(), any()); +// assertEquals(liveDataSupportedTypeDataCaptor.getValue().getValue(), liveDataType); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java index b936016bf16..1ac6dd5d6cf 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java @@ -1,48 +1,48 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.MeteringPointFactory -import androidx.camera.core.MeteringPoint -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class MeteringPointFactoryProxyApiTest { - @Test - public void createPoint() { - final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); - - final MeteringPointFactory instance = mock(MeteringPointFactory.class); - final Double x = 1.0; - final Double y = 1.0; - final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); - when(instance.createPoint(x, y)).thenReturn(value); - - assertEquals(value, api.createPoint(instance, x, y)); - } - - @Test - public void createPointWithSize() { - final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); - - final MeteringPointFactory instance = mock(MeteringPointFactory.class); - final Double x = 1.0; - final Double y = 1.0; - final Double size = 1.0; - final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); - when(instance.createPointWithSize(x, y, size)).thenReturn(value); - - assertEquals(value, api.createPointWithSize(instance, x, y, size)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.MeteringPointFactory +//import androidx.camera.core.MeteringPoint +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class MeteringPointFactoryProxyApiTest { +// @Test +// public void createPoint() { +// final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); +// +// final MeteringPointFactory instance = mock(MeteringPointFactory.class); +// final Double x = 1.0; +// final Double y = 1.0; +// final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); +// when(instance.createPoint(x, y)).thenReturn(value); +// +// assertEquals(value, api.createPoint(instance, x, y)); +// } +// +// @Test +// public void createPointWithSize() { +// final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); +// +// final MeteringPointFactory instance = mock(MeteringPointFactory.class); +// final Double x = 1.0; +// final Double y = 1.0; +// final Double size = 1.0; +// final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); +// when(instance.createPointWithSize(x, y, size)).thenReturn(value); +// +// assertEquals(value, api.createPointWithSize(instance, x, y, size)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java index ba326f052ef..de9bb3a5e46 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java @@ -1,31 +1,31 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.MeteringPoint -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class MeteringPointProxyApiTest { - @Test - public void getSize() { - final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); - - final MeteringPoint instance = mock(MeteringPoint.class); - final Double value = 1.0; - when(instance.getSize()).thenReturn(value); - - assertEquals(value, api.getSize(instance )); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.MeteringPoint +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class MeteringPointProxyApiTest { +// @Test +// public void getSize() { +// final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); +// +// final MeteringPoint instance = mock(MeteringPoint.class); +// final Double value = 1.0; +// when(instance.getSize()).thenReturn(value); +// +// assertEquals(value, api.getSize(instance )); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java index 0734f6ba6a9..dfc73b0125c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java @@ -1,231 +1,231 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.app.Activity; -import android.content.Context; -import android.view.Display; -import android.view.WindowManager; -import androidx.camera.core.CameraInfo; -import androidx.camera.core.DisplayOrientedMeteringPointFactory; -import androidx.camera.core.MeteringPoint; -import androidx.camera.core.MeteringPointFactory; -import io.flutter.plugin.common.BinaryMessenger; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.mockito.stubbing.Answer; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.annotation.Config; - -@RunWith(RobolectricTestRunner.class) -public class MeteringPointTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public MeteringPoint meteringPoint; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - @Config(sdk = 30) - public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified_AboveAndroid30() { - final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = - spy(new MeteringPointHostApiImpl.MeteringPointProxy()); - final MeteringPointHostApiImpl hostApi = - new MeteringPointHostApiImpl(testInstanceManager, proxySpy); - final Long meteringPointIdentifier = 78L; - final Float x = 0.25f; - final Float y = 0.18f; - final Float size = 0.6f; - final Float surfaceWidth = 1f; - final Float surfaceHeight = 1f; - final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = - mock(DisplayOrientedMeteringPointFactory.class); - final Activity mockActivity = mock(Activity.class); - final Display mockDisplay = mock(Display.class); - final CameraInfo mockCameraInfo = mock(CameraInfo.class); - final long mockCameraInfoId = 55L; - - hostApi.setActivity(mockActivity); - testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); - - when(mockActivity.getDisplay()).thenReturn(mockDisplay); - when(proxySpy.getDisplayOrientedMeteringPointFactory( - mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) - .thenReturn(mockDisplayOrientedMeteringPointFactory); - when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y, size)).thenReturn(meteringPoint); - - hostApi.create( - meteringPointIdentifier, - x.doubleValue(), - y.doubleValue(), - size.doubleValue(), - mockCameraInfoId); - - verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y, size); - assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); - } - - @Test - @Config(sdk = 29) - @SuppressWarnings("deprecation") - public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified_BelowAndroid30() { - final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = - spy(new MeteringPointHostApiImpl.MeteringPointProxy()); - final MeteringPointHostApiImpl hostApi = - new MeteringPointHostApiImpl(testInstanceManager, proxySpy); - final Long meteringPointIdentifier = 78L; - final Float x = 0.3f; - final Float y = 0.2f; - final Float size = 6f; - final Float surfaceWidth = 1f; - final Float surfaceHeight = 1f; - final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = - mock(DisplayOrientedMeteringPointFactory.class); - final Activity mockActivity = mock(Activity.class); - final WindowManager mockWindowManager = mock(WindowManager.class); - final Display mockDisplay = mock(Display.class); - final CameraInfo mockCameraInfo = mock(CameraInfo.class); - final long mockCameraInfoId = 5L; - - hostApi.setActivity(mockActivity); - testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); - - when(mockActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mockWindowManager); - when(mockWindowManager.getDefaultDisplay()).thenReturn(mockDisplay); - when(proxySpy.getDisplayOrientedMeteringPointFactory( - mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) - .thenReturn(mockDisplayOrientedMeteringPointFactory); - when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y, size)).thenReturn(meteringPoint); - - hostApi.create( - meteringPointIdentifier, - x.doubleValue(), - y.doubleValue(), - size.doubleValue(), - mockCameraInfoId); - - verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y, size); - assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); - } - - @Test - @Config(sdk = 30) - public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified_AboveAndroid30() { - final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = - spy(new MeteringPointHostApiImpl.MeteringPointProxy()); - final MeteringPointHostApiImpl hostApi = - new MeteringPointHostApiImpl(testInstanceManager, proxySpy); - final Long meteringPointIdentifier = 78L; - final Float x = 0.23f; - final Float y = 0.32f; - final Float surfaceWidth = 1f; - final Float surfaceHeight = 1f; - final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = - mock(DisplayOrientedMeteringPointFactory.class); - final Activity mockActivity = mock(Activity.class); - final Display mockDisplay = mock(Display.class); - final CameraInfo mockCameraInfo = mock(CameraInfo.class); - final long mockCameraInfoId = 6L; - - hostApi.setActivity(mockActivity); - testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); - - when(mockActivity.getDisplay()).thenReturn(mockDisplay); - when(proxySpy.getDisplayOrientedMeteringPointFactory( - mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) - .thenReturn(mockDisplayOrientedMeteringPointFactory); - when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y)).thenReturn(meteringPoint); - - hostApi.create( - meteringPointIdentifier, x.doubleValue(), y.doubleValue(), null, mockCameraInfoId); - - verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y); - assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); - } - - @Test - @Config(sdk = 29) - @SuppressWarnings("deprecation") - public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified_BelowAndroid30() { - final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = - spy(new MeteringPointHostApiImpl.MeteringPointProxy()); - final MeteringPointHostApiImpl hostApi = - new MeteringPointHostApiImpl(testInstanceManager, proxySpy); - final Long meteringPointIdentifier = 78L; - final Float x = 0.1f; - final Float y = 0.8f; - final Float surfaceWidth = 1f; - final Float surfaceHeight = 1f; - final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = - mock(DisplayOrientedMeteringPointFactory.class); - final Activity mockActivity = mock(Activity.class); - final WindowManager mockWindowManager = mock(WindowManager.class); - final Display mockDisplay = mock(Display.class); - final CameraInfo mockCameraInfo = mock(CameraInfo.class); - final long mockCameraInfoId = 7L; - - hostApi.setActivity(mockActivity); - testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); - - when(mockActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mockWindowManager); - when(mockWindowManager.getDefaultDisplay()).thenReturn(mockDisplay); - when(proxySpy.getDisplayOrientedMeteringPointFactory( - mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) - .thenReturn(mockDisplayOrientedMeteringPointFactory); - when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y)).thenReturn(meteringPoint); - - hostApi.create( - meteringPointIdentifier, x.doubleValue(), y.doubleValue(), null, mockCameraInfoId); - - verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y); - assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); - } - - @Test - public void getDefaultPointSize_returnsExpectedSize() { - try (MockedStatic mockedMeteringPointFactory = - Mockito.mockStatic(MeteringPointFactory.class)) { - final MeteringPointHostApiImpl meteringPointHostApiImpl = - new MeteringPointHostApiImpl(testInstanceManager); - final Long meteringPointIdentifier = 93L; - final Long index = 2L; - final Double defaultPointSize = 4D; - - testInstanceManager.addDartCreatedInstance(meteringPoint, meteringPointIdentifier); - - mockedMeteringPointFactory - .when(() -> MeteringPointFactory.getDefaultPointSize()) - .thenAnswer((Answer) invocation -> defaultPointSize.floatValue()); - - assertEquals(meteringPointHostApiImpl.getDefaultPointSize(), defaultPointSize); - mockedMeteringPointFactory.verify(() -> MeteringPointFactory.getDefaultPointSize()); - } - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.app.Activity; +//import android.content.Context; +//import android.view.Display; +//import android.view.WindowManager; +//import androidx.camera.core.CameraInfo; +//import androidx.camera.core.DisplayOrientedMeteringPointFactory; +//import androidx.camera.core.MeteringPoint; +//import androidx.camera.core.MeteringPointFactory; +//import io.flutter.plugin.common.BinaryMessenger; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +//import org.mockito.Mockito; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.mockito.stubbing.Answer; +//import org.robolectric.RobolectricTestRunner; +//import org.robolectric.annotation.Config; +// +//@RunWith(RobolectricTestRunner.class) +//public class MeteringPointTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public MeteringPoint meteringPoint; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// @Config(sdk = 30) +// public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified_AboveAndroid30() { +// final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = +// spy(new MeteringPointHostApiImpl.MeteringPointProxy()); +// final MeteringPointHostApiImpl hostApi = +// new MeteringPointHostApiImpl(testInstanceManager, proxySpy); +// final Long meteringPointIdentifier = 78L; +// final Float x = 0.25f; +// final Float y = 0.18f; +// final Float size = 0.6f; +// final Float surfaceWidth = 1f; +// final Float surfaceHeight = 1f; +// final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = +// mock(DisplayOrientedMeteringPointFactory.class); +// final Activity mockActivity = mock(Activity.class); +// final Display mockDisplay = mock(Display.class); +// final CameraInfo mockCameraInfo = mock(CameraInfo.class); +// final long mockCameraInfoId = 55L; +// +// hostApi.setActivity(mockActivity); +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); +// +// when(mockActivity.getDisplay()).thenReturn(mockDisplay); +// when(proxySpy.getDisplayOrientedMeteringPointFactory( +// mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) +// .thenReturn(mockDisplayOrientedMeteringPointFactory); +// when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y, size)).thenReturn(meteringPoint); +// +// hostApi.create( +// meteringPointIdentifier, +// x.doubleValue(), +// y.doubleValue(), +// size.doubleValue(), +// mockCameraInfoId); +// +// verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y, size); +// assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); +// } +// +// @Test +// @Config(sdk = 29) +// @SuppressWarnings("deprecation") +// public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified_BelowAndroid30() { +// final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = +// spy(new MeteringPointHostApiImpl.MeteringPointProxy()); +// final MeteringPointHostApiImpl hostApi = +// new MeteringPointHostApiImpl(testInstanceManager, proxySpy); +// final Long meteringPointIdentifier = 78L; +// final Float x = 0.3f; +// final Float y = 0.2f; +// final Float size = 6f; +// final Float surfaceWidth = 1f; +// final Float surfaceHeight = 1f; +// final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = +// mock(DisplayOrientedMeteringPointFactory.class); +// final Activity mockActivity = mock(Activity.class); +// final WindowManager mockWindowManager = mock(WindowManager.class); +// final Display mockDisplay = mock(Display.class); +// final CameraInfo mockCameraInfo = mock(CameraInfo.class); +// final long mockCameraInfoId = 5L; +// +// hostApi.setActivity(mockActivity); +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); +// +// when(mockActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mockWindowManager); +// when(mockWindowManager.getDefaultDisplay()).thenReturn(mockDisplay); +// when(proxySpy.getDisplayOrientedMeteringPointFactory( +// mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) +// .thenReturn(mockDisplayOrientedMeteringPointFactory); +// when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y, size)).thenReturn(meteringPoint); +// +// hostApi.create( +// meteringPointIdentifier, +// x.doubleValue(), +// y.doubleValue(), +// size.doubleValue(), +// mockCameraInfoId); +// +// verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y, size); +// assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); +// } +// +// @Test +// @Config(sdk = 30) +// public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified_AboveAndroid30() { +// final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = +// spy(new MeteringPointHostApiImpl.MeteringPointProxy()); +// final MeteringPointHostApiImpl hostApi = +// new MeteringPointHostApiImpl(testInstanceManager, proxySpy); +// final Long meteringPointIdentifier = 78L; +// final Float x = 0.23f; +// final Float y = 0.32f; +// final Float surfaceWidth = 1f; +// final Float surfaceHeight = 1f; +// final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = +// mock(DisplayOrientedMeteringPointFactory.class); +// final Activity mockActivity = mock(Activity.class); +// final Display mockDisplay = mock(Display.class); +// final CameraInfo mockCameraInfo = mock(CameraInfo.class); +// final long mockCameraInfoId = 6L; +// +// hostApi.setActivity(mockActivity); +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); +// +// when(mockActivity.getDisplay()).thenReturn(mockDisplay); +// when(proxySpy.getDisplayOrientedMeteringPointFactory( +// mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) +// .thenReturn(mockDisplayOrientedMeteringPointFactory); +// when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y)).thenReturn(meteringPoint); +// +// hostApi.create( +// meteringPointIdentifier, x.doubleValue(), y.doubleValue(), null, mockCameraInfoId); +// +// verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y); +// assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); +// } +// +// @Test +// @Config(sdk = 29) +// @SuppressWarnings("deprecation") +// public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified_BelowAndroid30() { +// final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = +// spy(new MeteringPointHostApiImpl.MeteringPointProxy()); +// final MeteringPointHostApiImpl hostApi = +// new MeteringPointHostApiImpl(testInstanceManager, proxySpy); +// final Long meteringPointIdentifier = 78L; +// final Float x = 0.1f; +// final Float y = 0.8f; +// final Float surfaceWidth = 1f; +// final Float surfaceHeight = 1f; +// final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = +// mock(DisplayOrientedMeteringPointFactory.class); +// final Activity mockActivity = mock(Activity.class); +// final WindowManager mockWindowManager = mock(WindowManager.class); +// final Display mockDisplay = mock(Display.class); +// final CameraInfo mockCameraInfo = mock(CameraInfo.class); +// final long mockCameraInfoId = 7L; +// +// hostApi.setActivity(mockActivity); +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); +// +// when(mockActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mockWindowManager); +// when(mockWindowManager.getDefaultDisplay()).thenReturn(mockDisplay); +// when(proxySpy.getDisplayOrientedMeteringPointFactory( +// mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) +// .thenReturn(mockDisplayOrientedMeteringPointFactory); +// when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y)).thenReturn(meteringPoint); +// +// hostApi.create( +// meteringPointIdentifier, x.doubleValue(), y.doubleValue(), null, mockCameraInfoId); +// +// verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y); +// assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); +// } +// +// @Test +// public void getDefaultPointSize_returnsExpectedSize() { +// try (MockedStatic mockedMeteringPointFactory = +// Mockito.mockStatic(MeteringPointFactory.class)) { +// final MeteringPointHostApiImpl meteringPointHostApiImpl = +// new MeteringPointHostApiImpl(testInstanceManager); +// final Long meteringPointIdentifier = 93L; +// final Long index = 2L; +// final Double defaultPointSize = 4D; +// +// testInstanceManager.addDartCreatedInstance(meteringPoint, meteringPointIdentifier); +// +// mockedMeteringPointFactory +// .when(() -> MeteringPointFactory.getDefaultPointSize()) +// .thenAnswer((Answer) invocation -> defaultPointSize.floatValue()); +// +// assertEquals(meteringPointHostApiImpl.getDefaultPointSize(), defaultPointSize); +// mockedMeteringPointFactory.verify(() -> MeteringPointFactory.getDefaultPointSize()); +// } +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java index a5c9fd7cd8e..cb517471795 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java @@ -1,39 +1,39 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.lifecycle.Observer<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ObserverProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); - - assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.ObserverImpl); - } - - @Test - public void onChanged() { - final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final ObserverImpl instance = new ObserverImpl(mockApi); - final Any value = -1; - instance.onChanged(value); - - verify(mockApi).onChanged(eq(instance), eq(value), any()); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.lifecycle.Observer<*> +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ObserverProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); +// +// assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.ObserverImpl); +// } +// +// @Test +// public void onChanged() { +// final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); +// when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); +// +// final ObserverImpl instance = new ObserverImpl(mockApi); +// final Any value = -1; +// instance.onChanged(value); +// +// verify(mockApi).onChanged(eq(instance), eq(value), any()); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java index dc45c8903ec..4a9b464a19c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java @@ -1,132 +1,132 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThrows; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import androidx.camera.core.CameraState; -import androidx.camera.core.ZoomState; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateType; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ObserverFlutterApi; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class ObserverTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public ObserverHostApiImpl.ObserverImpl mockObserver; - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public ObserverFlutterApi mockFlutterApi; - @Mock public ObserverHostApiImpl.ObserverProxy mockProxy; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void create_createsObserverInstance() { - final ObserverHostApiImpl hostApi = - new ObserverHostApiImpl(mockBinaryMessenger, instanceManager, mockProxy); - final long instanceIdentifier = 0; - - when(mockProxy.create(mockBinaryMessenger, instanceManager)) - .thenReturn(mockObserver); - - hostApi.create(instanceIdentifier); - - assertEquals(instanceManager.getInstance(instanceIdentifier), mockObserver); - } - - @Test - public void onChanged_makesExpectedCallToDartCallbackForCameraState() { - final ObserverFlutterApiWrapper flutterApi = - new ObserverFlutterApiWrapper(mockBinaryMessenger, instanceManager); - final ObserverHostApiImpl.ObserverImpl instance = - new ObserverHostApiImpl.ObserverImpl(mockBinaryMessenger, instanceManager); - final CameraStateFlutterApiWrapper mockCameraStateFlutterApiWrapper = - mock(CameraStateFlutterApiWrapper.class); - final long instanceIdentifier = 60; - final CameraState.StateError testCameraStateError = - CameraState.StateError.create(CameraState.ERROR_CAMERA_IN_USE); - final CameraState testCameraState = - CameraState.create(CameraState.Type.CLOSED, testCameraStateError); - final Long mockCameraStateIdentifier = instanceManager.addHostCreatedInstance(testCameraState); - - flutterApi.setApi(mockFlutterApi); - instance.setApi(flutterApi); - flutterApi.cameraStateFlutterApiWrapper = mockCameraStateFlutterApiWrapper; - - instanceManager.addDartCreatedInstance(instance, instanceIdentifier); - - instance.onChanged(testCameraState); - - verify(mockFlutterApi) - .onChanged( - eq(instanceIdentifier), eq(Objects.requireNonNull(mockCameraStateIdentifier)), any()); - verify(mockCameraStateFlutterApiWrapper) - .create(eq(testCameraState), eq(CameraStateType.CLOSED), eq(testCameraStateError), any()); - } - - @Test - public void onChanged_makesExpectedCallToDartCallbackForZoomState() { - final ObserverFlutterApiWrapper flutterApi = - new ObserverFlutterApiWrapper(mockBinaryMessenger, instanceManager); - final ObserverHostApiImpl.ObserverImpl instance = - new ObserverHostApiImpl.ObserverImpl(mockBinaryMessenger, instanceManager); - final long instanceIdentifier = 2; - final ZoomStateFlutterApiImpl mockZoomStateFlutterApiImpl = mock(ZoomStateFlutterApiImpl.class); - final ZoomState mockZoomState = mock(ZoomState.class); - final Long mockZoomStateIdentifier = instanceManager.addHostCreatedInstance(mockZoomState); - - flutterApi.setApi(mockFlutterApi); - instance.setApi(flutterApi); - flutterApi.zoomStateFlutterApiImpl = mockZoomStateFlutterApiImpl; - - instanceManager.addDartCreatedInstance(instance, instanceIdentifier); - - instance.onChanged(mockZoomState); - - verify(mockFlutterApi).onChanged(eq(instanceIdentifier), eq(mockZoomStateIdentifier), any()); - verify(mockZoomStateFlutterApiImpl).create(eq(mockZoomState), any()); - } - - @Test - public void onChanged_throwsExceptionForUnsupportedLiveDataType() { - final ObserverFlutterApiWrapper flutterApi = - new ObserverFlutterApiWrapper(mockBinaryMessenger, instanceManager); - final ObserverHostApiImpl.ObserverImpl instance = - new ObserverHostApiImpl.ObserverImpl(mockBinaryMessenger, instanceManager); - final long instanceIdentifier = 2; - - flutterApi.setApi(mockFlutterApi); - instance.setApi(flutterApi); - - instanceManager.addDartCreatedInstance(instance, instanceIdentifier); - - assertThrows(UnsupportedOperationException.class, () -> instance.onChanged(mock(Object.class))); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertThrows; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.CameraState; +//import androidx.camera.core.ZoomState; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateType; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ObserverFlutterApi; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class ObserverTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public ObserverHostApiImpl.ObserverImpl mockObserver; +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public ObserverFlutterApi mockFlutterApi; +// @Mock public ObserverHostApiImpl.ObserverProxy mockProxy; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void create_createsObserverInstance() { +// final ObserverHostApiImpl hostApi = +// new ObserverHostApiImpl(mockBinaryMessenger, instanceManager, mockProxy); +// final long instanceIdentifier = 0; +// +// when(mockProxy.create(mockBinaryMessenger, instanceManager)) +// .thenReturn(mockObserver); +// +// hostApi.create(instanceIdentifier); +// +// assertEquals(instanceManager.getInstance(instanceIdentifier), mockObserver); +// } +// +// @Test +// public void onChanged_makesExpectedCallToDartCallbackForCameraState() { +// final ObserverFlutterApiWrapper flutterApi = +// new ObserverFlutterApiWrapper(mockBinaryMessenger, instanceManager); +// final ObserverHostApiImpl.ObserverImpl instance = +// new ObserverHostApiImpl.ObserverImpl(mockBinaryMessenger, instanceManager); +// final CameraStateFlutterApiWrapper mockCameraStateFlutterApiWrapper = +// mock(CameraStateFlutterApiWrapper.class); +// final long instanceIdentifier = 60; +// final CameraState.StateError testCameraStateError = +// CameraState.StateError.create(CameraState.ERROR_CAMERA_IN_USE); +// final CameraState testCameraState = +// CameraState.create(CameraState.Type.CLOSED, testCameraStateError); +// final Long mockCameraStateIdentifier = instanceManager.addHostCreatedInstance(testCameraState); +// +// flutterApi.setApi(mockFlutterApi); +// instance.setApi(flutterApi); +// flutterApi.cameraStateFlutterApiWrapper = mockCameraStateFlutterApiWrapper; +// +// instanceManager.addDartCreatedInstance(instance, instanceIdentifier); +// +// instance.onChanged(testCameraState); +// +// verify(mockFlutterApi) +// .onChanged( +// eq(instanceIdentifier), eq(Objects.requireNonNull(mockCameraStateIdentifier)), any()); +// verify(mockCameraStateFlutterApiWrapper) +// .create(eq(testCameraState), eq(CameraStateType.CLOSED), eq(testCameraStateError), any()); +// } +// +// @Test +// public void onChanged_makesExpectedCallToDartCallbackForZoomState() { +// final ObserverFlutterApiWrapper flutterApi = +// new ObserverFlutterApiWrapper(mockBinaryMessenger, instanceManager); +// final ObserverHostApiImpl.ObserverImpl instance = +// new ObserverHostApiImpl.ObserverImpl(mockBinaryMessenger, instanceManager); +// final long instanceIdentifier = 2; +// final ZoomStateFlutterApiImpl mockZoomStateFlutterApiImpl = mock(ZoomStateFlutterApiImpl.class); +// final ZoomState mockZoomState = mock(ZoomState.class); +// final Long mockZoomStateIdentifier = instanceManager.addHostCreatedInstance(mockZoomState); +// +// flutterApi.setApi(mockFlutterApi); +// instance.setApi(flutterApi); +// flutterApi.zoomStateFlutterApiImpl = mockZoomStateFlutterApiImpl; +// +// instanceManager.addDartCreatedInstance(instance, instanceIdentifier); +// +// instance.onChanged(mockZoomState); +// +// verify(mockFlutterApi).onChanged(eq(instanceIdentifier), eq(mockZoomStateIdentifier), any()); +// verify(mockZoomStateFlutterApiImpl).create(eq(mockZoomState), any()); +// } +// +// @Test +// public void onChanged_throwsExceptionForUnsupportedLiveDataType() { +// final ObserverFlutterApiWrapper flutterApi = +// new ObserverFlutterApiWrapper(mockBinaryMessenger, instanceManager); +// final ObserverHostApiImpl.ObserverImpl instance = +// new ObserverHostApiImpl.ObserverImpl(mockBinaryMessenger, instanceManager); +// final long instanceIdentifier = 2; +// +// flutterApi.setApi(mockFlutterApi); +// instance.setApi(flutterApi); +// +// instanceManager.addDartCreatedInstance(instance, instanceIdentifier); +// +// assertThrows(UnsupportedOperationException.class, () -> instance.onChanged(mock(Object.class))); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java index 5343071a20c..b6621199213 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java @@ -1,33 +1,33 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.PendingRecording -import androidx.camera.video.Recording -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class PendingRecordingProxyApiTest { - @Test - public void start() { - final PigeonApiPendingRecording api = new TestProxyApiRegistrar().getPigeonApiPendingRecording(); - - final PendingRecording instance = mock(PendingRecording.class); - final VideoRecordEventListener listener = mock(VideoRecordEventListener.class); - final androidx.camera.video.Recording value = mock(Recording.class); - when(instance.start(listener)).thenReturn(value); - - assertEquals(value, api.start(instance, listener)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.PendingRecording +//import androidx.camera.video.Recording +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class PendingRecordingProxyApiTest { +// @Test +// public void start() { +// final PigeonApiPendingRecording api = new TestProxyApiRegistrar().getPigeonApiPendingRecording(); +// +// final PendingRecording instance = mock(PendingRecording.class); +// final VideoRecordEventListener listener = mock(VideoRecordEventListener.class); +// final androidx.camera.video.Recording value = mock(Recording.class); +// when(instance.start(listener)).thenReturn(value); +// +// assertEquals(value, api.start(instance, listener)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java index f25a17ed5d9..87f7054694c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java @@ -1,135 +1,135 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import androidx.camera.video.PendingRecording; -import androidx.camera.video.Recording; -import androidx.camera.video.VideoRecordEvent; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.Objects; -import java.util.concurrent.Executor; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class PendingRecordingTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public PendingRecording mockPendingRecording; - @Mock public Recording mockRecording; - @Mock public RecordingFlutterApiImpl mockRecordingFlutterApi; - @Mock public Context mockContext; - @Mock public SystemServicesFlutterApiImpl mockSystemServicesFlutterApi; - @Mock public PendingRecordingFlutterApiImpl mockPendingRecordingFlutterApi; - @Mock public VideoRecordEvent.Finalize event; - @Mock public Throwable throwable; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = spy(InstanceManager.create(identifier -> {})); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void testStart() { - final Long mockPendingRecordingId = 3L; - final Long mockRecordingId = testInstanceManager.addHostCreatedInstance(mockRecording); - testInstanceManager.addDartCreatedInstance(mockPendingRecording, mockPendingRecordingId); - - doReturn(mockRecording).when(mockPendingRecording).start(any(), any()); - doNothing().when(mockRecordingFlutterApi).create(any(Recording.class), any()); - PendingRecordingHostApiImpl spy = - spy(new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext)); - doReturn(mock(Executor.class)).when(spy).getExecutor(); - spy.recordingFlutterApi = mockRecordingFlutterApi; - assertEquals(spy.start(mockPendingRecordingId), mockRecordingId); - verify(mockRecordingFlutterApi).create(eq(mockRecording), any()); - - testInstanceManager.remove(mockPendingRecordingId); - testInstanceManager.remove(mockRecordingId); - } - - @Test - public void testHandleVideoRecordEventSendsError() { - PendingRecordingHostApiImpl pendingRecordingHostApi = - new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext); - pendingRecordingHostApi.systemServicesFlutterApi = mockSystemServicesFlutterApi; - pendingRecordingHostApi.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; - final String eventMessage = "example failure message"; - - when(event.hasError()).thenReturn(true); - when(event.getCause()).thenReturn(throwable); - when(throwable.toString()).thenReturn(eventMessage); - doNothing().when(mockSystemServicesFlutterApi).sendCameraError(any(), any()); - - pendingRecordingHostApi.handleVideoRecordEvent(event); - - verify(mockPendingRecordingFlutterApi).sendVideoRecordingFinalizedEvent(any()); - verify(mockSystemServicesFlutterApi).sendCameraError(eq(eventMessage), any()); - } - - @Test - public void handleVideoRecordEvent_SendsVideoRecordingFinalizedEvent() { - PendingRecordingHostApiImpl pendingRecordingHostApi = - new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext); - pendingRecordingHostApi.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; - - when(event.hasError()).thenReturn(false); - - pendingRecordingHostApi.handleVideoRecordEvent(event); - - verify(mockPendingRecordingFlutterApi).sendVideoRecordingFinalizedEvent(any()); - } - - @Test - public void handleVideoRecordEvent_SendsVideoRecordingStartedEvent() { - PendingRecordingHostApiImpl pendingRecordingHostApi = - new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext); - pendingRecordingHostApi.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; - VideoRecordEvent.Start mockStartEvent = mock(VideoRecordEvent.Start.class); - - pendingRecordingHostApi.handleVideoRecordEvent(mockStartEvent); - - verify(mockPendingRecordingFlutterApi).sendVideoRecordingStartedEvent(any()); - } - - @Test - public void flutterApiCreateTest() { - final PendingRecordingFlutterApiImpl spyPendingRecordingFlutterApi = - spy(new PendingRecordingFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - - spyPendingRecordingFlutterApi.create(mockPendingRecording, reply -> {}); - - final long identifier = - Objects.requireNonNull( - testInstanceManager.getIdentifierForStrongReference(mockPendingRecording)); - verify(spyPendingRecordingFlutterApi).create(eq(identifier), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.doNothing; +//import static org.mockito.Mockito.doReturn; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.content.Context; +//import androidx.camera.video.PendingRecording; +//import androidx.camera.video.Recording; +//import androidx.camera.video.VideoRecordEvent; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.Objects; +//import java.util.concurrent.Executor; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +// +//@RunWith(RobolectricTestRunner.class) +//public class PendingRecordingTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public PendingRecording mockPendingRecording; +// @Mock public Recording mockRecording; +// @Mock public RecordingFlutterApiImpl mockRecordingFlutterApi; +// @Mock public Context mockContext; +// @Mock public SystemServicesFlutterApiImpl mockSystemServicesFlutterApi; +// @Mock public PendingRecordingFlutterApiImpl mockPendingRecordingFlutterApi; +// @Mock public VideoRecordEvent.Finalize event; +// @Mock public Throwable throwable; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = spy(InstanceManager.create(identifier -> {})); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void testStart() { +// final Long mockPendingRecordingId = 3L; +// final Long mockRecordingId = testInstanceManager.addHostCreatedInstance(mockRecording); +// testInstanceManager.addDartCreatedInstance(mockPendingRecording, mockPendingRecordingId); +// +// doReturn(mockRecording).when(mockPendingRecording).start(any(), any()); +// doNothing().when(mockRecordingFlutterApi).create(any(Recording.class), any()); +// PendingRecordingHostApiImpl spy = +// spy(new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext)); +// doReturn(mock(Executor.class)).when(spy).getExecutor(); +// spy.recordingFlutterApi = mockRecordingFlutterApi; +// assertEquals(spy.start(mockPendingRecordingId), mockRecordingId); +// verify(mockRecordingFlutterApi).create(eq(mockRecording), any()); +// +// testInstanceManager.remove(mockPendingRecordingId); +// testInstanceManager.remove(mockRecordingId); +// } +// +// @Test +// public void testHandleVideoRecordEventSendsError() { +// PendingRecordingHostApiImpl pendingRecordingHostApi = +// new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext); +// pendingRecordingHostApi.systemServicesFlutterApi = mockSystemServicesFlutterApi; +// pendingRecordingHostApi.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; +// final String eventMessage = "example failure message"; +// +// when(event.hasError()).thenReturn(true); +// when(event.getCause()).thenReturn(throwable); +// when(throwable.toString()).thenReturn(eventMessage); +// doNothing().when(mockSystemServicesFlutterApi).sendCameraError(any(), any()); +// +// pendingRecordingHostApi.handleVideoRecordEvent(event); +// +// verify(mockPendingRecordingFlutterApi).sendVideoRecordingFinalizedEvent(any()); +// verify(mockSystemServicesFlutterApi).sendCameraError(eq(eventMessage), any()); +// } +// +// @Test +// public void handleVideoRecordEvent_SendsVideoRecordingFinalizedEvent() { +// PendingRecordingHostApiImpl pendingRecordingHostApi = +// new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext); +// pendingRecordingHostApi.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; +// +// when(event.hasError()).thenReturn(false); +// +// pendingRecordingHostApi.handleVideoRecordEvent(event); +// +// verify(mockPendingRecordingFlutterApi).sendVideoRecordingFinalizedEvent(any()); +// } +// +// @Test +// public void handleVideoRecordEvent_SendsVideoRecordingStartedEvent() { +// PendingRecordingHostApiImpl pendingRecordingHostApi = +// new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext); +// pendingRecordingHostApi.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; +// VideoRecordEvent.Start mockStartEvent = mock(VideoRecordEvent.Start.class); +// +// pendingRecordingHostApi.handleVideoRecordEvent(mockStartEvent); +// +// verify(mockPendingRecordingFlutterApi).sendVideoRecordingStartedEvent(any()); +// } +// +// @Test +// public void flutterApiCreateTest() { +// final PendingRecordingFlutterApiImpl spyPendingRecordingFlutterApi = +// spy(new PendingRecordingFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// +// spyPendingRecordingFlutterApi.create(mockPendingRecording, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull( +// testInstanceManager.getIdentifierForStrongReference(mockPendingRecording)); +// verify(spyPendingRecordingFlutterApi).create(eq(identifier), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java index 194b0b9027f..8c2b20154b4 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java @@ -1,53 +1,53 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageProxy.PlaneProxy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class PlaneProxyProxyApiTest { - @Test - public void buffer() { - final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); - - final PlaneProxy instance = mock(PlaneProxy.class); - final ByteArray value = {0xA1}; - when(instance.getBuffer()).thenReturn(value); - - assertEquals(value, api.buffer(instance)); - } - - @Test - public void pixelStride() { - final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); - - final PlaneProxy instance = mock(PlaneProxy.class); - final Long value = 0; - when(instance.getPixelStride()).thenReturn(value); - - assertEquals(value, api.pixelStride(instance)); - } - - @Test - public void rowStride() { - final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); - - final PlaneProxy instance = mock(PlaneProxy.class); - final Long value = 0; - when(instance.getRowStride()).thenReturn(value); - - assertEquals(value, api.rowStride(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.ImageProxy.PlaneProxy +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class PlaneProxyProxyApiTest { +// @Test +// public void buffer() { +// final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); +// +// final PlaneProxy instance = mock(PlaneProxy.class); +// final ByteArray value = {0xA1}; +// when(instance.getBuffer()).thenReturn(value); +// +// assertEquals(value, api.buffer(instance)); +// } +// +// @Test +// public void pixelStride() { +// final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); +// +// final PlaneProxy instance = mock(PlaneProxy.class); +// final Long value = 0; +// when(instance.getPixelStride()).thenReturn(value); +// +// assertEquals(value, api.pixelStride(instance)); +// } +// +// @Test +// public void rowStride() { +// final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); +// +// final PlaneProxy instance = mock(PlaneProxy.class); +// final Long value = 0; +// when(instance.getRowStride()).thenReturn(value); +// +// assertEquals(value, api.rowStride(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java index 643b63e3f93..a635f5720e9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java @@ -1,58 +1,58 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verify; - -import androidx.camera.core.ImageProxy; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.PlaneProxyFlutterApi; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class PlaneProxyTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock public ImageProxy.PlaneProxy mockPlaneProxy; - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public PlaneProxyFlutterApi mockFlutterApi; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void flutterApiCreate_makesCallToCreateInstanceWithExpectedIdentifier() { - final PlaneProxyFlutterApiImpl flutterApi = - new PlaneProxyFlutterApiImpl(mockBinaryMessenger, instanceManager); - final byte[] buffer = new byte[23]; - final long pixelStride = 20; - final long rowStride = 2; - - flutterApi.setApi(mockFlutterApi); - - flutterApi.create(mockPlaneProxy, buffer, pixelStride, rowStride, reply -> {}); - final long instanceIdentifier = - Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockPlaneProxy)); - - verify(mockFlutterApi) - .create(eq(instanceIdentifier), eq(buffer), eq(pixelStride), eq(rowStride), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.verify; +// +//import androidx.camera.core.ImageProxy; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.PlaneProxyFlutterApi; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class PlaneProxyTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// @Mock public ImageProxy.PlaneProxy mockPlaneProxy; +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public PlaneProxyFlutterApi mockFlutterApi; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void flutterApiCreate_makesCallToCreateInstanceWithExpectedIdentifier() { +// final PlaneProxyFlutterApiImpl flutterApi = +// new PlaneProxyFlutterApiImpl(mockBinaryMessenger, instanceManager); +// final byte[] buffer = new byte[23]; +// final long pixelStride = 20; +// final long rowStride = 2; +// +// flutterApi.setApi(mockFlutterApi); +// +// flutterApi.create(mockPlaneProxy, buffer, pixelStride, rowStride, reply -> {}); +// final long instanceIdentifier = +// Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockPlaneProxy)); +// +// verify(mockFlutterApi) +// .create(eq(instanceIdentifier), eq(buffer), eq(pixelStride), eq(rowStride), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java index b838cdc3d8f..26e9c64ca90 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java @@ -1,73 +1,84 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.Preview -import androidx.camera.core.resolutionselector.ResolutionSelector -import androidx.camera.core.ResolutionInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class PreviewProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - assertTrue(api.pigeon_defaultConstructor(0, mock(ResolutionSelector.class)) instanceof PreviewProxyApi.Preview); - } - - @Test - public void setSurfaceProvider() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); - final Long value = 0; - when(instance.setSurfaceProvider(systemServicesManager)).thenReturn(value); - - assertEquals(value, api.setSurfaceProvider(instance, systemServicesManager)); - } - - @Test - public void releaseSurfaceProvider() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - api.releaseSurfaceProvider(instance ); - - verify(instance).releaseSurfaceProvider(); - } - - @Test - public void getResolutionInfo() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); - when(instance.getResolutionInfo()).thenReturn(value); - - assertEquals(value, api.getResolutionInfo(instance )); - } - - @Test - public void setTargetRotation() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.Preview +//import androidx.camera.core.resolutionselector.ResolutionSelector +//import androidx.camera.core.ResolutionInfo +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class PreviewProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); +// +// assertTrue(api.pigeon_defaultConstructor(0) instanceof PreviewProxyApi.Preview); +// } +// +// @Test +// public void resolutionSelector() { +// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); +// +// final Preview instance = mock(Preview.class); +// final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); +// when(instance.getResolutionSelector()).thenReturn(value); +// +// assertEquals(value, api.resolutionSelector(instance)); +// } +// +// @Test +// public void setSurfaceProvider() { +// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); +// +// final Preview instance = mock(Preview.class); +// final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); +// final Long value = 0; +// when(instance.setSurfaceProvider(systemServicesManager)).thenReturn(value); +// +// assertEquals(value, api.setSurfaceProvider(instance, systemServicesManager)); +// } +// +// @Test +// public void releaseSurfaceProvider() { +// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); +// +// final Preview instance = mock(Preview.class); +// api.releaseSurfaceProvider(instance ); +// +// verify(instance).releaseSurfaceProvider(); +// } +// +// @Test +// public void getResolutionInfo() { +// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); +// +// final Preview instance = mock(Preview.class); +// final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); +// when(instance.getResolutionInfo()).thenReturn(value); +// +// assertEquals(value, api.getResolutionInfo(instance )); +// } +// +// @Test +// public void setTargetRotation() { +// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); +// +// final Preview instance = mock(Preview.class); +// final Long rotation = 0; +// api.setTargetRotation(instance, rotation); +// +// verify(instance).setTargetRotation(rotation); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java index 6fd43c2f9a3..243cf77fe07 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java @@ -1,273 +1,273 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.anyString; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; -import static org.mockito.Mockito.when; - -import android.util.Size; -import android.view.Surface; -import androidx.camera.core.Preview; -import androidx.camera.core.SurfaceRequest; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.core.util.Consumer; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.SystemServicesFlutterApi.Reply; -import io.flutter.view.TextureRegistry; -import java.util.concurrent.Executor; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.ArgumentMatchers; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class PreviewTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public Preview mockPreview; - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public TextureRegistry mockTextureRegistry; - @Mock public CameraXProxy mockCameraXProxy; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = spy(InstanceManager.create(identifier -> {})); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void create_createsPreviewWithCorrectConfiguration() { - final PreviewHostApiImpl previewHostApi = - new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); - final Preview.Builder mockPreviewBuilder = mock(Preview.Builder.class); - final int targetRotation = 90; - final Long previewIdentifier = 3L; - final ResolutionSelector mockResolutionSelector = mock(ResolutionSelector.class); - final long mockResolutionSelectorId = 90; - - previewHostApi.cameraXProxy = mockCameraXProxy; - testInstanceManager.addDartCreatedInstance(mockResolutionSelector, mockResolutionSelectorId); - when(mockCameraXProxy.createPreviewBuilder()).thenReturn(mockPreviewBuilder); - when(mockPreviewBuilder.build()).thenReturn(mockPreview); - - previewHostApi.create( - previewIdentifier, Long.valueOf(targetRotation), mockResolutionSelectorId); - - verify(mockPreviewBuilder).setTargetRotation(targetRotation); - verify(mockPreviewBuilder).setResolutionSelector(mockResolutionSelector); - verify(mockPreviewBuilder).build(); - verify(testInstanceManager).addDartCreatedInstance(mockPreview, previewIdentifier); - } - - @Test - public void setSurfaceProvider_createsSurfaceProviderAndReturnsTextureEntryId() { - final PreviewHostApiImpl previewHostApi = - spy(new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry)); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = - mock(TextureRegistry.SurfaceProducer.class); - final Long previewIdentifier = 5L; - final Long surfaceProducerEntryId = 120L; - - previewHostApi.cameraXProxy = mockCameraXProxy; - testInstanceManager.addDartCreatedInstance(mockPreview, previewIdentifier); - - when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); - when(mockSurfaceProducer.id()).thenReturn(surfaceProducerEntryId); - - final ArgumentCaptor surfaceProviderCaptor = - ArgumentCaptor.forClass(Preview.SurfaceProvider.class); - - // Test that surface provider was set and the surface texture ID was returned. - assertEquals(previewHostApi.setSurfaceProvider(previewIdentifier), surfaceProducerEntryId); - verify(mockPreview).setSurfaceProvider(surfaceProviderCaptor.capture()); - verify(previewHostApi).createSurfaceProvider(mockSurfaceProducer); - } - - @Test - public void createSurfaceProducer_setsExpectedSurfaceProducerCallback() { - final PreviewHostApiImpl previewHostApi = - new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = - mock(TextureRegistry.SurfaceProducer.class); - final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); - final ArgumentCaptor callbackCaptor = - ArgumentCaptor.forClass(TextureRegistry.SurfaceProducer.Callback.class); - - when(mockSurfaceRequest.getResolution()).thenReturn(new Size(5, 6)); - when(mockSurfaceProducer.getSurface()).thenReturn(mock(Surface.class)); - - Preview.SurfaceProvider previewSurfaceProvider = - previewHostApi.createSurfaceProvider(mockSurfaceProducer); - previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); - - verify(mockSurfaceProducer).setCallback(callbackCaptor.capture()); - - TextureRegistry.SurfaceProducer.Callback callback = callbackCaptor.getValue(); - - // Verify callback's onSurfaceDestroyed invalidates SurfaceRequest. - simulateSurfaceDestruction(callback); - verify(mockSurfaceRequest).invalidate(); - - reset(mockSurfaceRequest); - - // Verify callback's onSurfaceAvailable does not interact with the SurfaceRequest. - callback.onSurfaceAvailable(); - verifyNoMoreInteractions(mockSurfaceRequest); - } - - @Test - public void createSurfaceProvider_createsExpectedPreviewSurfaceProvider() { - final PreviewHostApiImpl previewHostApi = - new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = - mock(TextureRegistry.SurfaceProducer.class); - final Surface mockSurface = mock(Surface.class); - final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); - final SurfaceRequest.Result mockSurfaceRequestResult = mock(SurfaceRequest.Result.class); - final SystemServicesFlutterApiImpl mockSystemServicesFlutterApi = - mock(SystemServicesFlutterApiImpl.class); - final int resolutionWidth = 200; - final int resolutionHeight = 500; - final Long surfaceProducerEntryId = 120L; - - previewHostApi.cameraXProxy = mockCameraXProxy; - when(mockSurfaceRequest.getResolution()) - .thenReturn(new Size(resolutionWidth, resolutionHeight)); - when(mockCameraXProxy.createSystemServicesFlutterApiImpl(mockBinaryMessenger)) - .thenReturn(mockSystemServicesFlutterApi); - when(mockSurfaceProducer.getSurface()).thenReturn(mockSurface); - - final ArgumentCaptor surfaceCaptor = ArgumentCaptor.forClass(Surface.class); - @SuppressWarnings("unchecked") - final ArgumentCaptor> consumerCaptor = - ArgumentCaptor.forClass(Consumer.class); - - Preview.SurfaceProvider previewSurfaceProvider = - previewHostApi.createSurfaceProvider(mockSurfaceProducer); - previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); - - verify(mockSurfaceProducer).setSize(resolutionWidth, resolutionHeight); - verify(mockSurfaceRequest) - .provideSurface(surfaceCaptor.capture(), any(Executor.class), consumerCaptor.capture()); - - // Test that the surface derived from the surface texture entry will be provided to the surface - // request. - assertEquals(surfaceCaptor.getValue(), mockSurface); - - // Test that the Consumer used to handle surface request result releases Flutter surface texture - // appropriately - // and sends camera errors appropriately. - Consumer capturedConsumer = consumerCaptor.getValue(); - - // Case where Surface should be released. - when(mockSurfaceRequestResult.getResultCode()) - .thenReturn(SurfaceRequest.Result.RESULT_REQUEST_CANCELLED); - capturedConsumer.accept(mockSurfaceRequestResult); - verify(mockSurface).release(); - reset(mockSurface); - - when(mockSurfaceRequestResult.getResultCode()) - .thenReturn(SurfaceRequest.Result.RESULT_REQUEST_CANCELLED); - capturedConsumer.accept(mockSurfaceRequestResult); - verify(mockSurface).release(); - reset(mockSurface); - - when(mockSurfaceRequestResult.getResultCode()) - .thenReturn(SurfaceRequest.Result.RESULT_WILL_NOT_PROVIDE_SURFACE); - capturedConsumer.accept(mockSurfaceRequestResult); - verify(mockSurface).release(); - reset(mockSurface); - - when(mockSurfaceRequestResult.getResultCode()) - .thenReturn(SurfaceRequest.Result.RESULT_SURFACE_USED_SUCCESSFULLY); - capturedConsumer.accept(mockSurfaceRequestResult); - verify(mockSurface).release(); - reset(mockSurface); - - // Case where error must be sent. - when(mockSurfaceRequestResult.getResultCode()) - .thenReturn(SurfaceRequest.Result.RESULT_INVALID_SURFACE); - capturedConsumer.accept(mockSurfaceRequestResult); - verify(mockSurface).release(); - verify(mockSystemServicesFlutterApi) - .sendCameraError(anyString(), ArgumentMatchers.>any()); - } - - @Test - public void releaseFlutterSurfaceTexture_makesCallToReleaseFlutterSurfaceTexture() { - final PreviewHostApiImpl previewHostApi = - new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = - mock(TextureRegistry.SurfaceProducer.class); - - previewHostApi.flutterSurfaceProducer = mockSurfaceProducer; - - previewHostApi.releaseFlutterSurfaceTexture(); - verify(mockSurfaceProducer).release(); - } - - @Test - public void getResolutionInfo_makesCallToRetrievePreviewResolutionInfo() { - final PreviewHostApiImpl previewHostApi = - new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); - final androidx.camera.core.ResolutionInfo mockResolutionInfo = - mock(androidx.camera.core.ResolutionInfo.class); - final Long previewIdentifier = 23L; - final int resolutionWidth = 500; - final int resolutionHeight = 200; - - testInstanceManager.addDartCreatedInstance(mockPreview, previewIdentifier); - when(mockPreview.getResolutionInfo()).thenReturn(mockResolutionInfo); - when(mockResolutionInfo.getResolution()) - .thenReturn(new Size(resolutionWidth, resolutionHeight)); - - ResolutionInfo resolutionInfo = previewHostApi.getResolutionInfo(previewIdentifier); - assertEquals(resolutionInfo.getWidth(), Long.valueOf(resolutionWidth)); - assertEquals(resolutionInfo.getHeight(), Long.valueOf(resolutionHeight)); - } - - @Test - public void setTargetRotation_makesCallToSetTargetRotation() { - final PreviewHostApiImpl hostApi = - new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); - final long instanceIdentifier = 52; - final int targetRotation = Surface.ROTATION_180; - - testInstanceManager.addDartCreatedInstance(mockPreview, instanceIdentifier); - - hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); - - verify(mockPreview).setTargetRotation(targetRotation); - } - - // TODO(bparrishMines): Replace with inline calls to onSurfaceCleanup once available on stable; - // see https://github.com/flutter/flutter/issues/16125. This separate method only exists to scope - // the suppression. - @SuppressWarnings({"deprecation", "removal"}) - void simulateSurfaceDestruction(TextureRegistry.SurfaceProducer.Callback producerLifecycle) { - producerLifecycle.onSurfaceDestroyed(); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.Mockito.anyString; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.reset; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.verifyNoMoreInteractions; +//import static org.mockito.Mockito.when; +// +//import android.util.Size; +//import android.view.Surface; +//import androidx.camera.core.Preview; +//import androidx.camera.core.SurfaceRequest; +//import androidx.camera.core.resolutionselector.ResolutionSelector; +//import androidx.core.util.Consumer; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.SystemServicesFlutterApi.Reply; +//import io.flutter.view.TextureRegistry; +//import java.util.concurrent.Executor; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.ArgumentCaptor; +//import org.mockito.ArgumentMatchers; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +// +//@RunWith(RobolectricTestRunner.class) +//public class PreviewTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public Preview mockPreview; +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public TextureRegistry mockTextureRegistry; +// @Mock public CameraXProxy mockCameraXProxy; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = spy(InstanceManager.create(identifier -> {})); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void create_createsPreviewWithCorrectConfiguration() { +// final PreviewHostApiImpl previewHostApi = +// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); +// final Preview.Builder mockPreviewBuilder = mock(Preview.Builder.class); +// final int targetRotation = 90; +// final Long previewIdentifier = 3L; +// final ResolutionSelector mockResolutionSelector = mock(ResolutionSelector.class); +// final long mockResolutionSelectorId = 90; +// +// previewHostApi.cameraXProxy = mockCameraXProxy; +// testInstanceManager.addDartCreatedInstance(mockResolutionSelector, mockResolutionSelectorId); +// when(mockCameraXProxy.createPreviewBuilder()).thenReturn(mockPreviewBuilder); +// when(mockPreviewBuilder.build()).thenReturn(mockPreview); +// +// previewHostApi.create( +// previewIdentifier, Long.valueOf(targetRotation), mockResolutionSelectorId); +// +// verify(mockPreviewBuilder).setTargetRotation(targetRotation); +// verify(mockPreviewBuilder).setResolutionSelector(mockResolutionSelector); +// verify(mockPreviewBuilder).build(); +// verify(testInstanceManager).addDartCreatedInstance(mockPreview, previewIdentifier); +// } +// +// @Test +// public void setSurfaceProvider_createsSurfaceProviderAndReturnsTextureEntryId() { +// final PreviewHostApiImpl previewHostApi = +// spy(new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry)); +// final TextureRegistry.SurfaceProducer mockSurfaceProducer = +// mock(TextureRegistry.SurfaceProducer.class); +// final Long previewIdentifier = 5L; +// final Long surfaceProducerEntryId = 120L; +// +// previewHostApi.cameraXProxy = mockCameraXProxy; +// testInstanceManager.addDartCreatedInstance(mockPreview, previewIdentifier); +// +// when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); +// when(mockSurfaceProducer.id()).thenReturn(surfaceProducerEntryId); +// +// final ArgumentCaptor surfaceProviderCaptor = +// ArgumentCaptor.forClass(Preview.SurfaceProvider.class); +// +// // Test that surface provider was set and the surface texture ID was returned. +// assertEquals(previewHostApi.setSurfaceProvider(previewIdentifier), surfaceProducerEntryId); +// verify(mockPreview).setSurfaceProvider(surfaceProviderCaptor.capture()); +// verify(previewHostApi).createSurfaceProvider(mockSurfaceProducer); +// } +// +// @Test +// public void createSurfaceProducer_setsExpectedSurfaceProducerCallback() { +// final PreviewHostApiImpl previewHostApi = +// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); +// final TextureRegistry.SurfaceProducer mockSurfaceProducer = +// mock(TextureRegistry.SurfaceProducer.class); +// final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); +// final ArgumentCaptor callbackCaptor = +// ArgumentCaptor.forClass(TextureRegistry.SurfaceProducer.Callback.class); +// +// when(mockSurfaceRequest.getResolution()).thenReturn(new Size(5, 6)); +// when(mockSurfaceProducer.getSurface()).thenReturn(mock(Surface.class)); +// +// Preview.SurfaceProvider previewSurfaceProvider = +// previewHostApi.createSurfaceProvider(mockSurfaceProducer); +// previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); +// +// verify(mockSurfaceProducer).setCallback(callbackCaptor.capture()); +// +// TextureRegistry.SurfaceProducer.Callback callback = callbackCaptor.getValue(); +// +// // Verify callback's onSurfaceDestroyed invalidates SurfaceRequest. +// simulateSurfaceDestruction(callback); +// verify(mockSurfaceRequest).invalidate(); +// +// reset(mockSurfaceRequest); +// +// // Verify callback's onSurfaceAvailable does not interact with the SurfaceRequest. +// callback.onSurfaceAvailable(); +// verifyNoMoreInteractions(mockSurfaceRequest); +// } +// +// @Test +// public void createSurfaceProvider_createsExpectedPreviewSurfaceProvider() { +// final PreviewHostApiImpl previewHostApi = +// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); +// final TextureRegistry.SurfaceProducer mockSurfaceProducer = +// mock(TextureRegistry.SurfaceProducer.class); +// final Surface mockSurface = mock(Surface.class); +// final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); +// final SurfaceRequest.Result mockSurfaceRequestResult = mock(SurfaceRequest.Result.class); +// final SystemServicesFlutterApiImpl mockSystemServicesFlutterApi = +// mock(SystemServicesFlutterApiImpl.class); +// final int resolutionWidth = 200; +// final int resolutionHeight = 500; +// final Long surfaceProducerEntryId = 120L; +// +// previewHostApi.cameraXProxy = mockCameraXProxy; +// when(mockSurfaceRequest.getResolution()) +// .thenReturn(new Size(resolutionWidth, resolutionHeight)); +// when(mockCameraXProxy.createSystemServicesFlutterApiImpl(mockBinaryMessenger)) +// .thenReturn(mockSystemServicesFlutterApi); +// when(mockSurfaceProducer.getSurface()).thenReturn(mockSurface); +// +// final ArgumentCaptor surfaceCaptor = ArgumentCaptor.forClass(Surface.class); +// @SuppressWarnings("unchecked") +// final ArgumentCaptor> consumerCaptor = +// ArgumentCaptor.forClass(Consumer.class); +// +// Preview.SurfaceProvider previewSurfaceProvider = +// previewHostApi.createSurfaceProvider(mockSurfaceProducer); +// previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); +// +// verify(mockSurfaceProducer).setSize(resolutionWidth, resolutionHeight); +// verify(mockSurfaceRequest) +// .provideSurface(surfaceCaptor.capture(), any(Executor.class), consumerCaptor.capture()); +// +// // Test that the surface derived from the surface texture entry will be provided to the surface +// // request. +// assertEquals(surfaceCaptor.getValue(), mockSurface); +// +// // Test that the Consumer used to handle surface request result releases Flutter surface texture +// // appropriately +// // and sends camera errors appropriately. +// Consumer capturedConsumer = consumerCaptor.getValue(); +// +// // Case where Surface should be released. +// when(mockSurfaceRequestResult.getResultCode()) +// .thenReturn(SurfaceRequest.Result.RESULT_REQUEST_CANCELLED); +// capturedConsumer.accept(mockSurfaceRequestResult); +// verify(mockSurface).release(); +// reset(mockSurface); +// +// when(mockSurfaceRequestResult.getResultCode()) +// .thenReturn(SurfaceRequest.Result.RESULT_REQUEST_CANCELLED); +// capturedConsumer.accept(mockSurfaceRequestResult); +// verify(mockSurface).release(); +// reset(mockSurface); +// +// when(mockSurfaceRequestResult.getResultCode()) +// .thenReturn(SurfaceRequest.Result.RESULT_WILL_NOT_PROVIDE_SURFACE); +// capturedConsumer.accept(mockSurfaceRequestResult); +// verify(mockSurface).release(); +// reset(mockSurface); +// +// when(mockSurfaceRequestResult.getResultCode()) +// .thenReturn(SurfaceRequest.Result.RESULT_SURFACE_USED_SUCCESSFULLY); +// capturedConsumer.accept(mockSurfaceRequestResult); +// verify(mockSurface).release(); +// reset(mockSurface); +// +// // Case where error must be sent. +// when(mockSurfaceRequestResult.getResultCode()) +// .thenReturn(SurfaceRequest.Result.RESULT_INVALID_SURFACE); +// capturedConsumer.accept(mockSurfaceRequestResult); +// verify(mockSurface).release(); +// verify(mockSystemServicesFlutterApi) +// .sendCameraError(anyString(), ArgumentMatchers.>any()); +// } +// +// @Test +// public void releaseFlutterSurfaceTexture_makesCallToReleaseFlutterSurfaceTexture() { +// final PreviewHostApiImpl previewHostApi = +// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); +// final TextureRegistry.SurfaceProducer mockSurfaceProducer = +// mock(TextureRegistry.SurfaceProducer.class); +// +// previewHostApi.flutterSurfaceProducer = mockSurfaceProducer; +// +// previewHostApi.releaseFlutterSurfaceTexture(); +// verify(mockSurfaceProducer).release(); +// } +// +// @Test +// public void getResolutionInfo_makesCallToRetrievePreviewResolutionInfo() { +// final PreviewHostApiImpl previewHostApi = +// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); +// final androidx.camera.core.ResolutionInfo mockResolutionInfo = +// mock(androidx.camera.core.ResolutionInfo.class); +// final Long previewIdentifier = 23L; +// final int resolutionWidth = 500; +// final int resolutionHeight = 200; +// +// testInstanceManager.addDartCreatedInstance(mockPreview, previewIdentifier); +// when(mockPreview.getResolutionInfo()).thenReturn(mockResolutionInfo); +// when(mockResolutionInfo.getResolution()) +// .thenReturn(new Size(resolutionWidth, resolutionHeight)); +// +// ResolutionInfo resolutionInfo = previewHostApi.getResolutionInfo(previewIdentifier); +// assertEquals(resolutionInfo.getWidth(), Long.valueOf(resolutionWidth)); +// assertEquals(resolutionInfo.getHeight(), Long.valueOf(resolutionHeight)); +// } +// +// @Test +// public void setTargetRotation_makesCallToSetTargetRotation() { +// final PreviewHostApiImpl hostApi = +// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); +// final long instanceIdentifier = 52; +// final int targetRotation = Surface.ROTATION_180; +// +// testInstanceManager.addDartCreatedInstance(mockPreview, instanceIdentifier); +// +// hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); +// +// verify(mockPreview).setTargetRotation(targetRotation); +// } +// +// // TODO(bparrishMines): Replace with inline calls to onSurfaceCleanup once available on stable; +// // see https://github.com/flutter/flutter/issues/16125. This separate method only exists to scope +// // the suppression. +// @SuppressWarnings({"deprecation", "removal"}) +// void simulateSurfaceDestruction(TextureRegistry.SurfaceProducer.Callback producerLifecycle) { +// producerLifecycle.onSurfaceDestroyed(); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java index e2b3b1dcf6e..cfddc9871b8 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java @@ -1,81 +1,81 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.lifecycle.ProcessCameraProvider -import androidx.camera.core.UseCase -import androidx.camera.core.CameraSelector -import androidx.camera.core.CameraInfo -import androidx.camera.core.Camera -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ProcessCameraProviderProxyApiTest { - @Test - public void getAvailableCameraInfos() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final List value = Arrays.asList(mock(CameraInfo.class)); - when(instance.getAvailableCameraInfos()).thenReturn(value); - - assertEquals(value, api.getAvailableCameraInfos(instance )); - } - - @Test - public void bindToLifecycle() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); - final List useCases = Arrays.asList(mock(UseCase.class)); - final androidx.camera.core.Camera value = mock(Camera.class); - when(instance.bindToLifecycle(cameraSelector, useCases)).thenReturn(value); - - assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); - } - - @Test - public void isBound() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final androidx.camera.core.UseCase useCase = mock(UseCase.class); - final Boolean value = true; - when(instance.isBound(useCase)).thenReturn(value); - - assertEquals(value, api.isBound(instance, useCase)); - } - - @Test - public void unbind() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final List useCases = Arrays.asList(mock(UseCase.class)); - api.unbind(instance, useCases); - - verify(instance).unbind(useCases); - } - - @Test - public void unbindAll() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - api.unbindAll(instance ); - - verify(instance).unbindAll(); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.lifecycle.ProcessCameraProvider +//import androidx.camera.core.UseCase +//import androidx.camera.core.CameraSelector +//import androidx.camera.core.CameraInfo +//import androidx.camera.core.Camera +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ProcessCameraProviderProxyApiTest { +// @Test +// public void getAvailableCameraInfos() { +// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); +// +// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); +// final List value = Arrays.asList(mock(CameraInfo.class)); +// when(instance.getAvailableCameraInfos()).thenReturn(value); +// +// assertEquals(value, api.getAvailableCameraInfos(instance )); +// } +// +// @Test +// public void bindToLifecycle() { +// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); +// +// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); +// final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); +// final List useCases = Arrays.asList(mock(UseCase.class)); +// final androidx.camera.core.Camera value = mock(Camera.class); +// when(instance.bindToLifecycle(cameraSelector, useCases)).thenReturn(value); +// +// assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); +// } +// +// @Test +// public void isBound() { +// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); +// +// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); +// final androidx.camera.core.UseCase useCase = mock(UseCase.class); +// final Boolean value = true; +// when(instance.isBound(useCase)).thenReturn(value); +// +// assertEquals(value, api.isBound(instance, useCase)); +// } +// +// @Test +// public void unbind() { +// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); +// +// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); +// final List useCases = Arrays.asList(mock(UseCase.class)); +// api.unbind(instance, useCases); +// +// verify(instance).unbind(useCases); +// } +// +// @Test +// public void unbindAll() { +// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); +// +// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); +// api.unbindAll(instance ); +// +// verify(instance).unbindAll(); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java index f7987143b98..f1095720f23 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java @@ -1,187 +1,187 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import androidx.camera.core.Camera; -import androidx.camera.core.CameraInfo; -import androidx.camera.core.CameraSelector; -import androidx.camera.core.UseCase; -import androidx.camera.lifecycle.ProcessCameraProvider; -import androidx.lifecycle.LifecycleOwner; -import androidx.test.core.app.ApplicationProvider; -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.Arrays; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.Mockito; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.mockito.stubbing.Answer; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class ProcessCameraProviderTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public ProcessCameraProvider processCameraProvider; - @Mock public BinaryMessenger mockBinaryMessenger; - - InstanceManager testInstanceManager; - private Context context; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - context = ApplicationProvider.getApplicationContext(); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void getInstanceTest() { - final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = - new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final ListenableFuture processCameraProviderFuture = - spy(Futures.immediateFuture(processCameraProvider)); - @SuppressWarnings("unchecked") - final GeneratedCameraXLibrary.Result mockResult = - mock(GeneratedCameraXLibrary.Result.class); - - testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); - - try (MockedStatic mockedProcessCameraProvider = - Mockito.mockStatic(ProcessCameraProvider.class)) { - mockedProcessCameraProvider - .when(() -> ProcessCameraProvider.getInstance(context)) - .thenAnswer( - (Answer>) - invocation -> processCameraProviderFuture); - - final ArgumentCaptor runnableCaptor = ArgumentCaptor.forClass(Runnable.class); - - processCameraProviderHostApi.getInstance(mockResult); - verify(processCameraProviderFuture).addListener(runnableCaptor.capture(), any()); - runnableCaptor.getValue().run(); - verify(mockResult).success(0L); - } - } - - @Test - public void getAvailableCameraInfosTest() { - final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = - new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final CameraInfo mockCameraInfo = mock(CameraInfo.class); - - testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); - testInstanceManager.addDartCreatedInstance(mockCameraInfo, 1); - - when(processCameraProvider.getAvailableCameraInfos()).thenReturn(Arrays.asList(mockCameraInfo)); - - assertEquals(processCameraProviderHostApi.getAvailableCameraInfos(0L), Arrays.asList(1L)); - verify(processCameraProvider).getAvailableCameraInfos(); - } - - @Test - public void bindToLifecycleTest() { - final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = - new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final Camera mockCamera = mock(Camera.class); - final CameraSelector mockCameraSelector = mock(CameraSelector.class); - final UseCase mockUseCase = mock(UseCase.class); - UseCase[] mockUseCases = new UseCase[] {mockUseCase}; - - LifecycleOwner mockLifecycleOwner = mock(LifecycleOwner.class); - processCameraProviderHostApi.setLifecycleOwner(mockLifecycleOwner); - - testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); - testInstanceManager.addDartCreatedInstance(mockCameraSelector, 1); - testInstanceManager.addDartCreatedInstance(mockUseCase, 2); - testInstanceManager.addDartCreatedInstance(mockCamera, 3); - - when(processCameraProvider.bindToLifecycle( - mockLifecycleOwner, mockCameraSelector, mockUseCases)) - .thenReturn(mockCamera); - - assertEquals( - processCameraProviderHostApi.bindToLifecycle(0L, 1L, Arrays.asList(2L)), Long.valueOf(3)); - verify(processCameraProvider) - .bindToLifecycle(mockLifecycleOwner, mockCameraSelector, mockUseCases); - } - - @Test - public void isBoundTest() { - final ProcessCameraProviderHostApiImpl processCameraProviderHostApiImpl = - new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final UseCase mockUseCase = mock(UseCase.class); - - testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); - testInstanceManager.addDartCreatedInstance(mockUseCase, 27); - - when(processCameraProvider.isBound(mockUseCase)).thenReturn(true); - - assertTrue(processCameraProviderHostApiImpl.isBound(0L, 27L)); - verify(processCameraProvider).isBound(mockUseCase); - } - - @Test - public void unbindTest() { - final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = - new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - final UseCase mockUseCase = mock(UseCase.class); - UseCase[] mockUseCases = new UseCase[] {mockUseCase}; - - testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); - testInstanceManager.addDartCreatedInstance(mockUseCase, 1); - - processCameraProviderHostApi.unbind(0L, Arrays.asList(1L)); - verify(processCameraProvider).unbind(mockUseCases); - } - - @Test - public void unbindAllTest() { - final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = - new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - - testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); - - processCameraProviderHostApi.unbindAll(0L); - verify(processCameraProvider).unbindAll(); - } - - @Test - public void flutterApiCreateTest() { - final ProcessCameraProviderFlutterApiImpl spyFlutterApi = - spy(new ProcessCameraProviderFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - - spyFlutterApi.create(processCameraProvider, reply -> {}); - - final long identifier = - Objects.requireNonNull( - testInstanceManager.getIdentifierForStrongReference(processCameraProvider)); - verify(spyFlutterApi).create(eq(identifier), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.content.Context; +//import androidx.camera.core.Camera; +//import androidx.camera.core.CameraInfo; +//import androidx.camera.core.CameraSelector; +//import androidx.camera.core.UseCase; +//import androidx.camera.lifecycle.ProcessCameraProvider; +//import androidx.lifecycle.LifecycleOwner; +//import androidx.test.core.app.ApplicationProvider; +//import com.google.common.util.concurrent.Futures; +//import com.google.common.util.concurrent.ListenableFuture; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.Arrays; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.ArgumentCaptor; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +//import org.mockito.Mockito; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.mockito.stubbing.Answer; +//import org.robolectric.RobolectricTestRunner; +// +//@RunWith(RobolectricTestRunner.class) +//public class ProcessCameraProviderTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public ProcessCameraProvider processCameraProvider; +// @Mock public BinaryMessenger mockBinaryMessenger; +// +// InstanceManager testInstanceManager; +// private Context context; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// context = ApplicationProvider.getApplicationContext(); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void getInstanceTest() { +// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = +// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final ListenableFuture processCameraProviderFuture = +// spy(Futures.immediateFuture(processCameraProvider)); +// @SuppressWarnings("unchecked") +// final GeneratedCameraXLibrary.Result mockResult = +// mock(GeneratedCameraXLibrary.Result.class); +// +// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); +// +// try (MockedStatic mockedProcessCameraProvider = +// Mockito.mockStatic(ProcessCameraProvider.class)) { +// mockedProcessCameraProvider +// .when(() -> ProcessCameraProvider.getInstance(context)) +// .thenAnswer( +// (Answer>) +// invocation -> processCameraProviderFuture); +// +// final ArgumentCaptor runnableCaptor = ArgumentCaptor.forClass(Runnable.class); +// +// processCameraProviderHostApi.getInstance(mockResult); +// verify(processCameraProviderFuture).addListener(runnableCaptor.capture(), any()); +// runnableCaptor.getValue().run(); +// verify(mockResult).success(0L); +// } +// } +// +// @Test +// public void getAvailableCameraInfosTest() { +// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = +// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final CameraInfo mockCameraInfo = mock(CameraInfo.class); +// +// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); +// testInstanceManager.addDartCreatedInstance(mockCameraInfo, 1); +// +// when(processCameraProvider.getAvailableCameraInfos()).thenReturn(Arrays.asList(mockCameraInfo)); +// +// assertEquals(processCameraProviderHostApi.getAvailableCameraInfos(0L), Arrays.asList(1L)); +// verify(processCameraProvider).getAvailableCameraInfos(); +// } +// +// @Test +// public void bindToLifecycleTest() { +// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = +// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final Camera mockCamera = mock(Camera.class); +// final CameraSelector mockCameraSelector = mock(CameraSelector.class); +// final UseCase mockUseCase = mock(UseCase.class); +// UseCase[] mockUseCases = new UseCase[] {mockUseCase}; +// +// LifecycleOwner mockLifecycleOwner = mock(LifecycleOwner.class); +// processCameraProviderHostApi.setLifecycleOwner(mockLifecycleOwner); +// +// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); +// testInstanceManager.addDartCreatedInstance(mockCameraSelector, 1); +// testInstanceManager.addDartCreatedInstance(mockUseCase, 2); +// testInstanceManager.addDartCreatedInstance(mockCamera, 3); +// +// when(processCameraProvider.bindToLifecycle( +// mockLifecycleOwner, mockCameraSelector, mockUseCases)) +// .thenReturn(mockCamera); +// +// assertEquals( +// processCameraProviderHostApi.bindToLifecycle(0L, 1L, Arrays.asList(2L)), Long.valueOf(3)); +// verify(processCameraProvider) +// .bindToLifecycle(mockLifecycleOwner, mockCameraSelector, mockUseCases); +// } +// +// @Test +// public void isBoundTest() { +// final ProcessCameraProviderHostApiImpl processCameraProviderHostApiImpl = +// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final UseCase mockUseCase = mock(UseCase.class); +// +// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); +// testInstanceManager.addDartCreatedInstance(mockUseCase, 27); +// +// when(processCameraProvider.isBound(mockUseCase)).thenReturn(true); +// +// assertTrue(processCameraProviderHostApiImpl.isBound(0L, 27L)); +// verify(processCameraProvider).isBound(mockUseCase); +// } +// +// @Test +// public void unbindTest() { +// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = +// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// final UseCase mockUseCase = mock(UseCase.class); +// UseCase[] mockUseCases = new UseCase[] {mockUseCase}; +// +// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); +// testInstanceManager.addDartCreatedInstance(mockUseCase, 1); +// +// processCameraProviderHostApi.unbind(0L, Arrays.asList(1L)); +// verify(processCameraProvider).unbind(mockUseCases); +// } +// +// @Test +// public void unbindAllTest() { +// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = +// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// +// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); +// +// processCameraProviderHostApi.unbindAll(0L); +// verify(processCameraProvider).unbindAll(); +// } +// +// @Test +// public void flutterApiCreateTest() { +// final ProcessCameraProviderFlutterApiImpl spyFlutterApi = +// spy(new ProcessCameraProviderFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// +// spyFlutterApi.create(processCameraProvider, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull( +// testInstanceManager.getIdentifierForStrongReference(processCameraProvider)); +// verify(spyFlutterApi).create(eq(identifier), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProxyLifecycleProviderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProxyLifecycleProviderTest.java index 850f552e51e..8adc88aba55 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProxyLifecycleProviderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProxyLifecycleProviderTest.java @@ -1,121 +1,121 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoInteractions; -import static org.mockito.Mockito.when; - -import android.app.Activity; -import android.app.Application; -import android.os.Bundle; -import androidx.lifecycle.Lifecycle.Event; -import androidx.lifecycle.LifecycleRegistry; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class ProxyLifecycleProviderTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock Activity activity; - @Mock Application application; - @Mock LifecycleRegistry mockLifecycleRegistry; - - private final int testHashCode = 27; - - @Before - public void setUp() { - when(activity.getApplication()).thenReturn(application); - } - - @Test - public void onActivityCreated_handlesOnCreateEvent() { - ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); - Bundle mockBundle = mock(Bundle.class); - - proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; - - proxyLifecycleProvider.onActivityCreated(activity, mockBundle); - - verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_CREATE); - } - - @Test - public void onActivityStarted_handlesOnActivityStartedEvent() { - ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); - proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; - - proxyLifecycleProvider.onActivityStarted(activity); - - verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_START); - } - - @Test - public void onActivityResumed_handlesOnActivityResumedEvent() { - ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); - proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; - - proxyLifecycleProvider.onActivityResumed(activity); - - verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_RESUME); - } - - @Test - public void onActivityPaused_handlesOnActivityPausedEvent() { - ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); - proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; - - proxyLifecycleProvider.onActivityPaused(activity); - - verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_PAUSE); - } - - @Test - public void onActivityStopped_handlesOnActivityStoppedEvent() { - ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); - proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; - - proxyLifecycleProvider.onActivityStopped(activity); - - verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_STOP); - } - - @Test - public void onActivityDestroyed_handlesOnActivityDestroyed() { - ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); - proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; - - proxyLifecycleProvider.onActivityDestroyed(activity); - - verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_DESTROY); - } - - @Test - public void onActivitySaveInstanceState_doesNotHandleLifecycleEvvent() { - ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); - Bundle mockBundle = mock(Bundle.class); - - proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; - - proxyLifecycleProvider.onActivitySaveInstanceState(activity, mockBundle); - - verifyNoInteractions(mockLifecycleRegistry); - } - - @Test - public void getLifecycle_returnsExpectedLifecycle() { - ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); - - proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; - - assertEquals(proxyLifecycleProvider.getLifecycle(), mockLifecycleRegistry); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.verifyNoInteractions; +//import static org.mockito.Mockito.when; +// +//import android.app.Activity; +//import android.app.Application; +//import android.os.Bundle; +//import androidx.lifecycle.Lifecycle.Event; +//import androidx.lifecycle.LifecycleRegistry; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class ProxyLifecycleProviderTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock Activity activity; +// @Mock Application application; +// @Mock LifecycleRegistry mockLifecycleRegistry; +// +// private final int testHashCode = 27; +// +// @Before +// public void setUp() { +// when(activity.getApplication()).thenReturn(application); +// } +// +// @Test +// public void onActivityCreated_handlesOnCreateEvent() { +// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); +// Bundle mockBundle = mock(Bundle.class); +// +// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; +// +// proxyLifecycleProvider.onActivityCreated(activity, mockBundle); +// +// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_CREATE); +// } +// +// @Test +// public void onActivityStarted_handlesOnActivityStartedEvent() { +// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); +// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; +// +// proxyLifecycleProvider.onActivityStarted(activity); +// +// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_START); +// } +// +// @Test +// public void onActivityResumed_handlesOnActivityResumedEvent() { +// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); +// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; +// +// proxyLifecycleProvider.onActivityResumed(activity); +// +// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_RESUME); +// } +// +// @Test +// public void onActivityPaused_handlesOnActivityPausedEvent() { +// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); +// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; +// +// proxyLifecycleProvider.onActivityPaused(activity); +// +// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_PAUSE); +// } +// +// @Test +// public void onActivityStopped_handlesOnActivityStoppedEvent() { +// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); +// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; +// +// proxyLifecycleProvider.onActivityStopped(activity); +// +// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_STOP); +// } +// +// @Test +// public void onActivityDestroyed_handlesOnActivityDestroyed() { +// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); +// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; +// +// proxyLifecycleProvider.onActivityDestroyed(activity); +// +// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_DESTROY); +// } +// +// @Test +// public void onActivitySaveInstanceState_doesNotHandleLifecycleEvvent() { +// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); +// Bundle mockBundle = mock(Bundle.class); +// +// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; +// +// proxyLifecycleProvider.onActivitySaveInstanceState(activity, mockBundle); +// +// verifyNoInteractions(mockLifecycleRegistry); +// } +// +// @Test +// public void getLifecycle_returnsExpectedLifecycle() { +// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); +// +// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; +// +// assertEquals(proxyLifecycleProvider.getLifecycle(), mockLifecycleRegistry); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java index 68c506af609..8b3241597e5 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java @@ -1,37 +1,37 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.QualitySelector -import androidx.camera.video.FallbackStrategy -import androidx.camera.core.CameraInfo -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class QualitySelectorProxyApiTest { - @Test - public void from() { - final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); - - assertTrue(api.from(io.flutter.plugins.camerax.VideoQuality.SD, mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); - } - - @Test - public void fromOrderedList() { - final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); - - assertTrue(api.fromOrderedList(Arrays.asList(io.flutter.plugins.camerax.VideoQuality.SD), mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.QualitySelector +//import androidx.camera.video.FallbackStrategy +//import androidx.camera.core.CameraInfo +//import android.util.Size +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class QualitySelectorProxyApiTest { +// @Test +// public void from() { +// final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); +// +// assertTrue(api.from(io.flutter.plugins.camerax.VideoQuality.SD, mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); +// } +// +// @Test +// public void fromOrderedList() { +// final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); +// +// assertTrue(api.fromOrderedList(Arrays.asList(io.flutter.plugins.camerax.VideoQuality.SD), mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java index 83617a713d8..f9947b8ca98 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java @@ -1,149 +1,149 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.mockStatic; - -import android.util.Size; -import androidx.camera.core.CameraInfo; -import androidx.camera.video.FallbackStrategy; -import androidx.camera.video.Quality; -import androidx.camera.video.QualitySelector; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQualityData; -import java.util.Arrays; -import java.util.List; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.mockito.stubbing.Answer; - -public class QualitySelectorTest { - - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock public QualitySelector mockQualitySelectorWithoutFallbackStrategy; - @Mock public QualitySelector mockQualitySelectorWithFallbackStrategy; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void hostApiCreate_createsExpectedQualitySelectorWhenOneQualitySpecified() { - final VideoQualityData expectedVideoQualityData = - new VideoQualityData.Builder().setQuality(VideoQuality.UHD).build(); - final List videoQualityDataList = Arrays.asList(expectedVideoQualityData); - final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); - final long fallbackStrategyIdentifier = 9; - final QualitySelectorHostApiImpl hostApi = new QualitySelectorHostApiImpl(instanceManager); - - instanceManager.addDartCreatedInstance(mockFallbackStrategy, fallbackStrategyIdentifier); - - try (MockedStatic mockedQualitySelector = mockStatic(QualitySelector.class)) { - mockedQualitySelector - .when(() -> QualitySelector.from(Quality.UHD)) - .thenAnswer( - (Answer) invocation -> mockQualitySelectorWithoutFallbackStrategy); - mockedQualitySelector - .when(() -> QualitySelector.from(Quality.UHD, mockFallbackStrategy)) - .thenAnswer( - (Answer) invocation -> mockQualitySelectorWithFallbackStrategy); - - // Test with no fallback strategy. - long instanceIdentifier = 0; - hostApi.create(instanceIdentifier, videoQualityDataList, null); - - assertEquals( - instanceManager.getInstance(instanceIdentifier), - mockQualitySelectorWithoutFallbackStrategy); - - // Test with fallback strategy. - instanceIdentifier = 1; - hostApi.create(instanceIdentifier, videoQualityDataList, fallbackStrategyIdentifier); - - assertEquals( - instanceManager.getInstance(instanceIdentifier), mockQualitySelectorWithFallbackStrategy); - } - } - - @Test - public void hostApiCreate_createsExpectedQualitySelectorWhenOrderedListOfQualitiesSpecified() { - final List videoQualityDataList = - Arrays.asList( - new VideoQualityData.Builder().setQuality(VideoQuality.UHD).build(), - new VideoQualityData.Builder().setQuality(VideoQuality.HIGHEST).build()); - final List expectedVideoQualityList = Arrays.asList(Quality.UHD, Quality.HIGHEST); - final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); - final long fallbackStrategyIdentifier = 9; - final QualitySelectorHostApiImpl hostApi = new QualitySelectorHostApiImpl(instanceManager); - - instanceManager.addDartCreatedInstance(mockFallbackStrategy, fallbackStrategyIdentifier); - - try (MockedStatic mockedQualitySelector = mockStatic(QualitySelector.class)) { - mockedQualitySelector - .when(() -> QualitySelector.fromOrderedList(expectedVideoQualityList)) - .thenAnswer( - (Answer) invocation -> mockQualitySelectorWithoutFallbackStrategy); - mockedQualitySelector - .when( - () -> QualitySelector.fromOrderedList(expectedVideoQualityList, mockFallbackStrategy)) - .thenAnswer( - (Answer) invocation -> mockQualitySelectorWithFallbackStrategy); - - // Test with no fallback strategy. - long instanceIdentifier = 0; - hostApi.create(instanceIdentifier, videoQualityDataList, null); - - assertEquals( - instanceManager.getInstance(instanceIdentifier), - mockQualitySelectorWithoutFallbackStrategy); - - // Test with fallback strategy. - instanceIdentifier = 1; - hostApi.create(instanceIdentifier, videoQualityDataList, fallbackStrategyIdentifier); - - assertEquals( - instanceManager.getInstance(instanceIdentifier), mockQualitySelectorWithFallbackStrategy); - } - } - - @Test - public void getResolution_returnsExpectedResolutionInfo() { - final CameraInfo mockCameraInfo = mock(CameraInfo.class); - final long cameraInfoIdentifier = 6; - final VideoQuality videoQuality = VideoQuality.FHD; - final Size sizeResult = new Size(30, 40); - final QualitySelectorHostApiImpl hostApi = new QualitySelectorHostApiImpl(instanceManager); - - instanceManager.addDartCreatedInstance(mockCameraInfo, cameraInfoIdentifier); - - try (MockedStatic mockedQualitySelector = mockStatic(QualitySelector.class)) { - mockedQualitySelector - .when(() -> QualitySelector.getResolution(mockCameraInfo, Quality.FHD)) - .thenAnswer((Answer) invocation -> sizeResult); - - final ResolutionInfo result = hostApi.getResolution(cameraInfoIdentifier, videoQuality); - - assertEquals(result.getWidth(), Long.valueOf(sizeResult.getWidth())); - assertEquals(result.getHeight(), Long.valueOf(sizeResult.getHeight())); - } - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.mockStatic; +// +//import android.util.Size; +//import androidx.camera.core.CameraInfo; +//import androidx.camera.video.FallbackStrategy; +//import androidx.camera.video.Quality; +//import androidx.camera.video.QualitySelector; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQualityData; +//import java.util.Arrays; +//import java.util.List; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.mockito.stubbing.Answer; +// +//public class QualitySelectorTest { +// +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// @Mock public QualitySelector mockQualitySelectorWithoutFallbackStrategy; +// @Mock public QualitySelector mockQualitySelectorWithFallbackStrategy; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void hostApiCreate_createsExpectedQualitySelectorWhenOneQualitySpecified() { +// final VideoQualityData expectedVideoQualityData = +// new VideoQualityData.Builder().setQuality(VideoQuality.UHD).build(); +// final List videoQualityDataList = Arrays.asList(expectedVideoQualityData); +// final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); +// final long fallbackStrategyIdentifier = 9; +// final QualitySelectorHostApiImpl hostApi = new QualitySelectorHostApiImpl(instanceManager); +// +// instanceManager.addDartCreatedInstance(mockFallbackStrategy, fallbackStrategyIdentifier); +// +// try (MockedStatic mockedQualitySelector = mockStatic(QualitySelector.class)) { +// mockedQualitySelector +// .when(() -> QualitySelector.from(Quality.UHD)) +// .thenAnswer( +// (Answer) invocation -> mockQualitySelectorWithoutFallbackStrategy); +// mockedQualitySelector +// .when(() -> QualitySelector.from(Quality.UHD, mockFallbackStrategy)) +// .thenAnswer( +// (Answer) invocation -> mockQualitySelectorWithFallbackStrategy); +// +// // Test with no fallback strategy. +// long instanceIdentifier = 0; +// hostApi.create(instanceIdentifier, videoQualityDataList, null); +// +// assertEquals( +// instanceManager.getInstance(instanceIdentifier), +// mockQualitySelectorWithoutFallbackStrategy); +// +// // Test with fallback strategy. +// instanceIdentifier = 1; +// hostApi.create(instanceIdentifier, videoQualityDataList, fallbackStrategyIdentifier); +// +// assertEquals( +// instanceManager.getInstance(instanceIdentifier), mockQualitySelectorWithFallbackStrategy); +// } +// } +// +// @Test +// public void hostApiCreate_createsExpectedQualitySelectorWhenOrderedListOfQualitiesSpecified() { +// final List videoQualityDataList = +// Arrays.asList( +// new VideoQualityData.Builder().setQuality(VideoQuality.UHD).build(), +// new VideoQualityData.Builder().setQuality(VideoQuality.HIGHEST).build()); +// final List expectedVideoQualityList = Arrays.asList(Quality.UHD, Quality.HIGHEST); +// final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); +// final long fallbackStrategyIdentifier = 9; +// final QualitySelectorHostApiImpl hostApi = new QualitySelectorHostApiImpl(instanceManager); +// +// instanceManager.addDartCreatedInstance(mockFallbackStrategy, fallbackStrategyIdentifier); +// +// try (MockedStatic mockedQualitySelector = mockStatic(QualitySelector.class)) { +// mockedQualitySelector +// .when(() -> QualitySelector.fromOrderedList(expectedVideoQualityList)) +// .thenAnswer( +// (Answer) invocation -> mockQualitySelectorWithoutFallbackStrategy); +// mockedQualitySelector +// .when( +// () -> QualitySelector.fromOrderedList(expectedVideoQualityList, mockFallbackStrategy)) +// .thenAnswer( +// (Answer) invocation -> mockQualitySelectorWithFallbackStrategy); +// +// // Test with no fallback strategy. +// long instanceIdentifier = 0; +// hostApi.create(instanceIdentifier, videoQualityDataList, null); +// +// assertEquals( +// instanceManager.getInstance(instanceIdentifier), +// mockQualitySelectorWithoutFallbackStrategy); +// +// // Test with fallback strategy. +// instanceIdentifier = 1; +// hostApi.create(instanceIdentifier, videoQualityDataList, fallbackStrategyIdentifier); +// +// assertEquals( +// instanceManager.getInstance(instanceIdentifier), mockQualitySelectorWithFallbackStrategy); +// } +// } +// +// @Test +// public void getResolution_returnsExpectedResolutionInfo() { +// final CameraInfo mockCameraInfo = mock(CameraInfo.class); +// final long cameraInfoIdentifier = 6; +// final VideoQuality videoQuality = VideoQuality.FHD; +// final Size sizeResult = new Size(30, 40); +// final QualitySelectorHostApiImpl hostApi = new QualitySelectorHostApiImpl(instanceManager); +// +// instanceManager.addDartCreatedInstance(mockCameraInfo, cameraInfoIdentifier); +// +// try (MockedStatic mockedQualitySelector = mockStatic(QualitySelector.class)) { +// mockedQualitySelector +// .when(() -> QualitySelector.getResolution(mockCameraInfo, Quality.FHD)) +// .thenAnswer((Answer) invocation -> sizeResult); +// +// final ResolutionInfo result = hostApi.getResolution(cameraInfoIdentifier, videoQuality); +// +// assertEquals(result.getWidth(), Long.valueOf(sizeResult.getWidth())); +// assertEquals(result.getHeight(), Long.valueOf(sizeResult.getHeight())); +// } +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java index 9315b69fd1c..811679fda77 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java @@ -1,63 +1,74 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.Recorder -import androidx.camera.video.QualitySelector -import androidx.camera.video.PendingRecording -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class RecorderProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - assertTrue(api.pigeon_defaultConstructor(0, 0, mock(QualitySelector.class)) instanceof RecorderProxyApi.Recorder); - } - - @Test - public void getAspectRatio() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final Long value = 0; - when(instance.getAspectRatio()).thenReturn(value); - - assertEquals(value, api.getAspectRatio(instance )); - } - - @Test - public void getTargetVideoEncodingBitRate() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final Long value = 0; - when(instance.getTargetVideoEncodingBitRate()).thenReturn(value); - - assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); - } - - @Test - public void prepareRecording() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final String path = "myString"; - final androidx.camera.video.PendingRecording value = mock(PendingRecording.class); - when(instance.prepareRecording(path)).thenReturn(value); - - assertEquals(value, api.prepareRecording(instance, path)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.Recorder +//import androidx.camera.video.QualitySelector +//import androidx.camera.video.PendingRecording +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class RecorderProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); +// +// assertTrue(api.pigeon_defaultConstructor(0, 0, mock(QualitySelector.class)) instanceof RecorderProxyApi.Recorder); +// } +// +// @Test +// public void getAspectRatio() { +// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); +// +// final Recorder instance = mock(Recorder.class); +// final Long value = 0; +// when(instance.getAspectRatio()).thenReturn(value); +// +// assertEquals(value, api.getAspectRatio(instance )); +// } +// +// @Test +// public void getTargetVideoEncodingBitRate() { +// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); +// +// final Recorder instance = mock(Recorder.class); +// final Long value = 0; +// when(instance.getTargetVideoEncodingBitRate()).thenReturn(value); +// +// assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); +// } +// +// @Test +// public void getQualitySelector() { +// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); +// +// final Recorder instance = mock(Recorder.class); +// final androidx.camera.video.QualitySelector value = mock(QualitySelector.class); +// when(instance.getQualitySelector()).thenReturn(value); +// +// assertEquals(value, api.getQualitySelector(instance )); +// } +// +// @Test +// public void prepareRecording() { +// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); +// +// final Recorder instance = mock(Recorder.class); +// final String path = "myString"; +// final androidx.camera.video.PendingRecording value = mock(PendingRecording.class); +// when(instance.prepareRecording(path)).thenReturn(value); +// +// assertEquals(value, api.prepareRecording(instance, path)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java index a859e9d513e..39cc0cc3377 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java @@ -1,178 +1,178 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThrows; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.Context; -import androidx.camera.video.FileOutputOptions; -import androidx.camera.video.PendingRecording; -import androidx.camera.video.QualitySelector; -import androidx.camera.video.Recorder; -import androidx.test.core.app.ApplicationProvider; -import io.flutter.plugin.common.BinaryMessenger; -import java.io.File; -import java.util.Objects; -import java.util.concurrent.Executor; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class RecorderTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public Recorder mockRecorder; - private Context context; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = spy(InstanceManager.create(identifier -> {})); - context = ApplicationProvider.getApplicationContext(); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void create_createsExpectedRecorderInstance() { - final int recorderId = 0; - final int aspectRatio = 1; - final int bitRate = 2; - final int qualitySelectorId = 3; - - final RecorderHostApiImpl recorderHostApi = - new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - - final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); - final Recorder.Builder mockRecorderBuilder = mock(Recorder.Builder.class); - final QualitySelector mockQualitySelector = mock(QualitySelector.class); - recorderHostApi.cameraXProxy = mockCameraXProxy; - when(mockCameraXProxy.createRecorderBuilder()).thenReturn(mockRecorderBuilder); - when(mockRecorderBuilder.setAspectRatio(aspectRatio)).thenReturn(mockRecorderBuilder); - when(mockRecorderBuilder.setTargetVideoEncodingBitRate(bitRate)) - .thenReturn(mockRecorderBuilder); - when(mockRecorderBuilder.setExecutor(any(Executor.class))).thenReturn(mockRecorderBuilder); - when(mockRecorderBuilder.build()).thenReturn(mockRecorder); - testInstanceManager.addDartCreatedInstance( - mockQualitySelector, Long.valueOf(qualitySelectorId)); - - recorderHostApi.create( - Long.valueOf(recorderId), - Long.valueOf(aspectRatio), - Long.valueOf(bitRate), - Long.valueOf(qualitySelectorId)); - verify(mockCameraXProxy).createRecorderBuilder(); - verify(mockRecorderBuilder).setAspectRatio(aspectRatio); - verify(mockRecorderBuilder).setTargetVideoEncodingBitRate(bitRate); - verify(mockRecorderBuilder).setQualitySelector(mockQualitySelector); - verify(mockRecorderBuilder).build(); - assertEquals(testInstanceManager.getInstance(Long.valueOf(recorderId)), mockRecorder); - testInstanceManager.remove(Long.valueOf(recorderId)); - } - - @Test - public void getAspectRatioTest() { - final int recorderId = 3; - final int aspectRatio = 6; - - when(mockRecorder.getAspectRatio()).thenReturn(aspectRatio); - testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); - final RecorderHostApiImpl recorderHostApi = - new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - assertEquals( - recorderHostApi.getAspectRatio(Long.valueOf(recorderId)), Long.valueOf(aspectRatio)); - verify(mockRecorder).getAspectRatio(); - testInstanceManager.remove(Long.valueOf(recorderId)); - } - - @Test - public void getTargetVideoEncodingBitRateTest() { - final int bitRate = 7; - final int recorderId = 3; - - when(mockRecorder.getTargetVideoEncodingBitRate()).thenReturn(bitRate); - testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); - final RecorderHostApiImpl recorderHostApi = - new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - assertEquals( - recorderHostApi.getTargetVideoEncodingBitRate(Long.valueOf(recorderId)), - Long.valueOf(bitRate)); - verify(mockRecorder).getTargetVideoEncodingBitRate(); - testInstanceManager.remove(Long.valueOf(recorderId)); - } - - @Test - @SuppressWarnings("unchecked") - public void prepareRecording_returnsExpectedPendingRecording() { - final int recorderId = 3; - - PendingRecordingFlutterApiImpl mockPendingRecordingFlutterApi = - mock(PendingRecordingFlutterApiImpl.class); - PendingRecording mockPendingRecording = mock(PendingRecording.class); - testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); - when(mockRecorder.prepareRecording(any(Context.class), any(FileOutputOptions.class))) - .thenReturn(mockPendingRecording); - doNothing().when(mockPendingRecordingFlutterApi).create(any(PendingRecording.class), any()); - Long mockPendingRecordingId = testInstanceManager.addHostCreatedInstance(mockPendingRecording); - - RecorderHostApiImpl spy = - spy(new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context)); - spy.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; - doReturn(mock(File.class)).when(spy).openTempFile(any()); - spy.prepareRecording(Long.valueOf(recorderId), ""); - - testInstanceManager.remove(Long.valueOf(recorderId)); - testInstanceManager.remove(mockPendingRecordingId); - } - - @Test - @SuppressWarnings("unchecked") - public void prepareRecording_errorsWhenPassedNullPath() { - final int recorderId = 3; - - testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); - RecorderHostApiImpl recorderHostApi = - new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); - assertThrows( - RuntimeException.class, - () -> { - recorderHostApi.prepareRecording(Long.valueOf(recorderId), null); - }); - testInstanceManager.remove(Long.valueOf(recorderId)); - } - - @Test - public void flutterApiCreateTest() { - final RecorderFlutterApiImpl spyRecorderFlutterApi = - spy(new RecorderFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - - spyRecorderFlutterApi.create(mockRecorder, null, null, reply -> {}); - - final long identifier = - Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockRecorder)); - verify(spyRecorderFlutterApi).create(eq(identifier), eq(null), eq(null), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertThrows; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.doNothing; +//import static org.mockito.Mockito.doReturn; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.content.Context; +//import androidx.camera.video.FileOutputOptions; +//import androidx.camera.video.PendingRecording; +//import androidx.camera.video.QualitySelector; +//import androidx.camera.video.Recorder; +//import androidx.test.core.app.ApplicationProvider; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.io.File; +//import java.util.Objects; +//import java.util.concurrent.Executor; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +// +//@RunWith(RobolectricTestRunner.class) +//public class RecorderTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public Recorder mockRecorder; +// private Context context; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = spy(InstanceManager.create(identifier -> {})); +// context = ApplicationProvider.getApplicationContext(); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void create_createsExpectedRecorderInstance() { +// final int recorderId = 0; +// final int aspectRatio = 1; +// final int bitRate = 2; +// final int qualitySelectorId = 3; +// +// final RecorderHostApiImpl recorderHostApi = +// new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// +// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); +// final Recorder.Builder mockRecorderBuilder = mock(Recorder.Builder.class); +// final QualitySelector mockQualitySelector = mock(QualitySelector.class); +// recorderHostApi.cameraXProxy = mockCameraXProxy; +// when(mockCameraXProxy.createRecorderBuilder()).thenReturn(mockRecorderBuilder); +// when(mockRecorderBuilder.setAspectRatio(aspectRatio)).thenReturn(mockRecorderBuilder); +// when(mockRecorderBuilder.setTargetVideoEncodingBitRate(bitRate)) +// .thenReturn(mockRecorderBuilder); +// when(mockRecorderBuilder.setExecutor(any(Executor.class))).thenReturn(mockRecorderBuilder); +// when(mockRecorderBuilder.build()).thenReturn(mockRecorder); +// testInstanceManager.addDartCreatedInstance( +// mockQualitySelector, Long.valueOf(qualitySelectorId)); +// +// recorderHostApi.create( +// Long.valueOf(recorderId), +// Long.valueOf(aspectRatio), +// Long.valueOf(bitRate), +// Long.valueOf(qualitySelectorId)); +// verify(mockCameraXProxy).createRecorderBuilder(); +// verify(mockRecorderBuilder).setAspectRatio(aspectRatio); +// verify(mockRecorderBuilder).setTargetVideoEncodingBitRate(bitRate); +// verify(mockRecorderBuilder).setQualitySelector(mockQualitySelector); +// verify(mockRecorderBuilder).build(); +// assertEquals(testInstanceManager.getInstance(Long.valueOf(recorderId)), mockRecorder); +// testInstanceManager.remove(Long.valueOf(recorderId)); +// } +// +// @Test +// public void getAspectRatioTest() { +// final int recorderId = 3; +// final int aspectRatio = 6; +// +// when(mockRecorder.getAspectRatio()).thenReturn(aspectRatio); +// testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); +// final RecorderHostApiImpl recorderHostApi = +// new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// assertEquals( +// recorderHostApi.getAspectRatio(Long.valueOf(recorderId)), Long.valueOf(aspectRatio)); +// verify(mockRecorder).getAspectRatio(); +// testInstanceManager.remove(Long.valueOf(recorderId)); +// } +// +// @Test +// public void getTargetVideoEncodingBitRateTest() { +// final int bitRate = 7; +// final int recorderId = 3; +// +// when(mockRecorder.getTargetVideoEncodingBitRate()).thenReturn(bitRate); +// testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); +// final RecorderHostApiImpl recorderHostApi = +// new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// assertEquals( +// recorderHostApi.getTargetVideoEncodingBitRate(Long.valueOf(recorderId)), +// Long.valueOf(bitRate)); +// verify(mockRecorder).getTargetVideoEncodingBitRate(); +// testInstanceManager.remove(Long.valueOf(recorderId)); +// } +// +// @Test +// @SuppressWarnings("unchecked") +// public void prepareRecording_returnsExpectedPendingRecording() { +// final int recorderId = 3; +// +// PendingRecordingFlutterApiImpl mockPendingRecordingFlutterApi = +// mock(PendingRecordingFlutterApiImpl.class); +// PendingRecording mockPendingRecording = mock(PendingRecording.class); +// testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); +// when(mockRecorder.prepareRecording(any(Context.class), any(FileOutputOptions.class))) +// .thenReturn(mockPendingRecording); +// doNothing().when(mockPendingRecordingFlutterApi).create(any(PendingRecording.class), any()); +// Long mockPendingRecordingId = testInstanceManager.addHostCreatedInstance(mockPendingRecording); +// +// RecorderHostApiImpl spy = +// spy(new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context)); +// spy.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; +// doReturn(mock(File.class)).when(spy).openTempFile(any()); +// spy.prepareRecording(Long.valueOf(recorderId), ""); +// +// testInstanceManager.remove(Long.valueOf(recorderId)); +// testInstanceManager.remove(mockPendingRecordingId); +// } +// +// @Test +// @SuppressWarnings("unchecked") +// public void prepareRecording_errorsWhenPassedNullPath() { +// final int recorderId = 3; +// +// testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); +// RecorderHostApiImpl recorderHostApi = +// new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); +// assertThrows( +// RuntimeException.class, +// () -> { +// recorderHostApi.prepareRecording(Long.valueOf(recorderId), null); +// }); +// testInstanceManager.remove(Long.valueOf(recorderId)); +// } +// +// @Test +// public void flutterApiCreateTest() { +// final RecorderFlutterApiImpl spyRecorderFlutterApi = +// spy(new RecorderFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// +// spyRecorderFlutterApi.create(mockRecorder, null, null, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockRecorder)); +// verify(spyRecorderFlutterApi).create(eq(identifier), eq(null), eq(null), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java index 3c05d37b460..38c894e417d 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java @@ -1,60 +1,60 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.Recording -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class RecordingProxyApiTest { - @Test - public void close() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.close(instance ); - - verify(instance).close(); - } - - @Test - public void pause() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.pause(instance ); - - verify(instance).pause(); - } - - @Test - public void resume() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.resume(instance ); - - verify(instance).resume(); - } - - @Test - public void stop() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.stop(instance ); - - verify(instance).stop(); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.Recording +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class RecordingProxyApiTest { +// @Test +// public void close() { +// final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); +// +// final Recording instance = mock(Recording.class); +// api.close(instance ); +// +// verify(instance).close(); +// } +// +// @Test +// public void pause() { +// final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); +// +// final Recording instance = mock(Recording.class); +// api.pause(instance ); +// +// verify(instance).pause(); +// } +// +// @Test +// public void resume() { +// final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); +// +// final Recording instance = mock(Recording.class); +// api.resume(instance ); +// +// verify(instance).resume(); +// } +// +// @Test +// public void stop() { +// final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); +// +// final Recording instance = mock(Recording.class); +// api.stop(instance ); +// +// verify(instance).stop(); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java index ca0c9964956..be8138a2e8f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java @@ -1,111 +1,111 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; - -import androidx.camera.video.Recording; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class RecordingTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public Recording mockRecording; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = spy(InstanceManager.create(identifier -> {})); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void close_getsRecordingFromInstanceManagerAndCloses() { - final RecordingHostApiImpl recordingHostApi = - new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); - final Long recordingId = 5L; - - testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); - - recordingHostApi.close(recordingId); - - verify(mockRecording).close(); - testInstanceManager.remove(recordingId); - } - - @Test - public void stop_getsRecordingFromInstanceManagerAndStops() { - final RecordingHostApiImpl recordingHostApi = - new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); - final Long recordingId = 5L; - - testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); - - recordingHostApi.stop(recordingId); - - verify(mockRecording).stop(); - testInstanceManager.remove(recordingId); - } - - @Test - public void resume_getsRecordingFromInstanceManagerAndResumes() { - final RecordingHostApiImpl recordingHostApi = - new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); - final Long recordingId = 5L; - - testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); - - recordingHostApi.resume(recordingId); - - verify(mockRecording).resume(); - testInstanceManager.remove(recordingId); - } - - @Test - public void pause_getsRecordingFromInstanceManagerAndPauses() { - final RecordingHostApiImpl recordingHostApi = - new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); - final Long recordingId = 5L; - - testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); - - recordingHostApi.pause(recordingId); - - verify(mockRecording).pause(); - testInstanceManager.remove(recordingId); - } - - @Test - public void flutterApiCreateTest() { - final RecordingFlutterApiImpl spyRecordingFlutterApi = - spy(new RecordingFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - - spyRecordingFlutterApi.create(mockRecording, reply -> {}); - - final long identifier = - Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockRecording)); - verify(spyRecordingFlutterApi).create(eq(identifier), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +// +//import androidx.camera.video.Recording; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +// +//@RunWith(RobolectricTestRunner.class) +//public class RecordingTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public Recording mockRecording; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = spy(InstanceManager.create(identifier -> {})); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void close_getsRecordingFromInstanceManagerAndCloses() { +// final RecordingHostApiImpl recordingHostApi = +// new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final Long recordingId = 5L; +// +// testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); +// +// recordingHostApi.close(recordingId); +// +// verify(mockRecording).close(); +// testInstanceManager.remove(recordingId); +// } +// +// @Test +// public void stop_getsRecordingFromInstanceManagerAndStops() { +// final RecordingHostApiImpl recordingHostApi = +// new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final Long recordingId = 5L; +// +// testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); +// +// recordingHostApi.stop(recordingId); +// +// verify(mockRecording).stop(); +// testInstanceManager.remove(recordingId); +// } +// +// @Test +// public void resume_getsRecordingFromInstanceManagerAndResumes() { +// final RecordingHostApiImpl recordingHostApi = +// new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final Long recordingId = 5L; +// +// testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); +// +// recordingHostApi.resume(recordingId); +// +// verify(mockRecording).resume(); +// testInstanceManager.remove(recordingId); +// } +// +// @Test +// public void pause_getsRecordingFromInstanceManagerAndPauses() { +// final RecordingHostApiImpl recordingHostApi = +// new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final Long recordingId = 5L; +// +// testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); +// +// recordingHostApi.pause(recordingId); +// +// verify(mockRecording).pause(); +// testInstanceManager.remove(recordingId); +// } +// +// @Test +// public void flutterApiCreateTest() { +// final RecordingFlutterApiImpl spyRecordingFlutterApi = +// spy(new RecordingFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// +// spyRecordingFlutterApi.create(mockRecording, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockRecording)); +// verify(spyRecordingFlutterApi).create(eq(identifier), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java index e674cab4492..197bc8e2228 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java @@ -1,28 +1,28 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.ResolutionFilter -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionFilterProxyApiTest { - @Test - public void createWithOnePreferredSize() { - final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); - - assertTrue(api.createWithOnePreferredSize(mock(CameraSize.class)) instanceof ResolutionFilterProxyApi.ResolutionFilter); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.resolutionselector.ResolutionFilter +//import android.util.Size +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ResolutionFilterProxyApiTest { +// @Test +// public void createWithOnePreferredSize() { +// final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); +// +// assertTrue(api.createWithOnePreferredSize(mock(CameraSize.class)) instanceof ResolutionFilterProxyApi.ResolutionFilter); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java index 150f5676739..3e9a3fda4ba 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java @@ -1,76 +1,76 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; - -import android.util.Size; -import androidx.camera.core.resolutionselector.ResolutionFilter; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -import java.util.ArrayList; -import java.util.List; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class ResolutionFilterTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void hostApiCreateWithOnePreferredSize_createsExpectedResolutionFilterInstance() { - final ResolutionFilterHostApiImpl hostApi = new ResolutionFilterHostApiImpl(instanceManager); - final long instanceIdentifier = 50; - final long preferredResolutionWidth = 20; - final long preferredResolutionHeight = 80; - final ResolutionInfo preferredResolution = - new ResolutionInfo.Builder() - .setWidth(preferredResolutionWidth) - .setHeight(preferredResolutionHeight) - .build(); - - hostApi.createWithOnePreferredSize(instanceIdentifier, preferredResolution); - - // Test that instance filters supported resolutions as expected. - final ResolutionFilter resolutionFilter = instanceManager.getInstance(instanceIdentifier); - final Size fakeSupportedSize1 = new Size(720, 480); - final Size fakeSupportedSize2 = new Size(20, 80); - final Size fakeSupportedSize3 = new Size(2, 8); - final Size preferredSize = - new Size((int) preferredResolutionWidth, (int) preferredResolutionHeight); - - final ArrayList fakeSupportedSizes = new ArrayList(); - fakeSupportedSizes.add(fakeSupportedSize1); - fakeSupportedSizes.add(fakeSupportedSize2); - fakeSupportedSizes.add(preferredSize); - fakeSupportedSizes.add(fakeSupportedSize3); - - // Test the case where preferred resolution is supported. - List filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); - assertEquals(filteredSizes.get(0), preferredSize); - - // Test the case where preferred resolution is not supported. - fakeSupportedSizes.remove(0); - filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); - assertEquals(filteredSizes, fakeSupportedSizes); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +// +//import android.util.Size; +//import androidx.camera.core.resolutionselector.ResolutionFilter; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; +//import java.util.ArrayList; +//import java.util.List; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +// +//@RunWith(RobolectricTestRunner.class) +//public class ResolutionFilterTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void hostApiCreateWithOnePreferredSize_createsExpectedResolutionFilterInstance() { +// final ResolutionFilterHostApiImpl hostApi = new ResolutionFilterHostApiImpl(instanceManager); +// final long instanceIdentifier = 50; +// final long preferredResolutionWidth = 20; +// final long preferredResolutionHeight = 80; +// final ResolutionInfo preferredResolution = +// new ResolutionInfo.Builder() +// .setWidth(preferredResolutionWidth) +// .setHeight(preferredResolutionHeight) +// .build(); +// +// hostApi.createWithOnePreferredSize(instanceIdentifier, preferredResolution); +// +// // Test that instance filters supported resolutions as expected. +// final ResolutionFilter resolutionFilter = instanceManager.getInstance(instanceIdentifier); +// final Size fakeSupportedSize1 = new Size(720, 480); +// final Size fakeSupportedSize2 = new Size(20, 80); +// final Size fakeSupportedSize3 = new Size(2, 8); +// final Size preferredSize = +// new Size((int) preferredResolutionWidth, (int) preferredResolutionHeight); +// +// final ArrayList fakeSupportedSizes = new ArrayList(); +// fakeSupportedSizes.add(fakeSupportedSize1); +// fakeSupportedSizes.add(fakeSupportedSize2); +// fakeSupportedSizes.add(preferredSize); +// fakeSupportedSizes.add(fakeSupportedSize3); +// +// // Test the case where preferred resolution is supported. +// List filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); +// assertEquals(filteredSizes.get(0), preferredSize); +// +// // Test the case where preferred resolution is not supported. +// fakeSupportedSizes.remove(0); +// filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); +// assertEquals(filteredSizes, fakeSupportedSizes); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java index dd5c1edf8f9..41e8c90644b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java @@ -1,32 +1,32 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ResolutionInfo -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionInfoProxyApiTest { - @Test - public void resolution() { - final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); - - final ResolutionInfo instance = mock(ResolutionInfo.class); - final android.util.Size value = mock(CameraSize.class); - when(instance.getResolution()).thenReturn(value); - - assertEquals(value, api.resolution(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.ResolutionInfo +//import android.util.Size +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ResolutionInfoProxyApiTest { +// @Test +// public void resolution() { +// final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); +// +// final ResolutionInfo instance = mock(ResolutionInfo.class); +// final android.util.Size value = mock(CameraSize.class); +// when(instance.getResolution()).thenReturn(value); +// +// assertEquals(value, api.resolution(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java index b273b84d875..e2b4a01f757 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java @@ -1,30 +1,63 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.ResolutionSelector -import androidx.camera.core.resolutionselector.AspectRatioStrategy -import androidx.camera.core.resolutionselector.ResolutionStrategy -import androidx.camera.core.resolutionselector.ResolutionFilter -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionSelectorProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - - assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class), mock(ResolutionStrategy.class), mock(ResolutionFilter.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.resolutionselector.ResolutionSelector +//import androidx.camera.core.resolutionselector.AspectRatioStrategy +//import androidx.camera.core.resolutionselector.ResolutionFilter +//import androidx.camera.core.resolutionselector.ResolutionStrategy +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ResolutionSelectorProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); +// +// assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); +// } +// +// @Test +// public void resolutionFilter() { +// final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); +// +// final ResolutionSelector instance = mock(ResolutionSelector.class); +// final androidx.camera.core.resolutionselector.ResolutionFilter value = mock(ResolutionFilter.class); +// when(instance.getResolutionFilter()).thenReturn(value); +// +// assertEquals(value, api.resolutionFilter(instance)); +// } +// +// @Test +// public void resolutionStrategy() { +// final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); +// +// final ResolutionSelector instance = mock(ResolutionSelector.class); +// final androidx.camera.core.resolutionselector.ResolutionStrategy value = mock(ResolutionStrategy.class); +// when(instance.getResolutionStrategy()).thenReturn(value); +// +// assertEquals(value, api.resolutionStrategy(instance)); +// } +// +// @Test +// public void getAspectRatioStrategy() { +// final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); +// +// final ResolutionSelector instance = mock(ResolutionSelector.class); +// final androidx.camera.core.resolutionselector.AspectRatioStrategy value = mock(AspectRatioStrategy.class); +// when(instance.getAspectRatioStrategy()).thenReturn(value); +// +// assertEquals(value, api.getAspectRatioStrategy(instance )); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java index 0f45f07b4f7..a8cbf08fdbc 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java @@ -1,68 +1,68 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import androidx.camera.core.resolutionselector.ResolutionFilter; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class ResolutionSelectorTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock public ResolutionSelector mockResolutionSelector; - @Mock public ResolutionSelectorHostApiImpl.ResolutionSelectorProxy mockProxy; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void hostApiCreate_createsExpectedResolutionSelectorInstance() { - final ResolutionStrategy mockResolutionStrategy = mock(ResolutionStrategy.class); - final long resolutionStrategyIdentifier = 14; - instanceManager.addDartCreatedInstance(mockResolutionStrategy, resolutionStrategyIdentifier); - - final AspectRatioStrategy mockAspectRatioStrategy = mock(AspectRatioStrategy.class); - final long aspectRatioStrategyIdentifier = 15; - instanceManager.addDartCreatedInstance(mockAspectRatioStrategy, aspectRatioStrategyIdentifier); - - final ResolutionFilter mockResolutionFilter = mock(ResolutionFilter.class); - final long resolutionFilterIdentifier = 33; - instanceManager.addDartCreatedInstance(mockResolutionFilter, resolutionFilterIdentifier); - - when(mockProxy.create(mockResolutionStrategy, mockAspectRatioStrategy, mockResolutionFilter)) - .thenReturn(mockResolutionSelector); - final ResolutionSelectorHostApiImpl hostApi = - new ResolutionSelectorHostApiImpl(instanceManager, mockProxy); - - final long instanceIdentifier = 0; - hostApi.create( - instanceIdentifier, - resolutionStrategyIdentifier, - resolutionFilterIdentifier, - aspectRatioStrategyIdentifier); - - assertEquals(instanceManager.getInstance(instanceIdentifier), mockResolutionSelector); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.resolutionselector.AspectRatioStrategy; +//import androidx.camera.core.resolutionselector.ResolutionFilter; +//import androidx.camera.core.resolutionselector.ResolutionSelector; +//import androidx.camera.core.resolutionselector.ResolutionStrategy; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class ResolutionSelectorTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// @Mock public ResolutionSelector mockResolutionSelector; +// @Mock public ResolutionSelectorHostApiImpl.ResolutionSelectorProxy mockProxy; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void hostApiCreate_createsExpectedResolutionSelectorInstance() { +// final ResolutionStrategy mockResolutionStrategy = mock(ResolutionStrategy.class); +// final long resolutionStrategyIdentifier = 14; +// instanceManager.addDartCreatedInstance(mockResolutionStrategy, resolutionStrategyIdentifier); +// +// final AspectRatioStrategy mockAspectRatioStrategy = mock(AspectRatioStrategy.class); +// final long aspectRatioStrategyIdentifier = 15; +// instanceManager.addDartCreatedInstance(mockAspectRatioStrategy, aspectRatioStrategyIdentifier); +// +// final ResolutionFilter mockResolutionFilter = mock(ResolutionFilter.class); +// final long resolutionFilterIdentifier = 33; +// instanceManager.addDartCreatedInstance(mockResolutionFilter, resolutionFilterIdentifier); +// +// when(mockProxy.create(mockResolutionStrategy, mockAspectRatioStrategy, mockResolutionFilter)) +// .thenReturn(mockResolutionSelector); +// final ResolutionSelectorHostApiImpl hostApi = +// new ResolutionSelectorHostApiImpl(instanceManager, mockProxy); +// +// final long instanceIdentifier = 0; +// hostApi.create( +// instanceIdentifier, +// resolutionStrategyIdentifier, +// resolutionFilterIdentifier, +// aspectRatioStrategyIdentifier); +// +// assertEquals(instanceManager.getInstance(instanceIdentifier), mockResolutionSelector); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java index a82c1e3359b..2fb607b2053 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java @@ -1,28 +1,50 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.ResolutionStrategy -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionStrategyProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); - - assertTrue(api.pigeon_defaultConstructor(mock(CameraSize.class), io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER) instanceof ResolutionStrategyProxyApi.ResolutionStrategy); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.resolutionselector.ResolutionStrategy +//import android.util.Size +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ResolutionStrategyProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); +// +// assertTrue(api.pigeon_defaultConstructor(mock(CameraSize.class), io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER) instanceof ResolutionStrategyProxyApi.ResolutionStrategy); +// } +// +// @Test +// public void getBoundSize() { +// final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); +// +// final ResolutionStrategy instance = mock(ResolutionStrategy.class); +// final android.util.Size value = mock(CameraSize.class); +// when(instance.getBoundSize()).thenReturn(value); +// +// assertEquals(value, api.getBoundSize(instance )); +// } +// +// @Test +// public void getFallbackRule() { +// final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); +// +// final ResolutionStrategy instance = mock(ResolutionStrategy.class); +// final ResolutionStrategyFallbackRule value = io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER; +// when(instance.getFallbackRule()).thenReturn(value); +// +// assertEquals(value, api.getFallbackRule(instance )); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java index 7bbc6152da0..2a33d77e918 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java @@ -1,71 +1,71 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertThrows; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - -import android.util.Size; -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class ResolutionStrategyTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - @Mock public ResolutionStrategy mockResolutionStrategy; - @Mock public ResolutionStrategyHostApiImpl.ResolutionStrategyProxy mockProxy; - - InstanceManager instanceManager; - - @Before - public void setUp() { - instanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - instanceManager.stopFinalizationListener(); - } - - @Test - public void hostApiCreate_createsExpectedResolutionStrategyInstanceWhenArgumentsValid() { - final GeneratedCameraXLibrary.ResolutionInfo boundSize = - new GeneratedCameraXLibrary.ResolutionInfo.Builder().setWidth(50L).setHeight(30L).build(); - - final Long fallbackRule = 0L; - - when(mockProxy.create(any(Size.class), eq(fallbackRule))).thenReturn(mockResolutionStrategy); - - final ResolutionStrategyHostApiImpl hostApi = - new ResolutionStrategyHostApiImpl(instanceManager, mockProxy); - - final long instanceIdentifier = 0; - hostApi.create(instanceIdentifier, boundSize, fallbackRule); - - assertEquals(instanceManager.getInstance(instanceIdentifier), mockResolutionStrategy); - } - - @Test - public void hostApiCreate_throwsAssertionErrorWhenArgumentsInvalid() { - final Long fallbackRule = 8L; - final long instanceIdentifier = 0; - - final ResolutionStrategyHostApiImpl hostApi = - new ResolutionStrategyHostApiImpl(instanceManager, mockProxy); - - // We expect an exception to be thrown if fallback rule is specified but bound size is not. - assertThrows( - IllegalArgumentException.class, - () -> hostApi.create(instanceIdentifier, null, fallbackRule)); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertThrows; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.when; +// +//import android.util.Size; +//import androidx.camera.core.resolutionselector.ResolutionStrategy; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class ResolutionStrategyTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// @Mock public ResolutionStrategy mockResolutionStrategy; +// @Mock public ResolutionStrategyHostApiImpl.ResolutionStrategyProxy mockProxy; +// +// InstanceManager instanceManager; +// +// @Before +// public void setUp() { +// instanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// instanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void hostApiCreate_createsExpectedResolutionStrategyInstanceWhenArgumentsValid() { +// final GeneratedCameraXLibrary.ResolutionInfo boundSize = +// new GeneratedCameraXLibrary.ResolutionInfo.Builder().setWidth(50L).setHeight(30L).build(); +// +// final Long fallbackRule = 0L; +// +// when(mockProxy.create(any(Size.class), eq(fallbackRule))).thenReturn(mockResolutionStrategy); +// +// final ResolutionStrategyHostApiImpl hostApi = +// new ResolutionStrategyHostApiImpl(instanceManager, mockProxy); +// +// final long instanceIdentifier = 0; +// hostApi.create(instanceIdentifier, boundSize, fallbackRule); +// +// assertEquals(instanceManager.getInstance(instanceIdentifier), mockResolutionStrategy); +// } +// +// @Test +// public void hostApiCreate_throwsAssertionErrorWhenArgumentsInvalid() { +// final Long fallbackRule = 8L; +// final long instanceIdentifier = 0; +// +// final ResolutionStrategyHostApiImpl hostApi = +// new ResolutionStrategyHostApiImpl(instanceManager, mockProxy); +// +// // We expect an exception to be thrown if fallback rule is specified but bound size is not. +// assertThrows( +// IllegalArgumentException.class, +// () -> hostApi.create(instanceIdentifier, null, fallbackRule)); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java index 05d5ebe2652..6d559fea796 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java @@ -1,74 +1,74 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - - -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class SystemServicesManagerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - assertTrue(api.pigeon_defaultConstructor() instanceof SystemServicesManagerProxyApi.SystemServicesManager); - } - - @Test - public void requestCameraPermissions() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = mock(SystemServicesManager.class); - final Boolean enableAudio = true; - api.requestCameraPermissions(instance, enableAudio); - - verify(instance).requestCameraPermissions(enableAudio); - } - - @Test - public void getTempFilePath() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = mock(SystemServicesManager.class); - final String prefix = "myString"; - final String suffix = "myString"; - final String value = "myString"; - when(instance.getTempFilePath(prefix, suffix)).thenReturn(value); - - assertEquals(value, api.getTempFilePath(instance, prefix, suffix)); - } - - @Test - public void isPreviewPreTransformed() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = mock(SystemServicesManager.class); - final Boolean value = true; - when(instance.isPreviewPreTransformed()).thenReturn(value); - - assertEquals(value, api.isPreviewPreTransformed(instance )); - } - - @Test - public void onCameraError() { - final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final SystemServicesManagerImpl instance = new SystemServicesManagerImpl(mockApi); - final String errorDescription = "myString"; - instance.onCameraError(errorDescription); - - verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +// +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class SystemServicesManagerProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); +// +// assertTrue(api.pigeon_defaultConstructor() instanceof SystemServicesManagerProxyApi.SystemServicesManager); +// } +// +// @Test +// public void requestCameraPermissions() { +// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); +// +// final SystemServicesManager instance = mock(SystemServicesManager.class); +// final Boolean enableAudio = true; +// api.requestCameraPermissions(instance, enableAudio); +// +// verify(instance).requestCameraPermissions(enableAudio); +// } +// +// @Test +// public void getTempFilePath() { +// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); +// +// final SystemServicesManager instance = mock(SystemServicesManager.class); +// final String prefix = "myString"; +// final String suffix = "myString"; +// final String value = "myString"; +// when(instance.getTempFilePath(prefix, suffix)).thenReturn(value); +// +// assertEquals(value, api.getTempFilePath(instance, prefix, suffix)); +// } +// +// @Test +// public void isPreviewPreTransformed() { +// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); +// +// final SystemServicesManager instance = mock(SystemServicesManager.class); +// final Boolean value = true; +// when(instance.isPreviewPreTransformed()).thenReturn(value); +// +// assertEquals(value, api.isPreviewPreTransformed(instance )); +// } +// +// @Test +// public void onCameraError() { +// final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); +// when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); +// +// final SystemServicesManagerImpl instance = new SystemServicesManagerImpl(mockApi); +// final String errorDescription = "myString"; +// instance.onCameraError(errorDescription); +// +// verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java index 52d02e67f65..d72ba14b2cd 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java @@ -1,163 +1,163 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.mockStatic; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.app.Activity; -import android.content.Context; -import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; -import io.flutter.plugins.camerax.CameraPermissionsManager.ResultCallback; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraPermissionsErrorData; -import io.flutter.plugins.camerax.GeneratedCameraXLibrary.Result; -import java.io.File; -import java.io.IOException; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.annotation.Config; - -@RunWith(RobolectricTestRunner.class) -public class SystemServicesTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public InstanceManager mockInstanceManager; - @Mock public Context mockContext; - - @Test - public void requestCameraPermissionsTest() { - final SystemServicesHostApiImpl systemServicesHostApi = - new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); - final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); - final CameraPermissionsManager mockCameraPermissionsManager = - mock(CameraPermissionsManager.class); - final Activity mockActivity = mock(Activity.class); - final PermissionsRegistry mockPermissionsRegistry = mock(PermissionsRegistry.class); - @SuppressWarnings("unchecked") - final Result mockResult = mock(Result.class); - final Boolean enableAudio = false; - - systemServicesHostApi.cameraXProxy = mockCameraXProxy; - systemServicesHostApi.setActivity(mockActivity); - systemServicesHostApi.setPermissionsRegistry(mockPermissionsRegistry); - when(mockCameraXProxy.createCameraPermissionsManager()) - .thenReturn(mockCameraPermissionsManager); - - final ArgumentCaptor resultCallbackCaptor = - ArgumentCaptor.forClass(ResultCallback.class); - - systemServicesHostApi.requestCameraPermissions(enableAudio, mockResult); - - // Test camera permissions are requested. - verify(mockCameraPermissionsManager) - .requestPermissions( - eq(mockActivity), - eq(mockPermissionsRegistry), - eq(enableAudio), - resultCallbackCaptor.capture()); - - ResultCallback resultCallback = resultCallbackCaptor.getValue(); - - // Test no error data is sent upon permissions request success. - resultCallback.onResult(null, null); - verify(mockResult).success(null); - - // Test expected error data is sent upon permissions request failure. - final String testErrorCode = "TestErrorCode"; - final String testErrorDescription = "Test error description."; - - final ArgumentCaptor cameraPermissionsErrorDataCaptor = - ArgumentCaptor.forClass(CameraPermissionsErrorData.class); - - resultCallback.onResult(testErrorCode, testErrorDescription); - verify(mockResult, times(2)).success(cameraPermissionsErrorDataCaptor.capture()); - - CameraPermissionsErrorData cameraPermissionsErrorData = - cameraPermissionsErrorDataCaptor.getValue(); - assertEquals(cameraPermissionsErrorData.getErrorCode(), testErrorCode); - assertEquals(cameraPermissionsErrorData.getDescription(), testErrorDescription); - } - - @Test - public void getTempFilePath_returnsCorrectPath() { - final SystemServicesHostApiImpl systemServicesHostApi = - new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); - - final String prefix = "prefix"; - final String suffix = ".suffix"; - final MockedStatic mockedStaticFile = mockStatic(File.class); - final File mockOutputDir = mock(File.class); - final File mockFile = mock(File.class); - when(mockContext.getCacheDir()).thenReturn(mockOutputDir); - mockedStaticFile - .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) - .thenReturn(mockFile); - when(mockFile.toString()).thenReturn(prefix + suffix); - assertEquals(systemServicesHostApi.getTempFilePath(prefix, suffix), prefix + suffix); - - mockedStaticFile.close(); - } - - @Test - public void getTempFilePath_throwsRuntimeExceptionOnIOException() { - final SystemServicesHostApiImpl systemServicesHostApi = - new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); - - final String prefix = "prefix"; - final String suffix = ".suffix"; - final MockedStatic mockedStaticFile = mockStatic(File.class); - final File mockOutputDir = mock(File.class); - when(mockContext.getCacheDir()).thenReturn(mockOutputDir); - mockedStaticFile - .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) - .thenThrow(IOException.class); - assertThrows( - GeneratedCameraXLibrary.FlutterError.class, - () -> systemServicesHostApi.getTempFilePath(prefix, suffix)); - - mockedStaticFile.close(); - } - - @Test - @Config(sdk = 28) - public void isPreviewPreTransformed_returnsTrueWhenRunningBelowSdk29() { - final SystemServicesHostApiImpl systemServicesHostApi = - new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); - assertTrue(systemServicesHostApi.isPreviewPreTransformed()); - } - - @Test - @Config(sdk = 28) - public void isPreviewPreTransformed_returnsTrueWhenRunningSdk28() { - final SystemServicesHostApiImpl systemServicesHostApi = - new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); - assertTrue(systemServicesHostApi.isPreviewPreTransformed()); - } - - @Test - @Config(sdk = 29) - public void isPreviewPreTransformed_returnsFalseWhenRunningAboveSdk28() { - final SystemServicesHostApiImpl systemServicesHostApi = - new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); - assertFalse(systemServicesHostApi.isPreviewPreTransformed()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertFalse; +//import static org.junit.Assert.assertThrows; +//import static org.junit.Assert.assertTrue; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.mock; +//import static org.mockito.Mockito.mockStatic; +//import static org.mockito.Mockito.times; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import android.app.Activity; +//import android.content.Context; +//import io.flutter.plugin.common.BinaryMessenger; +//import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; +//import io.flutter.plugins.camerax.CameraPermissionsManager.ResultCallback; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraPermissionsErrorData; +//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.Result; +//import java.io.File; +//import java.io.IOException; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.ArgumentCaptor; +//import org.mockito.Mock; +//import org.mockito.MockedStatic; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +//import org.robolectric.annotation.Config; +// +//@RunWith(RobolectricTestRunner.class) +//public class SystemServicesTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public InstanceManager mockInstanceManager; +// @Mock public Context mockContext; +// +// @Test +// public void requestCameraPermissionsTest() { +// final SystemServicesHostApiImpl systemServicesHostApi = +// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); +// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); +// final CameraPermissionsManager mockCameraPermissionsManager = +// mock(CameraPermissionsManager.class); +// final Activity mockActivity = mock(Activity.class); +// final PermissionsRegistry mockPermissionsRegistry = mock(PermissionsRegistry.class); +// @SuppressWarnings("unchecked") +// final Result mockResult = mock(Result.class); +// final Boolean enableAudio = false; +// +// systemServicesHostApi.cameraXProxy = mockCameraXProxy; +// systemServicesHostApi.setActivity(mockActivity); +// systemServicesHostApi.setPermissionsRegistry(mockPermissionsRegistry); +// when(mockCameraXProxy.createCameraPermissionsManager()) +// .thenReturn(mockCameraPermissionsManager); +// +// final ArgumentCaptor resultCallbackCaptor = +// ArgumentCaptor.forClass(ResultCallback.class); +// +// systemServicesHostApi.requestCameraPermissions(enableAudio, mockResult); +// +// // Test camera permissions are requested. +// verify(mockCameraPermissionsManager) +// .requestPermissions( +// eq(mockActivity), +// eq(mockPermissionsRegistry), +// eq(enableAudio), +// resultCallbackCaptor.capture()); +// +// ResultCallback resultCallback = resultCallbackCaptor.getValue(); +// +// // Test no error data is sent upon permissions request success. +// resultCallback.onResult(null, null); +// verify(mockResult).success(null); +// +// // Test expected error data is sent upon permissions request failure. +// final String testErrorCode = "TestErrorCode"; +// final String testErrorDescription = "Test error description."; +// +// final ArgumentCaptor cameraPermissionsErrorDataCaptor = +// ArgumentCaptor.forClass(CameraPermissionsErrorData.class); +// +// resultCallback.onResult(testErrorCode, testErrorDescription); +// verify(mockResult, times(2)).success(cameraPermissionsErrorDataCaptor.capture()); +// +// CameraPermissionsErrorData cameraPermissionsErrorData = +// cameraPermissionsErrorDataCaptor.getValue(); +// assertEquals(cameraPermissionsErrorData.getErrorCode(), testErrorCode); +// assertEquals(cameraPermissionsErrorData.getDescription(), testErrorDescription); +// } +// +// @Test +// public void getTempFilePath_returnsCorrectPath() { +// final SystemServicesHostApiImpl systemServicesHostApi = +// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); +// +// final String prefix = "prefix"; +// final String suffix = ".suffix"; +// final MockedStatic mockedStaticFile = mockStatic(File.class); +// final File mockOutputDir = mock(File.class); +// final File mockFile = mock(File.class); +// when(mockContext.getCacheDir()).thenReturn(mockOutputDir); +// mockedStaticFile +// .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) +// .thenReturn(mockFile); +// when(mockFile.toString()).thenReturn(prefix + suffix); +// assertEquals(systemServicesHostApi.getTempFilePath(prefix, suffix), prefix + suffix); +// +// mockedStaticFile.close(); +// } +// +// @Test +// public void getTempFilePath_throwsRuntimeExceptionOnIOException() { +// final SystemServicesHostApiImpl systemServicesHostApi = +// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); +// +// final String prefix = "prefix"; +// final String suffix = ".suffix"; +// final MockedStatic mockedStaticFile = mockStatic(File.class); +// final File mockOutputDir = mock(File.class); +// when(mockContext.getCacheDir()).thenReturn(mockOutputDir); +// mockedStaticFile +// .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) +// .thenThrow(IOException.class); +// assertThrows( +// GeneratedCameraXLibrary.FlutterError.class, +// () -> systemServicesHostApi.getTempFilePath(prefix, suffix)); +// +// mockedStaticFile.close(); +// } +// +// @Test +// @Config(sdk = 28) +// public void isPreviewPreTransformed_returnsTrueWhenRunningBelowSdk29() { +// final SystemServicesHostApiImpl systemServicesHostApi = +// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); +// assertTrue(systemServicesHostApi.isPreviewPreTransformed()); +// } +// +// @Test +// @Config(sdk = 28) +// public void isPreviewPreTransformed_returnsTrueWhenRunningSdk28() { +// final SystemServicesHostApiImpl systemServicesHostApi = +// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); +// assertTrue(systemServicesHostApi.isPreviewPreTransformed()); +// } +// +// @Test +// @Config(sdk = 29) +// public void isPreviewPreTransformed_returnsFalseWhenRunningAboveSdk28() { +// final SystemServicesHostApiImpl systemServicesHostApi = +// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); +// assertFalse(systemServicesHostApi.isPreviewPreTransformed()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java index 7de9fd6d23f..a0481b652ad 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java @@ -1,20 +1,20 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.UseCase -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class UseCaseProxyApiTest { -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.UseCase +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class UseCaseProxyApiTest { +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java index 2803b27e97f..2e085d34fde 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java @@ -1,50 +1,50 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoCapture<*> -import androidx.camera.video.VideoOutput -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoCaptureProxyApiTest { - @Test - public void withOutput() { - final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); - - assertTrue(api.withOutput(mock(VideoOutput.class)) instanceof VideoCaptureProxyApi.VideoCapture); - } - - @Test - public void getOutput() { - final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); - - final VideoCapture instance = mock(VideoCapture.class); - final androidx.camera.video.VideoOutput value = mock(VideoOutput.class); - when(instance.getOutput()).thenReturn(value); - - assertEquals(value, api.getOutput(instance )); - } - - @Test - public void setTargetRotation() { - final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); - - final VideoCapture instance = mock(VideoCapture.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.VideoCapture<*> +//import androidx.camera.video.VideoOutput +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class VideoCaptureProxyApiTest { +// @Test +// public void withOutput() { +// final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); +// +// assertTrue(api.withOutput(mock(VideoOutput.class)) instanceof VideoCaptureProxyApi.VideoCapture); +// } +// +// @Test +// public void getOutput() { +// final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); +// +// final VideoCapture instance = mock(VideoCapture.class); +// final androidx.camera.video.VideoOutput value = mock(VideoOutput.class); +// when(instance.getOutput()).thenReturn(value); +// +// assertEquals(value, api.getOutput(instance )); +// } +// +// @Test +// public void setTargetRotation() { +// final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); +// +// final VideoCapture instance = mock(VideoCapture.class); +// final Long rotation = 0; +// api.setTargetRotation(instance, rotation); +// +// verify(instance).setTargetRotation(rotation); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java index 32627fbd624..19034845926 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java @@ -1,107 +1,107 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; - -import android.view.Surface; -import androidx.camera.video.Recorder; -import androidx.camera.video.VideoCapture; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class VideoCaptureTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public Recorder mockRecorder; - @Mock public VideoCaptureFlutterApiImpl mockVideoCaptureFlutterApi; - @Mock public VideoCapture mockVideoCapture; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = spy(InstanceManager.create(identifier -> {})); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void getOutput_returnsAssociatedRecorder() { - final Long recorderId = 5L; - final Long videoCaptureId = 6L; - VideoCapture videoCapture = VideoCapture.withOutput(mockRecorder); - - testInstanceManager.addDartCreatedInstance(mockRecorder, recorderId); - testInstanceManager.addDartCreatedInstance(videoCapture, videoCaptureId); - - VideoCaptureHostApiImpl videoCaptureHostApi = - new VideoCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager); - assertEquals(videoCaptureHostApi.getOutput(videoCaptureId), recorderId); - testInstanceManager.remove(recorderId); - testInstanceManager.remove(videoCaptureId); - } - - @Test - @SuppressWarnings("unchecked") - public void withOutput_returnsNewVideoCaptureWithAssociatedRecorder() { - final Long recorderId = 5L; - testInstanceManager.addDartCreatedInstance(mockRecorder, recorderId); - - VideoCaptureHostApiImpl videoCaptureHostApi = - new VideoCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager); - VideoCaptureHostApiImpl spyVideoCaptureApi = spy(videoCaptureHostApi); - final Long videoCaptureId = videoCaptureHostApi.withOutput(recorderId); - VideoCapture videoCapture = testInstanceManager.getInstance(videoCaptureId); - assertEquals(videoCapture.getOutput(), mockRecorder); - - testInstanceManager.remove(recorderId); - testInstanceManager.remove(videoCaptureId); - } - - @Test - public void setTargetRotation_makesCallToSetTargetRotation() { - final VideoCaptureHostApiImpl hostApi = - new VideoCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager); - final long instanceIdentifier = 62; - final int targetRotation = Surface.ROTATION_270; - - testInstanceManager.addDartCreatedInstance(mockVideoCapture, instanceIdentifier); - - hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); - - verify(mockVideoCapture).setTargetRotation(targetRotation); - } - - @Test - public void flutterApiCreateTest() { - final VideoCaptureFlutterApiImpl spyVideoCaptureFlutterApi = - spy(new VideoCaptureFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - spyVideoCaptureFlutterApi.create(mockVideoCapture, reply -> {}); - - final long identifier = - Objects.requireNonNull( - testInstanceManager.getIdentifierForStrongReference(mockVideoCapture)); - verify(spyVideoCaptureFlutterApi).create(eq(identifier), any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.junit.Assert.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +// +//import android.view.Surface; +//import androidx.camera.video.Recorder; +//import androidx.camera.video.VideoCapture; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +//import org.robolectric.RobolectricTestRunner; +// +//@RunWith(RobolectricTestRunner.class) +//public class VideoCaptureTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public Recorder mockRecorder; +// @Mock public VideoCaptureFlutterApiImpl mockVideoCaptureFlutterApi; +// @Mock public VideoCapture mockVideoCapture; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = spy(InstanceManager.create(identifier -> {})); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void getOutput_returnsAssociatedRecorder() { +// final Long recorderId = 5L; +// final Long videoCaptureId = 6L; +// VideoCapture videoCapture = VideoCapture.withOutput(mockRecorder); +// +// testInstanceManager.addDartCreatedInstance(mockRecorder, recorderId); +// testInstanceManager.addDartCreatedInstance(videoCapture, videoCaptureId); +// +// VideoCaptureHostApiImpl videoCaptureHostApi = +// new VideoCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager); +// assertEquals(videoCaptureHostApi.getOutput(videoCaptureId), recorderId); +// testInstanceManager.remove(recorderId); +// testInstanceManager.remove(videoCaptureId); +// } +// +// @Test +// @SuppressWarnings("unchecked") +// public void withOutput_returnsNewVideoCaptureWithAssociatedRecorder() { +// final Long recorderId = 5L; +// testInstanceManager.addDartCreatedInstance(mockRecorder, recorderId); +// +// VideoCaptureHostApiImpl videoCaptureHostApi = +// new VideoCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager); +// VideoCaptureHostApiImpl spyVideoCaptureApi = spy(videoCaptureHostApi); +// final Long videoCaptureId = videoCaptureHostApi.withOutput(recorderId); +// VideoCapture videoCapture = testInstanceManager.getInstance(videoCaptureId); +// assertEquals(videoCapture.getOutput(), mockRecorder); +// +// testInstanceManager.remove(recorderId); +// testInstanceManager.remove(videoCaptureId); +// } +// +// @Test +// public void setTargetRotation_makesCallToSetTargetRotation() { +// final VideoCaptureHostApiImpl hostApi = +// new VideoCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager); +// final long instanceIdentifier = 62; +// final int targetRotation = Surface.ROTATION_270; +// +// testInstanceManager.addDartCreatedInstance(mockVideoCapture, instanceIdentifier); +// +// hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); +// +// verify(mockVideoCapture).setTargetRotation(targetRotation); +// } +// +// @Test +// public void flutterApiCreateTest() { +// final VideoCaptureFlutterApiImpl spyVideoCaptureFlutterApi = +// spy(new VideoCaptureFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// spyVideoCaptureFlutterApi.create(mockVideoCapture, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull( +// testInstanceManager.getIdentifierForStrongReference(mockVideoCapture)); +// verify(spyVideoCaptureFlutterApi).create(eq(identifier), any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java index d8b964047ea..34bc37086c0 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java @@ -1,20 +1,20 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoOutput -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoOutputProxyApiTest { -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.VideoOutput +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class VideoOutputProxyApiTest { +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java index 1b6b3b717b9..62bb6863f1e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java @@ -1,20 +1,20 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent.Finalize -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventFinalizeProxyApiTest { -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.VideoRecordEvent.Finalize +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class VideoRecordEventFinalizeProxyApiTest { +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java index 0a4486299f7..c2c2f6d7312 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java @@ -1,39 +1,39 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventListenerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiVideoRecordEventListener api = new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); - - assertTrue(api.pigeon_defaultConstructor() instanceof VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl); - } - - @Test - public void onEvent() { - final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final VideoRecordEventListenerImpl instance = new VideoRecordEventListenerImpl(mockApi); - final androidx.camera.video.VideoRecordEvent event = mock(VideoRecordEvent.class); - instance.onEvent(event); - - verify(mockApi).onEvent(eq(instance), eq(event), any()); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.VideoRecordEvent +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class VideoRecordEventListenerProxyApiTest { +// @Test +// public void pigeon_defaultConstructor() { +// final PigeonApiVideoRecordEventListener api = new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); +// +// assertTrue(api.pigeon_defaultConstructor() instanceof VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl); +// } +// +// @Test +// public void onEvent() { +// final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); +// when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); +// +// final VideoRecordEventListenerImpl instance = new VideoRecordEventListenerImpl(mockApi); +// final androidx.camera.video.VideoRecordEvent event = mock(VideoRecordEvent.class); +// instance.onEvent(event); +// +// verify(mockApi).onEvent(eq(instance), eq(event), any()); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java index 0dd5f2dd1d3..435de4c856e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java @@ -1,20 +1,20 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventProxyApiTest { -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.VideoRecordEvent +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class VideoRecordEventProxyApiTest { +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java index 68601dd4c44..55cd98f36d4 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java @@ -1,20 +1,20 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent.Start -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventStartProxyApiTest { -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.video.VideoRecordEvent.Start +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class VideoRecordEventStartProxyApiTest { +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java index 5c621a78cef..692d5cc1103 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java @@ -1,42 +1,42 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ZoomState -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ZoomStateProxyApiTest { - @Test - public void minZoomRatio() { - final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); - - final ZoomState instance = mock(ZoomState.class); - final Double value = 1.0; - when(instance.getMinZoomRatio()).thenReturn(value); - - assertEquals(value, api.minZoomRatio(instance)); - } - - @Test - public void maxZoomRatio() { - final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); - - final ZoomState instance = mock(ZoomState.class); - final Double value = 1.0; - when(instance.getMaxZoomRatio()).thenReturn(value); - - assertEquals(value, api.maxZoomRatio(instance)); - } - -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax +// +//import androidx.camera.core.ZoomState +//import org.junit.Test; +//import static org.junit.Assert.assertEquals; +//import static org.junit.Assert.assertTrue; +//import org.mockito.Mockito; +//import org.mockito.Mockito.any; +//import java.util.HashMap; +//import static org.mockito.Mockito.eq; +//import static org.mockito.Mockito.mock; +//import org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//public class ZoomStateProxyApiTest { +// @Test +// public void minZoomRatio() { +// final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); +// +// final ZoomState instance = mock(ZoomState.class); +// final Double value = 1.0; +// when(instance.getMinZoomRatio()).thenReturn(value); +// +// assertEquals(value, api.minZoomRatio(instance)); +// } +// +// @Test +// public void maxZoomRatio() { +// final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); +// +// final ZoomState instance = mock(ZoomState.class); +// final Double value = 1.0; +// when(instance.getMaxZoomRatio()).thenReturn(value); +// +// assertEquals(value, api.maxZoomRatio(instance)); +// } +// +//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java index a4f53ad80c5..0de9f746efc 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java @@ -1,63 +1,63 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import androidx.camera.core.ZoomState; -import io.flutter.plugin.common.BinaryMessenger; -import java.util.Objects; -import org.junit.After; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.mockito.Mock; -import org.mockito.junit.MockitoJUnit; -import org.mockito.junit.MockitoRule; - -public class ZoomStateTest { - @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); - - @Mock public BinaryMessenger mockBinaryMessenger; - @Mock public ZoomState mockZoomState; - - InstanceManager testInstanceManager; - - @Before - public void setUp() { - testInstanceManager = InstanceManager.create(identifier -> {}); - } - - @After - public void tearDown() { - testInstanceManager.stopFinalizationListener(); - } - - @Test - public void create_makesExpectedCallToCreateInstanceOnDartSide() { - ZoomStateFlutterApiImpl zoomStateFlutterApiImpl = - spy(new ZoomStateFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); - final Float testMinZoomRatio = 0F; - final Float testMaxZoomRatio = 1F; - - when(mockZoomState.getMinZoomRatio()).thenReturn(testMinZoomRatio); - when(mockZoomState.getMaxZoomRatio()).thenReturn(testMaxZoomRatio); - - zoomStateFlutterApiImpl.create(mockZoomState, reply -> {}); - - final long identifier = - Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockZoomState)); - verify(zoomStateFlutterApiImpl) - .create( - eq(identifier), - eq(testMinZoomRatio.doubleValue()), - eq(testMaxZoomRatio.doubleValue()), - any()); - } -} +//// Copyright 2013 The Flutter Authors. All rights reserved. +//// Use of this source code is governed by a BSD-style license that can be +//// found in the LICENSE file. +// +//package io.flutter.plugins.camerax; +// +//import static org.mockito.ArgumentMatchers.any; +//import static org.mockito.ArgumentMatchers.eq; +//import static org.mockito.Mockito.spy; +//import static org.mockito.Mockito.verify; +//import static org.mockito.Mockito.when; +// +//import androidx.camera.core.ZoomState; +//import io.flutter.plugin.common.BinaryMessenger; +//import java.util.Objects; +//import org.junit.After; +//import org.junit.Before; +//import org.junit.Rule; +//import org.junit.Test; +//import org.mockito.Mock; +//import org.mockito.junit.MockitoJUnit; +//import org.mockito.junit.MockitoRule; +// +//public class ZoomStateTest { +// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); +// +// @Mock public BinaryMessenger mockBinaryMessenger; +// @Mock public ZoomState mockZoomState; +// +// InstanceManager testInstanceManager; +// +// @Before +// public void setUp() { +// testInstanceManager = InstanceManager.create(identifier -> {}); +// } +// +// @After +// public void tearDown() { +// testInstanceManager.stopFinalizationListener(); +// } +// +// @Test +// public void create_makesExpectedCallToCreateInstanceOnDartSide() { +// ZoomStateFlutterApiImpl zoomStateFlutterApiImpl = +// spy(new ZoomStateFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); +// final Float testMinZoomRatio = 0F; +// final Float testMaxZoomRatio = 1F; +// +// when(mockZoomState.getMinZoomRatio()).thenReturn(testMinZoomRatio); +// when(mockZoomState.getMaxZoomRatio()).thenReturn(testMaxZoomRatio); +// +// zoomStateFlutterApiImpl.create(mockZoomState, reply -> {}); +// +// final long identifier = +// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockZoomState)); +// verify(zoomStateFlutterApiImpl) +// .create( +// eq(identifier), +// eq(testMinZoomRatio.doubleValue()), +// eq(testMaxZoomRatio.doubleValue()), +// any()); +// } +//} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index aabd4198740..172e8ca9233 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -434,6 +434,375 @@ class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { } } +/// Handles constructing objects and calling static methods for the Android +/// Interactive Media Ads native library. +/// +/// This class provides dependency injection for the implementations of the +/// platform interface classes. Improving the ease of unit testing and/or +/// overriding the underlying Android classes. +/// +/// By default each function calls the default constructor of the class it +/// intends to return. +class MyLibraryProxy { + /// Constructs an [MyLibraryProxy]. + const MyLibraryProxy({ + this.newCameraSize = CameraSize.new, + this.newCameraIntegerRange = CameraIntegerRange.new, + this.newObserver = Observer.new, + this.newCameraSelector = CameraSelector.new, + this.newSystemServicesManager = SystemServicesManager.new, + this.newDeviceOrientationManager = DeviceOrientationManager.new, + this.newPreview = Preview.new, + this.withOutputVideoCapture = VideoCapture.withOutput, + this.newRecorder = Recorder.new, + this.newVideoRecordEventListener = VideoRecordEventListener.new, + this.newImageCapture = ImageCapture.new, + this.newResolutionStrategy = ResolutionStrategy.new, + this.newResolutionSelector = ResolutionSelector.new, + this.newAspectRatioStrategy = AspectRatioStrategy.new, + this.newImageAnalysis = ImageAnalysis.new, + this.newAnalyzer = Analyzer.new, + this.fromQualitySelector = QualitySelector.from, + this.fromOrderedListQualitySelector = QualitySelector.fromOrderedList, + this.higherQualityOrLowerThanFallbackStrategy = + FallbackStrategy.higherQualityOrLowerThan, + this.higherQualityThanFallbackStrategy = FallbackStrategy.higherQualityThan, + this.lowerQualityOrHigherThanFallbackStrategy = + FallbackStrategy.lowerQualityOrHigherThan, + this.lowerQualityThanFallbackStrategy = FallbackStrategy.lowerQualityThan, + this.newFocusMeteringActionBuilder = FocusMeteringActionBuilder.new, + this.withModeFocusMeteringActionBuilder = + FocusMeteringActionBuilder.withMode, + this.newCaptureRequestOptions = CaptureRequestOptions.new, + this.fromCamera2CameraControl = Camera2CameraControl.from, + this.createWithOnePreferredSizeResolutionFilter = + ResolutionFilter.createWithOnePreferredSize, + this.fromCamera2CameraInfo = Camera2CameraInfo.from, + this.newDisplayOrientedMeteringPointFactory = + DisplayOrientedMeteringPointFactory.new, + this.getInstanceProcessCameraProvider = ProcessCameraProvider.getInstance, + this.getResolutionQualitySelector = QualitySelector.getResolution, + this.defaultBackCameraCameraSelector = _defaultBackCameraCameraSelector, + this.defaultFrontCameraCameraSelector = _defaultFrontCameraCameraSelector, + this.highestAvailableStrategyResolutionStrategy = + _highestAvailableStrategyResolutionStrategy, + this.ratio_16_9FallbackAutoStrategyAspectRatioStrategy = + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + this.ratio_4_3FallbackAutoStrategyAspectRatioStrategy = + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + this.controlAELockCaptureRequest = _controlAELockCaptureRequest, + this.infoSupportedHardwareLevelCameraCharacteristics = + _infoSupportedHardwareLevelCameraCharacteristics, + this.sensorOrientationCameraCharacteristics = + _sensorOrientationCameraCharacteristics, + }); + + /// Constructs [CameraSize]. + final CameraSize Function({ + required int width, + required int height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newCameraSize; + + /// Constructs [CameraIntegerRange]. + final CameraIntegerRange Function({ + required int lower, + required int upper, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newCameraIntegerRange; + + /// Constructs [Observer]. + final Observer Function({ + required void Function( + Observer, + Object, + ) onChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newObserver; + + /// Constructs [CameraSelector]. + final CameraSelector Function({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newCameraSelector; + + /// Constructs [SystemServicesManager]. + final SystemServicesManager Function({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newSystemServicesManager; + + /// Constructs [DeviceOrientationManager]. + final DeviceOrientationManager Function({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newDeviceOrientationManager; + + /// Constructs [Preview]. + final Preview Function({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newPreview; + + /// Constructs [VideoCapture]. + final VideoCapture Function({ + required VideoOutput videoOutput, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) withOutputVideoCapture; + + /// Constructs [Recorder]. + final Recorder Function({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newRecorder; + + /// Constructs [VideoRecordEventListener]. + final VideoRecordEventListener Function({ + required void Function( + VideoRecordEventListener, + VideoRecordEvent, + ) onEvent, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newVideoRecordEventListener; + + /// Constructs [ImageCapture]. + final ImageCapture Function({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newImageCapture; + + /// Constructs [ResolutionStrategy]. + final ResolutionStrategy Function({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newResolutionStrategy; + + /// Constructs [ResolutionSelector]. + final ResolutionSelector Function({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionFilter? resolutionFilter, + ResolutionStrategy? resolutionStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newResolutionSelector; + + /// Constructs [AspectRatioStrategy]. + final AspectRatioStrategy Function({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newAspectRatioStrategy; + + /// Constructs [ImageAnalysis]. + final ImageAnalysis Function({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newImageAnalysis; + + /// Constructs [Analyzer]. + final Analyzer Function({ + required void Function( + Analyzer, + ImageProxy, + ) analyze, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newAnalyzer; + + /// Constructs [QualitySelector]. + final QualitySelector Function({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) fromQualitySelector; + + /// Constructs [QualitySelector]. + final QualitySelector Function({ + required List qualities, + FallbackStrategy? fallbackStrategy, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) fromOrderedListQualitySelector; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) higherQualityOrLowerThanFallbackStrategy; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) higherQualityThanFallbackStrategy; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) lowerQualityOrHigherThanFallbackStrategy; + + /// Constructs [FallbackStrategy]. + final FallbackStrategy Function({ + required VideoQuality quality, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) lowerQualityThanFallbackStrategy; + + /// Constructs [FocusMeteringActionBuilder]. + final FocusMeteringActionBuilder Function({ + required MeteringPoint point, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newFocusMeteringActionBuilder; + + /// Constructs [FocusMeteringActionBuilder]. + final FocusMeteringActionBuilder Function({ + required MeteringPoint point, + required MeteringMode mode, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) withModeFocusMeteringActionBuilder; + + /// Constructs [CaptureRequestOptions]. + final CaptureRequestOptions Function({ + required Map options, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newCaptureRequestOptions; + + /// Constructs [Camera2CameraControl]. + final Camera2CameraControl Function({ + required CameraControl cameraControl, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) fromCamera2CameraControl; + + /// Constructs [ResolutionFilter]. + final ResolutionFilter Function({ + required CameraSize preferredSize, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) createWithOnePreferredSizeResolutionFilter; + + /// Constructs [Camera2CameraInfo]. + final Camera2CameraInfo Function({ + required CameraInfo cameraInfo, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) fromCamera2CameraInfo; + + /// Constructs [DisplayOrientedMeteringPointFactory]. + final DisplayOrientedMeteringPointFactory Function({ + required CameraInfo cameraInfo, + required double width, + required double height, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) newDisplayOrientedMeteringPointFactory; + + /// Calls to [ProcessCameraProvider.getInstance]. + final Future Function({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) getInstanceProcessCameraProvider; + + /// Calls to [QualitySelector.getResolution]. + final Future Function( + CameraInfo, + VideoQuality, { + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) getResolutionQualitySelector; + + /// Calls to [CameraSelector.defaultBackCamera]. + final CameraSelector Function() defaultBackCameraCameraSelector; + + /// Calls to [CameraSelector.defaultFrontCamera]. + final CameraSelector Function() defaultFrontCameraCameraSelector; + + /// Calls to [ResolutionStrategy.highestAvailableStrategy]. + final ResolutionStrategy Function() + highestAvailableStrategyResolutionStrategy; + + /// Calls to [AspectRatioStrategy.ratio_16_9FallbackAutoStrategy]. + final AspectRatioStrategy Function() + ratio_16_9FallbackAutoStrategyAspectRatioStrategy; + + /// Calls to [AspectRatioStrategy.ratio_4_3FallbackAutoStrategy]. + final AspectRatioStrategy Function() + ratio_4_3FallbackAutoStrategyAspectRatioStrategy; + + /// Calls to [CaptureRequest.controlAELock]. + final CaptureRequestKey Function() controlAELockCaptureRequest; + + /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. + final CameraCharacteristicsKey Function() + infoSupportedHardwareLevelCameraCharacteristics; + + /// Calls to [CameraCharacteristics.sensorOrientation]. + final CameraCharacteristicsKey Function() + sensorOrientationCameraCharacteristics; + + static CameraSelector _defaultBackCameraCameraSelector() => + CameraSelector.defaultBackCamera; + + static CameraSelector _defaultFrontCameraCameraSelector() => + CameraSelector.defaultFrontCamera; + + static ResolutionStrategy _highestAvailableStrategyResolutionStrategy() => + ResolutionStrategy.highestAvailableStrategy; + + static AspectRatioStrategy + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; + + static AspectRatioStrategy + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; + + static CaptureRequestKey _controlAELockCaptureRequest() => + CaptureRequest.controlAELock; + + static CameraCharacteristicsKey + _infoSupportedHardwareLevelCameraCharacteristics() => + CameraCharacteristics.infoSupportedHardwareLevel; + + static CameraCharacteristicsKey _sensorOrientationCameraCharacteristics() => + CameraCharacteristics.sensorOrientation; +} + /// Generally classifies the overall set of the camera device functionality. /// diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 21811010c97..163f46e3a78 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -33,12 +33,12 @@ dev_dependencies: sdk: flutter leak_tracker_flutter_testing: any mockito: ^5.4.4 - pigeon: ^24.1.1 -# pigeon: -# git: -# url: git@github.com:bparrishMines/packages.git -# ref: pigeon_helper -# path: packages/pigeon +# pigeon: ^24.1.1 + pigeon: + git: + url: git@github.com:bparrishMines/packages.git + ref: pigeon_helper + path: packages/pigeon topics: - camera From 9fd4f86ef1cd7fbbf74dc65841d48d4bebef2132 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Fri, 14 Feb 2025 15:05:22 -0500 Subject: [PATCH 077/148] add mockito --- packages/camera/camera_android_camerax/android/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/build.gradle b/packages/camera/camera_android_camerax/android/build.gradle index 0e0498b90de..b41734f2f43 100644 --- a/packages/camera/camera_android_camerax/android/build.gradle +++ b/packages/camera/camera_android_camerax/android/build.gradle @@ -72,7 +72,8 @@ dependencies { implementation "androidx.camera:camera-video:${camerax_version}" implementation 'com.google.guava:guava:33.4.0-android' testImplementation 'junit:junit:4.13.2' - testImplementation 'org.mockito:mockito-inline:5.2.0' + testImplementation "org.mockito:mockito-core:5.15.2" + testImplementation 'org.mockito:mockito-inline:5.1.0' testImplementation 'androidx.test:core:1.4.0' testImplementation 'org.robolectric:robolectric:4.10.3' } From 3c82486a13e0dd9e015c66a83026565f26a59a9b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Fri, 14 Feb 2025 15:32:23 -0500 Subject: [PATCH 078/148] formatting and fix tests --- .../plugins/camerax/CameraXLibrary.g.kt | 9532 +++++------------ .../SystemServicesManagerProxyApi.java | 6 +- .../flutter/plugins/camerax/AnalyzerTest.java | 5 +- .../camerax/AspectRatioStrategyTest.java | 32 +- .../Camera2CameraControlProxyApiTest.java | 19 +- .../camerax/TestProxyApiRegistrar.java | 22 +- .../lib/src/camerax_library.g.dart | 698 +- .../camera_android_camerax/pubspec.yaml | 12 +- .../android_camera_camerax_test.mocks.dart | 5451 +++++----- 9 files changed, 5714 insertions(+), 10063 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index d5a6cb923ab..8934b20ff34 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -10,9 +10,7 @@ package io.flutter.plugins.camerax import android.util.Log import io.flutter.plugin.common.BasicMessageChannel import io.flutter.plugin.common.BinaryMessenger -import io.flutter.plugin.common.EventChannel import io.flutter.plugin.common.MessageCodec -import io.flutter.plugin.common.StandardMethodCodec import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer @@ -23,52 +21,52 @@ private fun wrapResult(result: Any?): List { private fun wrapError(exception: Throwable): List { return if (exception is CameraXError) { - listOf( - exception.code, - exception.message, - exception.details - ) + listOf(exception.code, exception.message, exception.details) } else { listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)) } } private fun createConnectionError(channelName: String): CameraXError { - return CameraXError("channel-error", "Unable to establish connection on channel: '$channelName'.", "")} + return CameraXError( + "channel-error", "Unable to establish connection on channel: '$channelName'.", "") +} /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class CameraXError ( - val code: String, - override val message: String? = null, - val details: Any? = null -) : RuntimeException() +class CameraXError( + val code: String, + override val message: String? = null, + val details: Any? = null +) : Throwable() /** * Maintains instances used to communicate with the corresponding objects in Dart. * - * Objects stored in this container are represented by an object in Dart that is also stored in - * an InstanceManager with the same identifier. + * Objects stored in this container are represented by an object in Dart that is also stored in an + * InstanceManager with the same identifier. * * When an instance is added with an identifier, either can be used to retrieve the other. * - * Added instances are added as a weak reference and a strong reference. When the strong - * reference is removed with [remove] and the weak reference is deallocated, the - * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the strong - * reference is removed and then the identifier is retrieved with the intention to pass the identifier - * to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the instance - * is recreated. The strong reference will then need to be removed manually again. + * Added instances are added as a weak reference and a strong reference. When the strong reference + * is removed with [remove] and the weak reference is deallocated, the + * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the + * strong reference is removed and then the identifier is retrieved with the intention to pass the + * identifier to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the + * instance is recreated. The strong reference will then need to be removed manually again. */ @Suppress("UNCHECKED_CAST", "MemberVisibilityCanBePrivate") -class CameraXLibraryPigeonInstanceManager(private val finalizationListener: PigeonFinalizationListener) { - /** Interface for listening when a weak reference of an instance is removed from the manager. */ +class CameraXLibraryPigeonInstanceManager( + private val finalizationListener: PigeonFinalizationListener +) { + /** Interface for listening when a weak reference of an instance is removed from the manager. */ interface PigeonFinalizationListener { fun onFinalize(identifier: Long) } @@ -94,10 +92,7 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige } init { - handler.postDelayed( - { releaseAllFinalizedInstances() }, - clearFinalizedWeakReferencesInterval - ) + handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) } companion object { @@ -109,19 +104,20 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige private const val tag = "PigeonInstanceManager" /** - * Instantiate a new manager with a listener for garbage collected weak - * references. + * Instantiate a new manager with a listener for garbage collected weak references. * * When the manager is no longer needed, [stopFinalizationListener] must be called. */ - fun create(finalizationListener: PigeonFinalizationListener): CameraXLibraryPigeonInstanceManager { + fun create( + finalizationListener: PigeonFinalizationListener + ): CameraXLibraryPigeonInstanceManager { return CameraXLibraryPigeonInstanceManager(finalizationListener) } } /** - * Removes `identifier` and return its associated strongly referenced instance, if present, - * from the manager. + * Removes `identifier` and return its associated strongly referenced instance, if present, from + * the manager. */ fun remove(identifier: Long): T? { logWarningIfFinalizationListenerHasStopped() @@ -131,15 +127,13 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige /** * Retrieves the identifier paired with an instance, if present, otherwise `null`. * - * * If the manager contains a strong reference to `instance`, it will return the identifier * associated with `instance`. If the manager contains only a weak reference to `instance`, a new * strong reference to `instance` will be added and will need to be removed again with [remove]. * - * * If this method returns a nonnull identifier, this method also expects the Dart - * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart instance the - * identifier is associated with. + * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart + * instance the identifier is associated with. */ fun getIdentifierForStrongReference(instance: Any?): Long? { logWarningIfFinalizationListenerHasStopped() @@ -153,9 +147,9 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige /** * Adds a new instance that was instantiated from Dart. * - * The same instance can be added multiple times, but each identifier must be unique. This - * allows two objects that are equivalent (e.g. the `equals` method returns true and their - * hashcodes are equal) to both be added. + * The same instance can be added multiple times, but each identifier must be unique. This allows + * two objects that are equivalent (e.g. the `equals` method returns true and their hashcodes are + * equal) to both be added. * * [identifier] must be >= 0 and unique. */ @@ -171,7 +165,9 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige */ fun addHostCreatedInstance(instance: Any): Long { logWarningIfFinalizationListenerHasStopped() - require(!containsInstance(instance)) { "Instance of ${instance.javaClass} has already been added." } + require(!containsInstance(instance)) { + "Instance of ${instance.javaClass} has already been added." + } val identifier = nextIdentifier++ addInstance(instance, identifier) return identifier @@ -229,7 +225,8 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige return } var reference: java.lang.ref.WeakReference? - while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != null) { + while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != + null) { val identifier = weakReferencesToIdentifiers.remove(reference) if (identifier != null) { weakInstances.remove(identifier) @@ -237,10 +234,7 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige finalizationListener.onFinalize(identifier) } } - handler.postDelayed( - { releaseAllFinalizedInstances() }, - clearFinalizedWeakReferencesInterval - ) + handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) } private fun addInstance(instance: Any, identifier: Long) { @@ -258,39 +252,43 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige private fun logWarningIfFinalizationListenerHasStopped() { if (hasFinalizationListenerStopped()) { Log.w( - tag, - "The manager was used after calls to the PigeonFinalizationListener has been stopped." - ) + tag, + "The manager was used after calls to the PigeonFinalizationListener has been stopped.") } } } - /** Generated API for managing the Dart and native `InstanceManager`s. */ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: BinaryMessenger) { companion object { /** The codec used by CameraXLibraryPigeonInstanceManagerApi. */ - val codec: MessageCodec by lazy { - CameraXLibraryPigeonCodec() - } + val codec: MessageCodec by lazy { CameraXLibraryPigeonCodec() } /** * Sets up an instance of `CameraXLibraryPigeonInstanceManagerApi` to handle messages from the * `binaryMessenger`. */ - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, instanceManager: CameraXLibraryPigeonInstanceManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + instanceManager: CameraXLibraryPigeonInstanceManager? + ) { run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", + codec) if (instanceManager != null) { channel.setMessageHandler { message, reply -> val args = message as List val identifierArg = args[0] as Long - val wrapped: List = try { - instanceManager.remove(identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + instanceManager.remove(identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -298,15 +296,20 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", + codec) if (instanceManager != null) { channel.setMessageHandler { _, reply -> - val wrapped: List = try { - instanceManager.clear() - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + instanceManager.clear() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -316,9 +319,9 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } - fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) -{ - val channelName = "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" + fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) { + val channelName = + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(identifierArg)) { if (it is List<*>) { @@ -329,13 +332,13 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } /** - * Provides implementations for each ProxyApi implementation and provides access to resources - * needed by any implementation. + * Provides implementations for each ProxyApi implementation and provides access to resources needed + * by any implementation. */ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: BinaryMessenger) { /** Whether APIs should ignore calling to Dart. */ @@ -352,24 +355,23 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary init { val api = CameraXLibraryPigeonInstanceManagerApi(binaryMessenger) - instanceManager = CameraXLibraryPigeonInstanceManager.create( - object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { - override fun onFinalize(identifier: Long) { - api.removeStrongReference(identifier) { - if (it.isFailure) { - Log.e( - "PigeonProxyApiRegistrar", - "Failed to remove Dart strong reference with identifier: $identifier" - ) - } - } - } - } - ) + instanceManager = + CameraXLibraryPigeonInstanceManager.create( + object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { + override fun onFinalize(identifier: Long) { + api.removeStrongReference(identifier) { + if (it.isFailure) { + Log.e( + "PigeonProxyApiRegistrar", + "Failed to remove Dart strong reference with identifier: $identifier") + } + } + } + }) } /** - * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of - * `CameraSize` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of `CameraSize` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraSize(): PigeonApiCameraSize @@ -389,8 +391,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEvent] used to add a new Dart instance of * `VideoRecordEvent` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return PigeonApiVideoRecordEvent(this) } @@ -398,8 +399,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventStart] used to add a new Dart instance of * `VideoRecordEventStart` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart - { + open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart { return PigeonApiVideoRecordEventStart(this) } @@ -407,8 +407,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventFinalize] used to add a new Dart instance of * `VideoRecordEventFinalize` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize - { + open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize { return PigeonApiVideoRecordEventFinalize(this) } @@ -419,14 +418,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPoint(): PigeonApiMeteringPoint /** - * An implementation of [PigeonApiObserver] used to add a new Dart instance of - * `Observer` to the Dart `InstanceManager`. + * An implementation of [PigeonApiObserver] used to add a new Dart instance of `Observer` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiObserver(): PigeonApiObserver /** - * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of - * `CameraInfo` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of `CameraInfo` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraInfo(): PigeonApiCameraInfo @@ -443,17 +442,16 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiProcessCameraProvider(): PigeonApiProcessCameraProvider /** - * An implementation of [PigeonApiUseCase] used to add a new Dart instance of - * `UseCase` to the Dart `InstanceManager`. + * An implementation of [PigeonApiUseCase] used to add a new Dart instance of `UseCase` to the + * Dart `InstanceManager`. */ - open fun getPigeonApiUseCase(): PigeonApiUseCase - { + open fun getPigeonApiUseCase(): PigeonApiUseCase { return PigeonApiUseCase(this) } /** - * An implementation of [PigeonApiCamera] used to add a new Dart instance of - * `Camera` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCamera] used to add a new Dart instance of `Camera` to the Dart + * `InstanceManager`. */ abstract fun getPigeonApiCamera(): PigeonApiCamera @@ -470,29 +468,28 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiDeviceOrientationManager(): PigeonApiDeviceOrientationManager /** - * An implementation of [PigeonApiPreview] used to add a new Dart instance of - * `Preview` to the Dart `InstanceManager`. + * An implementation of [PigeonApiPreview] used to add a new Dart instance of `Preview` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiPreview(): PigeonApiPreview /** - * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of - * `VideoCapture` to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of `VideoCapture` + * to the Dart `InstanceManager`. */ abstract fun getPigeonApiVideoCapture(): PigeonApiVideoCapture /** - * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of - * `VideoOutput` to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of `VideoOutput` to + * the Dart `InstanceManager`. */ - open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput - { + open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput { return PigeonApiVideoOutput(this) } /** - * An implementation of [PigeonApiRecorder] used to add a new Dart instance of - * `Recorder` to the Dart `InstanceManager`. + * An implementation of [PigeonApiRecorder] used to add a new Dart instance of `Recorder` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiRecorder(): PigeonApiRecorder @@ -509,14 +506,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiPendingRecording(): PigeonApiPendingRecording /** - * An implementation of [PigeonApiRecording] used to add a new Dart instance of - * `Recording` to the Dart `InstanceManager`. + * An implementation of [PigeonApiRecording] used to add a new Dart instance of `Recording` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiRecording(): PigeonApiRecording /** - * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of - * `ImageCapture` to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of `ImageCapture` + * to the Dart `InstanceManager`. */ abstract fun getPigeonApiImageCapture(): PigeonApiImageCapture @@ -539,8 +536,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiAspectRatioStrategy(): PigeonApiAspectRatioStrategy /** - * An implementation of [PigeonApiCameraState] used to add a new Dart instance of - * `CameraState` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraState] used to add a new Dart instance of `CameraState` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraState(): PigeonApiCameraState @@ -551,8 +548,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiExposureState(): PigeonApiExposureState /** - * An implementation of [PigeonApiZoomState] used to add a new Dart instance of - * `ZoomState` to the Dart `InstanceManager`. + * An implementation of [PigeonApiZoomState] used to add a new Dart instance of `ZoomState` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiZoomState(): PigeonApiZoomState @@ -563,8 +560,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiImageAnalysis(): PigeonApiImageAnalysis /** - * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of - * `Analyzer` to the Dart `InstanceManager`. + * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of `Analyzer` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiAnalyzer(): PigeonApiAnalyzer @@ -575,20 +572,20 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiCameraStateStateError(): PigeonApiCameraStateStateError /** - * An implementation of [PigeonApiLiveData] used to add a new Dart instance of - * `LiveData` to the Dart `InstanceManager`. + * An implementation of [PigeonApiLiveData] used to add a new Dart instance of `LiveData` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiLiveData(): PigeonApiLiveData /** - * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of - * `ImageProxy` to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of `ImageProxy` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiImageProxy(): PigeonApiImageProxy /** - * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of - * `PlaneProxy` to the Dart `InstanceManager`. + * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of `PlaneProxy` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiPlaneProxy(): PigeonApiPlaneProxy @@ -638,8 +635,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCaptureRequestKey] used to add a new Dart instance of * `CaptureRequestKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey - { + open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey { return PigeonApiCaptureRequestKey(this) } @@ -665,8 +661,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCameraCharacteristicsKey] used to add a new Dart instance of * `CameraCharacteristicsKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey - { + open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey { return PigeonApiCameraCharacteristicsKey(this) } @@ -689,33 +684,42 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory /** - * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart instance of - * `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. + * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart + * instance of `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. */ - abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): PigeonApiDisplayOrientedMeteringPointFactory + abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): + PigeonApiDisplayOrientedMeteringPointFactory fun setUp() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, instanceManager) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSize()) - PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraIntegerRange()) + PigeonApiCameraIntegerRange.setUpMessageHandlers( + binaryMessenger, getPigeonApiCameraIntegerRange()) PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPoint()) PigeonApiObserver.setUpMessageHandlers(binaryMessenger, getPigeonApiObserver()) PigeonApiCameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraInfo()) PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSelector()) - PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, getPigeonApiProcessCameraProvider()) + PigeonApiProcessCameraProvider.setUpMessageHandlers( + binaryMessenger, getPigeonApiProcessCameraProvider()) PigeonApiCamera.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera()) - PigeonApiSystemServicesManager.setUpMessageHandlers(binaryMessenger, getPigeonApiSystemServicesManager()) - PigeonApiDeviceOrientationManager.setUpMessageHandlers(binaryMessenger, getPigeonApiDeviceOrientationManager()) + PigeonApiSystemServicesManager.setUpMessageHandlers( + binaryMessenger, getPigeonApiSystemServicesManager()) + PigeonApiDeviceOrientationManager.setUpMessageHandlers( + binaryMessenger, getPigeonApiDeviceOrientationManager()) PigeonApiPreview.setUpMessageHandlers(binaryMessenger, getPigeonApiPreview()) PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoCapture()) PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, getPigeonApiRecorder()) - PigeonApiVideoRecordEventListener.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoRecordEventListener()) + PigeonApiVideoRecordEventListener.setUpMessageHandlers( + binaryMessenger, getPigeonApiVideoRecordEventListener()) PigeonApiPendingRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiPendingRecording()) PigeonApiRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiRecording()) PigeonApiImageCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiImageCapture()) - PigeonApiResolutionStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionStrategy()) - PigeonApiResolutionSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionSelector()) - PigeonApiAspectRatioStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiAspectRatioStrategy()) + PigeonApiResolutionStrategy.setUpMessageHandlers( + binaryMessenger, getPigeonApiResolutionStrategy()) + PigeonApiResolutionSelector.setUpMessageHandlers( + binaryMessenger, getPigeonApiResolutionSelector()) + PigeonApiAspectRatioStrategy.setUpMessageHandlers( + binaryMessenger, getPigeonApiAspectRatioStrategy()) PigeonApiImageAnalysis.setUpMessageHandlers(binaryMessenger, getPigeonApiImageAnalysis()) PigeonApiAnalyzer.setUpMessageHandlers(binaryMessenger, getPigeonApiAnalyzer()) PigeonApiLiveData.setUpMessageHandlers(binaryMessenger, getPigeonApiLiveData()) @@ -723,16 +727,24 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiQualitySelector.setUpMessageHandlers(binaryMessenger, getPigeonApiQualitySelector()) PigeonApiFallbackStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiFallbackStrategy()) PigeonApiCameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraControl()) - PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers(binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) + PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers( + binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) PigeonApiCaptureRequest.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequest()) - PigeonApiCaptureRequestOptions.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequestOptions()) - PigeonApiCamera2CameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraControl()) + PigeonApiCaptureRequestOptions.setUpMessageHandlers( + binaryMessenger, getPigeonApiCaptureRequestOptions()) + PigeonApiCamera2CameraControl.setUpMessageHandlers( + binaryMessenger, getPigeonApiCamera2CameraControl()) PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionFilter()) - PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraCharacteristics()) - PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraInfo()) - PigeonApiMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPointFactory()) - PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) + PigeonApiCameraCharacteristics.setUpMessageHandlers( + binaryMessenger, getPigeonApiCameraCharacteristics()) + PigeonApiCamera2CameraInfo.setUpMessageHandlers( + binaryMessenger, getPigeonApiCamera2CameraInfo()) + PigeonApiMeteringPointFactory.setUpMessageHandlers( + binaryMessenger, getPigeonApiMeteringPointFactory()) + PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers( + binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) } + fun tearDown() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, null) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, null) @@ -773,17 +785,17 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, null) } } -private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibraryPigeonProxyApiRegistrar) : CameraXLibraryPigeonCodec() { + +private class CameraXLibraryPigeonProxyApiBaseCodec( + val registrar: CameraXLibraryPigeonProxyApiRegistrar +) : CameraXLibraryPigeonCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { val identifier: Long = readValue(buffer) as Long val instance: Any? = registrar.instanceManager.getInstance(identifier) if (instance == null) { - Log.e( - "PigeonProxyApiBaseCodec", - "Failed to find instance with identifier: $identifier" - ) + Log.e("PigeonProxyApiBaseCodec", "Failed to find instance with identifier: $identifier") } return instance } @@ -792,163 +804,136 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar } override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { - if (value is Boolean || value is ByteArray || value is Double || value is DoubleArray || value is FloatArray || value is Int || value is IntArray || value is List<*> || value is Long || value is LongArray || value is Map<*, *> || value is String || value is InfoSupportedHardwareLevel || value is AspectRatio || value is CameraStateType || value is LiveDataSupportedType || value is VideoQuality || value is MeteringMode || value is LensFacing || value is CameraXFlashMode || value is ResolutionStrategyFallbackRule || value is AspectRatioStrategyFallbackRule || value is CameraStateErrorCode || value == null) { + if (value is Boolean || + value is ByteArray || + value is Double || + value is DoubleArray || + value is FloatArray || + value is Int || + value is IntArray || + value is List<*> || + value is Long || + value is LongArray || + value is Map<*, *> || + value is String || + value is InfoSupportedHardwareLevel || + value is AspectRatio || + value is CameraStateType || + value is LiveDataSupportedType || + value is VideoQuality || + value is MeteringMode || + value is LensFacing || + value is CameraXFlashMode || + value is ResolutionStrategyFallbackRule || + value is AspectRatioStrategyFallbackRule || + value is CameraStateErrorCode || + value == null) { super.writeValue(stream, value) return } if (value is android.util.Size) { - registrar.getPigeonApiCameraSize().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ResolutionInfo) { - registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) { } - } - else if (value is android.util.Range<*>) { - registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent.Start) { - registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { - registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent) { - registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.MeteringPoint) { - registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) { } - } - else if (value is androidx.lifecycle.Observer<*>) { - registrar.getPigeonApiObserver().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraInfo) { - registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraSelector) { - registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { - registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.Camera) { - registrar.getPigeonApiCamera().pigeon_newInstance(value) { } - } - else if (value is SystemServicesManager) { - registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) { } - } - else if (value is DeviceOrientationManager) { - registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.Preview) { - registrar.getPigeonApiPreview().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoCapture<*>) { - registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.Recorder) { - registrar.getPigeonApiRecorder().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoOutput) { - registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) { } - } - else if (value is VideoRecordEventListener) { - registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.PendingRecording) { - registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.Recording) { - registrar.getPigeonApiRecording().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageCapture) { - registrar.getPigeonApiImageCapture().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { - registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { - registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { - registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraState) { - registrar.getPigeonApiCameraState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ExposureState) { - registrar.getPigeonApiExposureState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ZoomState) { - registrar.getPigeonApiZoomState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageAnalysis) { - registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.UseCase) { - registrar.getPigeonApiUseCase().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { - registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraState.StateError) { - registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) { } - } - else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { - registrar.getPigeonApiLiveData().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageProxy) { - registrar.getPigeonApiImageProxy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { - registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.QualitySelector) { - registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.FallbackStrategy) { - registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraControl) { - registrar.getPigeonApiCameraControl().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringAction.Builder) { - registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringAction) { - registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringResult) { - registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CaptureRequest) { - registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { - registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { - registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { - registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { - registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { - registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CameraCharacteristics) { - registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { - registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { - registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.MeteringPointFactory) { - registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) { } + registrar.getPigeonApiCameraSize().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ResolutionInfo) { + registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) {} + } else if (value is android.util.Range<*>) { + registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent.Start) { + registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { + registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent) { + registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.MeteringPoint) { + registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) {} + } else if (value is androidx.lifecycle.Observer<*>) { + registrar.getPigeonApiObserver().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraInfo) { + registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraSelector) { + registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { + registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.Camera) { + registrar.getPigeonApiCamera().pigeon_newInstance(value) {} + } else if (value is SystemServicesManager) { + registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) {} + } else if (value is DeviceOrientationManager) { + registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.Preview) { + registrar.getPigeonApiPreview().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoCapture<*>) { + registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.Recorder) { + registrar.getPigeonApiRecorder().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoOutput) { + registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) {} + } else if (value is VideoRecordEventListener) { + registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.PendingRecording) { + registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.Recording) { + registrar.getPigeonApiRecording().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageCapture) { + registrar.getPigeonApiImageCapture().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { + registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { + registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { + registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraState) { + registrar.getPigeonApiCameraState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ExposureState) { + registrar.getPigeonApiExposureState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ZoomState) { + registrar.getPigeonApiZoomState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageAnalysis) { + registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.UseCase) { + registrar.getPigeonApiUseCase().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { + registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraState.StateError) { + registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) {} + } else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { + registrar.getPigeonApiLiveData().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageProxy) { + registrar.getPigeonApiImageProxy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { + registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.QualitySelector) { + registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.FallbackStrategy) { + registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraControl) { + registrar.getPigeonApiCameraControl().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringAction.Builder) { + registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringAction) { + registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringResult) { + registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CaptureRequest) { + registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { + registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { + registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { + registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { + registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { + registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CameraCharacteristics) { + registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { + registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { + registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.MeteringPointFactory) { + registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) {} } when { @@ -956,7 +941,9 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar stream.write(128) writeValue(stream, registrar.instanceManager.getIdentifierForStrongReference(value)) } - else -> throw IllegalArgumentException("Unsupported value: '$value' of type '${value.javaClass.name}'") + else -> + throw IllegalArgumentException( + "Unsupported value: '$value' of type '${value.javaClass.name}'") } } } @@ -964,27 +951,22 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar /** * Generally classifies the overall set of the camera device functionality. * - * See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. + * See + * https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. */ enum class InfoSupportedHardwareLevel(val raw: Int) { /** - * This camera device is capable of YUV reprocessing and RAW data capture, in - * addition to FULL-level capabilities. + * This camera device is capable of YUV reprocessing and RAW data capture, in addition to + * FULL-level capabilities. */ LEVEL3(0), - /** - * This camera device is backed by an external camera connected to this - * Android device. - */ + /** This camera device is backed by an external camera connected to this Android device. */ EXTERNAL(1), /** This camera device is capable of supporting advanced imaging applications. */ FULL(2), /** This camera device is running in backward compatibility mode. */ LEGACY(3), - /** - * This camera device does not have enough capabilities to qualify as a FULL - * device or better. - */ + /** This camera device does not have enough capabilities to qualify as a FULL device or better. */ LIMITED(4); companion object { @@ -1031,8 +1013,8 @@ enum class CameraStateType(val raw: Int) { /** Represents a state where the camera device is currently opening. */ OPENING(3), /** - * Represents a state where the camera is waiting for a signal to attempt to - * open the camera device. + * Represents a state where the camera is waiting for a signal to attempt to open the camera + * device. */ PENDING_OPEN(4), /** This value is not recognized by this wrapper. */ @@ -1058,8 +1040,8 @@ enum class LiveDataSupportedType(val raw: Int) { } /** - * Video quality constraints that will be used by a QualitySelector to choose - * an appropriate video resolution. + * Video quality constraints that will be used by a QualitySelector to choose an appropriate video + * resolution. * * These are pre-defined quality constants that are universally used for video. * @@ -1089,23 +1071,15 @@ enum class VideoQuality(val raw: Int) { /** * A flag used for indicating metering mode regions. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). */ enum class MeteringMode(val raw: Int) { - /** - * A flag used in metering mode indicating the AE (Auto Exposure) region is - * enabled. - */ + /** A flag used in metering mode indicating the AE (Auto Exposure) region is enabled. */ AE(0), - /** - * A flag used in metering mode indicating the AF (Auto Focus) region is - * enabled. - */ + /** A flag used in metering mode indicating the AF (Auto Focus) region is enabled. */ AF(1), - /** - * A flag used in metering mode indicating the AWB (Auto White Balance) - * region is enabled. - */ + /** A flag used in metering mode indicating the AWB (Auto White Balance) region is enabled. */ AWB(2); companion object { @@ -1118,20 +1092,15 @@ enum class MeteringMode(val raw: Int) { /** * Direction of lens of a camera. * - * See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). + * See + * https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). */ enum class LensFacing(val raw: Int) { /** A camera on the device facing the same direction as the device's screen. */ FRONT(0), - /** - * A camera on the device facing the opposite direction as the device's - * screen. - */ + /** A camera on the device facing the opposite direction as the device's screen. */ BACK(1), - /** - * An external camera that has no fixed facing relative to the device's - * screen. - */ + /** An external camera that has no fixed facing relative to the device's screen. */ EXTERNAL(2), /** A camera on the devices that its lens facing is resolved. */ UNKNOWN(3); @@ -1146,14 +1115,14 @@ enum class LensFacing(val raw: Int) { /** * FlashModes for image capture. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). */ enum class CameraXFlashMode(val raw: Int) { /** * Auto flash. * - * The flash will be used according to the camera system's determination when - * taking a picture. + * The flash will be used according to the camera system's determination when taking a picture. */ AUTO(0), /** @@ -1177,36 +1146,33 @@ enum class CameraXFlashMode(val raw: Int) { } /** - * Fallback rule for choosing an alternate size when the specified bound size - * is unavailable. + * Fallback rule for choosing an alternate size when the specified bound size is unavailable. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ enum class ResolutionStrategyFallbackRule(val raw: Int) { /** - * When the specified bound size is unavailable, CameraX falls back to the - * closest higher resolution size. + * When the specified bound size is unavailable, CameraX falls back to the closest higher + * resolution size. */ CLOSEST_HIGHER(0), /** - * When the specified bound size is unavailable, CameraX falls back to select - * the closest higher resolution size. + * When the specified bound size is unavailable, CameraX falls back to select the closest higher + * resolution size. */ CLOSEST_HIGHER_THEN_LOWER(1), /** - * When the specified bound size is unavailable, CameraX falls back to the - * closest lower resolution size. + * When the specified bound size is unavailable, CameraX falls back to the closest lower + * resolution size. */ CLOSEST_LOWER(2), /** - * When the specified bound size is unavailable, CameraX falls back to select - * the closest lower resolution size. + * When the specified bound size is unavailable, CameraX falls back to select the closest lower + * resolution size. */ CLOSEST_LOWER_THEN_HIGHER(3), - /** - * CameraX doesn't select an alternate size when the specified bound size is - * unavailable. - */ + /** CameraX doesn't select an alternate size when the specified bound size is unavailable. */ NONE(4), /** The value is not recognized by the wrapper. */ UNKNOWN(5); @@ -1219,21 +1185,20 @@ enum class ResolutionStrategyFallbackRule(val raw: Int) { } /** - * Fallback rule for choosing the aspect ratio when the preferred aspect ratio - * is not available. + * Fallback rule for choosing the aspect ratio when the preferred aspect ratio is not available. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). */ enum class AspectRatioStrategyFallbackRule(val raw: Int) { /** - * CameraX automatically chooses the next best aspect ratio which contains - * the closest field of view (FOV) of the camera sensor, from the remaining - * options. + * CameraX automatically chooses the next best aspect ratio which contains the closest field of + * view (FOV) of the camera sensor, from the remaining options. */ AUTO(0), /** - * CameraX doesn't fall back to select sizes of any other aspect ratio when - * this fallback rule is used. + * CameraX doesn't fall back to select sizes of any other aspect ratio when this fallback rule is + * used. */ NONE(1), /** The value is not recognized by the wrapper. */ @@ -1252,34 +1217,23 @@ enum class AspectRatioStrategyFallbackRule(val raw: Int) { * https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() */ enum class CameraStateErrorCode(val raw: Int) { - /** - * An error indicating that the camera device could not be opened due to a - * device policy. - */ + /** An error indicating that the camera device could not be opened due to a device policy. */ CAMERA_DISABLED(0), - /** - * An error indicating that the camera device was closed due to a fatal - * error. - */ + /** An error indicating that the camera device was closed due to a fatal error. */ CAMERA_FATAL_ERROR(1), /** An error indicating that the camera device is already in use. */ CAMERA_IN_USE(2), /** - * An error indicating that the camera could not be opened because "Do Not - * Disturb" mode is enabled on devices affected by a bug in Android 9 (API - * level 28). + * An error indicating that the camera could not be opened because "Do Not Disturb" mode is + * enabled on devices affected by a bug in Android 9 (API level 28). */ DO_NOT_DISTURB_MODE_ENABLED(3), /** - * An error indicating that the limit number of open cameras has been - * reached, and more cameras cannot be opened until other instances are - * closed. + * An error indicating that the limit number of open cameras has been reached, and more cameras + * cannot be opened until other instances are closed. */ MAX_CAMERAS_IN_USE(4), - /** - * An error indicating that the camera device has encountered a recoverable - * error. - */ + /** An error indicating that the camera device has encountered a recoverable error. */ OTHER_RECOVERABLE_ERROR(5), /** An error indicating that configuring the camera has failed. */ STREAM_CONFIG(6), @@ -1292,48 +1246,33 @@ enum class CameraStateErrorCode(val raw: Int) { } } } + private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 129.toByte() -> { - return (readValue(buffer) as Long?)?.let { - InfoSupportedHardwareLevel.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { InfoSupportedHardwareLevel.ofRaw(it.toInt()) } } 130.toByte() -> { - return (readValue(buffer) as Long?)?.let { - AspectRatio.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { AspectRatio.ofRaw(it.toInt()) } } 131.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraStateType.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraStateType.ofRaw(it.toInt()) } } 132.toByte() -> { - return (readValue(buffer) as Long?)?.let { - LiveDataSupportedType.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { LiveDataSupportedType.ofRaw(it.toInt()) } } 133.toByte() -> { - return (readValue(buffer) as Long?)?.let { - VideoQuality.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { VideoQuality.ofRaw(it.toInt()) } } 134.toByte() -> { - return (readValue(buffer) as Long?)?.let { - MeteringMode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { MeteringMode.ofRaw(it.toInt()) } } 135.toByte() -> { - return (readValue(buffer) as Long?)?.let { - LensFacing.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { LensFacing.ofRaw(it.toInt()) } } 136.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraXFlashMode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraXFlashMode.ofRaw(it.toInt()) } } 137.toByte() -> { return (readValue(buffer) as Long?)?.let { @@ -1346,14 +1285,13 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { } } 139.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraStateErrorCode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraStateErrorCode.ofRaw(it.toInt()) } } else -> super.readValueOfType(type, buffer) } } - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is InfoSupportedHardwareLevel -> { stream.write(129) @@ -1410,7 +1348,9 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { * See https://developer.android.com/reference/android/util/Size.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraSize( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(width: Long, height: Long): android.util.Size /** The width of the size (in pixels). */ @@ -1424,19 +1364,25 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSize?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val widthArg = args[1] as Long val heightArg = args[2] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(widthArg,heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(widthArg, heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1448,16 +1394,16 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) -{ + fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -1467,221 +1413,67 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, widthArg, heightArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraSize}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraSizeProxyApi extends PigeonApiCameraSize { - CameraSizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraSize pigeon_defaultConstructor(@NonNull Long width, @NonNull Long height) { - return CameraSize(); - } - - @NonNull - @Override - public Long width(CameraSize pigeon_instance) { - return pigeon_instance.getWidth(); - } - - @NonNull - @Override - public Long height(CameraSize pigeon_instance) { - return pigeon_instance.getHeight(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraSizeProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); - - assertTrue(api.pigeon_defaultConstructor() instanceof CameraSizeProxyApi.CameraSize); - } - - @Test - public void width() { - final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); - - final CameraSize instance = mock(CameraSize.class); - final Long value = 0; - when(instance.getWidth()).thenReturn(value); - - assertEquals(value, api.width(instance)); - } - - @Test - public void height() { - final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); - - final CameraSize instance = mock(CameraSize.class); - final Long value = 0; - when(instance.getHeight()).thenReturn(value); - - assertEquals(value, api.height(instance)); - } - } -*/ /** - * A `ResolutionInfo` allows the application to know the resolution information - * of a specific use case. + * A `ResolutionInfo` allows the application to know the resolution information of a specific use + * case. * * See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiResolutionInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Returns the output resolution used for the use case. */ abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ResolutionInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionArg = resolution(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, resolutionArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ResolutionInfo; -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ResolutionInfo}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ResolutionInfoProxyApi extends PigeonApiResolutionInfo { - ResolutionInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public android.util.Size resolution(ResolutionInfo pigeon_instance) { - return pigeon_instance.getResolution(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ResolutionInfo -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionInfoProxyApiTest { - @Test - public void resolution() { - final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); - - final ResolutionInfo instance = mock(ResolutionInfo.class); - final android.util.Size value = mock(CameraSize.class); - when(instance.getResolution()).thenReturn(value); - - assertEquals(value, api.resolution(instance)); - } - } -*/ /** * Immutable class for describing the range of two integer values. * @@ -1690,7 +1482,9 @@ public class ResolutionInfoProxyApiTest { * See https://developer.android.com/reference/android/util/Range.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraIntegerRange( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(lower: Long, upper: Long): android.util.Range<*> /** The lower endpoint. */ @@ -1704,19 +1498,25 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraIntegerRange?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val lowerArg = args[1] as Long val upperArg = args[2] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(lowerArg,upperArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(lowerArg, upperArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1728,413 +1528,202 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Range<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.util.Range<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val lowerArg = lower(pigeon_instanceArg) val upperArg = upper(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, lowerArg, upperArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.util.Range<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraIntegerRange}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraIntegerRangeProxyApi extends PigeonApiCameraIntegerRange { - CameraIntegerRangeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraIntegerRange pigeon_defaultConstructor(@NonNull Long lower, @NonNull Long upper) { - return CameraIntegerRange(); - } - - @NonNull - @Override - public Long lower(CameraIntegerRange pigeon_instance) { - return pigeon_instance.getLower(); - } - - @NonNull - @Override - public Long upper(CameraIntegerRange pigeon_instance) { - return pigeon_instance.getUpper(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.util.Range<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraIntegerRangeProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); - - assertTrue(api.pigeon_defaultConstructor() instanceof CameraIntegerRangeProxyApi.CameraIntegerRange); - } - - @Test - public void lower() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); - - final CameraIntegerRange instance = mock(CameraIntegerRange.class); - final Long value = 0; - when(instance.getLower()).thenReturn(value); - - assertEquals(value, api.lower(instance)); - } - - @Test - public void upper() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); - - final CameraIntegerRange instance = mock(CameraIntegerRange.class); - final Long value = 0; - when(instance.getUpper()).thenReturn(value); - - assertEquals(value, api.upper(instance)); - } - } -*/ /** * VideoRecordEvent is used to report video recording events and status. * * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEvent( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEvent}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventProxyApi extends PigeonApiVideoRecordEvent { - VideoRecordEventProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventProxyApiTest { } -*/ /** * Indicates the start of recording. * * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Start. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEventStart( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } - } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent.Start; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - /** - * ProxyApi implementation for {@link VideoRecordEventStart}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventStartProxyApi extends PigeonApiVideoRecordEventStart { - VideoRecordEventStartProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent.Start -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventStartProxyApiTest { -} -*/ -/** - * Indicates the finalization of recording. - * - * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. + * Indicates the finalization of recording. + * + * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEventFinalize( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent.Finalize; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEventFinalize}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventFinalizeProxyApi extends PigeonApiVideoRecordEventFinalize { - VideoRecordEventFinalizeProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - } -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent.Finalize -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventFinalizeProxyApiTest { -} -*/ /** - * A MeteringPoint is used to specify a region which can then be converted to - * sensor coordinate system for focus and metering purpose. + * A MeteringPoint is used to specify a region which can then be converted to sensor coordinate + * system for focus and metering purpose. * * See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiMeteringPoint( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Size of the MeteringPoint width and height (ranging from 0 to 1). * - * It is the percentage of the sensor width/height (or crop region - * width/height if crop region is set). + * It is the percentage of the sensor width/height (or crop region width/height if crop region is + * set). */ abstract fun getSize(pigeon_instance: androidx.camera.core.MeteringPoint): Double @@ -2143,16 +1732,21 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPoint?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - listOf(api.getSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2164,16 +1758,19 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPoint and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPoint, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.MeteringPoint, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" @@ -2181,82 +1778,18 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.MeteringPoint; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link MeteringPoint}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class MeteringPointProxyApi extends PigeonApiMeteringPoint { - MeteringPointProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Double getSize(MeteringPoint pigeon_instance) { - return pigeon_instance.getSize(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.MeteringPoint -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class MeteringPointProxyApiTest { - @Test - public void getSize() { - final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); - - final MeteringPoint instance = mock(MeteringPoint.class); - final Double value = 1.0; - when(instance.getSize()).thenReturn(value); - - assertEquals(value, api.getSize(instance )); - } - } -*/ /** * A simple callback that can receive from LiveData. * @@ -2271,17 +1804,23 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiObserver?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2293,24 +1832,32 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Observer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.lifecycle.Observer<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.lifecycle.Observer<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.", + ""))) } } /** Called when the data is changed to value. */ - fun onChanged(pigeon_instanceArg: androidx.lifecycle.Observer<*>, valueArg: Any, callback: (Result) -> Unit) -{ + fun onChanged( + pigeon_instanceArg: androidx.lifecycle.Observer<*>, + valueArg: Any, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2330,131 +1877,60 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.lifecycle.Observer<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Observer}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ObserverProxyApi extends PigeonApiObserver { - ObserverProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link Observer} that passes arguments of callback methods to Dart. */ - static class ObserverImpl extends Observer { - private final ObserverProxyApi api; - ObserverImpl(@NonNull ObserverProxyApi api) { - this.api = api; - } - @Override - public void onChanged(@NonNull Any value) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onChanged(this, value, reply -> null)); + } } } - - @NonNull - @Override - public Observer pigeon_defaultConstructor() { - return ObserverImpl(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.lifecycle.Observer<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ObserverProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); - - assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.ObserverImpl); - } - - @Test - public void onChanged() { - final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final ObserverImpl instance = new ObserverImpl(mockApi); - final Any value = -1; - instance.onChanged(value); - - verify(mockApi).onChanged(eq(instance), eq(value), any()); - } - } -*/ /** * An interface for retrieving camera information. * * See https://developer.android.com/reference/androidx/camera/core/CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Returns the sensor rotation in degrees, relative to the device's "natural" - * (default) orientation. + * Returns the sensor rotation in degrees, relative to the device's "natural" (default) + * orientation. */ abstract fun sensorRotationDegrees(pigeon_instance: androidx.camera.core.CameraInfo): Long /** Returns a ExposureState. */ - abstract fun exposureState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.camera.core.ExposureState + abstract fun exposureState( + pigeon_instance: androidx.camera.core.CameraInfo + ): androidx.camera.core.ExposureState /** A LiveData of the camera's state. */ - abstract fun getCameraState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getCameraState( + pigeon_instance: androidx.camera.core.CameraInfo + ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper /** A LiveData of ZoomState. */ - abstract fun getZoomState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getZoomState( + pigeon_instance: androidx.camera.core.CameraInfo + ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = try { - listOf(api.getCameraState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2462,16 +1938,21 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = try { - listOf(api.getZoomState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getZoomState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2483,16 +1964,19 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) val exposureStateArg = exposureState(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -2502,146 +1986,30 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, sensorRotationDegreesArg, exposureStateArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraInfo; -import androidx.camera.core.ExposureState; -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraInfo}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraInfoProxyApi extends PigeonApiCameraInfo { - CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Long sensorRotationDegrees(CameraInfo pigeon_instance) { - return pigeon_instance.getSensorRotationDegrees(); - } - - @NonNull - @Override - public androidx.camera.core.ExposureState exposureState(CameraInfo pigeon_instance) { - return pigeon_instance.getExposureState(); - } - - @NonNull - @Override - public io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper getCameraState(CameraInfo pigeon_instance) { - return pigeon_instance.getCameraState(); - } - - @NonNull - @Override - public io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper getZoomState(CameraInfo pigeon_instance) { - return pigeon_instance.getZoomState(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraInfo -import androidx.camera.core.ExposureState -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraInfoProxyApiTest { - @Test - public void sensorRotationDegrees() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final Long value = 0; - when(instance.getSensorRotationDegrees()).thenReturn(value); - - assertEquals(value, api.sensorRotationDegrees(instance)); - } - - @Test - public void exposureState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final androidx.camera.core.ExposureState value = mock(ExposureState.class); - when(instance.getExposureState()).thenReturn(value); - - assertEquals(value, api.exposureState(instance)); - } - - @Test - public void getCameraState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); - when(instance.getCameraState()).thenReturn(value); - - assertEquals(value, api.getCameraState(instance )); - } - - @Test - public void getZoomState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); - when(instance.getZoomState()).thenReturn(value); - - assertEquals(value, api.getZoomState(instance )); - } - } -*/ /** - * A set of requirements and priorities used to select a camera or return a - * filtered set of cameras. + * A set of requirements and priorities used to select a camera or return a filtered set of cameras. * * See https://developer.android.com/reference/androidx/camera/core/CameraSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(requireLensFacing: LensFacing?): androidx.camera.core.CameraSelector +abstract class PigeonApiCameraSelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + requireLensFacing: LensFacing? + ): androidx.camera.core.CameraSelector /** A static `CameraSelector` that selects the default back facing camera. */ abstract fun defaultBackCamera(): androidx.camera.core.CameraSelector @@ -2649,29 +2017,35 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP /** A static `CameraSelector` that selects the default front facing camera. */ abstract fun defaultFrontCamera(): androidx.camera.core.CameraSelector - /** - * Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the - * selector. - */ - abstract fun filter(pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List): List + /** Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the selector. */ + abstract fun filter( + pigeon_instance: androidx.camera.core.CameraSelector, + cameraInfos: List + ): List companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val requireLensFacingArg = args[1] as LensFacing? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2679,17 +2053,23 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultBackCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.defaultBackCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2697,17 +2077,23 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultFrontCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.defaultFrontCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2715,17 +2101,22 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraSelector val cameraInfosArg = args[1] as List - val wrapped: List = try { - listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2737,165 +2128,97 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraSelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraSelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraSelector; -import androidx.camera.core.CameraInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraSelector}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraSelectorProxyApi extends PigeonApiCameraSelector { - CameraSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraSelector pigeon_defaultConstructor(@Nullable LensFacing? requireLensFacing) { - return CameraSelector(requireLensFacing); - } - - @NonNull - @Override - public androidx.camera.core.CameraSelector defaultBackCamera() { - return CameraSelector.getDefaultBackCamera(); - } - - @NonNull - @Override - public androidx.camera.core.CameraSelector defaultFrontCamera() { - return CameraSelector.getDefaultFrontCamera(); - } - - @NonNull - @Override - public List filter(CameraSelector, pigeon_instance@NonNull List cameraInfos) { - return pigeon_instance.filter(cameraInfos); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraSelector -import androidx.camera.core.CameraInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraSelectorProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); - - assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT) instanceof CameraSelectorProxyApi.CameraSelector); - } - - @Test - public void filter() { - final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); - - final CameraSelector instance = mock(CameraSelector.class); - final List cameraInfos = Arrays.asList(mock(CameraInfo.class)); - final List value = Arrays.asList(mock(CameraInfo.class)); - when(instance.filter(cameraInfos)).thenReturn(value); - - assertEquals(value, api.filter(instance, cameraInfos)); - } - } -*/ /** - * A singleton which can be used to bind the lifecycle of cameras to any - * `LifecycleOwner` within an application's process. + * A singleton which can be used to bind the lifecycle of cameras to any `LifecycleOwner` within an + * application's process. * * See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiProcessCameraProvider( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Retrieves the ProcessCameraProvider associated with the current process. */ - abstract fun getInstance(callback: (Result) -> Unit) + abstract fun getInstance( + callback: (Result) -> Unit + ) /** The `CameraInfo` instances of the available cameras. */ - abstract fun getAvailableCameraInfos(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider): List + abstract fun getAvailableCameraInfos( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider + ): List /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ - abstract fun bindToLifecycle(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelector: androidx.camera.core.CameraSelector, useCases: List): androidx.camera.core.Camera + abstract fun bindToLifecycle( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + cameraSelector: androidx.camera.core.CameraSelector, + useCases: List + ): androidx.camera.core.Camera /** Returns true if the `UseCase` is bound to a lifecycle. */ - abstract fun isBound(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase): Boolean + abstract fun isBound( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + useCase: androidx.camera.core.UseCase + ): Boolean /** Unbinds all specified use cases from the lifecycle provider. */ - abstract fun unbind(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCases: List) + abstract fun unbind( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + useCases: List + ) - /** - * Unbinds all use cases from the lifecycle provider and removes them from - * CameraX. - */ + /** Unbinds all use cases from the lifecycle provider and removes them from CameraX. */ abstract fun unbindAll(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiProcessCameraProvider?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiProcessCameraProvider? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", + codec) if (api != null) { channel.setMessageHandler { _, reply -> - api.getInstance{ result: Result -> + api.getInstance { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -2910,16 +2233,21 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = try { - listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2927,18 +2255,23 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val cameraSelectorArg = args[1] as androidx.camera.core.CameraSelector val useCasesArg = args[2] as List - val wrapped: List = try { - listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2946,17 +2279,22 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCaseArg = args[1] as androidx.camera.core.UseCase - val wrapped: List = try { - listOf(api.isBound(pigeon_instanceArg, useCaseArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.isBound(pigeon_instanceArg, useCaseArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2964,18 +2302,23 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCasesArg = args[1] as List - val wrapped: List = try { - api.unbind(pigeon_instanceArg, useCasesArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.unbind(pigeon_instanceArg, useCasesArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2983,17 +2326,22 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = try { - api.unbindAll(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.unbindAll(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3005,296 +2353,118 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.lifecycle.ProcessCameraProvider; -import androidx.camera.core.UseCase; -import androidx.camera.core.CameraSelector; -import androidx.camera.core.CameraInfo; -import androidx.camera.core.Camera; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - /** - * ProxyApi implementation for {@link ProcessCameraProvider}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. + * The use case which all other use cases are built on top of. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase. */ -class ProcessCameraProviderProxyApi extends PigeonApiProcessCameraProvider { - ProcessCameraProviderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public androidx.camera.lifecycle.ProcessCameraProvider getInstance() { - return ProcessCameraProvider.getInstance(); - } - - @NonNull - @Override - public List getAvailableCameraInfos(ProcessCameraProvider pigeon_instance) { - return pigeon_instance.getAvailableCameraInfos(); +@Suppress("UNCHECKED_CAST") +open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.UseCase, + callback: (Result) -> Unit + ) { + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } } +} +/** + * The camera interface is used to control the flow of data to use cases, control the camera via the + * `CameraControl`, and publish the state of the camera via CameraInfo. + * + * See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** The `CameraControl` for the Camera. */ + abstract fun cameraControl( + pigeon_instance: androidx.camera.core.Camera + ): androidx.camera.core.CameraControl - @NonNull - @Override - public androidx.camera.core.Camera bindToLifecycle(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.CameraSelector cameraSelector, @NonNull List useCases) { - return pigeon_instance.bindToLifecycle(cameraSelector, useCases); - } - - @NonNull - @Override - public Boolean isBound(ProcessCameraProvider, pigeon_instance@NonNull androidx.camera.core.UseCase useCase) { - return pigeon_instance.isBound(useCase); - } - - @Override - public Void unbind(ProcessCameraProvider, pigeon_instance@NonNull List useCases) { - pigeon_instance.unbind(useCases); - } - - @Override - public Void unbindAll(ProcessCameraProvider pigeon_instance) { - pigeon_instance.unbindAll(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.lifecycle.ProcessCameraProvider -import androidx.camera.core.UseCase -import androidx.camera.core.CameraSelector -import androidx.camera.core.CameraInfo -import androidx.camera.core.Camera -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ProcessCameraProviderProxyApiTest { - @Test - public void getAvailableCameraInfos() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final List value = Arrays.asList(mock(CameraInfo.class)); - when(instance.getAvailableCameraInfos()).thenReturn(value); - - assertEquals(value, api.getAvailableCameraInfos(instance )); - } - - @Test - public void bindToLifecycle() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); - final List useCases = Arrays.asList(mock(UseCase.class)); - final androidx.camera.core.Camera value = mock(Camera.class); - when(instance.bindToLifecycle(cameraSelector, useCases)).thenReturn(value); - - assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); - } - - @Test - public void isBound() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final androidx.camera.core.UseCase useCase = mock(UseCase.class); - final Boolean value = true; - when(instance.isBound(useCase)).thenReturn(value); - - assertEquals(value, api.isBound(instance, useCase)); - } - - @Test - public void unbind() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final List useCases = Arrays.asList(mock(UseCase.class)); - api.unbind(instance, useCases); - - verify(instance).unbind(useCases); - } - - @Test - public void unbindAll() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); - - final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - api.unbindAll(instance ); - - verify(instance).unbindAll(); - } - -} -*/ -/** - * The use case which all other use cases are built on top of. - * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/UseCase. - */ -@Suppress("UNCHECKED_CAST") -open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit) -{ - if (pigeonRegistrar.ignoreCallsToDart) { - callback( - Result.failure( - CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.UseCase; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link UseCase}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class UseCaseProxyApi extends PigeonApiUseCase { - UseCaseProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.UseCase -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class UseCaseProxyApiTest { -} -*/ -/** - * The camera interface is used to control the flow of data to use cases, - * control the camera via the `CameraControl`, and publish the state of the - * camera via CameraInfo. - * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. - */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** The `CameraControl` for the Camera. */ - abstract fun cameraControl(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraControl - - /** Returns information about this camera. */ - abstract fun getCameraInfo(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraInfo + /** Returns information about this camera. */ + abstract fun getCameraInfo( + pigeon_instance: androidx.camera.core.Camera + ): androidx.camera.core.CameraInfo companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Camera - val wrapped: List = try { - listOf(api.getCameraInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3306,16 +2476,19 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Camera, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.Camera, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val cameraControlArg = cameraControl(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -3324,130 +2497,64 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro channel.send(listOf(pigeon_identifierArg, cameraControlArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.Camera; -import androidx.camera.core.CameraControl; -import androidx.camera.core.CameraInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Camera}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraProxyApi extends PigeonApiCamera { - CameraProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public androidx.camera.core.CameraControl cameraControl(Camera pigeon_instance) { - return pigeon_instance.getCameraControl(); - } - - @NonNull - @Override - public androidx.camera.core.CameraInfo getCameraInfo(Camera pigeon_instance) { - return pigeon_instance.getCameraInfo(); - } - } -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.Camera -import androidx.camera.core.CameraControl -import androidx.camera.core.CameraInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraProxyApiTest { - @Test - public void cameraControl() { - final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); - - final Camera instance = mock(Camera.class); - final androidx.camera.core.CameraControl value = mock(CameraControl.class); - when(instance.getCameraControl()).thenReturn(value); - - assertEquals(value, api.cameraControl(instance)); - } - - @Test - public void getCameraInfo() { - final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); - - final Camera instance = mock(Camera.class); - final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); - when(instance.getCameraInfo()).thenReturn(value); - - assertEquals(value, api.getCameraInfo(instance )); - } - -} -*/ /** Convenience class for accessing system resources. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiSystemServicesManager( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): SystemServicesManager - abstract fun requestCameraPermissions(pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit) + abstract fun requestCameraPermissions( + pigeon_instance: SystemServicesManager, + enableAudio: Boolean, + callback: (Result) -> Unit + ) - abstract fun getTempFilePath(pigeon_instance: SystemServicesManager, prefix: String, suffix: String): String + abstract fun getTempFilePath( + pigeon_instance: SystemServicesManager, + prefix: String, + suffix: String + ): String abstract fun isPreviewPreTransformed(pigeon_instance: SystemServicesManager): Boolean companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiSystemServicesManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiSystemServicesManager? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3455,13 +2562,18 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val enableAudioArg = args[1] as Boolean - api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> + api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result + -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -3475,18 +2587,23 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val prefixArg = args[1] as String val suffixArg = args[2] as String - val wrapped: List = try { - listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3494,16 +2611,21 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager - val wrapped: List = try { - listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3515,23 +2637,31 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: SystemServicesManager, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: SystemServicesManager, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.", + ""))) } } - fun onCameraError(pigeon_instanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit) -{ + fun onCameraError( + pigeon_instanceArg: SystemServicesManager, + errorDescriptionArg: String, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3540,7 +2670,8 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, errorDescriptionArg)) { if (it is List<*>) { @@ -3551,155 +2682,24 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } else { callback(Result.failure(createConnectionError(channelName))) - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link SystemServicesManager}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManager { - SystemServicesManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link SystemServicesManager} that passes arguments of callback methods to Dart. */ - static class SystemServicesManagerImpl extends SystemServicesManager { - private final SystemServicesManagerProxyApi api; - SystemServicesManagerImpl(@NonNull SystemServicesManagerProxyApi api) { - this.api = api; - } - @Override - public void onCameraError(@NonNull String errorDescription) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onCameraError(this, errorDescription, reply -> null)); + } } } - - @NonNull - @Override - public SystemServicesManager pigeon_defaultConstructor() { - return SystemServicesManagerImpl(); - } - - @Override - public Void requestCameraPermissions(SystemServicesManager, pigeon_instance@NonNull Boolean enableAudio) { - pigeon_instance.requestCameraPermissions(enableAudio); - } - - @NonNull - @Override - public String getTempFilePath(SystemServicesManager, pigeon_instance@NonNull String prefix, @NonNull String suffix) { - return pigeon_instance.getTempFilePath(prefix, suffix); - } - - @NonNull - @Override - public Boolean isPreviewPreTransformed(SystemServicesManager pigeon_instance) { - return pigeon_instance.isPreviewPreTransformed(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - - -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class SystemServicesManagerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - assertTrue(api.pigeon_defaultConstructor() instanceof SystemServicesManagerProxyApi.SystemServicesManager); - } - - @Test - public void requestCameraPermissions() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = mock(SystemServicesManager.class); - final Boolean enableAudio = true; - api.requestCameraPermissions(instance, enableAudio); - - verify(instance).requestCameraPermissions(enableAudio); - } - - @Test - public void getTempFilePath() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = mock(SystemServicesManager.class); - final String prefix = "myString"; - final String suffix = "myString"; - final String value = "myString"; - when(instance.getTempFilePath(prefix, suffix)).thenReturn(value); - - assertEquals(value, api.getTempFilePath(instance, prefix, suffix)); - } - - @Test - public void isPreviewPreTransformed() { - final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = mock(SystemServicesManager.class); - final Boolean value = true; - when(instance.isPreviewPreTransformed()).thenReturn(value); - - assertEquals(value, api.isPreviewPreTransformed(instance )); - } - - @Test - public void onCameraError() { - final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final SystemServicesManagerImpl instance = new SystemServicesManagerImpl(mockApi); - final String errorDescription = "myString"; - instance.onCameraError(errorDescription); - - verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); - } - } -*/ /** - * Support class to help to determine the media orientation based on the - * orientation of the device. + * Support class to help to determine the media orientation based on the orientation of the device. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiDeviceOrientationManager( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager - abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager, isFrontFacing: Boolean, sensorOrientation: Long) + abstract fun startListeningForDeviceOrientationChange( + pigeon_instance: DeviceOrientationManager, + isFrontFacing: Boolean, + sensorOrientation: Long + ) abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) @@ -3709,20 +2709,29 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDeviceOrientationManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiDeviceOrientationManager? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3730,19 +2739,25 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager val isFrontFacingArg = args[1] as Boolean val sensorOrientationArg = args[2] as Long - val wrapped: List = try { - api.startListeningForDeviceOrientationChange(pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.startListeningForDeviceOrientationChange( + pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3750,17 +2765,22 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3768,16 +2788,21 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3785,16 +2810,21 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - listOf(api.getUiOrientation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getUiOrientation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3805,24 +2835,34 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: DeviceOrientationManager, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: DeviceOrientationManager, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.", + ""))) } } - fun onDeviceOrientationChanged(pigeon_instanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit) -{ + fun onDeviceOrientationChanged( + pigeon_instanceArg: DeviceOrientationManager, + orientationArg: String, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3831,7 +2871,8 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, orientationArg)) { if (it is List<*>) { @@ -3842,160 +2883,10 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link DeviceOrientationManager}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class DeviceOrientationManagerProxyApi extends PigeonApiDeviceOrientationManager { - DeviceOrientationManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to Dart. */ - static class DeviceOrientationManagerImpl extends DeviceOrientationManager { - private final DeviceOrientationManagerProxyApi api; - DeviceOrientationManagerImpl(@NonNull DeviceOrientationManagerProxyApi api) { - this.api = api; - } - @Override - public void onDeviceOrientationChanged(@NonNull String orientation) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onDeviceOrientationChanged(this, orientation, reply -> null)); - } - } - - @NonNull - @Override - public DeviceOrientationManager pigeon_defaultConstructor() { - return DeviceOrientationManagerImpl(); - } - - @Override - public Void startListeningForDeviceOrientationChange(DeviceOrientationManager, pigeon_instance@NonNull Boolean isFrontFacing, @NonNull Long sensorOrientation) { - pigeon_instance.startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); - } - - @Override - public Void stopListeningForDeviceOrientationChange(DeviceOrientationManager pigeon_instance) { - pigeon_instance.stopListeningForDeviceOrientationChange(); - } - - @NonNull - @Override - public Long getDefaultDisplayRotation(DeviceOrientationManager pigeon_instance) { - return pigeon_instance.getDefaultDisplayRotation(); - } - - @NonNull - @Override - public String getUiOrientation(DeviceOrientationManager pigeon_instance) { - return pigeon_instance.getUiOrientation(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - - -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class DeviceOrientationManagerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - assertTrue(api.pigeon_defaultConstructor() instanceof DeviceOrientationManagerProxyApi.DeviceOrientationManager); - } - - @Test - public void startListeningForDeviceOrientationChange() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final Boolean isFrontFacing = true; - final Long sensorOrientation = 0; - api.startListeningForDeviceOrientationChange(instance, isFrontFacing, sensorOrientation); - - verify(instance).startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); - } - - @Test - public void stopListeningForDeviceOrientationChange() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - api.stopListeningForDeviceOrientationChange(instance ); - - verify(instance).stopListeningForDeviceOrientationChange(); - } - - @Test - public void getDefaultDisplayRotation() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final Long value = 0; - when(instance.getDefaultDisplayRotation()).thenReturn(value); - - assertEquals(value, api.getDefaultDisplayRotation(instance )); - } - - @Test - public void getUiOrientation() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); - - final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final String value = "myString"; - when(instance.getUiOrientation()).thenReturn(value); - - assertEquals(value, api.getUiOrientation(instance )); - } - - @Test - public void onDeviceOrientationChanged() { - final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final DeviceOrientationManagerImpl instance = new DeviceOrientationManagerImpl(mockApi); - final String orientation = "myString"; - instance.onDeviceOrientationChanged(orientation); - - verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation), any()); - } - -} -*/ /** * A use case that provides a camera preview stream for displaying on-screen. * @@ -4003,30 +2894,35 @@ public class DeviceOrientationManagerProxyApiTest { */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.Preview + abstract fun pigeon_defaultConstructor( + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, + targetRotation: Long? + ): androidx.camera.core.Preview - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.resolutionselector.ResolutionSelector? + abstract fun resolutionSelector( + pigeon_instance: androidx.camera.core.Preview + ): androidx.camera.core.resolutionselector.ResolutionSelector? /** * Sets a SurfaceProvider to provide a Surface for Preview. * * This is a convenience function that - * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the - * Flutter engine. + * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the Flutter engine. * 2. Sets this method with the created `SurfaceProvider`. - * 3. Returns the texture id of the `TextureEntry` that provided the - * `SurfaceProducer`. + * 3. Returns the texture id of the `TextureEntry` that provided the `SurfaceProducer`. */ - abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager): Long + abstract fun setSurfaceProvider( + pigeon_instance: androidx.camera.core.Preview, + systemServicesManager: SystemServicesManager + ): Long - /** - * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was - * created. - */ + /** Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was created. */ abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) /** Gets selected resolution information of the `Preview`. */ - abstract fun getResolutionInfo(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.ResolutionInfo? + abstract fun getResolutionInfo( + pigeon_instance: androidx.camera.core.Preview + ): androidx.camera.core.ResolutionInfo? /** Sets the target rotation. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) @@ -4036,19 +2932,27 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPreview?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(resolutionSelectorArg, targetRotationArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4056,17 +2960,22 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val systemServicesManagerArg = args[1] as SystemServicesManager - val wrapped: List = try { - listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4074,17 +2983,22 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = try { - api.releaseSurfaceProvider(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.releaseSurfaceProvider(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4092,16 +3006,21 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = try { - listOf(api.getResolutionInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getResolutionInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4109,18 +3028,23 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4132,16 +3056,19 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Preview and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Preview, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.Preview, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -4150,205 +3077,72 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.Preview; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.ResolutionInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Preview}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class PreviewProxyApi extends PigeonApiPreview { - PreviewProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Preview pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation) { - return Preview(targetRotation); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(Preview pigeon_instance) { - return pigeon_instance.getResolutionSelector(); - } - - @NonNull - @Override - public Long setSurfaceProvider(Preview, pigeon_instance@NonNull SystemServicesManager systemServicesManager) { - return pigeon_instance.setSurfaceProvider(systemServicesManager); - } - - @Override - public Void releaseSurfaceProvider(Preview pigeon_instance) { - pigeon_instance.releaseSurfaceProvider(); - } - - @Nullable - @Override - public androidx.camera.core.ResolutionInfo? getResolutionInfo(Preview pigeon_instance) { - return pigeon_instance.getResolutionInfo(); - } - - @Override - public Void setTargetRotation(Preview, pigeon_instance@NonNull Long rotation) { - pigeon_instance.setTargetRotation(rotation); - } - } -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.Preview -import androidx.camera.core.resolutionselector.ResolutionSelector -import androidx.camera.core.ResolutionInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class PreviewProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - assertTrue(api.pigeon_defaultConstructor(0) instanceof PreviewProxyApi.Preview); - } - - @Test - public void resolutionSelector() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); - when(instance.getResolutionSelector()).thenReturn(value); - - assertEquals(value, api.resolutionSelector(instance)); - } - - @Test - public void setSurfaceProvider() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); - final Long value = 0; - when(instance.setSurfaceProvider(systemServicesManager)).thenReturn(value); - - assertEquals(value, api.setSurfaceProvider(instance, systemServicesManager)); - } - - @Test - public void releaseSurfaceProvider() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - api.releaseSurfaceProvider(instance ); - - verify(instance).releaseSurfaceProvider(); - } - - @Test - public void getResolutionInfo() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); - when(instance.getResolutionInfo()).thenReturn(value); - - assertEquals(value, api.getResolutionInfo(instance )); - } - - @Test - public void setTargetRotation() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - -} -*/ /** * A use case that provides camera stream suitable for video application. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiVideoCapture( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Create a `VideoCapture` associated with the given `VideoOutput`. */ - abstract fun withOutput(videoOutput: androidx.camera.video.VideoOutput): androidx.camera.video.VideoCapture<*> + abstract fun withOutput( + videoOutput: androidx.camera.video.VideoOutput + ): androidx.camera.video.VideoCapture<*> /** Gets the VideoOutput associated with this VideoCapture. */ - abstract fun getOutput(pigeon_instance: androidx.camera.video.VideoCapture<*>): androidx.camera.video.VideoOutput + abstract fun getOutput( + pigeon_instance: androidx.camera.video.VideoCapture<*> + ): androidx.camera.video.VideoOutput /** Sets the desired rotation of the output video. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long) + abstract fun setTargetRotation( + pigeon_instance: androidx.camera.video.VideoCapture<*>, + rotation: Long + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val videoOutputArg = args[1] as androidx.camera.video.VideoOutput - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withOutput(videoOutputArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.withOutput(videoOutputArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4356,16 +3150,21 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> - val wrapped: List = try { - listOf(api.getOutput(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getOutput(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4373,18 +3172,23 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4396,16 +3200,19 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" @@ -4413,120 +3220,24 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { - return pigeonRegistrar.getPigeonApiUseCase() - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoCapture<*>; -import androidx.camera.video.VideoOutput; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoCapture}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoCaptureProxyApi extends PigeonApiVideoCapture { - VideoCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public VideoCapture withOutput(@NonNull androidx.camera.video.VideoOutput videoOutput) { - return VideoCapture(videoOutput); - } - - @NonNull - @Override - public androidx.camera.video.VideoOutput getOutput(VideoCapture pigeon_instance) { - return pigeon_instance.getOutput(); - } - - @Override - public Void setTargetRotation(VideoCapture, pigeon_instance@NonNull Long rotation) { - pigeon_instance.setTargetRotation(rotation); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoCapture<*> -import androidx.camera.video.VideoOutput -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoCaptureProxyApiTest { - @Test - public void withOutput() { - final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); - - assertTrue(api.withOutput(mock(VideoOutput.class)) instanceof VideoCaptureProxyApi.VideoCapture); - } - - @Test - public void getOutput() { - final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); - - final VideoCapture instance = mock(VideoCapture.class); - final androidx.camera.video.VideoOutput value = mock(VideoOutput.class); - when(instance.getOutput()).thenReturn(value); - - assertEquals(value, api.getOutput(instance )); - } - - @Test - public void setTargetRotation() { - final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); - - final VideoCapture instance = mock(VideoCapture.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + return pigeonRegistrar.getPigeonApiUseCase() } - } -*/ /** * A class that will produce video data from a Surface. * @@ -4536,16 +3247,19 @@ public class VideoCaptureProxyApiTest { open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoOutput and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoOutput, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoOutput, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" @@ -4553,74 +3267,31 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoOutput; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoOutput}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoOutputProxyApi extends PigeonApiVideoOutput { - VideoOutputProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - } -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoOutput -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoOutputProxyApiTest { -} -*/ /** - * An implementation of `VideoOutput` for starting video recordings that are - * saved to a File, ParcelFileDescriptor, or MediaStore. + * An implementation of `VideoOutput` for starting video recordings that are saved to a File, + * ParcelFileDescriptor, or MediaStore. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(aspectRatio: Long?, targetVideoEncodingBitRate: Long?, qualitySelector: androidx.camera.video.QualitySelector?): androidx.camera.video.Recorder + abstract fun pigeon_defaultConstructor( + aspectRatio: Long?, + targetVideoEncodingBitRate: Long?, + qualitySelector: androidx.camera.video.QualitySelector? + ): androidx.camera.video.Recorder /** Gets the aspect ratio of this Recorder. */ abstract fun getAspectRatio(pigeon_instance: androidx.camera.video.Recorder): Long @@ -4629,17 +3300,26 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long /** The quality selector of this Recorder. */ - abstract fun getQualitySelector(pigeon_instance: androidx.camera.video.Recorder): androidx.camera.video.QualitySelector + abstract fun getQualitySelector( + pigeon_instance: androidx.camera.video.Recorder + ): androidx.camera.video.QualitySelector /** Prepares a recording that will be saved to a File. */ - abstract fun prepareRecording(pigeon_instance: androidx.camera.video.Recorder, path: String): androidx.camera.video.PendingRecording + abstract fun prepareRecording( + pigeon_instance: androidx.camera.video.Recorder, + path: String + ): androidx.camera.video.PendingRecording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecorder?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -4647,12 +3327,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP val aspectRatioArg = args[1] as Long? val targetVideoEncodingBitRateArg = args[2] as Long? val qualitySelectorArg = args[3] as androidx.camera.video.QualitySelector? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioArg,targetVideoEncodingBitRateArg,qualitySelectorArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + aspectRatioArg, targetVideoEncodingBitRateArg, qualitySelectorArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4660,16 +3344,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4677,16 +3366,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4694,16 +3388,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getQualitySelector(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getQualitySelector(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4711,17 +3410,22 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val pathArg = args[1] as String - val wrapped: List = try { - listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4733,16 +3437,19 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recorder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recorder, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.Recorder, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" @@ -4750,179 +3457,56 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoOutput] used to access callback methods */ - fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput - { + fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput { return pigeonRegistrar.getPigeonApiVideoOutput() } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.Recorder; -import androidx.camera.video.QualitySelector; -import androidx.camera.video.PendingRecording; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Recorder}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class RecorderProxyApi extends PigeonApiRecorder { - RecorderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Recorder pigeon_defaultConstructor(@Nullable Long? aspectRatio, @Nullable Long? targetVideoEncodingBitRate, @Nullable androidx.camera.video.QualitySelector? qualitySelector) { - return Recorder(aspectRatio, targetVideoEncodingBitRate, qualitySelector); - } - - @NonNull - @Override - public Long getAspectRatio(Recorder pigeon_instance) { - return pigeon_instance.getAspectRatio(); - } - - @NonNull - @Override - public Long getTargetVideoEncodingBitRate(Recorder pigeon_instance) { - return pigeon_instance.getTargetVideoEncodingBitRate(); - } - - @NonNull - @Override - public androidx.camera.video.QualitySelector getQualitySelector(Recorder pigeon_instance) { - return pigeon_instance.getQualitySelector(); - } - - @NonNull - @Override - public androidx.camera.video.PendingRecording prepareRecording(Recorder, pigeon_instance@NonNull String path) { - return pigeon_instance.prepareRecording(path); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.Recorder -import androidx.camera.video.QualitySelector -import androidx.camera.video.PendingRecording -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class RecorderProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - assertTrue(api.pigeon_defaultConstructor(0, 0, mock(QualitySelector.class)) instanceof RecorderProxyApi.Recorder); - } - - @Test - public void getAspectRatio() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final Long value = 0; - when(instance.getAspectRatio()).thenReturn(value); - - assertEquals(value, api.getAspectRatio(instance )); - } - - @Test - public void getTargetVideoEncodingBitRate() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final Long value = 0; - when(instance.getTargetVideoEncodingBitRate()).thenReturn(value); - - assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); - } - - @Test - public void getQualitySelector() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final androidx.camera.video.QualitySelector value = mock(QualitySelector.class); - when(instance.getQualitySelector()).thenReturn(value); - - assertEquals(value, api.getQualitySelector(instance )); - } - - @Test - public void prepareRecording() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final Recorder instance = mock(Recorder.class); - final String path = "myString"; - final androidx.camera.video.PendingRecording value = mock(PendingRecording.class); - when(instance.prepareRecording(path)).thenReturn(value); - - assertEquals(value, api.prepareRecording(instance, path)); - } - } -*/ /** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiVideoRecordEventListener( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): VideoRecordEventListener companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoRecordEventListener?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiVideoRecordEventListener? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4933,24 +3517,34 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: VideoRecordEventListener, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: VideoRecordEventListener, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.", + ""))) } } - fun onEvent(pigeon_instanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) -{ + fun onEvent( + pigeon_instanceArg: VideoRecordEventListener, + eventArg: androidx.camera.video.VideoRecordEvent, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4970,120 +3564,46 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } } else { callback(Result.failure(createConnectionError(channelName))) - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.VideoRecordEvent; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link VideoRecordEventListener}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class VideoRecordEventListenerProxyApi extends PigeonApiVideoRecordEventListener { - VideoRecordEventListenerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link VideoRecordEventListener} that passes arguments of callback methods to Dart. */ - static class VideoRecordEventListenerImpl extends VideoRecordEventListener { - private final VideoRecordEventListenerProxyApi api; - VideoRecordEventListenerImpl(@NonNull VideoRecordEventListenerProxyApi api) { - this.api = api; - } - @Override - public void onEvent(@NonNull androidx.camera.video.VideoRecordEvent event) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onEvent(this, event, reply -> null)); + } } } - - @NonNull - @Override - public VideoRecordEventListener pigeon_defaultConstructor() { - return VideoRecordEventListenerImpl(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.VideoRecordEvent -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class VideoRecordEventListenerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiVideoRecordEventListener api = new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); - - assertTrue(api.pigeon_defaultConstructor() instanceof VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl); - } - - @Test - public void onEvent() { - final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final VideoRecordEventListenerImpl instance = new VideoRecordEventListenerImpl(mockApi); - final androidx.camera.video.VideoRecordEvent event = mock(VideoRecordEvent.class); - instance.onEvent(event); - - verify(mockApi).onEvent(eq(instance), eq(event), any()); - } - } -*/ /** * A recording that can be started at a future time. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiPendingRecording( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Starts the recording, making it an active recording. */ - abstract fun start(pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener): androidx.camera.video.Recording + abstract fun start( + pigeon_instance: androidx.camera.video.PendingRecording, + listener: VideoRecordEventListener + ): androidx.camera.video.Recording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPendingRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording val listenerArg = args[1] as VideoRecordEventListener - val wrapped: List = try { - listOf(api.start(pigeon_instanceArg, listenerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.start(pigeon_instanceArg, listenerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5095,102 +3615,39 @@ abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PendingRecording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.PendingRecording, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.PendingRecording, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.PendingRecording; -import androidx.camera.video.Recording; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link PendingRecording}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class PendingRecordingProxyApi extends PigeonApiPendingRecording { - PendingRecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public androidx.camera.video.Recording start(PendingRecording, pigeon_instance@NonNull VideoRecordEventListener listener) { - return pigeon_instance.start(listener); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.PendingRecording -import androidx.camera.video.Recording -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class PendingRecordingProxyApiTest { - @Test - public void start() { - final PigeonApiPendingRecording api = new TestProxyApiRegistrar().getPigeonApiPendingRecording(); - - final PendingRecording instance = mock(PendingRecording.class); - final VideoRecordEventListener listener = mock(VideoRecordEventListener.class); - final androidx.camera.video.Recording value = mock(Recording.class); - when(instance.start(listener)).thenReturn(value); - - assertEquals(value, api.start(instance, listener)); - } - } -*/ /** * Provides controls for the currently active recording. * @@ -5219,17 +3676,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5237,17 +3697,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.pause(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pause(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5255,17 +3718,22 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.resume", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recording.resume", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.resume(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.resume(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5273,17 +3741,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.stop(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.stop(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5295,16 +3766,19 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recording, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.Recording, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" @@ -5312,141 +3786,48 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.Recording; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Recording}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class RecordingProxyApi extends PigeonApiRecording { - RecordingProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @Override - public Void close(Recording pigeon_instance) { - pigeon_instance.close(); - } - - @Override - public Void pause(Recording pigeon_instance) { - pigeon_instance.pause(); - } - - @Override - public Void resume(Recording pigeon_instance) { - pigeon_instance.resume(); - } - - @Override - public Void stop(Recording pigeon_instance) { - pigeon_instance.stop(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.Recording -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class RecordingProxyApiTest { - @Test - public void close() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.close(instance ); - - verify(instance).close(); - } - - @Test - public void pause() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.pause(instance ); - - verify(instance).pause(); - } - - @Test - public void resume() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.resume(instance ); - - verify(instance).resume(); - } - - @Test - public void stop() { - final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); - - final Recording instance = mock(Recording.class); - api.stop(instance ); - - verify(instance).stop(); - } - } -*/ /** * A use case for taking a picture. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?, flashMode: CameraXFlashMode?): androidx.camera.core.ImageCapture - - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageCapture): androidx.camera.core.resolutionselector.ResolutionSelector? +abstract class PigeonApiImageCapture( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, + targetRotation: Long?, + flashMode: CameraXFlashMode? + ): androidx.camera.core.ImageCapture + + abstract fun resolutionSelector( + pigeon_instance: androidx.camera.core.ImageCapture + ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Set the flash mode. */ - abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode) + abstract fun setFlashMode( + pigeon_instance: androidx.camera.core.ImageCapture, + flashMode: CameraXFlashMode + ) /** Captures a new still image for in memory access. */ - abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) + abstract fun takePicture( + pigeon_instance: androidx.camera.core.ImageCapture, + callback: (Result) -> Unit + ) /** Sets the desired rotation of the output image. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) @@ -5456,20 +3837,29 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? val flashModeArg = args[3] as CameraXFlashMode? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg,flashModeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + resolutionSelectorArg, targetRotationArg, flashModeArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5477,18 +3867,23 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val flashModeArg = args[1] as CameraXFlashMode - val wrapped: List = try { - api.setFlashMode(pigeon_instanceArg, flashModeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setFlashMode(pigeon_instanceArg, flashModeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5496,7 +3891,11 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5516,18 +3915,23 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5539,16 +3943,19 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageCapture, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -5557,193 +3964,80 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } - } - } - - @Suppress("FunctionName") - /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { - return pigeonRegistrar.getPigeonApiUseCase() - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageCapture; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ImageCapture}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ImageCaptureProxyApi extends PigeonApiImageCapture { - ImageCaptureProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ImageCapture pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation, @Nullable CameraXFlashMode? flashMode) { - return ImageCapture(targetRotation, flashMode); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(ImageCapture pigeon_instance) { - return pigeon_instance.getResolutionSelector(); - } - - @Override - public Void setFlashMode(ImageCapture, pigeon_instance@NonNull CameraXFlashMode flashMode) { - pigeon_instance.setFlashMode(flashMode); - } - - @NonNull - @Override - public String takePicture(ImageCapture pigeon_instance) { - return pigeon_instance.takePicture(); - } - - @Override - public Void setTargetRotation(ImageCapture, pigeon_instance@NonNull Long rotation) { - pigeon_instance.setTargetRotation(rotation); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageCapture -import androidx.camera.core.resolutionselector.ResolutionSelector -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ImageCaptureProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO) instanceof ImageCaptureProxyApi.ImageCapture); - } - - @Test - public void resolutionSelector() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); - when(instance.getResolutionSelector()).thenReturn(value); - - assertEquals(value, api.resolutionSelector(instance)); - } - - @Test - public void setFlashMode() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; - api.setFlashMode(instance, flashMode); - - verify(instance).setFlashMode(flashMode); - } - - @Test - public void takePicture() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final String value = "myString"; - when(instance.takePicture()).thenReturn(value); - - assertEquals(value, api.takePicture(instance )); + } } - @Test - public void setTargetRotation() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); + @Suppress("FunctionName") + /** An implementation of [PigeonApiUseCase] used to access callback methods */ + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + return pigeonRegistrar.getPigeonApiUseCase() } - } -*/ /** - * The resolution strategy defines the resolution selection sequence to select - * the best size. + * The resolution strategy defines the resolution selection sequence to select the best size. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(boundSize: android.util.Size, fallbackRule: ResolutionStrategyFallbackRule): androidx.camera.core.resolutionselector.ResolutionStrategy +abstract class PigeonApiResolutionStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + boundSize: android.util.Size, + fallbackRule: ResolutionStrategyFallbackRule + ): androidx.camera.core.resolutionselector.ResolutionStrategy /** A resolution strategy chooses the highest available resolution. */ - abstract fun highestAvailableStrategy(): androidx.camera.core.resolutionselector.ResolutionStrategy + abstract fun highestAvailableStrategy(): + androidx.camera.core.resolutionselector.ResolutionStrategy /** The specified bound size. */ - abstract fun getBoundSize(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): android.util.Size? + abstract fun getBoundSize( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy + ): android.util.Size? /** - * The fallback rule for choosing an alternate size when the specified bound - * size is unavailable. + * The fallback rule for choosing an alternate size when the specified bound size is unavailable. */ - abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): ResolutionStrategyFallbackRule + abstract fun getFallbackRule( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy + ): ResolutionStrategyFallbackRule companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val boundSizeArg = args[1] as android.util.Size val fallbackRuleArg = args[2] as ResolutionStrategyFallbackRule - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(boundSizeArg,fallbackRuleArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(boundSizeArg, fallbackRuleArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5751,17 +4045,23 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.highestAvailableStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.highestAvailableStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5769,16 +4069,22 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy - val wrapped: List = try { - listOf(api.getBoundSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = + try { + listOf(api.getBoundSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5786,16 +4092,22 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy - val wrapped: List = try { - listOf(api.getFallbackRule(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = + try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5807,179 +4119,104 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ResolutionStrategy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ResolutionStrategyProxyApi extends PigeonApiResolutionStrategy { - ResolutionStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ResolutionStrategy pigeon_defaultConstructor(@NonNull android.util.Size boundSize, @NonNull ResolutionStrategyFallbackRule fallbackRule) { - return ResolutionStrategy(boundSize, fallbackRule); - } - - @NonNull - @Override - public androidx.camera.core.resolutionselector.ResolutionStrategy highestAvailableStrategy() { - return ResolutionStrategy.getHighestAvailableStrategy(); - } - - @Nullable - @Override - public android.util.Size? getBoundSize(ResolutionStrategy pigeon_instance) { - return pigeon_instance.getBoundSize(); - } - - @NonNull - @Override - public ResolutionStrategyFallbackRule getFallbackRule(ResolutionStrategy pigeon_instance) { - return pigeon_instance.getFallbackRule(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.ResolutionStrategy -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionStrategyProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); - - assertTrue(api.pigeon_defaultConstructor(mock(CameraSize.class), io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER) instanceof ResolutionStrategyProxyApi.ResolutionStrategy); - } - - @Test - public void getBoundSize() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); - - final ResolutionStrategy instance = mock(ResolutionStrategy.class); - final android.util.Size value = mock(CameraSize.class); - when(instance.getBoundSize()).thenReturn(value); - - assertEquals(value, api.getBoundSize(instance )); - } - - @Test - public void getFallbackRule() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); - - final ResolutionStrategy instance = mock(ResolutionStrategy.class); - final ResolutionStrategyFallbackRule value = io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER; - when(instance.getFallbackRule()).thenReturn(value); - - assertEquals(value, api.getFallbackRule(instance )); - } - } -*/ /** - * A set of requirements and priorities used to select a resolution for the - * `UseCase`. + * A set of requirements and priorities used to select a resolution for the `UseCase`. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?, resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?): androidx.camera.core.resolutionselector.ResolutionSelector +abstract class PigeonApiResolutionSelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?, + resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, + aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy? + ): androidx.camera.core.resolutionselector.ResolutionSelector /** The resolution filter to output the final desired sizes list. */ - abstract fun resolutionFilter(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionFilter? + abstract fun resolutionFilter( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + ): androidx.camera.core.resolutionselector.ResolutionFilter? /** The resolution selection strategy for the `UseCase`. */ - abstract fun resolutionStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionStrategy? + abstract fun resolutionStrategy( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + ): androidx.camera.core.resolutionselector.ResolutionStrategy? /** * Returns the specified `AspectRatioStrategy`, or - * `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified - * when creating the ResolutionSelector. + * `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified when creating the + * ResolutionSelector. */ - abstract fun getAspectRatioStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun getAspectRatioStrategy( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + ): androidx.camera.core.resolutionselector.AspectRatioStrategy companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionFilterArg = args[1] as androidx.camera.core.resolutionselector.ResolutionFilter? - val resolutionStrategyArg = args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? - val aspectRatioStrategyArg = args[3] as androidx.camera.core.resolutionselector.AspectRatioStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionFilterArg,resolutionStrategyArg,aspectRatioStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionFilterArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionFilter? + val resolutionStrategyArg = + args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val aspectRatioStrategyArg = + args[3] as androidx.camera.core.resolutionselector.AspectRatioStrategy? + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + resolutionFilterArg, resolutionStrategyArg, aspectRatioStrategyArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5987,16 +4224,22 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionSelector - val wrapped: List = try { - listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.ResolutionSelector + val wrapped: List = + try { + listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6008,207 +4251,109 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionFilterArg = resolutionFilter(pigeon_instanceArg) val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, resolutionFilterArg, resolutionStrategyArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import androidx.camera.core.resolutionselector.ResolutionFilter; -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ResolutionSelector}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ResolutionSelectorProxyApi extends PigeonApiResolutionSelector { - ResolutionSelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ResolutionSelector pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter, @Nullable androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy, @Nullable androidx.camera.core.resolutionselector.AspectRatioStrategy? aspectRatioStrategy) { - return ResolutionSelector(aspectRatioStrategy); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionFilter? resolutionFilter(ResolutionSelector pigeon_instance) { - return pigeon_instance.getResolutionFilter(); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionStrategy? resolutionStrategy(ResolutionSelector pigeon_instance) { - return pigeon_instance.getResolutionStrategy(); - } - - @NonNull - @Override - public androidx.camera.core.resolutionselector.AspectRatioStrategy getAspectRatioStrategy(ResolutionSelector pigeon_instance) { - return pigeon_instance.getAspectRatioStrategy(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.ResolutionSelector -import androidx.camera.core.resolutionselector.AspectRatioStrategy -import androidx.camera.core.resolutionselector.ResolutionFilter -import androidx.camera.core.resolutionselector.ResolutionStrategy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionSelectorProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - - assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); - } - - @Test - public void resolutionFilter() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - - final ResolutionSelector instance = mock(ResolutionSelector.class); - final androidx.camera.core.resolutionselector.ResolutionFilter value = mock(ResolutionFilter.class); - when(instance.getResolutionFilter()).thenReturn(value); - - assertEquals(value, api.resolutionFilter(instance)); - } - - @Test - public void resolutionStrategy() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - - final ResolutionSelector instance = mock(ResolutionSelector.class); - final androidx.camera.core.resolutionselector.ResolutionStrategy value = mock(ResolutionStrategy.class); - when(instance.getResolutionStrategy()).thenReturn(value); - - assertEquals(value, api.resolutionStrategy(instance)); - } - - @Test - public void getAspectRatioStrategy() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); - - final ResolutionSelector instance = mock(ResolutionSelector.class); - final androidx.camera.core.resolutionselector.AspectRatioStrategy value = mock(AspectRatioStrategy.class); - when(instance.getAspectRatioStrategy()).thenReturn(value); - - assertEquals(value, api.getAspectRatioStrategy(instance )); - } - } -*/ /** - * The aspect ratio strategy defines the sequence of aspect ratios that are - * used to select the best size for a particular image. + * The aspect ratio strategy defines the sequence of aspect ratios that are used to select the best + * size for a particular image. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiAspectRatioStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Creates a new AspectRatioStrategy instance, configured with the specified - * preferred aspect ratio and fallback rule. + * Creates a new AspectRatioStrategy instance, configured with the specified preferred aspect + * ratio and fallback rule. */ - abstract fun pigeon_defaultConstructor(preferredAspectRatio: AspectRatio, fallbackRule: AspectRatioStrategyFallbackRule): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun pigeon_defaultConstructor( + preferredAspectRatio: AspectRatio, + fallbackRule: AspectRatioStrategyFallbackRule + ): androidx.camera.core.resolutionselector.AspectRatioStrategy - /** - * The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 - * in priority. - */ - abstract fun ratio_16_9FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + /** The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 in priority. */ + abstract fun ratio_16_9FallbackAutoStrategy(): + androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The pre-defined default aspect ratio strategy that selects sizes with - * RATIO_4_3 in priority. + * The pre-defined default aspect ratio strategy that selects sizes with RATIO_4_3 in priority. */ - abstract fun ratio_4_3FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun ratio_4_3FallbackAutoStrategy(): + androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The specified fallback rule for choosing the aspect ratio when the - * preferred aspect ratio is not available. + * The specified fallback rule for choosing the aspect ratio when the preferred aspect ratio is + * not available. */ - abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatioStrategyFallbackRule + abstract fun getFallbackRule( + pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy + ): AspectRatioStrategyFallbackRule /** The specified preferred aspect ratio. */ - abstract fun getPreferredAspectRatio(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatio + abstract fun getPreferredAspectRatio( + pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy + ): AspectRatio companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAspectRatioStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredAspectRatioArg = args[1] as AspectRatio val fallbackRuleArg = args[2] as AspectRatioStrategyFallbackRule - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(preferredAspectRatioArg,fallbackRuleArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(preferredAspectRatioArg, fallbackRuleArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6216,17 +4361,23 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6234,17 +4385,23 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6252,16 +4409,22 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy - val wrapped: List = try { - listOf(api.getFallbackRule(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = + try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6269,16 +4432,22 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy - val wrapped: List = try { - listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = + try { + listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6290,166 +4459,71 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link AspectRatioStrategy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class AspectRatioStrategyProxyApi extends PigeonApiAspectRatioStrategy { - AspectRatioStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public AspectRatioStrategy pigeon_defaultConstructor(@NonNull AspectRatio preferredAspectRatio, @NonNull AspectRatioStrategyFallbackRule fallbackRule) { - return AspectRatioStrategy(preferredAspectRatio, fallbackRule); - } - - @NonNull - @Override - public androidx.camera.core.resolutionselector.AspectRatioStrategy ratio_16_9FallbackAutoStrategy() { - return AspectRatioStrategy.getRatio_16_9FallbackAutoStrategy(); - } - - @NonNull - @Override - public androidx.camera.core.resolutionselector.AspectRatioStrategy ratio_4_3FallbackAutoStrategy() { - return AspectRatioStrategy.getRatio_4_3FallbackAutoStrategy(); - } - - @NonNull - @Override - public AspectRatioStrategyFallbackRule getFallbackRule(AspectRatioStrategy pigeon_instance) { - return pigeon_instance.getFallbackRule(); - } - - @NonNull - @Override - public AspectRatio getPreferredAspectRatio(AspectRatioStrategy pigeon_instance) { - return pigeon_instance.getPreferredAspectRatio(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.AspectRatioStrategy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class AspectRatioStrategyProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - - assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO) instanceof AspectRatioStrategyProxyApi.AspectRatioStrategy); - } - - @Test - public void getFallbackRule() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - - final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); - final AspectRatioStrategyFallbackRule value = io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO; - when(instance.getFallbackRule()).thenReturn(value); - - assertEquals(value, api.getFallbackRule(instance )); - } - - @Test - public void getPreferredAspectRatio() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - - final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); - final AspectRatio value = io.flutter.plugins.camerax.AspectRatio.RATIO16TO9; - when(instance.getPreferredAspectRatio()).thenReturn(value); - - assertEquals(value, api.getPreferredAspectRatio(instance )); - } - } -*/ /** * Represents the different states the camera can be in. * * See https://developer.android.com/reference/androidx/camera/core/CameraState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraState( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The camera's state. */ abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType /** Potentially returns an error the camera encountered. */ - abstract fun error(pigeon_instance: androidx.camera.core.CameraState): androidx.camera.core.CameraState.StateError? + abstract fun error( + pigeon_instance: androidx.camera.core.CameraState + ): androidx.camera.core.CameraState.StateError? @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val errorArg = error(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -6459,240 +4533,76 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige channel.send(listOf(pigeon_identifierArg, typeArg, errorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraState; -import androidx.camera.core.CameraState.StateError; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraState}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraStateProxyApi extends PigeonApiCameraState { - CameraStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraStateType type(CameraState pigeon_instance) { - switch (pigeon_instance.type) { - case CameraStateType.CLOSED: return io.flutter.plugins.camerax.CameraStateType.CLOSED; - case CameraStateType.CLOSING: return io.flutter.plugins.camerax.CameraStateType.CLOSING; - case CameraStateType.OPEN: return io.flutter.plugins.camerax.CameraStateType.OPEN; - case CameraStateType.OPENING: return io.flutter.plugins.camerax.CameraStateType.OPENING; - case CameraStateType.PENDING_OPEN: return io.flutter.plugins.camerax.CameraStateType.PENDING_OPEN; - default: return io.flutter.plugins.camerax.CameraStateType.UNKNOWN; - } - } - - @Nullable - @Override - public androidx.camera.core.CameraState.StateError? error(CameraState pigeon_instance) { - return pigeon_instance.getError(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraState -import androidx.camera.core.CameraState.StateError -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraStateProxyApiTest { - @Test - public void type() { - final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); - - final CameraState instance = mock(CameraState.class); - final CameraStateType value = io.flutter.plugins.camerax.CameraStateType.CLOSED; - when(instance.getType()).thenReturn(value); - - assertEquals(value, api.type(instance)); - } - - @Test - public void error() { - final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); - - final CameraState instance = mock(CameraState.class); - final androidx.camera.core.CameraState.StateError value = mock(CameraStateStateError.class); - when(instance.getError()).thenReturn(value); - - assertEquals(value, api.error(instance)); - } - -} -*/ -/** - * An interface which contains the camera exposure related information. - * - * See https://developer.android.com/reference/androidx/camera/core/ExposureState. - */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** - * Get the maximum and minimum exposure compensation values for - * `CameraControl.setExposureCompensationIndex`. - */ - abstract fun exposureCompensationRange(pigeon_instance: androidx.camera.core.ExposureState): android.util.Range<*> - - /** Get the smallest step by which the exposure compensation can be changed. */ - abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double - - @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ExposureState, callback: (Result) -> Unit) -{ - if (pigeonRegistrar.ignoreCallsToDart) { - callback( - Result.failure( - CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) - val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ExposureState; -import android.util.Range<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ExposureState}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ExposureStateProxyApi extends PigeonApiExposureState { - ExposureStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public android.util.Range<*> exposureCompensationRange(ExposureState pigeon_instance) { - return pigeon_instance.getExposureCompensationRange(); - } - - @NonNull - @Override - public Double exposureCompensationStep(ExposureState pigeon_instance) { - return pigeon_instance.getExposureCompensationStep(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ExposureState -import android.util.Range<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ExposureStateProxyApiTest { - @Test - public void exposureCompensationRange() { - final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); - - final ExposureState instance = mock(ExposureState.class); - final android.util.Range<*> value = mock(CameraIntegerRange.class); - when(instance.getExposureCompensationRange()).thenReturn(value); - - assertEquals(value, api.exposureCompensationRange(instance)); + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } } +} +/** + * An interface which contains the camera exposure related information. + * + * See https://developer.android.com/reference/androidx/camera/core/ExposureState. + */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiExposureState( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + /** + * Get the maximum and minimum exposure compensation values for + * `CameraControl.setExposureCompensationIndex`. + */ + abstract fun exposureCompensationRange( + pigeon_instance: androidx.camera.core.ExposureState + ): android.util.Range<*> - @Test - public void exposureCompensationStep() { - final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); - - final ExposureState instance = mock(ExposureState.class); - final Double value = 1.0; - when(instance.getExposureCompensationStep()).thenReturn(value); + /** Get the smallest step by which the exposure compensation can be changed. */ + abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double - assertEquals(value, api.exposureCompensationStep(instance)); + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ExposureState, + callback: (Result) -> Unit + ) { + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) + val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send( + listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure( + CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } } - } -*/ /** * An interface which contains the zoom related information from a camera. * @@ -6708,16 +4618,19 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ZoomState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -6727,138 +4640,77 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon channel.send(listOf(pigeon_identifierArg, minZoomRatioArg, maxZoomRatioArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ZoomState; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ZoomState}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ZoomStateProxyApi extends PigeonApiZoomState { - ZoomStateProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Double minZoomRatio(ZoomState pigeon_instance) { - return pigeon_instance.getMinZoomRatio(); - } - - @NonNull - @Override - public Double maxZoomRatio(ZoomState pigeon_instance) { - return pigeon_instance.getMaxZoomRatio(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ZoomState -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ZoomStateProxyApiTest { - @Test - public void minZoomRatio() { - final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); - - final ZoomState instance = mock(ZoomState.class); - final Double value = 1.0; - when(instance.getMinZoomRatio()).thenReturn(value); - - assertEquals(value, api.minZoomRatio(instance)); - } - - @Test - public void maxZoomRatio() { - final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); - - final ZoomState instance = mock(ZoomState.class); - final Double value = 1.0; - when(instance.getMaxZoomRatio()).thenReturn(value); - - assertEquals(value, api.maxZoomRatio(instance)); - } - } -*/ /** - * A use case providing CPU accessible images for an app to perform image - * analysis on. + * A use case providing CPU accessible images for an app to perform image analysis on. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.ImageAnalysis - - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageAnalysis): androidx.camera.core.resolutionselector.ResolutionSelector? +abstract class PigeonApiImageAnalysis( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, + targetRotation: Long? + ): androidx.camera.core.ImageAnalysis + + abstract fun resolutionSelector( + pigeon_instance: androidx.camera.core.ImageAnalysis + ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Sets an analyzer to receive and analyze images. */ - abstract fun setAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer) + abstract fun setAnalyzer( + pigeon_instance: androidx.camera.core.ImageAnalysis, + analyzer: androidx.camera.core.ImageAnalysis.Analyzer + ) /** Removes a previously set analyzer. */ abstract fun clearAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis) /** Sets the target rotation. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageAnalysis, rotation: Long) + abstract fun setTargetRotation( + pigeon_instance: androidx.camera.core.ImageAnalysis, + rotation: Long + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageAnalysis?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(resolutionSelectorArg, targetRotationArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6866,18 +4718,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val analyzerArg = args[1] as androidx.camera.core.ImageAnalysis.Analyzer - val wrapped: List = try { - api.setAnalyzer(pigeon_instanceArg, analyzerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setAnalyzer(pigeon_instanceArg, analyzerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6885,17 +4742,22 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis - val wrapped: List = try { - api.clearAnalyzer(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.clearAnalyzer(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6903,18 +4765,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6926,16 +4793,19 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -6944,153 +4814,24 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.ImageAnalysis.Analyzer; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ImageAnalysis}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { - ImageAnalysisProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ImageAnalysis pigeon_defaultConstructor(@Nullable androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector, @Nullable Long? targetRotation) { - return ImageAnalysis(targetRotation); - } - - @Nullable - @Override - public androidx.camera.core.resolutionselector.ResolutionSelector? resolutionSelector(ImageAnalysis pigeon_instance) { - return pigeon_instance.getResolutionSelector(); - } - - @Override - public Void setAnalyzer(ImageAnalysis, pigeon_instance@NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) { - pigeon_instance.setAnalyzer(analyzer); - } - - @Override - public Void clearAnalyzer(ImageAnalysis pigeon_instance) { - pigeon_instance.clearAnalyzer(); - } - - @Override - public Void setTargetRotation(ImageAnalysis, pigeon_instance@NonNull Long rotation) { - pigeon_instance.setTargetRotation(rotation); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageAnalysis -import androidx.camera.core.resolutionselector.ResolutionSelector -import androidx.camera.core.ImageAnalysis.Analyzer -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ImageAnalysisProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - assertTrue(api.pigeon_defaultConstructor(0) instanceof ImageAnalysisProxyApi.ImageAnalysis); - } - - @Test - public void resolutionSelector() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); - when(instance.getResolutionSelector()).thenReturn(value); - - assertEquals(value, api.resolutionSelector(instance)); - } - - @Test - public void setAnalyzer() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); - api.setAnalyzer(instance, analyzer); - - verify(instance).setAnalyzer(analyzer); - } - - @Test - public void clearAnalyzer() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - api.clearAnalyzer(instance ); - - verify(instance).clearAnalyzer(); - } - - @Test - public void setTargetRotation() { - final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); - - final ImageAnalysis instance = mock(ImageAnalysis.class); - final Long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation(rotation); - } - } -*/ /** * Interface for analyzing images. * @@ -7105,17 +4846,23 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAnalyzer?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7127,24 +4874,32 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Analyzer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.", + ""))) } } /** Analyzes an image to produce a result. */ - fun analyze(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, imageArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) -{ + fun analyze( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + imageArg: androidx.camera.core.ImageProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -7164,254 +4919,114 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageAnalysis.Analyzer; -import androidx.camera.core.ImageProxy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Analyzer}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class AnalyzerProxyApi extends PigeonApiAnalyzer { - AnalyzerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - /** Implementation of {@link Analyzer} that passes arguments of callback methods to Dart. */ - static class AnalyzerImpl extends Analyzer { - private final AnalyzerProxyApi api; - AnalyzerImpl(@NonNull AnalyzerProxyApi api) { - this.api = api; - } - @Override - public void analyze(@NonNull androidx.camera.core.ImageProxy image) { - api.getPigeonRegistrar().runOnMainThread(() -> api.analyze(this, image, reply -> null)); + } } } - - @NonNull - @Override - public Analyzer pigeon_defaultConstructor() { - return AnalyzerImpl(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageAnalysis.Analyzer -import androidx.camera.core.ImageProxy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class AnalyzerProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiAnalyzer api = new TestProxyApiRegistrar().getPigeonApiAnalyzer(); - - assertTrue(api.pigeon_defaultConstructor() instanceof AnalyzerProxyApi.AnalyzerImpl); - } - - @Test - public void analyze() { - final AnalyzerProxyApi mockApi = mock(AnalyzerProxyApi.class); - when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); - - final AnalyzerImpl instance = new AnalyzerImpl(mockApi); - final androidx.camera.core.ImageProxy image = mock(ImageProxy.class); - instance.analyze(image); - - verify(mockApi).analyze(eq(instance), eq(image), any()); - } - } -*/ /** * Error that the camera has encountered. * * See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraStateStateError( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The code of this error. */ - abstract fun code(pigeon_instance: androidx.camera.core.CameraState.StateError): CameraStateErrorCode + abstract fun code( + pigeon_instance: androidx.camera.core.CameraState.StateError + ): CameraStateErrorCode @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState.StateError, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraState.StateError, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val codeArg = code(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, codeArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraState.StateError; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraStateStateError}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraStateStateErrorProxyApi extends PigeonApiCameraStateStateError { - CameraStateStateErrorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CameraStateErrorCode code(CameraStateStateError pigeon_instance) { - switch (pigeon_instance.code) { - case CameraStateErrorCode.CAMERA_DISABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; - case CameraStateErrorCode.CAMERA_FATAL_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_FATAL_ERROR; - case CameraStateErrorCode.CAMERA_IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_IN_USE; - case CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED: return io.flutter.plugins.camerax.CameraStateErrorCode.DO_NOT_DISTURB_MODE_ENABLED; - case CameraStateErrorCode.MAX_CAMERAS_IN_USE: return io.flutter.plugins.camerax.CameraStateErrorCode.MAX_CAMERAS_IN_USE; - case CameraStateErrorCode.OTHER_RECOVERABLE_ERROR: return io.flutter.plugins.camerax.CameraStateErrorCode.OTHER_RECOVERABLE_ERROR; - case CameraStateErrorCode.STREAM_CONFIG: return io.flutter.plugins.camerax.CameraStateErrorCode.STREAM_CONFIG; - default: return io.flutter.plugins.camerax.CameraStateErrorCode.UNKNOWN; - } - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraState.StateError -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraStateStateErrorProxyApiTest { - @Test - public void code() { - final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); - - final CameraStateStateError instance = mock(CameraStateStateError.class); - final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; - when(instance.getCode()).thenReturn(value); - - assertEquals(value, api.code(instance)); - } - } -*/ /** - * LiveData is a data holder class that can be observed within a given - * lifecycle. + * LiveData is a data holder class that can be observed within a given lifecycle. * - * This is a wrapper around the native class to better support the generic - * type. Java has type erasure; + * This is a wrapper around the native class to better support the generic type. Java has type + * erasure; * * See https://developer.android.com/reference/androidx/lifecycle/LiveData. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The generic type used by this instance. */ - abstract fun type(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): LiveDataSupportedType + abstract fun type( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ): LiveDataSupportedType - /** - * Adds the given observer to the observers list within the lifespan of the - * given owner. - */ - abstract fun observe(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, observer: androidx.lifecycle.Observer<*>) + /** Adds the given observer to the observers list within the lifespan of the given owner. */ + abstract fun observe( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + observer: androidx.lifecycle.Observer<*> + ) /** Removes all observers that are tied to the given `LifecycleOwner`. */ - abstract fun removeObservers(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) + abstract fun removeObservers( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ) /** Returns the current value. */ - abstract fun getValue(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): Any? + abstract fun getValue( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiLiveData?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val observerArg = args[1] as androidx.lifecycle.Observer<*> - val wrapped: List = try { - api.observe(pigeon_instanceArg, observerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.observe(pigeon_instanceArg, observerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7419,17 +5034,23 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = try { - api.removeObservers(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = + try { + api.removeObservers(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7437,16 +5058,22 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = try { - listOf(api.getValue(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = + try { + listOf(api.getValue(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7458,161 +5085,48 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, typeArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; -import androidx.lifecycle.Observer<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link LiveData}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class LiveDataProxyApi extends PigeonApiLiveData { - LiveDataProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public LiveDataSupportedType type(LiveData pigeon_instance) { - switch (pigeon_instance.type) { - case LiveDataSupportedType.CAMERA_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; - case LiveDataSupportedType.ZOOM_STATE: return io.flutter.plugins.camerax.LiveDataSupportedType.ZOOM_STATE; - default: return io.flutter.plugins.camerax.LiveDataSupportedType.UNKNOWN; - } - } - - @Override - public Void observe(LiveData, pigeon_instance@NonNull androidx.lifecycle.Observer<*> observer) { - pigeon_instance.observe(observer); - } - - @Override - public Void removeObservers(LiveData pigeon_instance) { - pigeon_instance.removeObservers(); - } - - @Nullable - @Override - public Any? getValue(LiveData pigeon_instance) { - return pigeon_instance.getValue(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper -import androidx.lifecycle.Observer<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class LiveDataProxyApiTest { - @Test - public void type() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; - when(instance.getType()).thenReturn(value); - - assertEquals(value, api.type(instance)); - } - - @Test - public void observe() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - final androidx.lifecycle.Observer<*> observer = mock(Observer.class); - api.observe(instance, observer); - - verify(instance).observe(observer); - } - - @Test - public void removeObservers() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - api.removeObservers(instance ); - - verify(instance).removeObservers(); - } - - @Test - public void getValue() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData instance = mock(LiveData.class); - final Any value = -1; - when(instance.getValue()).thenReturn(value); - - assertEquals(value, api.getValue(instance )); + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, typeArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } } - } -*/ /** * An image proxy which has a similar interface as `android.media.Image`. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiImageProxy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The image format. */ abstract fun format(pigeon_instance: androidx.camera.core.ImageProxy): Long @@ -7623,7 +5137,9 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo abstract fun height(pigeon_instance: androidx.camera.core.ImageProxy): Long /** Returns the array of planes. */ - abstract fun getPlanes(pigeon_instance: androidx.camera.core.ImageProxy): List + abstract fun getPlanes( + pigeon_instance: androidx.camera.core.ImageProxy + ): List /** Closes the underlying `android.media.Image`. */ abstract fun close(pigeon_instance: androidx.camera.core.ImageProxy) @@ -7633,16 +5149,21 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageProxy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = try { - listOf(api.getPlanes(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getPlanes(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7650,17 +5171,22 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7672,16 +5198,19 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val formatArg = format(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) @@ -7692,158 +5221,27 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, formatArg, widthArg, heightArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageProxy; -import androidx.camera.core.ImageProxy.PlaneProxy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ImageProxy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ImageProxyProxyApi extends PigeonApiImageProxy { - ImageProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Long format(ImageProxy pigeon_instance) { - return pigeon_instance.getFormat(); - } - - @NonNull - @Override - public Long width(ImageProxy pigeon_instance) { - return pigeon_instance.getWidth(); - } - - @NonNull - @Override - public Long height(ImageProxy pigeon_instance) { - return pigeon_instance.getHeight(); - } - - @NonNull - @Override - public List getPlanes(ImageProxy pigeon_instance) { - return pigeon_instance.getPlanes(); - } - - @Override - public Void close(ImageProxy pigeon_instance) { - pigeon_instance.close(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageProxy -import androidx.camera.core.ImageProxy.PlaneProxy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ImageProxyProxyApiTest { - @Test - public void format() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final Long value = 0; - when(instance.getFormat()).thenReturn(value); - - assertEquals(value, api.format(instance)); - } - - @Test - public void width() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final Long value = 0; - when(instance.getWidth()).thenReturn(value); - - assertEquals(value, api.width(instance)); - } - - @Test - public void height() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final Long value = 0; - when(instance.getHeight()).thenReturn(value); - - assertEquals(value, api.height(instance)); - } - - @Test - public void getPlanes() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - final List value = Arrays.asList(mock(PlaneProxy.class)); - when(instance.getPlanes()).thenReturn(value); - - assertEquals(value, api.getPlanes(instance )); - } - - @Test - public void close() { - final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); - - final ImageProxy instance = mock(ImageProxy.class); - api.close(instance ); - - verify(instance).close(); - } - } -*/ /** - * A plane proxy which has an analogous interface as - * `android.media.Image.Plane`. + * A plane proxy which has an analogous interface as `android.media.Image.Plane`. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiPlaneProxy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The pixels buffer. */ abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray @@ -7855,16 +5253,19 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val bufferArg = buffer(pigeon_instanceArg) val pixelStrideArg = pixelStride(pigeon_instanceArg) val rowStrideArg = rowStride(pigeon_instanceArg) @@ -7875,151 +5276,70 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, bufferArg, pixelStrideArg, rowStrideArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.ImageProxy.PlaneProxy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link PlaneProxy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class PlaneProxyProxyApi extends PigeonApiPlaneProxy { - PlaneProxyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ByteArray buffer(PlaneProxy pigeon_instance) { - return pigeon_instance.getBuffer(); - } - - @NonNull - @Override - public Long pixelStride(PlaneProxy pigeon_instance) { - return pigeon_instance.getPixelStride(); - } - - @NonNull - @Override - public Long rowStride(PlaneProxy pigeon_instance) { - return pigeon_instance.getRowStride(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.ImageProxy.PlaneProxy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class PlaneProxyProxyApiTest { - @Test - public void buffer() { - final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); - - final PlaneProxy instance = mock(PlaneProxy.class); - final ByteArray value = {0xA1}; - when(instance.getBuffer()).thenReturn(value); - - assertEquals(value, api.buffer(instance)); - } - - @Test - public void pixelStride() { - final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); - - final PlaneProxy instance = mock(PlaneProxy.class); - final Long value = 0; - when(instance.getPixelStride()).thenReturn(value); - - assertEquals(value, api.pixelStride(instance)); - } - - @Test - public void rowStride() { - final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); - - final PlaneProxy instance = mock(PlaneProxy.class); - final Long value = 0; - when(instance.getRowStride()).thenReturn(value); - - assertEquals(value, api.rowStride(instance)); - } - } -*/ /** - * Defines a desired quality setting that can be used to configure components - * with quality setting requirements such as creating a Recorder. + * Defines a desired quality setting that can be used to configure components with quality setting + * requirements such as creating a Recorder. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiQualitySelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets an instance of QualitySelector with a desired quality. */ - abstract fun from(quality: VideoQuality, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + abstract fun from( + quality: VideoQuality, + fallbackStrategy: androidx.camera.video.FallbackStrategy? + ): androidx.camera.video.QualitySelector /** Gets an instance of QualitySelector with ordered desired qualities. */ - abstract fun fromOrderedList(qualities: List, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + abstract fun fromOrderedList( + qualities: List, + fallbackStrategy: androidx.camera.video.FallbackStrategy? + ): androidx.camera.video.QualitySelector /** Gets the corresponding resolution from the input quality. */ - abstract fun getResolution(cameraInfo: androidx.camera.core.CameraInfo, quality: VideoQuality): android.util.Size? + abstract fun getResolution( + cameraInfo: androidx.camera.core.CameraInfo, + quality: VideoQuality + ): android.util.Size? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiQualitySelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(qualityArg,fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(qualityArg, fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8027,19 +5347,25 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualitiesArg = args[1] as List val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.fromOrderedList(qualitiesArg,fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.fromOrderedList(qualitiesArg, fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8047,17 +5373,22 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val cameraInfoArg = args[0] as androidx.camera.core.CameraInfo val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - listOf(api.getResolution(cameraInfoArg, qualityArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getResolution(cameraInfoArg, qualityArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8069,150 +5400,74 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of QualitySelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.QualitySelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.QualitySelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.QualitySelector; -import androidx.camera.video.FallbackStrategy; -import androidx.camera.core.CameraInfo; -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link QualitySelector}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class QualitySelectorProxyApi extends PigeonApiQualitySelector { - QualitySelectorProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public QualitySelector from(@NonNull VideoQuality quality, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { - return QualitySelector(quality, fallbackStrategy); - } - - @NonNull - @Override - public QualitySelector fromOrderedList(@NonNull List qualities, @Nullable androidx.camera.video.FallbackStrategy? fallbackStrategy) { - return QualitySelector(qualities, fallbackStrategy); - } - - @Nullable - @Override - public android.util.Size? getResolution(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull VideoQuality quality) { - return QualitySelector.getResolution(cameraInfo, quality); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.QualitySelector -import androidx.camera.video.FallbackStrategy -import androidx.camera.core.CameraInfo -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class QualitySelectorProxyApiTest { - @Test - public void from() { - final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); - - assertTrue(api.from(io.flutter.plugins.camerax.VideoQuality.SD, mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); - } - - @Test - public void fromOrderedList() { - final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); - - assertTrue(api.fromOrderedList(Arrays.asList(io.flutter.plugins.camerax.VideoQuality.SD), mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); - } - } -*/ /** - * A class represents the strategy that will be adopted when the device does - * not support all the desired Quality in QualitySelector in order to select - * the quality as possible. + * A class represents the strategy that will be adopted when the device does not support all the + * desired Quality in QualitySelector in order to select the quality as possible. * * See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFallbackStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Returns a fallback strategy that will choose the quality that is closest - * to and higher than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and higher than the + * input quality. */ - abstract fun higherQualityOrLowerThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + abstract fun higherQualityOrLowerThan( + quality: VideoQuality + ): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and higher than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and higher than the + * input quality. */ abstract fun higherQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and lower than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and lower than the + * input quality. */ - abstract fun lowerQualityOrHigherThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + abstract fun lowerQualityOrHigherThan( + quality: VideoQuality + ): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and lower than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and lower than the + * input quality. */ abstract fun lowerQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy @@ -8221,18 +5476,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFallbackStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8240,18 +5501,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.higherQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8259,18 +5526,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8278,18 +5551,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.lowerQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8301,167 +5580,93 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.FallbackStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.FallbackStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.video.FallbackStrategy; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link FallbackStrategy}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class FallbackStrategyProxyApi extends PigeonApiFallbackStrategy { - FallbackStrategyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public FallbackStrategy higherQualityOrLowerThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); - } - - @NonNull - @Override - public FallbackStrategy higherQualityThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); - } - - @NonNull - @Override - public FallbackStrategy lowerQualityOrHigherThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); - } - - @NonNull - @Override - public FallbackStrategy lowerQualityThan(@NonNull VideoQuality quality) { - return FallbackStrategy(quality); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.video.FallbackStrategy -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FallbackStrategyProxyApiTest { - @Test - public void higherQualityOrLowerThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.higherQualityOrLowerThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - - @Test - public void higherQualityThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.higherQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - - @Test - public void lowerQualityOrHigherThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.lowerQualityOrHigherThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - - @Test - public void lowerQualityThan() { - final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); - - assertTrue(api.lowerQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); - } - } -*/ /** - * The CameraControl provides various asynchronous operations like zoom, focus - * and metering which affects output of all UseCases currently bound to that - * camera. + * The CameraControl provides various asynchronous operations like zoom, focus and metering which + * affects output of all UseCases currently bound to that camera. * * See https://developer.android.com/reference/androidx/camera/core/CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraControl( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Enable the torch or disable the torch. */ - abstract fun enableTorch(pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit) + abstract fun enableTorch( + pigeon_instance: androidx.camera.core.CameraControl, + torch: Boolean, + callback: (Result) -> Unit + ) /** Sets current zoom by ratio. */ - abstract fun setZoomRatio(pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit) - - /** - * Starts a focus and metering action configured by the - * `FocusMeteringAction`. - */ - abstract fun startFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) + abstract fun setZoomRatio( + pigeon_instance: androidx.camera.core.CameraControl, + ratio: Double, + callback: (Result) -> Unit + ) + + /** Starts a focus and metering action configured by the `FocusMeteringAction`. */ + abstract fun startFocusAndMetering( + pigeon_instance: androidx.camera.core.CameraControl, + action: androidx.camera.core.FocusMeteringAction, + callback: (Result) -> Unit + ) /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ - abstract fun cancelFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, callback: (Result) -> Unit) + abstract fun cancelFocusAndMetering( + pigeon_instance: androidx.camera.core.CameraControl, + callback: (Result) -> Unit + ) /** Set the exposure compensation value for the camera. */ - abstract fun setExposureCompensationIndex(pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit) + abstract fun setExposureCompensationIndex( + pigeon_instance: androidx.camera.core.CameraControl, + index: Long, + callback: (Result) -> Unit + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraControl?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -8481,7 +5686,11 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -8501,13 +5710,18 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val actionArg = args[1] as androidx.camera.core.FocusMeteringAction - api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> + api.startFocusAndMetering(pigeon_instanceArg, actionArg) { + result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -8522,7 +5736,11 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -8541,13 +5759,18 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val indexArg = args[1] as Long - api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result -> + api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result + -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -8566,16 +5789,19 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraControl, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraControl, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" @@ -8583,197 +5809,86 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraControl; -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.FocusMeteringResult; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraControl}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraControlProxyApi extends PigeonApiCameraControl { - CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @Override - public Void enableTorch(CameraControl, pigeon_instance@NonNull Boolean torch) { - pigeon_instance.enableTorch(torch); - } - - @Override - public Void setZoomRatio(CameraControl, pigeon_instance@NonNull Double ratio) { - pigeon_instance.setZoomRatio(ratio); - } - - @Nullable - @Override - public androidx.camera.core.FocusMeteringResult? startFocusAndMetering(CameraControl, pigeon_instance@NonNull androidx.camera.core.FocusMeteringAction action) { - return pigeon_instance.startFocusAndMetering(action); - } - - @Override - public Void cancelFocusAndMetering(CameraControl pigeon_instance) { - pigeon_instance.cancelFocusAndMetering(); - } - - @Nullable - @Override - public Long? setExposureCompensationIndex(CameraControl, pigeon_instance@NonNull Long index) { - return pigeon_instance.setExposureCompensationIndex(index); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.CameraControl -import androidx.camera.core.FocusMeteringAction -import androidx.camera.core.FocusMeteringResult -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraControlProxyApiTest { - @Test - public void enableTorch() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final Boolean torch = true; - api.enableTorch(instance, torch); - - verify(instance).enableTorch(torch); - } - - @Test - public void setZoomRatio() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final Double ratio = 1.0; - api.setZoomRatio(instance, ratio); - - verify(instance).setZoomRatio(ratio); - } - - @Test - public void startFocusAndMetering() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final androidx.camera.core.FocusMeteringAction action = mock(FocusMeteringAction.class); - final androidx.camera.core.FocusMeteringResult value = mock(FocusMeteringResult.class); - when(instance.startFocusAndMetering(action)).thenReturn(value); - - assertEquals(value, api.startFocusAndMetering(instance, action)); - } - - @Test - public void cancelFocusAndMetering() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - api.cancelFocusAndMetering(instance ); - - verify(instance).cancelFocusAndMetering(); - } - - @Test - public void setExposureCompensationIndex() { - final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); - - final CameraControl instance = mock(CameraControl.class); - final Long index = 0; - final Long value = 0; - when(instance.setExposureCompensationIndex(index)).thenReturn(value); - - assertEquals(value, api.setExposureCompensationIndex(instance, index)); - } - } -*/ /** * The builder used to create the `FocusMeteringAction`. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. */ -@Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** - * Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | - * FLAG_AE | FLAG_AWB. - */ - abstract fun pigeon_defaultConstructor(point: androidx.camera.core.MeteringPoint): androidx.camera.core.FocusMeteringAction.Builder +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiFocusMeteringActionBuilder( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + /** Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | FLAG_AE | FLAG_AWB. */ + abstract fun pigeon_defaultConstructor( + point: androidx.camera.core.MeteringPoint + ): androidx.camera.core.FocusMeteringAction.Builder /** Creates a Builder from a `MeteringPoint` and `MeteringMode`. */ - abstract fun withMode(point: androidx.camera.core.MeteringPoint, mode: MeteringMode): androidx.camera.core.FocusMeteringAction.Builder + abstract fun withMode( + point: androidx.camera.core.MeteringPoint, + mode: MeteringMode + ): androidx.camera.core.FocusMeteringAction.Builder /** Adds another MeteringPoint with default metering mode. */ - abstract fun addPoint(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint) + abstract fun addPoint( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + point: androidx.camera.core.MeteringPoint + ) /** Adds another MeteringPoint with specified meteringMode. */ - abstract fun addPointWithMode(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, mode: MeteringMode) + abstract fun addPointWithMode( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + point: androidx.camera.core.MeteringPoint, + mode: MeteringMode + ) /** Disables the auto-cancel. */ abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) /** Builds the `FocusMeteringAction` instance. */ - abstract fun build(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder): androidx.camera.core.FocusMeteringAction + abstract fun build( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder + ): androidx.camera.core.FocusMeteringAction companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFocusMeteringActionBuilder?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiFocusMeteringActionBuilder? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8781,19 +5896,25 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withMode(pointArg,modeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.withMode(pointArg, modeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8801,18 +5922,23 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - api.addPoint(pigeon_instanceArg, pointArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.addPoint(pigeon_instanceArg, pointArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8820,19 +5946,24 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = try { - api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8840,17 +5971,22 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = try { - api.disableAutoCancel(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.disableAutoCancel(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8858,16 +5994,21 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = try { - listOf(api.build(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.build(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -8878,466 +6019,177 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.FocusMeteringAction.Builder; -import androidx.camera.core.MeteringPoint; -import androidx.camera.core.FocusMeteringAction; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link FocusMeteringActionBuilder}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class FocusMeteringActionBuilderProxyApi extends PigeonApiFocusMeteringActionBuilder { - FocusMeteringActionBuilderProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public FocusMeteringActionBuilder pigeon_defaultConstructor(@NonNull androidx.camera.core.MeteringPoint point) { - return FocusMeteringActionBuilder(point); - } - - @NonNull - @Override - public FocusMeteringActionBuilder withMode(@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { - return FocusMeteringActionBuilder(point, mode); - } - - @Override - public Void addPoint(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point) { - pigeon_instance.addPoint(point); - } - - @Override - public Void addPointWithMode(FocusMeteringActionBuilder, pigeon_instance@NonNull androidx.camera.core.MeteringPoint point, @NonNull MeteringMode mode) { - pigeon_instance.addPointWithMode(point, mode); - } - - @Override - public Void disableAutoCancel(FocusMeteringActionBuilder pigeon_instance) { - pigeon_instance.disableAutoCancel(); - } - - @NonNull - @Override - public androidx.camera.core.FocusMeteringAction build(FocusMeteringActionBuilder pigeon_instance) { - return pigeon_instance.build(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.FocusMeteringAction.Builder -import androidx.camera.core.MeteringPoint -import androidx.camera.core.FocusMeteringAction -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FocusMeteringActionBuilderProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - assertTrue(api.pigeon_defaultConstructor(mock(MeteringPoint.class)) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); - } - - @Test - public void withMode() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - assertTrue(api.withMode(mock(MeteringPoint.class), io.flutter.plugins.camerax.MeteringMode.AE) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); - } - - @Test - public void addPoint() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); - api.addPoint(instance, point); - - verify(instance).addPoint(point); - } - - @Test - public void addPointWithMode() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); - final MeteringMode mode = io.flutter.plugins.camerax.MeteringMode.AE; - api.addPointWithMode(instance, point, mode); - - verify(instance).addPointWithMode(point, mode); - } - - @Test - public void disableAutoCancel() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - api.disableAutoCancel(instance ); - - verify(instance).disableAutoCancel(); - } - - @Test - public void build() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); - - final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); - final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); - when(instance.build()).thenReturn(value); - - assertEquals(value, api.build(instance )); - } - } -*/ /** * A configuration used to trigger a focus and/or metering action. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFocusMeteringAction( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** All MeteringPoints used for AE regions. */ - abstract fun meteringPointsAe(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAe( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** All MeteringPoints used for AF regions. */ - abstract fun meteringPointsAf(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAf( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** All MeteringPoints used for AWB regions. */ - abstract fun meteringPointsAwb(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAwb( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** If auto-cancel is enabled or not. */ - abstract fun isAutoCancelEnabled(pigeon_instance: androidx.camera.core.FocusMeteringAction): Boolean + abstract fun isAutoCancelEnabled( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, meteringPointsAeArg, meteringPointsAfArg, meteringPointsAwbArg, isAutoCancelEnabledArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) + channel.send( + listOf( + pigeon_identifierArg, + meteringPointsAeArg, + meteringPointsAfArg, + meteringPointsAwbArg, + isAutoCancelEnabledArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure( + CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.MeteringPoint; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link FocusMeteringAction}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class FocusMeteringActionProxyApi extends PigeonApiFocusMeteringAction { - FocusMeteringActionProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public List meteringPointsAe(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getMeteringPointsAe(); - } - - @NonNull - @Override - public List meteringPointsAf(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getMeteringPointsAf(); - } - - @NonNull - @Override - public List meteringPointsAwb(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getMeteringPointsAwb(); - } - - @NonNull - @Override - public Boolean isAutoCancelEnabled(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getIsAutoCancelEnabled(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.FocusMeteringAction -import androidx.camera.core.MeteringPoint -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FocusMeteringActionProxyApiTest { - @Test - public void meteringPointsAe() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Arrays.asList(mock(MeteringPoint.class)); - when(instance.getMeteringPointsAe()).thenReturn(value); - - assertEquals(value, api.meteringPointsAe(instance)); - } - - @Test - public void meteringPointsAf() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Arrays.asList(mock(MeteringPoint.class)); - when(instance.getMeteringPointsAf()).thenReturn(value); - - assertEquals(value, api.meteringPointsAf(instance)); - } - - @Test - public void meteringPointsAwb() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Arrays.asList(mock(MeteringPoint.class)); - when(instance.getMeteringPointsAwb()).thenReturn(value); - - assertEquals(value, api.meteringPointsAwb(instance)); - } - - @Test - public void isAutoCancelEnabled() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - - final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final Boolean value = true; - when(instance.getIsAutoCancelEnabled()).thenReturn(value); - - assertEquals(value, api.isAutoCancelEnabled(instance)); - } - } -*/ /** * Result of the `CameraControl.startFocusAndMetering`. * * See https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFocusMeteringResult( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** If auto focus is successful. */ abstract fun isFocusSuccessful(pigeon_instance: androidx.camera.core.FocusMeteringResult): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, isFocusSuccessfulArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.FocusMeteringResult; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link FocusMeteringResult}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class FocusMeteringResultProxyApi extends PigeonApiFocusMeteringResult { - FocusMeteringResultProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Boolean isFocusSuccessful(FocusMeteringResult pigeon_instance) { - return pigeon_instance.getIsFocusSuccessful(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.FocusMeteringResult -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class FocusMeteringResultProxyApiTest { - @Test - public void isFocusSuccessful() { - final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); - - final FocusMeteringResult instance = mock(FocusMeteringResult.class); - final Boolean value = true; - when(instance.getIsFocusSuccessful()).thenReturn(value); - - assertEquals(value, api.isFocusSuccessful(instance)); - } - } -*/ /** - * An immutable package of settings and outputs needed to capture a single - * image from the camera device. + * An immutable package of settings and outputs needed to capture a single image from the camera + * device. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCaptureRequest( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Whether auto-exposure (AE) is currently locked to its latest calculated - * values. + * Whether auto-exposure (AE) is currently locked to its latest calculated values. * * Value is boolean. * @@ -9350,17 +6202,23 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequest?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.controlAELock(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.controlAELock(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9372,208 +6230,130 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequest and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CaptureRequest, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CaptureRequest; -import android.hardware.camera2.CaptureRequest.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CaptureRequest}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CaptureRequestProxyApi extends PigeonApiCaptureRequest { - CaptureRequestProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public android.hardware.camera2.CaptureRequest.Key<*> controlAELock() { - return CaptureRequest.getControlAELock(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CaptureRequest -import android.hardware.camera2.CaptureRequest.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestProxyApiTest { } -*/ /** - * A Key is used to do capture request field lookups with CaptureRequest.get or - * to set fields with `CaptureRequest.Builder.set`. + * A Key is used to do capture request field lookups with CaptureRequest.get or to set fields with + * `CaptureRequest.Builder.set`. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiCaptureRequestKey( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CaptureRequest.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CaptureRequestKey}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CaptureRequestKeyProxyApi extends PigeonApiCaptureRequestKey { - CaptureRequestKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CaptureRequest.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestKeyProxyApiTest { } -*/ /** * A bundle of Camera2 capture request options. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(options: Map, Any?>): androidx.camera.camera2.interop.CaptureRequestOptions - - /** - * Returns a value for the given CaptureRequestKey or null if it hasn't been - * set. - */ - abstract fun getCaptureRequestOption(pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, key: android.hardware.camera2.CaptureRequest.Key<*>): Any? +abstract class PigeonApiCaptureRequestOptions( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + options: Map, Any?> + ): androidx.camera.camera2.interop.CaptureRequestOptions + + /** Returns a value for the given CaptureRequestKey or null if it hasn't been set. */ + abstract fun getCaptureRequestOption( + pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, + key: android.hardware.camera2.CaptureRequest.Key<*> + ): Any? companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequestOptions?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCaptureRequestOptions? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val optionsArg = args[1] as Map, Any?> - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9581,171 +6361,115 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.CaptureRequestOptions + val pigeon_instanceArg = + args[0] as androidx.camera.camera2.interop.CaptureRequestOptions val keyArg = args[1] as android.hardware.camera2.CaptureRequest.Key<*> - val wrapped: List = try { - listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { channel.setMessageHandler(null) - } - } - } - } - - @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) -{ - if (pigeonRegistrar.ignoreCallsToDart) { - callback( - Result.failure( - CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { - callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val binaryMessenger = pigeonRegistrar.binaryMessenger - val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" - val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } - } - } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.camera2.interop.CaptureRequestOptions; -import android.hardware.camera2.CaptureRequest.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CaptureRequestOptions}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { - CaptureRequestOptionsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public CaptureRequestOptions pigeon_defaultConstructor(@NonNull Map, Any?> options) { - return CaptureRequestOptions(options); - } - - @Nullable - @Override - public Any? getCaptureRequestOption(CaptureRequestOptions, pigeon_instance@NonNull android.hardware.camera2.CaptureRequest.Key<*> key) { - return pigeon_instance.getCaptureRequestOption(key); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.camera2.interop.CaptureRequestOptions -import android.hardware.camera2.CaptureRequest.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestOptionsProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); - - assertTrue(api.pigeon_defaultConstructor(new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}) instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); + } + } + } } - @Test - public void getCaptureRequestOption() { - final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); - - final CaptureRequestOptions instance = mock(CaptureRequestOptions.class); - final android.hardware.camera2.CaptureRequest.Key<*> key = mock(CaptureRequestKey.class); - final Any value = -1; - when(instance.getCaptureRequestOption(key)).thenReturn(value); - - assertEquals(value, api.getCaptureRequestOption(instance, key)); + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, + callback: (Result) -> Unit + ) { + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } + } } - } -*/ /** - * An class that provides ability to interoperate with the - * 1android.hardware.camera21 APIs. + * An class that provides ability to interoperate with the 1android.hardware.camera21 APIs. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCamera2CameraControl( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets the `Camera2CameraControl` from a `CameraControl`. */ - abstract fun from(cameraControl: androidx.camera.core.CameraControl): androidx.camera.camera2.interop.Camera2CameraControl + abstract fun from( + cameraControl: androidx.camera.core.CameraControl + ): androidx.camera.camera2.interop.Camera2CameraControl - /** - * Adds a `CaptureRequestOptions` updates the session with the options it - * contains. - */ - abstract fun addCaptureRequestOptions(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, bundle: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) + /** Adds a `CaptureRequestOptions` updates the session with the options it contains. */ + abstract fun addCaptureRequestOptions( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, + bundle: androidx.camera.camera2.interop.CaptureRequestOptions, + callback: (Result) -> Unit + ) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraControl?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCamera2CameraControl? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraControlArg = args[1] as androidx.camera.core.CameraControl - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraControlArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(cameraControlArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9753,7 +6477,11 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -9777,142 +6505,77 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.camera2.interop.Camera2CameraControl; -import androidx.camera.core.CameraControl; -import androidx.camera.camera2.interop.CaptureRequestOptions; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Camera2CameraControl}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class Camera2CameraControlProxyApi extends PigeonApiCamera2CameraControl { - Camera2CameraControlProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Camera2CameraControl from(@NonNull androidx.camera.core.CameraControl cameraControl) { - return Camera2CameraControl(cameraControl); - } - - @Override - public Void addCaptureRequestOptions(Camera2CameraControl, pigeon_instance@NonNull androidx.camera.camera2.interop.CaptureRequestOptions bundle) { - pigeon_instance.addCaptureRequestOptions(bundle); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.camera2.interop.Camera2CameraControl -import androidx.camera.core.CameraControl -import androidx.camera.camera2.interop.CaptureRequestOptions -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class Camera2CameraControlProxyApiTest { - @Test - public void from() { - final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); - - assertTrue(api.from(mock(CameraControl.class)) instanceof Camera2CameraControlProxyApi.Camera2CameraControl); - } - - @Test - public void addCaptureRequestOptions() { - final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); - - final Camera2CameraControl instance = mock(Camera2CameraControl.class); - final androidx.camera.camera2.interop.CaptureRequestOptions bundle = mock(CaptureRequestOptions.class); - api.addCaptureRequestOptions(instance, bundle); - - verify(instance).addCaptureRequestOptions(bundle); - } - } -*/ /** - * Applications can filter out unsuitable sizes and sort the resolution list in - * the preferred order by implementing the resolution filter interface. + * Applications can filter out unsuitable sizes and sort the resolution list in the preferred order + * by implementing the resolution filter interface. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun createWithOnePreferredSize(preferredSize: android.util.Size): androidx.camera.core.resolutionselector.ResolutionFilter +abstract class PigeonApiResolutionFilter( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun createWithOnePreferredSize( + preferredSize: android.util.Size + ): androidx.camera.core.resolutionselector.ResolutionFilter companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionFilter?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredSizeArg = args[1] as android.util.Size - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -9924,190 +6587,95 @@ abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.resolutionselector.ResolutionFilter; -import android.util.Size; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link ResolutionFilter}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class ResolutionFilterProxyApi extends PigeonApiResolutionFilter { - ResolutionFilterProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public ResolutionFilter createWithOnePreferredSize(@NonNull android.util.Size preferredSize) { - return ResolutionFilter(preferredSize); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.resolutionselector.ResolutionFilter -import android.util.Size -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionFilterProxyApiTest { - @Test - public void createWithOnePreferredSize() { - final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); - - assertTrue(api.createWithOnePreferredSize(mock(CameraSize.class)) instanceof ResolutionFilterProxyApi.ResolutionFilter); - } - } -*/ /** - * A Key is used to do camera characteristics field lookups with - * `CameraCharacteristics.get`. + * A Key is used to do camera characteristics field lookups with `CameraCharacteristics.get`. * - * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. + * See + * https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiCameraCharacteristicsKey( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CameraCharacteristics.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraCharacteristicsKey}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraCharacteristicsKeyProxyApi extends PigeonApiCameraCharacteristicsKey { - CameraCharacteristicsKeyProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CameraCharacteristics.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraCharacteristicsKeyProxyApiTest { } -*/ /** * The properties describing a `CameraDevice`. * * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraCharacteristics( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Generally classifies the overall set of the camera device functionality. * @@ -10118,8 +6686,8 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL abstract fun infoSupportedHardwareLevel(): android.hardware.camera2.CameraCharacteristics.Key<*> /** - * Clockwise angle through which the output image needs to be rotated to be - * upright on the device screen in its native orientation.. + * Clockwise angle through which the output image needs to be rotated to be upright on the device + * screen in its native orientation.. * * Value is int. * @@ -10129,20 +6697,29 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraCharacteristics?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCameraCharacteristics? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.infoSupportedHardwareLevel(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.infoSupportedHardwareLevel(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10150,17 +6727,23 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.sensorOrientation(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.sensorOrientation(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10172,129 +6755,88 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import android.hardware.camera2.CameraCharacteristics; -import android.hardware.camera2.CameraCharacteristics.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link CameraCharacteristics}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class CameraCharacteristicsProxyApi extends PigeonApiCameraCharacteristics { - CameraCharacteristicsProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public android.hardware.camera2.CameraCharacteristics.Key<*> infoSupportedHardwareLevel() { - return CameraCharacteristics.getInfoSupportedHardwareLevel(); - } - - @NonNull - @Override - public android.hardware.camera2.CameraCharacteristics.Key<*> sensorOrientation() { - return CameraCharacteristics.getSensorOrientation(); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import android.hardware.camera2.CameraCharacteristics -import android.hardware.camera2.CameraCharacteristics.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraCharacteristicsProxyApiTest { } -*/ /** * An interface for retrieving Camera2-related camera information. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCamera2CameraInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets the `Camera2CameraInfo` from a `CameraInfo`. */ - abstract fun from(cameraInfo: androidx.camera.core.CameraInfo): androidx.camera.camera2.interop.Camera2CameraInfo + abstract fun from( + cameraInfo: androidx.camera.core.CameraInfo + ): androidx.camera.camera2.interop.Camera2CameraInfo /** Gets the string camera ID. */ - abstract fun getCameraId(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo): String + abstract fun getCameraId( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo + ): String /** Gets a camera characteristic value. */ - abstract fun getCameraCharacteristic(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, key: android.hardware.camera2.CameraCharacteristics.Key<*>): Any? + abstract fun getCameraCharacteristic( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, + key: android.hardware.camera2.CameraCharacteristics.Key<*> + ): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraInfoArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(cameraInfoArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10302,16 +6844,21 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo - val wrapped: List = try { - listOf(api.getCameraId(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraId(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10319,17 +6866,22 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val keyArg = args[1] as android.hardware.camera2.CameraCharacteristics.Key<*> - val wrapped: List = try { - listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10341,164 +6893,88 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.camera2.interop.Camera2CameraInfo; -import androidx.camera.core.CameraInfo; -import android.hardware.camera2.CameraCharacteristics.Key<*>; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link Camera2CameraInfo}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class Camera2CameraInfoProxyApi extends PigeonApiCamera2CameraInfo { - Camera2CameraInfoProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public Camera2CameraInfo from(@NonNull androidx.camera.core.CameraInfo cameraInfo) { - return Camera2CameraInfo(cameraInfo); - } - - @NonNull - @Override - public String getCameraId(Camera2CameraInfo pigeon_instance) { - return pigeon_instance.getCameraId(); - } - - @Nullable - @Override - public Any? getCameraCharacteristic(Camera2CameraInfo, pigeon_instance@NonNull android.hardware.camera2.CameraCharacteristics.Key<*> key) { - return pigeon_instance.getCameraCharacteristic(key); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.camera2.interop.Camera2CameraInfo -import androidx.camera.core.CameraInfo -import android.hardware.camera2.CameraCharacteristics.Key<*> -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class Camera2CameraInfoProxyApiTest { - @Test - public void from() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - assertTrue(api.from(mock(CameraInfo.class)) instanceof Camera2CameraInfoProxyApi.Camera2CameraInfo); - } - - @Test - public void getCameraId() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); - final String value = "myString"; - when(instance.getCameraId()).thenReturn(value); - - assertEquals(value, api.getCameraId(instance )); - } - - @Test - public void getCameraCharacteristic() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); - final android.hardware.camera2.CameraCharacteristics.Key<*> key = mock(CameraCharacteristicsKey.class); - final Any value = -1; - when(instance.getCameraCharacteristic(key)).thenReturn(value); - - assertEquals(value, api.getCameraCharacteristic(instance, key)); - } - } -*/ /** * A factory to create a MeteringPoint. * * See https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiMeteringPointFactory( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Creates a MeteringPoint by x, y. */ - abstract fun createPoint(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double): androidx.camera.core.MeteringPoint + abstract fun createPoint( + pigeon_instance: androidx.camera.core.MeteringPointFactory, + x: Double, + y: Double + ): androidx.camera.core.MeteringPoint /** Creates a MeteringPoint by x, y, size. */ - abstract fun createPointWithSize(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double, size: Double): androidx.camera.core.MeteringPoint + abstract fun createPointWithSize( + pigeon_instance: androidx.camera.core.MeteringPointFactory, + x: Double, + y: Double, + size: Double + ): androidx.camera.core.MeteringPoint companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPointFactory?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiMeteringPointFactory? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double - val wrapped: List = try { - listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10506,7 +6982,11 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -10514,11 +6994,12 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi val xArg = args[1] as Double val yArg = args[2] as Double val sizeArg = args[3] as Double - val wrapped: List = try { - listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10530,145 +7011,73 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.MeteringPointFactory; -import androidx.camera.core.MeteringPoint; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link MeteringPointFactory}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class MeteringPointFactoryProxyApi extends PigeonApiMeteringPointFactory { - MeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public androidx.camera.core.MeteringPoint createPoint(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y) { - return pigeon_instance.createPoint(x, y); - } - - @NonNull - @Override - public androidx.camera.core.MeteringPoint createPointWithSize(MeteringPointFactory, pigeon_instance@NonNull Double x, @NonNull Double y, @NonNull Double size) { - return pigeon_instance.createPointWithSize(x, y, size); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.MeteringPointFactory -import androidx.camera.core.MeteringPoint -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class MeteringPointFactoryProxyApiTest { - @Test - public void createPoint() { - final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); - - final MeteringPointFactory instance = mock(MeteringPointFactory.class); - final Double x = 1.0; - final Double y = 1.0; - final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); - when(instance.createPoint(x, y)).thenReturn(value); - - assertEquals(value, api.createPoint(instance, x, y)); - } - - @Test - public void createPointWithSize() { - final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); - - final MeteringPointFactory instance = mock(MeteringPointFactory.class); - final Double x = 1.0; - final Double y = 1.0; - final Double size = 1.0; - final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); - when(instance.createPointWithSize(x, y, size)).thenReturn(value); - - assertEquals(value, api.createPointWithSize(instance, x, y, size)); - } - } -*/ /** - * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint - * which can then be used to construct a FocusMeteringAction to start a focus - * and metering action. + * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint which can then be used + * to construct a FocusMeteringAction to start a focus and metering action. * - * See https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. + * See + * https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiDisplayOrientedMeteringPointFactory( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) - * into a MeteringPoint based on the current display's rotation and - * CameraInfo. + * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) into a MeteringPoint + * based on the current display's rotation and CameraInfo. */ - abstract fun pigeon_defaultConstructor(cameraInfo: androidx.camera.core.CameraInfo, width: Double, height: Double): androidx.camera.core.DisplayOrientedMeteringPointFactory + abstract fun pigeon_defaultConstructor( + cameraInfo: androidx.camera.core.CameraInfo, + width: Double, + height: Double + ): androidx.camera.core.DisplayOrientedMeteringPointFactory companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDisplayOrientedMeteringPointFactory?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiDisplayOrientedMeteringPointFactory? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -10676,12 +7085,15 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo val widthArg = args[2] as Double val heightArg = args[3] as Double - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(cameraInfoArg,widthArg,heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(cameraInfoArg, widthArg, heightArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -10692,102 +7104,46 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to + * [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiMeteringPointFactory] used to access callback methods */ - fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory - { + fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory { return pigeonRegistrar.getPigeonApiMeteringPointFactory() } - -} - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.DisplayOrientedMeteringPointFactory; -import androidx.camera.core.CameraInfo; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -/** - * ProxyApi implementation for {@link DisplayOrientedMeteringPointFactory}. - * This class may handle instantiating native object instances that are attached to a Dart - * instance or handle method calls on the associated native class or an instance of that class. - */ -class DisplayOrientedMeteringPointFactoryProxyApi extends PigeonApiDisplayOrientedMeteringPointFactory { - DisplayOrientedMeteringPointFactoryProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { - super(pigeonRegistrar); - } - - @NonNull - @Override - public DisplayOrientedMeteringPointFactory pigeon_defaultConstructor(@NonNull androidx.camera.core.CameraInfo cameraInfo, @NonNull Double width, @NonNull Double height) { - return DisplayOrientedMeteringPointFactory(cameraInfo, width, height); - } - -} -*/ - -/* -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax - -import androidx.camera.core.DisplayOrientedMeteringPointFactory -import androidx.camera.core.CameraInfo -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class DisplayOrientedMeteringPointFactoryProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiDisplayOrientedMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiDisplayOrientedMeteringPointFactory(); - - assertTrue(api.pigeon_defaultConstructor(mock(CameraInfo.class), 1.0, 1.0) instanceof DisplayOrientedMeteringPointFactoryProxyApi.DisplayOrientedMeteringPointFactory); - } - } -*/ diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java index 50617a7be61..0be799d97bd 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java @@ -83,10 +83,10 @@ public String getTempFilePath( try { return pigeon_instance.getTempFilePath(prefix, suffix); } catch (IOException e) { - throw new CameraXError( + throw new RuntimeException( "getTempFilePath_failure", - "SystemServicesHostApiImpl.getTempFilePath encountered an exception: " + e, - null); + new Throwable( + "SystemServicesHostApiImpl.getTempFilePath encountered an exception: " + e)); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java index 3f32458da7f..5be7f5f1952 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java @@ -4,8 +4,6 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ImageProxy; -import org.junit.Test; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; @@ -13,6 +11,9 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.ImageProxy; +import org.junit.Test; + public class AnalyzerTest { @Test public void pigeon_defaultConstructor() { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java index f57af5476aa..9f8f1d280f9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java @@ -4,32 +4,35 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.resolutionselector.AspectRatioStrategy; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.resolutionselector.AspectRatioStrategy; +import org.junit.Test; + public class AspectRatioStrategyTest { @Test public void pigeon_defaultConstructor() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + final PigeonApiAspectRatioStrategy api = + new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); - final AspectRatioStrategy instance = api.pigeon_defaultConstructor(io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO); + final AspectRatioStrategy instance = + api.pigeon_defaultConstructor( + io.flutter.plugins.camerax.AspectRatio.RATIO16TO9, + io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO); assertEquals(instance.getPreferredAspectRatio(), androidx.camera.core.AspectRatio.RATIO_16_9); assertEquals(instance.getFallbackRule(), AspectRatioStrategy.FALLBACK_RULE_AUTO); } @Test public void getFallbackRule() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + final PigeonApiAspectRatioStrategy api = + new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); - final AspectRatioStrategyFallbackRule value = io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO; + final AspectRatioStrategyFallbackRule value = + io.flutter.plugins.camerax.AspectRatioStrategyFallbackRule.AUTO; when(instance.getFallbackRule()).thenReturn(AspectRatioStrategy.FALLBACK_RULE_AUTO); assertEquals(value, api.getFallbackRule(instance)); @@ -37,13 +40,14 @@ public void getFallbackRule() { @Test public void getPreferredAspectRatio() { - final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); + final PigeonApiAspectRatioStrategy api = + new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); final AspectRatioStrategy instance = mock(AspectRatioStrategy.class); final AspectRatio value = io.flutter.plugins.camerax.AspectRatio.RATIO16TO9; - when(instance.getPreferredAspectRatio()).thenReturn(androidx.camera.core.AspectRatio.RATIO_16_9); + when(instance.getPreferredAspectRatio()) + .thenReturn(androidx.camera.core.AspectRatio.RATIO_16_9); - assertEquals(value, api.getPreferredAspectRatio(instance )); + assertEquals(value, api.getPreferredAspectRatio(instance)); } - } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java index 22b5f23857f..1b6c2f71275 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java @@ -4,27 +4,22 @@ package io.flutter.plugins.camerax; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + import androidx.camera.camera2.interop.Camera2CameraControl; -import androidx.camera.core.CameraControl; import androidx.camera.camera2.interop.CaptureRequestOptions; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import static org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; public class Camera2CameraControlProxyApiTest { @Test public void addCaptureRequestOptions() { - final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + final PigeonApiCamera2CameraControl api = + new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); final Camera2CameraControl instance = mock(Camera2CameraControl.class); - final androidx.camera.camera2.interop.CaptureRequestOptions bundle = mock(CaptureRequestOptions.class); + final androidx.camera.camera2.interop.CaptureRequestOptions bundle = + mock(CaptureRequestOptions.class); api.addCaptureRequestOptions(instance, bundle, null); verify(instance).addCaptureRequestOptions(bundle); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java index 2fb7081d6c2..9150b6e3610 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java @@ -15,17 +15,17 @@ * of posting them, and makes all SDK checks pass by default. */ public class TestProxyApiRegistrar extends ProxyApiRegistrar { - public TestProxyApiRegistrar() { - super(mock(BinaryMessenger.class), mock(Context.class), mock(TextureRegistry.class)); - } + public TestProxyApiRegistrar() { + super(mock(BinaryMessenger.class), mock(Context.class), mock(TextureRegistry.class)); + } - @Override - void runOnMainThread(Runnable runnable) { - runnable.run(); - } + @Override + void runOnMainThread(Runnable runnable) { + runnable.run(); + } - @Override - boolean sdkIsAtLeast(int version) { - return true; - } + @Override + boolean sdkIsAtLeast(int version) { + return true; + } } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 172e8ca9233..24e3cd9b181 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -8,7 +8,8 @@ import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/foundation.dart' + show ReadBuffer, WriteBuffer, immutable, protected; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; @@ -19,7 +20,8 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse( + {Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; } @@ -28,6 +30,7 @@ List wrapResponse({Object? result, PlatformException? error, bool empty } return [error.code, error.message, error.details]; } + /// An immutable object that serves as the base class for all ProxyApis and /// can provide functional copies of itself. /// @@ -110,9 +113,10 @@ class PigeonInstanceManager { // by calling instanceManager.getIdentifier() inside of `==` while this was a // HashMap). final Expando _identifiers = Expando(); - final Map> _weakInstances = - >{}; - final Map _strongInstances = {}; + final Map> + _weakInstances = >{}; + final Map _strongInstances = + {}; late final Finalizer _finalizer; int _nextIdentifier = 0; @@ -122,7 +126,8 @@ class PigeonInstanceManager { static PigeonInstanceManager _initInstance() { WidgetsFlutterBinding.ensureInitialized(); - final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); + final _PigeonInternalInstanceManagerApi api = + _PigeonInternalInstanceManagerApi(); // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. api.clear(); final PigeonInstanceManager instanceManager = PigeonInstanceManager( @@ -130,58 +135,109 @@ class PigeonInstanceManager { api.removeStrongReference(identifier); }, ); - _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); - CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventFinalize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPoint.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Observer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ProcessCameraProvider.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - UseCase.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers( + instanceManager: instanceManager); + CameraSize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraIntegerRange.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEvent.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventStart.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventFinalize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPoint.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Observer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ProcessCameraProvider.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + UseCase.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - SystemServicesManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - DeviceOrientationManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Preview.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoOutput.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recorder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventListener.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PendingRecording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - AspectRatioStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ExposureState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ZoomState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageAnalysis.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Analyzer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraStateStateError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - LiveData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PlaneProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - QualitySelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FallbackStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringActionBuilder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringAction.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringResult.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequest.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestOptions.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionFilter.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + SystemServicesManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DeviceOrientationManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Preview.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoOutput.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recorder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventListener.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PendingRecording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + AspectRatioStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ExposureState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ZoomState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageAnalysis.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Analyzer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraStateStateError.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + LiveData.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PlaneProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + QualitySelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FallbackStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringAction.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringResult.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequest.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestOptions.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionFilter.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristicsKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristics.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); return instanceManager; } @@ -245,15 +301,20 @@ class PigeonInstanceManager { /// /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. - T? getInstanceWithWeakReference(int identifier) { - final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; + T? getInstanceWithWeakReference( + int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = + _weakInstances[identifier]?.target; if (weakInstance == null) { - final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; + final PigeonInternalProxyApiBaseClass? strongInstance = + _strongInstances[identifier]; if (strongInstance != null) { - final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); + final PigeonInternalProxyApiBaseClass copy = + strongInstance.pigeon_copy(); _identifiers[copy] = identifier; - _weakInstances[identifier] = WeakReference(copy); + _weakInstances[identifier] = + WeakReference(copy); _finalizer.attach(copy, identifier, detach: copy); return copy as T; } @@ -277,17 +338,20 @@ class PigeonInstanceManager { /// added. /// /// Returns unique identifier of the [instance] added. - void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { + void addHostCreatedInstance( + PigeonInternalProxyApiBaseClass instance, int identifier) { _addInstanceWithIdentifier(instance, identifier); } - void _addInstanceWithIdentifier(PigeonInternalProxyApiBaseClass instance, int identifier) { + void _addInstanceWithIdentifier( + PigeonInternalProxyApiBaseClass instance, int identifier) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = WeakReference(instance); + _weakInstances[identifier] = + WeakReference(instance); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -411,399 +475,30 @@ class _PigeonInternalInstanceManagerApi { } class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { - const _PigeonInternalProxyApiBaseCodec(this.instanceManager); - final PigeonInstanceManager instanceManager; - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is PigeonInternalProxyApiBaseClass) { - buffer.putUint8(128); - writeValue(buffer, instanceManager.getIdentifier(value)); - } else { - super.writeValue(buffer, value); - } - } - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return instanceManager - .getInstanceWithWeakReference(readValue(buffer)! as int); - default: - return super.readValueOfType(type, buffer); - } - } -} - -/// Handles constructing objects and calling static methods for the Android -/// Interactive Media Ads native library. -/// -/// This class provides dependency injection for the implementations of the -/// platform interface classes. Improving the ease of unit testing and/or -/// overriding the underlying Android classes. -/// -/// By default each function calls the default constructor of the class it -/// intends to return. -class MyLibraryProxy { - /// Constructs an [MyLibraryProxy]. - const MyLibraryProxy({ - this.newCameraSize = CameraSize.new, - this.newCameraIntegerRange = CameraIntegerRange.new, - this.newObserver = Observer.new, - this.newCameraSelector = CameraSelector.new, - this.newSystemServicesManager = SystemServicesManager.new, - this.newDeviceOrientationManager = DeviceOrientationManager.new, - this.newPreview = Preview.new, - this.withOutputVideoCapture = VideoCapture.withOutput, - this.newRecorder = Recorder.new, - this.newVideoRecordEventListener = VideoRecordEventListener.new, - this.newImageCapture = ImageCapture.new, - this.newResolutionStrategy = ResolutionStrategy.new, - this.newResolutionSelector = ResolutionSelector.new, - this.newAspectRatioStrategy = AspectRatioStrategy.new, - this.newImageAnalysis = ImageAnalysis.new, - this.newAnalyzer = Analyzer.new, - this.fromQualitySelector = QualitySelector.from, - this.fromOrderedListQualitySelector = QualitySelector.fromOrderedList, - this.higherQualityOrLowerThanFallbackStrategy = - FallbackStrategy.higherQualityOrLowerThan, - this.higherQualityThanFallbackStrategy = FallbackStrategy.higherQualityThan, - this.lowerQualityOrHigherThanFallbackStrategy = - FallbackStrategy.lowerQualityOrHigherThan, - this.lowerQualityThanFallbackStrategy = FallbackStrategy.lowerQualityThan, - this.newFocusMeteringActionBuilder = FocusMeteringActionBuilder.new, - this.withModeFocusMeteringActionBuilder = - FocusMeteringActionBuilder.withMode, - this.newCaptureRequestOptions = CaptureRequestOptions.new, - this.fromCamera2CameraControl = Camera2CameraControl.from, - this.createWithOnePreferredSizeResolutionFilter = - ResolutionFilter.createWithOnePreferredSize, - this.fromCamera2CameraInfo = Camera2CameraInfo.from, - this.newDisplayOrientedMeteringPointFactory = - DisplayOrientedMeteringPointFactory.new, - this.getInstanceProcessCameraProvider = ProcessCameraProvider.getInstance, - this.getResolutionQualitySelector = QualitySelector.getResolution, - this.defaultBackCameraCameraSelector = _defaultBackCameraCameraSelector, - this.defaultFrontCameraCameraSelector = _defaultFrontCameraCameraSelector, - this.highestAvailableStrategyResolutionStrategy = - _highestAvailableStrategyResolutionStrategy, - this.ratio_16_9FallbackAutoStrategyAspectRatioStrategy = - _ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - this.ratio_4_3FallbackAutoStrategyAspectRatioStrategy = - _ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - this.controlAELockCaptureRequest = _controlAELockCaptureRequest, - this.infoSupportedHardwareLevelCameraCharacteristics = - _infoSupportedHardwareLevelCameraCharacteristics, - this.sensorOrientationCameraCharacteristics = - _sensorOrientationCameraCharacteristics, - }); - - /// Constructs [CameraSize]. - final CameraSize Function({ - required int width, - required int height, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newCameraSize; - - /// Constructs [CameraIntegerRange]. - final CameraIntegerRange Function({ - required int lower, - required int upper, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newCameraIntegerRange; - - /// Constructs [Observer]. - final Observer Function({ - required void Function( - Observer, - Object, - ) onChanged, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newObserver; - - /// Constructs [CameraSelector]. - final CameraSelector Function({ - LensFacing? requireLensFacing, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newCameraSelector; - - /// Constructs [SystemServicesManager]. - final SystemServicesManager Function({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newSystemServicesManager; - - /// Constructs [DeviceOrientationManager]. - final DeviceOrientationManager Function({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newDeviceOrientationManager; - - /// Constructs [Preview]. - final Preview Function({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newPreview; - - /// Constructs [VideoCapture]. - final VideoCapture Function({ - required VideoOutput videoOutput, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) withOutputVideoCapture; - - /// Constructs [Recorder]. - final Recorder Function({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newRecorder; - - /// Constructs [VideoRecordEventListener]. - final VideoRecordEventListener Function({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newVideoRecordEventListener; - - /// Constructs [ImageCapture]. - final ImageCapture Function({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newImageCapture; - - /// Constructs [ResolutionStrategy]. - final ResolutionStrategy Function({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newResolutionStrategy; - - /// Constructs [ResolutionSelector]. - final ResolutionSelector Function({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionFilter? resolutionFilter, - ResolutionStrategy? resolutionStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newResolutionSelector; - - /// Constructs [AspectRatioStrategy]. - final AspectRatioStrategy Function({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newAspectRatioStrategy; - - /// Constructs [ImageAnalysis]. - final ImageAnalysis Function({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newImageAnalysis; - - /// Constructs [Analyzer]. - final Analyzer Function({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newAnalyzer; - - /// Constructs [QualitySelector]. - final QualitySelector Function({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) fromQualitySelector; - - /// Constructs [QualitySelector]. - final QualitySelector Function({ - required List qualities, - FallbackStrategy? fallbackStrategy, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) fromOrderedListQualitySelector; - - /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) higherQualityOrLowerThanFallbackStrategy; - - /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) higherQualityThanFallbackStrategy; - - /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) lowerQualityOrHigherThanFallbackStrategy; - - /// Constructs [FallbackStrategy]. - final FallbackStrategy Function({ - required VideoQuality quality, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) lowerQualityThanFallbackStrategy; - - /// Constructs [FocusMeteringActionBuilder]. - final FocusMeteringActionBuilder Function({ - required MeteringPoint point, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newFocusMeteringActionBuilder; - - /// Constructs [FocusMeteringActionBuilder]. - final FocusMeteringActionBuilder Function({ - required MeteringPoint point, - required MeteringMode mode, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) withModeFocusMeteringActionBuilder; - - /// Constructs [CaptureRequestOptions]. - final CaptureRequestOptions Function({ - required Map options, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newCaptureRequestOptions; - - /// Constructs [Camera2CameraControl]. - final Camera2CameraControl Function({ - required CameraControl cameraControl, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) fromCamera2CameraControl; - - /// Constructs [ResolutionFilter]. - final ResolutionFilter Function({ - required CameraSize preferredSize, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) createWithOnePreferredSizeResolutionFilter; - - /// Constructs [Camera2CameraInfo]. - final Camera2CameraInfo Function({ - required CameraInfo cameraInfo, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) fromCamera2CameraInfo; - - /// Constructs [DisplayOrientedMeteringPointFactory]. - final DisplayOrientedMeteringPointFactory Function({ - required CameraInfo cameraInfo, - required double width, - required double height, - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) newDisplayOrientedMeteringPointFactory; - - /// Calls to [ProcessCameraProvider.getInstance]. - final Future Function({ - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) getInstanceProcessCameraProvider; - - /// Calls to [QualitySelector.getResolution]. - final Future Function( - CameraInfo, - VideoQuality, { - BinaryMessenger? pigeon_binaryMessenger, - PigeonInstanceManager? pigeon_instanceManager, - }) getResolutionQualitySelector; - - /// Calls to [CameraSelector.defaultBackCamera]. - final CameraSelector Function() defaultBackCameraCameraSelector; - - /// Calls to [CameraSelector.defaultFrontCamera]. - final CameraSelector Function() defaultFrontCameraCameraSelector; - - /// Calls to [ResolutionStrategy.highestAvailableStrategy]. - final ResolutionStrategy Function() - highestAvailableStrategyResolutionStrategy; - - /// Calls to [AspectRatioStrategy.ratio_16_9FallbackAutoStrategy]. - final AspectRatioStrategy Function() - ratio_16_9FallbackAutoStrategyAspectRatioStrategy; - - /// Calls to [AspectRatioStrategy.ratio_4_3FallbackAutoStrategy]. - final AspectRatioStrategy Function() - ratio_4_3FallbackAutoStrategyAspectRatioStrategy; - - /// Calls to [CaptureRequest.controlAELock]. - final CaptureRequestKey Function() controlAELockCaptureRequest; - - /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. - final CameraCharacteristicsKey Function() - infoSupportedHardwareLevelCameraCharacteristics; - - /// Calls to [CameraCharacteristics.sensorOrientation]. - final CameraCharacteristicsKey Function() - sensorOrientationCameraCharacteristics; - - static CameraSelector _defaultBackCameraCameraSelector() => - CameraSelector.defaultBackCamera; - - static CameraSelector _defaultFrontCameraCameraSelector() => - CameraSelector.defaultFrontCamera; - - static ResolutionStrategy _highestAvailableStrategyResolutionStrategy() => - ResolutionStrategy.highestAvailableStrategy; - - static AspectRatioStrategy - _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; - - static AspectRatioStrategy - _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; - - static CaptureRequestKey _controlAELockCaptureRequest() => - CaptureRequest.controlAELock; - - static CameraCharacteristicsKey - _infoSupportedHardwareLevelCameraCharacteristics() => - CameraCharacteristics.infoSupportedHardwareLevel; + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } - static CameraCharacteristicsKey _sensorOrientationCameraCharacteristics() => - CameraCharacteristics.sensorOrientation; + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } } - /// Generally classifies the overall set of the camera device functionality. /// /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. @@ -811,13 +506,17 @@ enum InfoSupportedHardwareLevel { /// This camera device is capable of YUV reprocessing and RAW data capture, in /// addition to FULL-level capabilities. level3, + /// This camera device is backed by an external camera connected to this /// Android device. external, + /// This camera device is capable of supporting advanced imaging applications. full, + /// This camera device is running in backward compatibility mode. legacy, + /// This camera device does not have enough capabilities to qualify as a FULL /// device or better. limited, @@ -829,10 +528,13 @@ enum InfoSupportedHardwareLevel { enum AspectRatio { /// 16:9 standard aspect ratio. ratio16To9, + /// 4:3 standard aspect ratio. ratio4To3, + /// The aspect ratio representing no preference for aspect ratio. ratioDefault, + /// The value is not recognized by the wrapper. unknown, } @@ -843,15 +545,20 @@ enum AspectRatio { enum CameraStateType { /// Represents a state where the camera device is closed. closed, + /// Represents a state where the camera device is currently closing. closing, + /// Represents a state where the camera device is open. open, + /// Represents a state where the camera device is currently opening. opening, + /// Represents a state where the camera is waiting for a signal to attempt to /// open the camera device. pendingOpen, + /// This value is not recognized by this wrapper. unknown, } @@ -871,14 +578,19 @@ enum LiveDataSupportedType { enum VideoQuality { /// Standard Definition (SD) 480p video quality. SD, + /// High Definition (HD) 720p video quality. HD, + /// Full High Definition (FHD) 1080p video quality. FHD, + /// Ultra High Definition (UHD) 2160p video quality. UHD, + /// The lowest video quality supported by the video frame producer. lowest, + /// The highest video quality supported by the video frame producer. highest, } @@ -890,9 +602,11 @@ enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. ae, + /// A flag used in metering mode indicating the AF (Auto Focus) region is /// enabled. af, + /// A flag used in metering mode indicating the AWB (Auto White Balance) /// region is enabled. awb, @@ -904,12 +618,15 @@ enum MeteringMode { enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, + /// A camera on the device facing the opposite direction as the device's /// screen. back, + /// An external camera that has no fixed facing relative to the device's /// screen. external, + /// A camera on the devices that its lens facing is resolved. unknown, } @@ -923,10 +640,12 @@ enum CameraXFlashMode { /// The flash will be used according to the camera system's determination when /// taking a picture. auto, + /// No flash. /// /// The flash will never be used when taking a picture. off, + /// Always flash. /// /// The flash will always be used when taking a picture. @@ -941,18 +660,23 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to the /// closest higher resolution size. closestHigher, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest higher resolution size. closestHigherThenLower, + /// When the specified bound size is unavailable, CameraX falls back to the /// closest lower resolution size. closestLower, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. closestLowerThenHigher, + /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, + /// The value is not recognized by the wrapper. unknown, } @@ -966,9 +690,11 @@ enum AspectRatioStrategyFallbackRule { /// the closest field of view (FOV) of the camera sensor, from the remaining /// options. auto, + /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, + /// The value is not recognized by the wrapper. unknown, } @@ -980,29 +706,35 @@ enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. cameraDisabled, + /// An error indicating that the camera device was closed due to a fatal /// error. cameraFatalError, + /// An error indicating that the camera device is already in use. cameraInUse, + /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API /// level 28). doNotDisturbModeEnabled, + /// An error indicating that the limit number of open cameras has been /// reached, and more cameras cannot be opened until other instances are /// closed. maxCamerasInUse, + /// An error indicating that the camera device has encountered a recoverable /// error. otherRecoverableError, + /// An error indicating that configuring the camera has failed. streamConfig, + /// The value is not recognized by this wrapper. unknown, } - class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -1010,37 +742,37 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); } else { @@ -1051,37 +783,41 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null ? null : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null + ? null + : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null + ? null + : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; default: @@ -1089,6 +825,7 @@ class _PigeonCodec extends StandardMessageCodec { } } } + /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. @@ -8811,4 +8548,3 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { ); } } - diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 163f46e3a78..21811010c97 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -33,12 +33,12 @@ dev_dependencies: sdk: flutter leak_tracker_flutter_testing: any mockito: ^5.4.4 -# pigeon: ^24.1.1 - pigeon: - git: - url: git@github.com:bparrishMines/packages.git - ref: pigeon_helper - path: packages/pigeon + pigeon: ^24.1.1 +# pigeon: +# git: +# url: git@github.com:bparrishMines/packages.git +# ref: pigeon_helper +# path: packages/pigeon topics: - camera diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index c466c16c8e9..71baa145a43 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -32,179 +32,179 @@ import 'package:mockito/src/dummies.dart' as _i6; class _FakePigeonInstanceManager_0 extends _i1.SmartFake implements _i2.PigeonInstanceManager { _FakePigeonInstanceManager_0(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeAnalyzer_1 extends _i1.SmartFake implements _i2.Analyzer { _FakeAnalyzer_1(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeAspectRatioStrategy_2 extends _i1.SmartFake implements _i2.AspectRatioStrategy { _FakeAspectRatioStrategy_2(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraControl_3 extends _i1.SmartFake implements _i2.CameraControl { _FakeCameraControl_3(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraInfo_4 extends _i1.SmartFake implements _i2.CameraInfo { _FakeCameraInfo_4(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera_5 extends _i1.SmartFake implements _i2.Camera { _FakeCamera_5(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeExposureState_6 extends _i1.SmartFake implements _i2.ExposureState { _FakeExposureState_6(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeLiveData_7 extends _i1.SmartFake implements _i3.LiveData { _FakeLiveData_7(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraInfo_8 extends _i1.SmartFake implements _i3.CameraInfo { _FakeCameraInfo_8(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraCharacteristicsKey_9 extends _i1.SmartFake implements _i2.CameraCharacteristicsKey { _FakeCameraCharacteristicsKey_9(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraSize_10 extends _i1.SmartFake implements _i2.CameraSize { _FakeCameraSize_10(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera2CameraControl_11 extends _i1.SmartFake implements _i2.Camera2CameraControl { _FakeCamera2CameraControl_11(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera2CameraInfo_12 extends _i1.SmartFake implements _i2.Camera2CameraInfo { _FakeCamera2CameraInfo_12(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraImageFormat_13 extends _i1.SmartFake implements _i4.CameraImageFormat { _FakeCameraImageFormat_13(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraSelector_14 extends _i1.SmartFake implements _i2.CameraSelector { _FakeCameraSelector_14(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraIntegerRange_15 extends _i1.SmartFake implements _i2.CameraIntegerRange { _FakeCameraIntegerRange_15(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeObserver_16 extends _i1.SmartFake implements _i3.Observer { _FakeObserver_16(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeSystemServicesManager_17 extends _i1.SmartFake implements _i2.SystemServicesManager { _FakeSystemServicesManager_17(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeDeviceOrientationManager_18 extends _i1.SmartFake implements _i2.DeviceOrientationManager { _FakeDeviceOrientationManager_18(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePreview_19 extends _i1.SmartFake implements _i2.Preview { _FakePreview_19(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoCapture_20 extends _i1.SmartFake implements _i2.VideoCapture { _FakeVideoCapture_20(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeRecorder_21 extends _i1.SmartFake implements _i2.Recorder { _FakeRecorder_21(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoRecordEventListener_22 extends _i1.SmartFake implements _i2.VideoRecordEventListener { _FakeVideoRecordEventListener_22(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageCapture_23 extends _i1.SmartFake implements _i2.ImageCapture { _FakeImageCapture_23(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionStrategy_24 extends _i1.SmartFake implements _i2.ResolutionStrategy { _FakeResolutionStrategy_24(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionSelector_25 extends _i1.SmartFake implements _i2.ResolutionSelector { _FakeResolutionSelector_25(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageAnalysis_26 extends _i1.SmartFake implements _i2.ImageAnalysis { _FakeImageAnalysis_26(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeQualitySelector_27 extends _i1.SmartFake implements _i2.QualitySelector { _FakeQualitySelector_27(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFallbackStrategy_28 extends _i1.SmartFake implements _i2.FallbackStrategy { _FakeFallbackStrategy_28(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringActionBuilder_29 extends _i1.SmartFake implements _i2.FocusMeteringActionBuilder { _FakeFocusMeteringActionBuilder_29(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCaptureRequestOptions_30 extends _i1.SmartFake implements _i2.CaptureRequestOptions { _FakeCaptureRequestOptions_30(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionFilter_31 extends _i1.SmartFake implements _i2.ResolutionFilter { _FakeResolutionFilter_31(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake @@ -218,61 +218,61 @@ class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake class _FakeProcessCameraProvider_33 extends _i1.SmartFake implements _i2.ProcessCameraProvider { _FakeProcessCameraProvider_33(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCaptureRequestKey_34 extends _i1.SmartFake implements _i2.CaptureRequestKey { _FakeCaptureRequestKey_34(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeMeteringPoint_35 extends _i1.SmartFake implements _i2.MeteringPoint { _FakeMeteringPoint_35(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringAction_36 extends _i1.SmartFake implements _i2.FocusMeteringAction { _FakeFocusMeteringAction_36(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringResult_37 extends _i1.SmartFake implements _i2.FocusMeteringResult { _FakeFocusMeteringResult_37(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageProxy_38 extends _i1.SmartFake implements _i2.ImageProxy { _FakeImageProxy_38(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeRecording_39 extends _i1.SmartFake implements _i2.Recording { _FakeRecording_39(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePendingRecording_40 extends _i1.SmartFake implements _i2.PendingRecording { _FakePendingRecording_40(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePlaneProxy_41 extends _i1.SmartFake implements _i2.PlaneProxy { _FakePlaneProxy_41(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoOutput_42 extends _i1.SmartFake implements _i2.VideoOutput { _FakeVideoOutput_42(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeZoomState_43 extends _i1.SmartFake implements _i2.ZoomState { _FakeZoomState_43(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } /// A class which mocks [Analyzer]. @@ -282,43 +282,37 @@ class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { @override void Function(_i2.Analyzer, _i2.ImageProxy) get analyze => (super.noSuchMethod( - Invocation.getter(#analyze), - returnValue: - (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, - returnValueForMissingStub: - (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, - ) - as void Function(_i2.Analyzer, _i2.ImageProxy)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.Analyzer pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeAnalyzer_1( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeAnalyzer_1( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Analyzer); + Invocation.getter(#analyze), + returnValue: (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + returnValueForMissingStub: + (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + ) as void Function(_i2.Analyzer, _i2.ImageProxy)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.Analyzer pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Analyzer); } /// A class which mocks [AspectRatioStrategy]. @@ -327,61 +321,54 @@ class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { class MockAspectRatioStrategy extends _i1.Mock implements _i2.AspectRatioStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method(#getFallbackRule, []), - returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto, - ), - returnValueForMissingStub: - _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto, - ), - ) - as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); - - @override - _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => - (super.noSuchMethod( - Invocation.method(#getPreferredAspectRatio, []), - returnValue: _i5.Future<_i2.AspectRatio>.value( - _i2.AspectRatio.ratio16To9, - ), - returnValueForMissingStub: _i5.Future<_i2.AspectRatio>.value( - _i2.AspectRatio.ratio16To9, - ), - ) - as _i5.Future<_i2.AspectRatio>); - - @override - _i2.AspectRatioStrategy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeAspectRatioStrategy_2( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeAspectRatioStrategy_2( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.AspectRatioStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + returnValueForMissingStub: + _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + ) as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); + + @override + _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => (super.noSuchMethod( + Invocation.method(#getPreferredAspectRatio, []), + returnValue: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + returnValueForMissingStub: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + ) as _i5.Future<_i2.AspectRatio>); + + @override + _i2.AspectRatioStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.AspectRatioStrategy); } /// A class which mocks [Camera]. @@ -389,62 +376,54 @@ class MockAspectRatioStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera extends _i1.Mock implements _i2.Camera { @override - _i2.CameraControl get cameraControl => - (super.noSuchMethod( - Invocation.getter(#cameraControl), - returnValue: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - ) - as _i2.CameraControl); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.CameraInfo> getCameraInfo() => - (super.noSuchMethod( - Invocation.method(#getCameraInfo, []), - returnValue: _i5.Future<_i2.CameraInfo>.value( - _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), - ), - returnValueForMissingStub: _i5.Future<_i2.CameraInfo>.value( - _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), - ), - ) - as _i5.Future<_i2.CameraInfo>); - - @override - _i2.Camera pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera_5( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera_5( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Camera); + _i2.CameraControl get cameraControl => (super.noSuchMethod( + Invocation.getter(#cameraControl), + returnValue: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + ) as _i2.CameraControl); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.CameraInfo> getCameraInfo() => (super.noSuchMethod( + Invocation.method(#getCameraInfo, []), + returnValue: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + ) as _i5.Future<_i2.CameraInfo>); + + @override + _i2.Camera pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Camera); } /// A class which mocks [CameraInfo]. @@ -452,98 +431,87 @@ class MockCamera extends _i1.Mock implements _i2.Camera { /// See the documentation for Mockito's code generation for more information. class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { @override - int get sensorRotationDegrees => - (super.noSuchMethod( - Invocation.getter(#sensorRotationDegrees), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); + int get sensorRotationDegrees => (super.noSuchMethod( + Invocation.getter(#sensorRotationDegrees), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.ExposureState get exposureState => (super.noSuchMethod( + Invocation.getter(#exposureState), + returnValue: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + ) as _i2.ExposureState); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i2.ExposureState get exposureState => + _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => (super.noSuchMethod( - Invocation.getter(#exposureState), - returnValue: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - ) - as _i2.ExposureState); + Invocation.method(#getCameraState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + ) as _i5.Future<_i3.LiveData<_i2.CameraState>>); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => (super.noSuchMethod( + Invocation.method(#getZoomState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + ) as _i5.Future<_i3.LiveData<_i2.ZoomState>>); @override - _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => - (super.noSuchMethod( - Invocation.method(#getCameraState, []), - returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#getCameraState, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#getCameraState, []), - ), - ), - ) - as _i5.Future<_i3.LiveData<_i2.CameraState>>); - - @override - _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => - (super.noSuchMethod( - Invocation.method(#getZoomState, []), - returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#getZoomState, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#getZoomState, []), - ), - ), - ) - as _i5.Future<_i3.LiveData<_i2.ZoomState>>); - - @override - _i3.CameraInfo pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraInfo_8( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraInfo_8( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.CameraInfo); + _i3.CameraInfo pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.CameraInfo); } /// A class which mocks [CameraCharacteristicsKey]. @@ -552,34 +520,30 @@ class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { class MockCameraCharacteristicsKey extends _i1.Mock implements _i2.CameraCharacteristicsKey { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.CameraCharacteristicsKey pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraCharacteristicsKey); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.CameraCharacteristicsKey pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraCharacteristicsKey); } /// A class which mocks [CameraControl]. @@ -587,82 +551,69 @@ class MockCameraCharacteristicsKey extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCameraControl extends _i1.Mock implements _i2.CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future enableTorch(bool? torch) => - (super.noSuchMethod( - Invocation.method(#enableTorch, [torch]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future enableTorch(bool? torch) => (super.noSuchMethod( + Invocation.method(#enableTorch, [torch]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future setZoomRatio(double? ratio) => - (super.noSuchMethod( - Invocation.method(#setZoomRatio, [ratio]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future setZoomRatio(double? ratio) => (super.noSuchMethod( + Invocation.method(#setZoomRatio, [ratio]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future<_i2.FocusMeteringResult?> startFocusAndMetering( _i2.FocusMeteringAction? action, ) => (super.noSuchMethod( - Invocation.method(#startFocusAndMetering, [action]), - returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), - returnValueForMissingStub: - _i5.Future<_i2.FocusMeteringResult?>.value(), - ) - as _i5.Future<_i2.FocusMeteringResult?>); + Invocation.method(#startFocusAndMetering, [action]), + returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), + returnValueForMissingStub: _i5.Future<_i2.FocusMeteringResult?>.value(), + ) as _i5.Future<_i2.FocusMeteringResult?>); @override - _i5.Future cancelFocusAndMetering() => - (super.noSuchMethod( - Invocation.method(#cancelFocusAndMetering, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future cancelFocusAndMetering() => (super.noSuchMethod( + Invocation.method(#cancelFocusAndMetering, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future setExposureCompensationIndex(int? index) => (super.noSuchMethod( - Invocation.method(#setExposureCompensationIndex, [index]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#setExposureCompensationIndex, [index]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.CameraControl pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraControl_3( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraControl); + _i2.CameraControl pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraControl); } /// A class which mocks [CameraSize]. @@ -670,52 +621,44 @@ class MockCameraControl extends _i1.Mock implements _i2.CameraControl { /// See the documentation for Mockito's code generation for more information. class MockCameraSize extends _i1.Mock implements _i2.CameraSize { @override - int get width => - (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get height => - (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.CameraSize pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraSize_10( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraSize_10( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraSize); + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.CameraSize pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraSize); } /// A class which mocks [Camera2CameraControl]. @@ -724,45 +667,40 @@ class MockCameraSize extends _i1.Mock implements _i2.CameraSize { class MockCamera2CameraControl extends _i1.Mock implements _i2.Camera2CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future addCaptureRequestOptions( _i2.CaptureRequestOptions? bundle, ) => (super.noSuchMethod( - Invocation.method(#addCaptureRequestOptions, [bundle]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#addCaptureRequestOptions, [bundle]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Camera2CameraControl pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera2CameraControl_11( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera2CameraControl_11( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Camera2CameraControl); + _i2.Camera2CameraControl pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Camera2CameraControl); } /// A class which mocks [Camera2CameraInfo]. @@ -770,58 +708,51 @@ class MockCamera2CameraControl extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future getCameraId() => - (super.noSuchMethod( - Invocation.method(#getCameraId, []), - returnValue: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#getCameraId, [])), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#getCameraId, [])), - ), - ) - as _i5.Future); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future getCameraId() => (super.noSuchMethod( + Invocation.method(#getCameraId, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + ) as _i5.Future); @override _i5.Future getCameraCharacteristic( _i2.CameraCharacteristicsKey? key, ) => (super.noSuchMethod( - Invocation.method(#getCameraCharacteristic, [key]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#getCameraCharacteristic, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Camera2CameraInfo pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera2CameraInfo_12( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera2CameraInfo_12( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Camera2CameraInfo); + _i2.Camera2CameraInfo pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Camera2CameraInfo); } /// A class which mocks [CameraImageData]. @@ -830,46 +761,38 @@ class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { // ignore: must_be_immutable class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { @override - _i4.CameraImageFormat get format => - (super.noSuchMethod( - Invocation.getter(#format), - returnValue: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - returnValueForMissingStub: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - ) - as _i4.CameraImageFormat); + _i4.CameraImageFormat get format => (super.noSuchMethod( + Invocation.getter(#format), + returnValue: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + returnValueForMissingStub: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + ) as _i4.CameraImageFormat); @override - int get height => - (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); @override - int get width => - (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); @override - List<_i4.CameraImagePlane> get planes => - (super.noSuchMethod( - Invocation.getter(#planes), - returnValue: <_i4.CameraImagePlane>[], - returnValueForMissingStub: <_i4.CameraImagePlane>[], - ) - as List<_i4.CameraImagePlane>); + List<_i4.CameraImagePlane> get planes => (super.noSuchMethod( + Invocation.getter(#planes), + returnValue: <_i4.CameraImagePlane>[], + returnValueForMissingStub: <_i4.CameraImagePlane>[], + ) as List<_i4.CameraImagePlane>); } /// A class which mocks [CameraSelector]. @@ -877,47 +800,42 @@ class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { /// See the documentation for Mockito's code generation for more information. class MockCameraSelector extends _i1.Mock implements _i2.CameraSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future> filter(List<_i2.CameraInfo>? cameraInfos) => (super.noSuchMethod( - Invocation.method(#filter, [cameraInfos]), - returnValue: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - ) - as _i5.Future>); - - @override - _i2.CameraSelector pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraSelector_14( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraSelector_14( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraSelector); + Invocation.method(#filter, [cameraInfos]), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) as _i5.Future>); + + @override + _i2.CameraSelector pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraSelector); } /// A class which mocks [CameraXProxy]. @@ -928,25 +846,20 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { void Function({ _i8.BinaryMessenger? pigeonBinaryMessenger, _i2.PigeonInstanceManager? pigeonInstanceManager, - }) - get setUpGenericsProxy => - (super.noSuchMethod( - Invocation.getter(#setUpGenericsProxy), - returnValue: - ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - ) - as void Function({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - })); + }) get setUpGenericsProxy => (super.noSuchMethod( + Invocation.getter(#setUpGenericsProxy), + returnValue: ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + ) as void Function({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + })); @override _i2.CameraSize Function({ @@ -954,33 +867,28 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newCameraSize => - (super.noSuchMethod( - Invocation.getter(#newCameraSize), - returnValue: - ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), - returnValueForMissingStub: - ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), - ) - as _i2.CameraSize Function({ - required int height, - required int width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newCameraSize => (super.noSuchMethod( + Invocation.getter(#newCameraSize), + returnValue: ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + returnValueForMissingStub: ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + ) as _i2.CameraSize Function({ + required int height, + required int width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraIntegerRange Function({ @@ -988,176 +896,158 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int upper, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newCameraIntegerRange => - (super.noSuchMethod( - Invocation.getter(#newCameraIntegerRange), - returnValue: - ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - returnValueForMissingStub: - ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - ) - as _i2.CameraIntegerRange Function({ - required int lower, - required int upper, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newCameraIntegerRange => (super.noSuchMethod( + Invocation.getter(#newCameraIntegerRange), + returnValue: ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => + _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + returnValueForMissingStub: ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => + _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + ) as _i2.CameraIntegerRange Function({ + required int lower, + required int upper, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i3.Observer Function({ required void Function(_i3.Observer, T) onChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newObserver => - (super.noSuchMethod( - Invocation.getter(#newObserver), - returnValue: - ({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16(this, Invocation.getter(#newObserver)), - returnValueForMissingStub: - ({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16(this, Invocation.getter(#newObserver)), - ) - as _i3.Observer Function({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newObserver => (super.noSuchMethod( + Invocation.getter(#newObserver), + returnValue: ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + returnValueForMissingStub: ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + ) as _i3.Observer Function({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.LensFacing? requireLensFacing, - }) - get newCameraSelector => - (super.noSuchMethod( - Invocation.getter(#newCameraSelector), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - ) - as _i2.CameraSelector Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - })); + }) get newCameraSelector => (super.noSuchMethod( + Invocation.getter(#newCameraSelector), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => + _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => + _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + ) as _i2.CameraSelector Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + })); @override _i2.SystemServicesManager Function({ required void Function(_i2.SystemServicesManager, String) onCameraError, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newSystemServicesManager => - (super.noSuchMethod( - Invocation.getter(#newSystemServicesManager), - returnValue: - ({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - returnValueForMissingStub: - ({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - ) - as _i2.SystemServicesManager Function({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newSystemServicesManager => (super.noSuchMethod( + Invocation.getter(#newSystemServicesManager), + returnValue: ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + returnValueForMissingStub: ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + ) as _i2.SystemServicesManager Function({ + required void Function(_i2.SystemServicesManager, String) onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DeviceOrientationManager Function({ required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newDeviceOrientationManager => - (super.noSuchMethod( - Invocation.getter(#newDeviceOrientationManager), - returnValue: - ({ - required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - returnValueForMissingStub: - ({ - required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - ) - as _i2.DeviceOrientationManager Function({ - required void Function(_i2.DeviceOrientationManager, String) + }) get newDeviceOrientationManager => (super.noSuchMethod( + Invocation.getter(#newDeviceOrientationManager), + returnValue: ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + returnValueForMissingStub: ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + ) as _i2.DeviceOrientationManager Function({ + required void Function(_i2.DeviceOrientationManager, String) onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Preview Function({ @@ -1165,65 +1055,59 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) - get newPreview => - (super.noSuchMethod( - Invocation.getter(#newPreview), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakePreview_19(this, Invocation.getter(#newPreview)), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakePreview_19(this, Invocation.getter(#newPreview)), - ) - as _i2.Preview Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) get newPreview => (super.noSuchMethod( + Invocation.getter(#newPreview), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakePreview_19(this, Invocation.getter(#newPreview)), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakePreview_19(this, Invocation.getter(#newPreview)), + ) as _i2.Preview Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.VideoCapture Function({ required _i2.VideoOutput videoOutput, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get withOutputVideoCapture => - (super.noSuchMethod( - Invocation.getter(#withOutputVideoCapture), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - ) - as _i2.VideoCapture Function({ - required _i2.VideoOutput videoOutput, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get withOutputVideoCapture => (super.noSuchMethod( + Invocation.getter(#withOutputVideoCapture), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => + _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => + _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + ) as _i2.VideoCapture Function({ + required _i2.VideoOutput videoOutput, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Recorder Function({ @@ -1232,81 +1116,72 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.QualitySelector? qualitySelector, int? targetVideoEncodingBitRate, - }) - get newRecorder => - (super.noSuchMethod( - Invocation.getter(#newRecorder), - returnValue: - ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), - returnValueForMissingStub: - ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), - ) - as _i2.Recorder Function({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - })); + }) get newRecorder => (super.noSuchMethod( + Invocation.getter(#newRecorder), + returnValue: ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => + _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + returnValueForMissingStub: ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => + _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + ) as _i2.Recorder Function({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + })); @override _i2.VideoRecordEventListener Function({ required void Function(_i2.VideoRecordEventListener, _i2.VideoRecordEvent) - onEvent, + onEvent, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newVideoRecordEventListener => - (super.noSuchMethod( - Invocation.getter(#newVideoRecordEventListener), - returnValue: - ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) - onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - returnValueForMissingStub: - ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) - onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - ) - as _i2.VideoRecordEventListener Function({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) - onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newVideoRecordEventListener => (super.noSuchMethod( + Invocation.getter(#newVideoRecordEventListener), + returnValue: ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + returnValueForMissingStub: ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + ) as _i2.VideoRecordEventListener Function({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageCapture Function({ @@ -1315,40 +1190,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) - get newImageCapture => - (super.noSuchMethod( - Invocation.getter(#newImageCapture), - returnValue: - ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - returnValueForMissingStub: - ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - ) - as _i2.ImageCapture Function({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) get newImageCapture => (super.noSuchMethod( + Invocation.getter(#newImageCapture), + returnValue: ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + returnValueForMissingStub: ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + ) as _i2.ImageCapture Function({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.ResolutionStrategy Function({ @@ -1356,37 +1228,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.ResolutionStrategyFallbackRule fallbackRule, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newResolutionStrategy => - (super.noSuchMethod( - Invocation.getter(#newResolutionStrategy), - returnValue: - ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - returnValueForMissingStub: - ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - ) - as _i2.ResolutionStrategy Function({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newResolutionStrategy => (super.noSuchMethod( + Invocation.getter(#newResolutionStrategy), + returnValue: ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + returnValueForMissingStub: ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + ) as _i2.ResolutionStrategy Function({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ResolutionSelector Function({ @@ -1395,40 +1264,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionFilter? resolutionFilter, _i2.ResolutionStrategy? resolutionStrategy, - }) - get newResolutionSelector => - (super.noSuchMethod( - Invocation.getter(#newResolutionSelector), - returnValue: - ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - returnValueForMissingStub: - ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - ) - as _i2.ResolutionSelector Function({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - })); + }) get newResolutionSelector => (super.noSuchMethod( + Invocation.getter(#newResolutionSelector), + returnValue: ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => + _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + returnValueForMissingStub: ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => + _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + ) as _i2.ResolutionSelector Function({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + })); @override _i2.AspectRatioStrategy Function({ @@ -1436,37 +1302,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.AspectRatio preferredAspectRatio, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newAspectRatioStrategy => - (super.noSuchMethod( - Invocation.getter(#newAspectRatioStrategy), - returnValue: - ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - returnValueForMissingStub: - ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - ) - as _i2.AspectRatioStrategy Function({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - required _i2.AspectRatio preferredAspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newAspectRatioStrategy => (super.noSuchMethod( + Invocation.getter(#newAspectRatioStrategy), + returnValue: ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => + _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + returnValueForMissingStub: ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => + _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + ) as _i2.AspectRatioStrategy Function({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + required _i2.AspectRatio preferredAspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageAnalysis Function({ @@ -1474,65 +1337,59 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) - get newImageAnalysis => - (super.noSuchMethod( - Invocation.getter(#newImageAnalysis), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - ) - as _i2.ImageAnalysis Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) get newImageAnalysis => (super.noSuchMethod( + Invocation.getter(#newImageAnalysis), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + ) as _i2.ImageAnalysis Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.Analyzer Function({ required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newAnalyzer => - (super.noSuchMethod( - Invocation.getter(#newAnalyzer), - returnValue: - ({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), - returnValueForMissingStub: - ({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), - ) - as _i2.Analyzer Function({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newAnalyzer => (super.noSuchMethod( + Invocation.getter(#newAnalyzer), + returnValue: ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + returnValueForMissingStub: ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + ) as _i2.Analyzer Function({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1540,37 +1397,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromQualitySelector => - (super.noSuchMethod( - Invocation.getter(#fromQualitySelector), - returnValue: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - returnValueForMissingStub: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - ) - as _i2.QualitySelector Function({ - required _i2.VideoQuality quality, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromQualitySelector => (super.noSuchMethod( + Invocation.getter(#fromQualitySelector), + returnValue: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + returnValueForMissingStub: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + ) as _i2.QualitySelector Function({ + required _i2.VideoQuality quality, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1578,207 +1432,189 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromOrderedListQualitySelector => - (super.noSuchMethod( - Invocation.getter(#fromOrderedListQualitySelector), - returnValue: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - returnValueForMissingStub: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - ) - as _i2.QualitySelector Function({ - required List<_i2.VideoQuality> qualities, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromOrderedListQualitySelector => (super.noSuchMethod( + Invocation.getter(#fromOrderedListQualitySelector), + returnValue: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + returnValueForMissingStub: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + ) as _i2.QualitySelector Function({ + required List<_i2.VideoQuality> qualities, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get higherQualityOrLowerThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get higherQualityOrLowerThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get higherQualityThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#higherQualityThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get higherQualityThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#higherQualityThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get lowerQualityOrHigherThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get lowerQualityOrHigherThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get lowerQualityThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#lowerQualityThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get lowerQualityThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#lowerQualityThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newFocusMeteringActionBuilder => - (super.noSuchMethod( - Invocation.getter(#newFocusMeteringActionBuilder), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - ) - as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newFocusMeteringActionBuilder => (super.noSuchMethod( + Invocation.getter(#newFocusMeteringActionBuilder), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + ) as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ @@ -1786,37 +1622,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get withModeFocusMeteringActionBuilder => - (super.noSuchMethod( - Invocation.getter(#withModeFocusMeteringActionBuilder), - returnValue: - ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - returnValueForMissingStub: - ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - ) - as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringMode mode, - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get withModeFocusMeteringActionBuilder => (super.noSuchMethod( + Invocation.getter(#withModeFocusMeteringActionBuilder), + returnValue: ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + returnValueForMissingStub: ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + ) as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringMode mode, + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set withModeFocusMeteringActionBuilder( @@ -1825,49 +1658,46 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _withModeFocusMeteringActionBuilder, - ) => super.noSuchMethod( - Invocation.setter( - #withModeFocusMeteringActionBuilder, - _withModeFocusMeteringActionBuilder, - ), - returnValueForMissingStub: null, - ); + })? _withModeFocusMeteringActionBuilder, + ) => + super.noSuchMethod( + Invocation.setter( + #withModeFocusMeteringActionBuilder, + _withModeFocusMeteringActionBuilder, + ), + returnValueForMissingStub: null, + ); @override _i2.CaptureRequestOptions Function({ required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newCaptureRequestOptions => - (super.noSuchMethod( - Invocation.getter(#newCaptureRequestOptions), - returnValue: - ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - returnValueForMissingStub: - ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - ) - as _i2.CaptureRequestOptions Function({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newCaptureRequestOptions => (super.noSuchMethod( + Invocation.getter(#newCaptureRequestOptions), + returnValue: ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + returnValueForMissingStub: ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + ) as _i2.CaptureRequestOptions Function({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set newCaptureRequestOptions( @@ -1875,46 +1705,43 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _newCaptureRequestOptions, - ) => super.noSuchMethod( - Invocation.setter(#newCaptureRequestOptions, _newCaptureRequestOptions), - returnValueForMissingStub: null, - ); + })? _newCaptureRequestOptions, + ) => + super.noSuchMethod( + Invocation.setter(#newCaptureRequestOptions, _newCaptureRequestOptions), + returnValueForMissingStub: null, + ); @override _i2.Camera2CameraControl Function({ required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromCamera2CameraControl => - (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraControl), - returnValue: - ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - returnValueForMissingStub: - ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - ) - as _i2.Camera2CameraControl Function({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromCamera2CameraControl => (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraControl), + returnValue: ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + returnValueForMissingStub: ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + ) as _i2.Camera2CameraControl Function({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set fromCamera2CameraControl( @@ -1922,84 +1749,78 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _fromCamera2CameraControl, - ) => super.noSuchMethod( - Invocation.setter(#fromCamera2CameraControl, _fromCamera2CameraControl), - returnValueForMissingStub: null, - ); + })? _fromCamera2CameraControl, + ) => + super.noSuchMethod( + Invocation.setter(#fromCamera2CameraControl, _fromCamera2CameraControl), + returnValueForMissingStub: null, + ); @override _i2.ResolutionFilter Function({ required _i2.CameraSize preferredSize, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get createWithOnePreferredSizeResolutionFilter => - (super.noSuchMethod( - Invocation.getter(#createWithOnePreferredSizeResolutionFilter), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => _FakeResolutionFilter_31( - this, - Invocation.getter( - #createWithOnePreferredSizeResolutionFilter, - ), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => _FakeResolutionFilter_31( - this, - Invocation.getter( - #createWithOnePreferredSizeResolutionFilter, - ), - ), - ) - as _i2.ResolutionFilter Function({ - required _i2.CameraSize preferredSize, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get createWithOnePreferredSizeResolutionFilter => (super.noSuchMethod( + Invocation.getter(#createWithOnePreferredSizeResolutionFilter), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => + _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => + _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + ) as _i2.ResolutionFilter Function({ + required _i2.CameraSize preferredSize, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Camera2CameraInfo Function({ required _i3.CameraInfo cameraInfo, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromCamera2CameraInfo => - (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraInfo), - returnValue: - ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - returnValueForMissingStub: - ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - ) - as _i2.Camera2CameraInfo Function({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromCamera2CameraInfo => (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraInfo), + returnValue: ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + returnValueForMissingStub: ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + ) as _i2.Camera2CameraInfo Function({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DisplayOrientedMeteringPointFactory Function({ @@ -2008,40 +1829,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newDisplayOrientedMeteringPointFactory => - (super.noSuchMethod( - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - returnValue: - ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - returnValueForMissingStub: - ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - ) - as _i2.DisplayOrientedMeteringPointFactory Function({ - required _i3.CameraInfo cameraInfo, - required double height, - required double width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newDisplayOrientedMeteringPointFactory => (super.noSuchMethod( + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + returnValue: ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => + _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + returnValueForMissingStub: ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => + _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + ) as _i2.DisplayOrientedMeteringPointFactory Function({ + required _i3.CameraInfo cameraInfo, + required double height, + required double width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set newDisplayOrientedMeteringPointFactory( @@ -2051,49 +1869,46 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _newDisplayOrientedMeteringPointFactory, - ) => super.noSuchMethod( - Invocation.setter( - #newDisplayOrientedMeteringPointFactory, - _newDisplayOrientedMeteringPointFactory, - ), - returnValueForMissingStub: null, - ); + })? _newDisplayOrientedMeteringPointFactory, + ) => + super.noSuchMethod( + Invocation.setter( + #newDisplayOrientedMeteringPointFactory, + _newDisplayOrientedMeteringPointFactory, + ), + returnValueForMissingStub: null, + ); @override _i5.Future<_i2.ProcessCameraProvider> Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get getInstanceProcessCameraProvider => - (super.noSuchMethod( + }) get getInstanceProcessCameraProvider => (super.noSuchMethod( + Invocation.getter(#getInstanceProcessCameraProvider), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, Invocation.getter(#getInstanceProcessCameraProvider), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, - Invocation.getter(#getInstanceProcessCameraProvider), - ), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, - Invocation.getter(#getInstanceProcessCameraProvider), - ), - ), - ) - as _i5.Future<_i2.ProcessCameraProvider> Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + ), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, + Invocation.getter(#getInstanceProcessCameraProvider), + ), + ), + ) as _i5.Future<_i2.ProcessCameraProvider> Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i5.Future<_i2.CameraSize?> Function( @@ -2101,203 +1916,175 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.VideoQuality, { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get getResolutionQualitySelector => - (super.noSuchMethod( - Invocation.getter(#getResolutionQualitySelector), - returnValue: - ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: - ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.CameraSize?>.value(), - ) - as _i5.Future<_i2.CameraSize?> Function( - _i3.CameraInfo, - _i2.VideoQuality, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get getResolutionQualitySelector => (super.noSuchMethod( + Invocation.getter(#getResolutionQualitySelector), + returnValue: ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.CameraSize?>.value(), + ) as _i5.Future<_i2.CameraSize?> Function( + _i3.CameraInfo, + _i2.VideoQuality, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function() get defaultBackCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultBackCameraCameraSelector), - returnValue: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - returnValueForMissingStub: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - ) - as _i2.CameraSelector Function()); + Invocation.getter(#defaultBackCameraCameraSelector), + returnValue: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + returnValueForMissingStub: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + ) as _i2.CameraSelector Function()); @override _i2.CameraSelector Function() get defaultFrontCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultFrontCameraCameraSelector), - returnValue: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - returnValueForMissingStub: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - ) - as _i2.CameraSelector Function()); + Invocation.getter(#defaultFrontCameraCameraSelector), + returnValue: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + returnValueForMissingStub: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + ) as _i2.CameraSelector Function()); @override _i2.ResolutionStrategy Function() - get highestAvailableStrategyResolutionStrategy => - (super.noSuchMethod( + get highestAvailableStrategyResolutionStrategy => (super.noSuchMethod( Invocation.getter(#highestAvailableStrategyResolutionStrategy), - returnValue: - () => _FakeResolutionStrategy_24( - this, - Invocation.getter( - #highestAvailableStrategyResolutionStrategy, - ), - ), - returnValueForMissingStub: - () => _FakeResolutionStrategy_24( - this, - Invocation.getter( - #highestAvailableStrategyResolutionStrategy, - ), - ), - ) - as _i2.ResolutionStrategy Function()); + returnValue: () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + returnValueForMissingStub: () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + ) as _i2.ResolutionStrategy Function()); @override _i2.AspectRatioStrategy Function() - get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => - (super.noSuchMethod( + get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( Invocation.getter( #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, ), - returnValue: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - ), - ), - returnValueForMissingStub: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - ), - ), - ) - as _i2.AspectRatioStrategy Function()); + returnValue: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) as _i2.AspectRatioStrategy Function()); @override _i2.AspectRatioStrategy Function() - get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => - (super.noSuchMethod( + get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( Invocation.getter( #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, ), - returnValue: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - ), - ), - returnValueForMissingStub: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - ), - ), - ) - as _i2.AspectRatioStrategy Function()); + returnValue: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) as _i2.AspectRatioStrategy Function()); @override _i2.CaptureRequestKey Function() get controlAELockCaptureRequest => (super.noSuchMethod( - Invocation.getter(#controlAELockCaptureRequest), - returnValue: - () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - returnValueForMissingStub: - () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - ) - as _i2.CaptureRequestKey Function()); + Invocation.getter(#controlAELockCaptureRequest), + returnValue: () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + returnValueForMissingStub: () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + ) as _i2.CaptureRequestKey Function()); @override set controlAELockCaptureRequest( _i2.CaptureRequestKey Function()? _controlAELockCaptureRequest, - ) => super.noSuchMethod( - Invocation.setter( - #controlAELockCaptureRequest, - _controlAELockCaptureRequest, - ), - returnValueForMissingStub: null, - ); + ) => + super.noSuchMethod( + Invocation.setter( + #controlAELockCaptureRequest, + _controlAELockCaptureRequest, + ), + returnValueForMissingStub: null, + ); @override _i2.CameraCharacteristicsKey Function() - get infoSupportedHardwareLevelCameraCharacteristics => - (super.noSuchMethod( + get infoSupportedHardwareLevelCameraCharacteristics => + (super.noSuchMethod( Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), - returnValue: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter( - #infoSupportedHardwareLevelCameraCharacteristics, - ), - ), - returnValueForMissingStub: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter( - #infoSupportedHardwareLevelCameraCharacteristics, - ), - ), - ) - as _i2.CameraCharacteristicsKey Function()); + returnValue: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + ) as _i2.CameraCharacteristicsKey Function()); @override _i2.CameraCharacteristicsKey Function() - get sensorOrientationCameraCharacteristics => - (super.noSuchMethod( + get sensorOrientationCameraCharacteristics => (super.noSuchMethod( Invocation.getter(#sensorOrientationCameraCharacteristics), - returnValue: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - returnValueForMissingStub: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - ) - as _i2.CameraCharacteristicsKey Function()); + returnValue: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + ) as _i2.CameraCharacteristicsKey Function()); } /// A class which mocks [CaptureRequestOptions]. @@ -2306,43 +2093,38 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { class MockCaptureRequestOptions extends _i1.Mock implements _i2.CaptureRequestOptions { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future getCaptureRequestOption(_i2.CaptureRequestKey? key) => (super.noSuchMethod( - Invocation.method(#getCaptureRequestOption, [key]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#getCaptureRequestOption, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.CaptureRequestOptions pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCaptureRequestOptions_30( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCaptureRequestOptions_30( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CaptureRequestOptions); + _i2.CaptureRequestOptions pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCaptureRequestOptions_30( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCaptureRequestOptions_30( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CaptureRequestOptions); } /// A class which mocks [DeviceOrientationManager]. @@ -2352,36 +2134,30 @@ class MockDeviceOrientationManager extends _i1.Mock implements _i2.DeviceOrientationManager { @override void Function(_i2.DeviceOrientationManager, String) - get onDeviceOrientationChanged => - (super.noSuchMethod( + get onDeviceOrientationChanged => (super.noSuchMethod( Invocation.getter(#onDeviceOrientationChanged), - returnValue: - ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - returnValueForMissingStub: - ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - ) - as void Function(_i2.DeviceOrientationManager, String)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + returnValue: ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + returnValueForMissingStub: ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + ) as void Function(_i2.DeviceOrientationManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future startListeningForDeviceOrientationChange( @@ -2389,66 +2165,58 @@ class MockDeviceOrientationManager extends _i1.Mock int? sensorOrientation, ) => (super.noSuchMethod( - Invocation.method(#startListeningForDeviceOrientationChange, [ - isFrontFacing, - sensorOrientation, - ]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#startListeningForDeviceOrientationChange, [ + isFrontFacing, + sensorOrientation, + ]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future stopListeningForDeviceOrientationChange() => (super.noSuchMethod( - Invocation.method(#stopListeningForDeviceOrientationChange, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#stopListeningForDeviceOrientationChange, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future getDefaultDisplayRotation() => - (super.noSuchMethod( - Invocation.method(#getDefaultDisplayRotation, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); + _i5.Future getDefaultDisplayRotation() => (super.noSuchMethod( + Invocation.method(#getDefaultDisplayRotation, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); @override - _i5.Future getUiOrientation() => - (super.noSuchMethod( + _i5.Future getUiOrientation() => (super.noSuchMethod( + Invocation.method(#getUiOrientation, []), + returnValue: _i5.Future.value( + _i6.dummyValue( + this, Invocation.method(#getUiOrientation, []), - returnValue: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getUiOrientation, []), - ), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getUiOrientation, []), - ), - ), - ) - as _i5.Future); + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getUiOrientation, []), + ), + ), + ) as _i5.Future); @override - _i2.DeviceOrientationManager pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeDeviceOrientationManager_18( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeDeviceOrientationManager_18( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.DeviceOrientationManager); + _i2.DeviceOrientationManager pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.DeviceOrientationManager); } /// A class which mocks [DisplayOrientedMeteringPointFactory]. @@ -2457,54 +2225,48 @@ class MockDeviceOrientationManager extends _i1.Mock class MockDisplayOrientedMeteringPointFactory extends _i1.Mock implements _i2.DisplayOrientedMeteringPointFactory { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: - _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.DisplayOrientedMeteringPointFactory); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.DisplayOrientedMeteringPointFactory); @override _i5.Future<_i2.MeteringPoint> createPoint(double? x, double? y) => (super.noSuchMethod( + Invocation.method(#createPoint, [x, y]), + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, Invocation.method(#createPoint, [x, y]), - returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPoint, [x, y]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPoint, [x, y]), - ), - ), - ) - as _i5.Future<_i2.MeteringPoint>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPoint, [x, y]), + ), + ), + ) as _i5.Future<_i2.MeteringPoint>); @override _i5.Future<_i2.MeteringPoint> createPointWithSize( @@ -2513,21 +2275,20 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock double? size, ) => (super.noSuchMethod( + Invocation.method(#createPointWithSize, [x, y, size]), + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, Invocation.method(#createPointWithSize, [x, y, size]), - returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPointWithSize, [x, y, size]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPointWithSize, [x, y, size]), - ), - ), - ) - as _i5.Future<_i2.MeteringPoint>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPointWithSize, [x, y, size]), + ), + ), + ) as _i5.Future<_i2.MeteringPoint>); } /// A class which mocks [ExposureState]. @@ -2535,58 +2296,50 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockExposureState extends _i1.Mock implements _i2.ExposureState { @override - _i2.CameraIntegerRange get exposureCompensationRange => - (super.noSuchMethod( - Invocation.getter(#exposureCompensationRange), - returnValue: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - returnValueForMissingStub: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - ) - as _i2.CameraIntegerRange); - - @override - double get exposureCompensationStep => - (super.noSuchMethod( - Invocation.getter(#exposureCompensationStep), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) - as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.ExposureState pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeExposureState_6( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ExposureState); + _i2.CameraIntegerRange get exposureCompensationRange => (super.noSuchMethod( + Invocation.getter(#exposureCompensationRange), + returnValue: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + returnValueForMissingStub: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + ) as _i2.CameraIntegerRange); + + @override + double get exposureCompensationStep => (super.noSuchMethod( + Invocation.getter(#exposureCompensationStep), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ExposureState pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ExposureState); } /// A class which mocks [FallbackStrategy]. @@ -2594,34 +2347,30 @@ class MockExposureState extends _i1.Mock implements _i2.ExposureState { /// See the documentation for Mockito's code generation for more information. class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.FallbackStrategy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFallbackStrategy_28( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFallbackStrategy_28( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.FallbackStrategy); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.FallbackStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.FallbackStrategy); } /// A class which mocks [FocusMeteringActionBuilder]. @@ -2630,28 +2379,24 @@ class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { class MockFocusMeteringActionBuilder extends _i1.Mock implements _i2.FocusMeteringActionBuilder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future addPoint(_i2.MeteringPoint? point) => - (super.noSuchMethod( - Invocation.method(#addPoint, [point]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future addPoint(_i2.MeteringPoint? point) => (super.noSuchMethod( + Invocation.method(#addPoint, [point]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future addPointWithMode( @@ -2659,52 +2404,44 @@ class MockFocusMeteringActionBuilder extends _i1.Mock _i2.MeteringMode? mode, ) => (super.noSuchMethod( - Invocation.method(#addPointWithMode, [point, mode]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#addPointWithMode, [point, mode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future disableAutoCancel() => - (super.noSuchMethod( - Invocation.method(#disableAutoCancel, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future disableAutoCancel() => (super.noSuchMethod( + Invocation.method(#disableAutoCancel, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.FocusMeteringAction> build() => - (super.noSuchMethod( + _i5.Future<_i2.FocusMeteringAction> build() => (super.noSuchMethod( + Invocation.method(#build, []), + returnValue: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36( + this, Invocation.method(#build, []), - returnValue: _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), - ), - returnValueForMissingStub: - _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36( - this, - Invocation.method(#build, []), - ), - ), - ) - as _i5.Future<_i2.FocusMeteringAction>); - - @override - _i2.FocusMeteringActionBuilder pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.FocusMeteringActionBuilder); + ), + ), + ) as _i5.Future<_i2.FocusMeteringAction>); + + @override + _i2.FocusMeteringActionBuilder pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.FocusMeteringActionBuilder); } /// A class which mocks [FocusMeteringResult]. @@ -2713,43 +2450,37 @@ class MockFocusMeteringActionBuilder extends _i1.Mock class MockFocusMeteringResult extends _i1.Mock implements _i2.FocusMeteringResult { @override - bool get isFocusSuccessful => - (super.noSuchMethod( - Invocation.getter(#isFocusSuccessful), - returnValue: false, - returnValueForMissingStub: false, - ) - as bool); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.FocusMeteringResult pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringResult_37( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFocusMeteringResult_37( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.FocusMeteringResult); + bool get isFocusSuccessful => (super.noSuchMethod( + Invocation.getter(#isFocusSuccessful), + returnValue: false, + returnValueForMissingStub: false, + ) as bool); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.FocusMeteringResult pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.FocusMeteringResult); } /// A class which mocks [ImageAnalysis]. @@ -2757,61 +2488,51 @@ class MockFocusMeteringResult extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => - (super.noSuchMethod( - Invocation.method(#setAnalyzer, [analyzer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i5.Future clearAnalyzer() => - (super.noSuchMethod( - Invocation.method(#clearAnalyzer, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i2.ImageAnalysis pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageAnalysis_26( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageAnalysis_26( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ImageAnalysis); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => (super.noSuchMethod( + Invocation.method(#setAnalyzer, [analyzer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future clearAnalyzer() => (super.noSuchMethod( + Invocation.method(#clearAnalyzer, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ImageAnalysis pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ImageAnalysis); } /// A class which mocks [ImageCapture]. @@ -2819,65 +2540,56 @@ class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { /// See the documentation for Mockito's code generation for more information. class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future setFlashMode(_i2.CameraXFlashMode? flashMode) => (super.noSuchMethod( - Invocation.method(#setFlashMode, [flashMode]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#setFlashMode, [flashMode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future takePicture() => - (super.noSuchMethod( - Invocation.method(#takePicture, []), - returnValue: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#takePicture, [])), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#takePicture, [])), - ), - ) - as _i5.Future); + _i5.Future takePicture() => (super.noSuchMethod( + Invocation.method(#takePicture, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + ) as _i5.Future); @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.ImageCapture pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageCapture_23( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageCapture_23( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ImageCapture); + _i2.ImageCapture pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ImageCapture); } /// A class which mocks [ImageProxy]. @@ -2885,83 +2597,69 @@ class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { /// See the documentation for Mockito's code generation for more information. class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { @override - int get format => - (super.noSuchMethod( - Invocation.getter(#format), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get width => - (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get height => - (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future> getPlanes() => - (super.noSuchMethod( - Invocation.method(#getPlanes, []), - returnValue: _i5.Future>.value( - <_i2.PlaneProxy>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.PlaneProxy>[], - ), - ) - as _i5.Future>); - - @override - _i5.Future close() => - (super.noSuchMethod( - Invocation.method(#close, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i2.ImageProxy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageProxy_38( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageProxy_38( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ImageProxy); + int get format => (super.noSuchMethod( + Invocation.getter(#format), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future> getPlanes() => (super.noSuchMethod( + Invocation.method(#getPlanes, []), + returnValue: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + ) as _i5.Future>); + + @override + _i5.Future close() => (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ImageProxy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ImageProxy); } /// A class which mocks [Observer]. @@ -2969,44 +2667,38 @@ class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { /// See the documentation for Mockito's code generation for more information. class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { @override - void Function(_i2.Observer, Object) get onChanged => - (super.noSuchMethod( - Invocation.getter(#onChanged), - returnValue: (_i2.Observer pigeon_instance, Object value) {}, - returnValueForMissingStub: - (_i2.Observer pigeon_instance, Object value) {}, - ) - as void Function(_i2.Observer, Object)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i3.Observer<_i2.CameraState> pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.Observer<_i2.CameraState>); + void Function(_i2.Observer, Object) get onChanged => (super.noSuchMethod( + Invocation.getter(#onChanged), + returnValue: (_i2.Observer pigeon_instance, Object value) {}, + returnValueForMissingStub: + (_i2.Observer pigeon_instance, Object value) {}, + ) as void Function(_i2.Observer, Object)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i3.Observer<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.Observer<_i2.CameraState>); } /// A class which mocks [PendingRecording]. @@ -3014,47 +2706,42 @@ class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { /// See the documentation for Mockito's code generation for more information. class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.Recording> start(_i2.VideoRecordEventListener? listener) => (super.noSuchMethod( - Invocation.method(#start, [listener]), - returnValue: _i5.Future<_i2.Recording>.value( - _FakeRecording_39(this, Invocation.method(#start, [listener])), - ), - returnValueForMissingStub: _i5.Future<_i2.Recording>.value( - _FakeRecording_39(this, Invocation.method(#start, [listener])), - ), - ) - as _i5.Future<_i2.Recording>); - - @override - _i2.PendingRecording pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePendingRecording_40( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePendingRecording_40( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.PendingRecording); + Invocation.method(#start, [listener]), + returnValue: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + returnValueForMissingStub: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + ) as _i5.Future<_i2.Recording>); + + @override + _i2.PendingRecording pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.PendingRecording); } /// A class which mocks [PlaneProxy]. @@ -3062,61 +2749,51 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { /// See the documentation for Mockito's code generation for more information. class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { @override - _i9.Uint8List get buffer => - (super.noSuchMethod( - Invocation.getter(#buffer), - returnValue: _i9.Uint8List(0), - returnValueForMissingStub: _i9.Uint8List(0), - ) - as _i9.Uint8List); - - @override - int get pixelStride => - (super.noSuchMethod( - Invocation.getter(#pixelStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get rowStride => - (super.noSuchMethod( - Invocation.getter(#rowStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.PlaneProxy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePlaneProxy_41( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePlaneProxy_41( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.PlaneProxy); + _i9.Uint8List get buffer => (super.noSuchMethod( + Invocation.getter(#buffer), + returnValue: _i9.Uint8List(0), + returnValueForMissingStub: _i9.Uint8List(0), + ) as _i9.Uint8List); + + @override + int get pixelStride => (super.noSuchMethod( + Invocation.getter(#pixelStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get rowStride => (super.noSuchMethod( + Invocation.getter(#rowStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.PlaneProxy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.PlaneProxy); } /// A class which mocks [Preview]. @@ -3124,72 +2801,61 @@ class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { /// See the documentation for Mockito's code generation for more information. class MockPreview extends _i1.Mock implements _i2.Preview { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future setSurfaceProvider( _i2.SystemServicesManager? systemServicesManager, ) => (super.noSuchMethod( - Invocation.method(#setSurfaceProvider, [systemServicesManager]), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); + Invocation.method(#setSurfaceProvider, [systemServicesManager]), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); @override - _i5.Future releaseSurfaceProvider() => - (super.noSuchMethod( - Invocation.method(#releaseSurfaceProvider, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future releaseSurfaceProvider() => (super.noSuchMethod( + Invocation.method(#releaseSurfaceProvider, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => - (super.noSuchMethod( - Invocation.method(#getResolutionInfo, []), - returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), - returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), - ) - as _i5.Future<_i2.ResolutionInfo?>); + _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => (super.noSuchMethod( + Invocation.method(#getResolutionInfo, []), + returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), + returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), + ) as _i5.Future<_i2.ResolutionInfo?>); @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Preview pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePreview_19( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePreview_19( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Preview); + _i2.Preview pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Preview); } /// A class which mocks [ProcessCameraProvider]. @@ -3198,32 +2864,29 @@ class MockPreview extends _i1.Mock implements _i2.Preview { class MockProcessCameraProvider extends _i1.Mock implements _i2.ProcessCameraProvider { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future> getAvailableCameraInfos() => (super.noSuchMethod( - Invocation.method(#getAvailableCameraInfos, []), - returnValue: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - ) - as _i5.Future>); + Invocation.method(#getAvailableCameraInfos, []), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) as _i5.Future>); @override _i5.Future<_i2.Camera> bindToLifecycle( @@ -3231,63 +2894,54 @@ class MockProcessCameraProvider extends _i1.Mock List<_i2.UseCase>? useCases, ) => (super.noSuchMethod( + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + returnValue: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - returnValue: _i5.Future<_i2.Camera>.value( - _FakeCamera_5( - this, - Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.Camera>.value( - _FakeCamera_5( - this, - Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - ), - ), - ) - as _i5.Future<_i2.Camera>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + ), + ), + ) as _i5.Future<_i2.Camera>); @override - _i5.Future isBound(_i2.UseCase? useCase) => - (super.noSuchMethod( - Invocation.method(#isBound, [useCase]), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) - as _i5.Future); + _i5.Future isBound(_i2.UseCase? useCase) => (super.noSuchMethod( + Invocation.method(#isBound, [useCase]), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) as _i5.Future); @override - _i5.Future unbind(List<_i2.UseCase>? useCases) => - (super.noSuchMethod( - Invocation.method(#unbind, [useCases]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future unbind(List<_i2.UseCase>? useCases) => (super.noSuchMethod( + Invocation.method(#unbind, [useCases]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future unbindAll() => - (super.noSuchMethod( - Invocation.method(#unbindAll, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future unbindAll() => (super.noSuchMethod( + Invocation.method(#unbindAll, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.ProcessCameraProvider pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeProcessCameraProvider_33( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeProcessCameraProvider_33( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ProcessCameraProvider); + _i2.ProcessCameraProvider pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ProcessCameraProvider); } /// A class which mocks [QualitySelector]. @@ -3295,34 +2949,30 @@ class MockProcessCameraProvider extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.QualitySelector pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeQualitySelector_27( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeQualitySelector_27( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.QualitySelector); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.QualitySelector pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.QualitySelector); } /// A class which mocks [Recorder]. @@ -3330,90 +2980,79 @@ class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { /// See the documentation for Mockito's code generation for more information. class MockRecorder extends _i1.Mock implements _i2.Recorder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future getAspectRatio() => - (super.noSuchMethod( - Invocation.method(#getAspectRatio, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); - - @override - _i5.Future getTargetVideoEncodingBitRate() => - (super.noSuchMethod( - Invocation.method(#getTargetVideoEncodingBitRate, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); - - @override - _i5.Future<_i2.QualitySelector> getQualitySelector() => - (super.noSuchMethod( + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future getAspectRatio() => (super.noSuchMethod( + Invocation.method(#getAspectRatio, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); + + @override + _i5.Future getTargetVideoEncodingBitRate() => (super.noSuchMethod( + Invocation.method(#getTargetVideoEncodingBitRate, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); + + @override + _i5.Future<_i2.QualitySelector> getQualitySelector() => (super.noSuchMethod( + Invocation.method(#getQualitySelector, []), + returnValue: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, Invocation.method(#getQualitySelector, []), - returnValue: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( - this, - Invocation.method(#getQualitySelector, []), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( - this, - Invocation.method(#getQualitySelector, []), - ), - ), - ) - as _i5.Future<_i2.QualitySelector>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, + Invocation.method(#getQualitySelector, []), + ), + ), + ) as _i5.Future<_i2.QualitySelector>); @override _i5.Future<_i2.PendingRecording> prepareRecording(String? path) => (super.noSuchMethod( + Invocation.method(#prepareRecording, [path]), + returnValue: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, Invocation.method(#prepareRecording, [path]), - returnValue: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_40( - this, - Invocation.method(#prepareRecording, [path]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_40( - this, - Invocation.method(#prepareRecording, [path]), - ), - ), - ) - as _i5.Future<_i2.PendingRecording>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, + Invocation.method(#prepareRecording, [path]), + ), + ), + ) as _i5.Future<_i2.PendingRecording>); @override - _i2.Recorder pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecorder_21( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeRecorder_21( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Recorder); + _i2.Recorder pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Recorder); } /// A class which mocks [ResolutionFilter]. @@ -3421,34 +3060,30 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { /// See the documentation for Mockito's code generation for more information. class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.ResolutionFilter pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionFilter_31( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionFilter_31( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ResolutionFilter); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ResolutionFilter pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ResolutionFilter); } /// A class which mocks [ResolutionSelector]. @@ -3457,54 +3092,48 @@ class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { class MockResolutionSelector extends _i1.Mock implements _i2.ResolutionSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategy> getAspectRatioStrategy() => (super.noSuchMethod( + Invocation.method(#getAspectRatioStrategy, []), + returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, Invocation.method(#getAspectRatioStrategy, []), - returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, - Invocation.method(#getAspectRatioStrategy, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, - Invocation.method(#getAspectRatioStrategy, []), - ), - ), - ) - as _i5.Future<_i2.AspectRatioStrategy>); - - @override - _i2.ResolutionSelector pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionSelector_25( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionSelector_25( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ResolutionSelector); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, + Invocation.method(#getAspectRatioStrategy, []), + ), + ), + ) as _i5.Future<_i2.AspectRatioStrategy>); + + @override + _i2.ResolutionSelector pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ResolutionSelector); } /// A class which mocks [ResolutionStrategy]. @@ -3513,57 +3142,50 @@ class MockResolutionSelector extends _i1.Mock class MockResolutionStrategy extends _i1.Mock implements _i2.ResolutionStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future<_i2.CameraSize?> getBoundSize() => - (super.noSuchMethod( - Invocation.method(#getBoundSize, []), - returnValue: _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), - ) - as _i5.Future<_i2.CameraSize?>); + _i5.Future<_i2.CameraSize?> getBoundSize() => (super.noSuchMethod( + Invocation.method(#getBoundSize, []), + returnValue: _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), + ) as _i5.Future<_i2.CameraSize?>); @override _i5.Future<_i2.ResolutionStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method(#getFallbackRule, []), - returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher, - ), - returnValueForMissingStub: - _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher, - ), - ) - as _i5.Future<_i2.ResolutionStrategyFallbackRule>); - - @override - _i2.ResolutionStrategy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionStrategy_24( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionStrategy_24( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ResolutionStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + returnValueForMissingStub: + _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + ) as _i5.Future<_i2.ResolutionStrategyFallbackRule>); + + @override + _i2.ResolutionStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ResolutionStrategy); } /// A class which mocks [Recording]. @@ -3571,70 +3193,58 @@ class MockResolutionStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockRecording extends _i1.Mock implements _i2.Recording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future close() => - (super.noSuchMethod( - Invocation.method(#close, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future close() => (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future pause() => - (super.noSuchMethod( - Invocation.method(#pause, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future pause() => (super.noSuchMethod( + Invocation.method(#pause, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future resume() => - (super.noSuchMethod( - Invocation.method(#resume, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future resume() => (super.noSuchMethod( + Invocation.method(#resume, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future stop() => - (super.noSuchMethod( - Invocation.method(#stop, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future stop() => (super.noSuchMethod( + Invocation.method(#stop, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Recording pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecording_39( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeRecording_39( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Recording); + _i2.Recording pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Recording); } /// A class which mocks [SystemServicesManager]. @@ -3645,86 +3255,75 @@ class MockSystemServicesManager extends _i1.Mock @override void Function(_i2.SystemServicesManager, String) get onCameraError => (super.noSuchMethod( - Invocation.getter(#onCameraError), - returnValue: - ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - returnValueForMissingStub: - ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - ) - as void Function(_i2.SystemServicesManager, String)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + Invocation.getter(#onCameraError), + returnValue: ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + returnValueForMissingStub: ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + ) as void Function(_i2.SystemServicesManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future requestCameraPermissions(bool? enableAudio) => (super.noSuchMethod( - Invocation.method(#requestCameraPermissions, [enableAudio]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#requestCameraPermissions, [enableAudio]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future getTempFilePath(String? prefix, String? suffix) => (super.noSuchMethod( + Invocation.method(#getTempFilePath, [prefix, suffix]), + returnValue: _i5.Future.value( + _i6.dummyValue( + this, Invocation.method(#getTempFilePath, [prefix, suffix]), - returnValue: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getTempFilePath, [prefix, suffix]), - ), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getTempFilePath, [prefix, suffix]), - ), - ), - ) - as _i5.Future); + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getTempFilePath, [prefix, suffix]), + ), + ), + ) as _i5.Future); @override - _i5.Future isPreviewPreTransformed() => - (super.noSuchMethod( - Invocation.method(#isPreviewPreTransformed, []), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) - as _i5.Future); + _i5.Future isPreviewPreTransformed() => (super.noSuchMethod( + Invocation.method(#isPreviewPreTransformed, []), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) as _i5.Future); @override - _i2.SystemServicesManager pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeSystemServicesManager_17( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeSystemServicesManager_17( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.SystemServicesManager); + _i2.SystemServicesManager pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.SystemServicesManager); } /// A class which mocks [VideoCapture]. @@ -3732,56 +3331,48 @@ class MockSystemServicesManager extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.VideoOutput> getOutput() => - (super.noSuchMethod( - Invocation.method(#getOutput, []), - returnValue: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), - ), - returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), - ), - ) - as _i5.Future<_i2.VideoOutput>); - - @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i2.VideoCapture pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeVideoCapture_20( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeVideoCapture_20( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.VideoCapture); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.VideoOutput> getOutput() => (super.noSuchMethod( + Invocation.method(#getOutput, []), + returnValue: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + ) as _i5.Future<_i2.VideoOutput>); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.VideoCapture pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.VideoCapture); } /// A class which mocks [ZoomState]. @@ -3789,52 +3380,44 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { /// See the documentation for Mockito's code generation for more information. class MockZoomState extends _i1.Mock implements _i2.ZoomState { @override - double get minZoomRatio => - (super.noSuchMethod( - Invocation.getter(#minZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) - as double); - - @override - double get maxZoomRatio => - (super.noSuchMethod( - Invocation.getter(#maxZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) - as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.ZoomState pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeZoomState_43( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeZoomState_43( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ZoomState); + double get minZoomRatio => (super.noSuchMethod( + Invocation.getter(#minZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) as double); + + @override + double get maxZoomRatio => (super.noSuchMethod( + Invocation.getter(#maxZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ZoomState pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ZoomState); } /// A class which mocks [LiveData]. @@ -3847,60 +3430,48 @@ class MockLiveCameraState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => - (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) - as _i2.LiveDataSupportedType); + _i2.LiveDataSupportedType get type => (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) as _i2.LiveDataSupportedType); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future observe(_i2.Observer? observer) => - (super.noSuchMethod( - Invocation.method(#observe, [observer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.CameraState?> getValue() => - (super.noSuchMethod( - Invocation.method(#getValue, []), - returnValue: _i5.Future<_i2.CameraState?>.value(), - ) - as _i5.Future<_i2.CameraState?>); + _i5.Future<_i2.CameraState?> getValue() => (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.CameraState?>.value(), + ) as _i5.Future<_i2.CameraState?>); @override - _i3.LiveData<_i2.CameraState> pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.LiveData<_i2.CameraState>); + _i3.LiveData<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.LiveData<_i2.CameraState>); @override - _i5.Future removeObservers() => - (super.noSuchMethod( - Invocation.method(#removeObservers, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future removeObservers() => (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); } /// A class which mocks [LiveData]. @@ -3913,58 +3484,46 @@ class MockLiveZoomState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => - (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) - as _i2.LiveDataSupportedType); + _i2.LiveDataSupportedType get type => (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) as _i2.LiveDataSupportedType); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future observe(_i2.Observer? observer) => - (super.noSuchMethod( - Invocation.method(#observe, [observer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.ZoomState?> getValue() => - (super.noSuchMethod( - Invocation.method(#getValue, []), - returnValue: _i5.Future<_i2.ZoomState?>.value(), - ) - as _i5.Future<_i2.ZoomState?>); + _i5.Future<_i2.ZoomState?> getValue() => (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.ZoomState?>.value(), + ) as _i5.Future<_i2.ZoomState?>); @override - _i3.LiveData<_i2.ZoomState> pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.LiveData<_i2.ZoomState>); + _i3.LiveData<_i2.ZoomState> pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.LiveData<_i2.ZoomState>); @override - _i5.Future removeObservers() => - (super.noSuchMethod( - Invocation.method(#removeObservers, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future removeObservers() => (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); } From b3a84b6b5ca1d51ad9783024f9fe51904c2fbeaa Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 18 Feb 2025 18:21:13 -0500 Subject: [PATCH 079/148] camera2cameracontrol test --- .../Camera2CameraControlProxyApiTest.java | 27 -- .../camerax/Camera2CameraControlTest.java | 234 ++++++++---------- 2 files changed, 104 insertions(+), 157 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java deleted file mode 100644 index 1b6c2f71275..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApiTest.java +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; - -import androidx.camera.camera2.interop.Camera2CameraControl; -import androidx.camera.camera2.interop.CaptureRequestOptions; -import org.junit.Test; - -public class Camera2CameraControlProxyApiTest { - @Test - public void addCaptureRequestOptions() { - final PigeonApiCamera2CameraControl api = - new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); - - final Camera2CameraControl instance = mock(Camera2CameraControl.class); - final androidx.camera.camera2.interop.CaptureRequestOptions bundle = - mock(CaptureRequestOptions.class); - api.addCaptureRequestOptions(instance, bundle, null); - - verify(instance).addCaptureRequestOptions(bundle); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java index f4abfa1b089..8c43c64bfa9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java @@ -1,130 +1,104 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.content.Context; -//import androidx.camera.camera2.interop.Camera2CameraControl; -//import androidx.camera.camera2.interop.CaptureRequestOptions; -//import androidx.camera.core.CameraControl; -//import com.google.common.util.concurrent.FutureCallback; -//import com.google.common.util.concurrent.Futures; -//import com.google.common.util.concurrent.ListenableFuture; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.ArgumentCaptor; -//import org.mockito.Mock; -//import org.mockito.MockedStatic; -//import org.mockito.Mockito; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.mockito.stubbing.Answer; -// -//public class Camera2CameraControlTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public Camera2CameraControl mockCamera2CameraControl; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void create_createsInstanceFromCameraControlInstance() { -// final Camera2CameraControlHostApiImpl hostApi = -// new Camera2CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); -// final long instanceIdentifier = 40; -// final CameraControl mockCameraControl = mock(CameraControl.class); -// final long cameraControlIdentifier = 29; -// -// testInstanceManager.addDartCreatedInstance(mockCameraControl, cameraControlIdentifier); -// try (MockedStatic mockedCamera2CameraControl = -// Mockito.mockStatic(Camera2CameraControl.class)) { -// mockedCamera2CameraControl -// .when(() -> Camera2CameraControl.from(mockCameraControl)) -// .thenAnswer((Answer) invocation -> mockCamera2CameraControl); -// -// hostApi.create(instanceIdentifier, cameraControlIdentifier); -// assertEquals(testInstanceManager.getInstance(instanceIdentifier), mockCamera2CameraControl); -// } -// } -// -// @Test -// public void addCaptureRequestOptions_respondsAsExpectedToSuccessfulAndFailedAttempts() { -// final Camera2CameraControlHostApiImpl hostApi = -// new Camera2CameraControlHostApiImpl(testInstanceManager, mock(Context.class)); -// final long instanceIdentifier = 0; -// -// final CaptureRequestOptions mockCaptureRequestOptions = mock(CaptureRequestOptions.class); -// final long captureRequestOptionsIdentifier = 8; -// -// testInstanceManager.addDartCreatedInstance(mockCamera2CameraControl, instanceIdentifier); -// testInstanceManager.addDartCreatedInstance( -// mockCaptureRequestOptions, captureRequestOptionsIdentifier); -// -// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { -// @SuppressWarnings("unchecked") -// final ListenableFuture addCaptureRequestOptionsFuture = mock(ListenableFuture.class); -// -// when(mockCamera2CameraControl.addCaptureRequestOptions(mockCaptureRequestOptions)) -// .thenReturn(addCaptureRequestOptionsFuture); -// -// @SuppressWarnings("unchecked") -// final ArgumentCaptor> futureCallbackCaptor = -// ArgumentCaptor.forClass(FutureCallback.class); -// -// // Test successfully adding capture request options. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result successfulMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// -// hostApi.addCaptureRequestOptions( -// instanceIdentifier, captureRequestOptionsIdentifier, successfulMockResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback successfulCallback = futureCallbackCaptor.getValue(); -// -// successfulCallback.onSuccess(mock(Void.class)); -// verify(successfulMockResult).success(null); -// -// // Test failed attempt to add capture request options. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result failedMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final Throwable testThrowable = new Throwable(); -// hostApi.addCaptureRequestOptions( -// instanceIdentifier, captureRequestOptionsIdentifier, failedMockResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); -// -// FutureCallback failedCallback = futureCallbackCaptor.getValue(); -// -// failedCallback.onFailure(testThrowable); -// verify(failedMockResult).error(testThrowable); -// } -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import androidx.camera.camera2.interop.Camera2CameraControl; +import androidx.camera.camera2.interop.CaptureRequestOptions; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; + +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.MockedStatic; +import org.mockito.Mockito; + +/** @noinspection unchecked*/ +public class Camera2CameraControlTest { + @SuppressWarnings("unchecked") + @Test + public void addCaptureRequestOptions_respondsAsExpectedToSuccessful() { + final PigeonApiCamera2CameraControl api = + new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + + final Camera2CameraControl instance = mock(Camera2CameraControl.class); + final androidx.camera.camera2.interop.CaptureRequestOptions bundle = + mock(CaptureRequestOptions.class); + + final ListenableFuture addCaptureRequestOptionsFuture = mock(ListenableFuture.class); + when(instance.addCaptureRequestOptions(bundle)).thenReturn(addCaptureRequestOptionsFuture); + + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + final boolean[] isSuccess = {false}; + api.addCaptureRequestOptions(instance, bundle, ResultCompat.asCompatCallback( + reply -> { + isSuccess[0] = reply.isSuccess(); + return null; + })); + + verify(instance).addCaptureRequestOptions(bundle); + mockedFutures.verify( + () -> + Futures.addCallback( + eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + + successfulCallback.onSuccess(mock(Void.class)); + assertTrue(isSuccess[0]); + } + } + + @SuppressWarnings("unchecked") + @Test + public void addCaptureRequestOptions_respondsAsExpectedToFailure() { + final PigeonApiCamera2CameraControl api = + new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + + final Camera2CameraControl instance = mock(Camera2CameraControl.class); + final androidx.camera.camera2.interop.CaptureRequestOptions bundle = + mock(CaptureRequestOptions.class); + + final ListenableFuture addCaptureRequestOptionsFuture = mock(ListenableFuture.class); + when(instance.addCaptureRequestOptions(bundle)).thenReturn(addCaptureRequestOptionsFuture); + + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + final boolean[] isFailure = {false}; + api.addCaptureRequestOptions(instance, bundle, ResultCompat.asCompatCallback( + reply -> { + isFailure[0] = reply.isFailure(); + return null; + })); + + verify(instance).addCaptureRequestOptions(bundle); + mockedFutures.verify( + () -> + Futures.addCallback( + eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + + successfulCallback.onFailure(new Throwable()); + assertTrue(isFailure[0]); + } + } +} From d16b24ab7494fa8e5fd3b180b78e004d98dbf57c Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 19 Feb 2025 15:35:05 -0500 Subject: [PATCH 080/148] camera2camera info test --- .../Camera2CameraInfoProxyApiTest.java | 101 ++++++++++-------- 1 file changed, 58 insertions(+), 43 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java index eed42533c26..00dfaee4915 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java @@ -1,52 +1,67 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.camera2.interop.Camera2CameraInfo -//import androidx.camera.core.CameraInfo -//import android.hardware.camera2.CameraCharacteristics.Key<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class Camera2CameraInfoProxyApiTest { -// @Test -// public void from() { -// final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); -// -// assertTrue(api.from(mock(CameraInfo.class)) instanceof Camera2CameraInfoProxyApi.Camera2CameraInfo); -// } -// -// @Test -// public void getCameraId() { -// final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); -// -// final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); -// final String value = "myString"; -// when(instance.getCameraId()).thenReturn(value); -// -// assertEquals(value, api.getCameraId(instance )); -// } -// +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.Camera2CameraInfo; +import androidx.camera.core.CameraInfo; + +import android.hardware.camera2.CameraCharacteristics; +import android.hardware.camera2.CameraCharacteristics.Key; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import static org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import org.mockito.stubbing.Answer; + +public class Camera2CameraInfoProxyApiTest { + @Test + public void from() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final CameraInfo mockCameraInfo = mock(CameraInfo.class); + final Camera2CameraInfo mockCamera2CameraInfo = mock(Camera2CameraInfo.class); + + try (MockedStatic mockedCamera2CameraInfo = + Mockito.mockStatic(Camera2CameraInfo.class)) { + mockedCamera2CameraInfo + .when(() -> Camera2CameraInfo.from(mockCameraInfo)) + .thenAnswer((Answer) invocation -> mockCamera2CameraInfo); + + assertEquals(api.from(mockCameraInfo), mockCamera2CameraInfo); + } + } + + @Test + public void getCameraId() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); + final String value = "myString"; + when(instance.getCameraId()).thenReturn(value); + + assertEquals(value, api.getCameraId(instance )); + } + +// @SuppressWarnings({"unchecked", "raw"}) // @Test // public void getCameraCharacteristic() { // final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); // // final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); -// final android.hardware.camera2.CameraCharacteristics.Key<*> key = mock(CameraCharacteristicsKey.class); -// final Any value = -1; +// final CameraCharacteristics.Key key = mock(CameraCharacteristics.Key.class); +// final int value = -1; // when(instance.getCameraCharacteristic(key)).thenReturn(value); // // assertEquals(value, api.getCameraCharacteristic(instance, key)); // } -// -//} +} From 979993bb63d60e19099d584d41cdf9f19680dbf2 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 19 Feb 2025 16:12:04 -0500 Subject: [PATCH 081/148] add static method tests --- .../camerax/Camera2CameraControlTest.java | 22 +++ .../Camera2CameraInfoProxyApiTest.java | 67 ------- .../camerax/Camera2CameraInfoTest.java | 180 +++++++----------- 3 files changed, 88 insertions(+), 181 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java index 8c43c64bfa9..2af19dffc24 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java @@ -4,6 +4,7 @@ package io.flutter.plugins.camerax; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; @@ -13,7 +14,10 @@ import static org.mockito.Mockito.when; import androidx.camera.camera2.interop.Camera2CameraControl; +import androidx.camera.camera2.interop.Camera2CameraInfo; import androidx.camera.camera2.interop.CaptureRequestOptions; +import androidx.camera.core.CameraControl; +import androidx.camera.core.CameraInfo; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; @@ -23,9 +27,27 @@ import org.mockito.ArgumentCaptor; import org.mockito.MockedStatic; import org.mockito.Mockito; +import org.mockito.stubbing.Answer; /** @noinspection unchecked*/ public class Camera2CameraControlTest { + @Test + public void from() { + final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + + final CameraControl mockCameraControl = mock(CameraControl.class); + final Camera2CameraControl mockCamera2CameraControl = mock(Camera2CameraControl.class); + + try (MockedStatic mockedCamera2CameraControl = + Mockito.mockStatic(Camera2CameraControl.class)) { + mockedCamera2CameraControl + .when(() -> Camera2CameraControl.from(mockCameraControl)) + .thenAnswer((Answer) invocation -> mockCamera2CameraControl); + + assertEquals(api.from(mockCameraControl), mockCamera2CameraControl); + } + } + @SuppressWarnings("unchecked") @Test public void addCaptureRequestOptions_respondsAsExpectedToSuccessful() { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java deleted file mode 100644 index 00dfaee4915..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApiTest.java +++ /dev/null @@ -1,67 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.camera2.interop.Camera2CameraInfo; -import androidx.camera.core.CameraInfo; - -import android.hardware.camera2.CameraCharacteristics; -import android.hardware.camera2.CameraCharacteristics.Key; -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.mockito.MockedStatic; -import org.mockito.Mockito; -import static org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -import org.mockito.stubbing.Answer; - -public class Camera2CameraInfoProxyApiTest { - @Test - public void from() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - final CameraInfo mockCameraInfo = mock(CameraInfo.class); - final Camera2CameraInfo mockCamera2CameraInfo = mock(Camera2CameraInfo.class); - - try (MockedStatic mockedCamera2CameraInfo = - Mockito.mockStatic(Camera2CameraInfo.class)) { - mockedCamera2CameraInfo - .when(() -> Camera2CameraInfo.from(mockCameraInfo)) - .thenAnswer((Answer) invocation -> mockCamera2CameraInfo); - - assertEquals(api.from(mockCameraInfo), mockCamera2CameraInfo); - } - } - - @Test - public void getCameraId() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); - - final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); - final String value = "myString"; - when(instance.getCameraId()).thenReturn(value); - - assertEquals(value, api.getCameraId(instance )); - } - -// @SuppressWarnings({"unchecked", "raw"}) -// @Test -// public void getCameraCharacteristic() { -// final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); -// -// final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); -// final CameraCharacteristics.Key key = mock(CameraCharacteristics.Key.class); -// final int value = -1; -// when(instance.getCameraCharacteristic(key)).thenReturn(value); -// -// assertEquals(value, api.getCameraCharacteristic(instance, key)); -// } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java index 779db9d839b..c734b0cc855 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java @@ -1,114 +1,66 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.hardware.camera2.CameraCharacteristics; -//import android.hardware.camera2.CameraMetadata; -//import androidx.camera.camera2.interop.Camera2CameraInfo; -//import androidx.camera.core.CameraInfo; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.MockedStatic; -//import org.mockito.Mockito; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.mockito.stubbing.Answer; -// -//public class Camera2CameraInfoTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public Camera2CameraInfo mockCamera2CameraInfo; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void createFrom_createsInstanceFromCameraInfoInstance() { -// final Camera2CameraInfoHostApiImpl hostApi = -// new Camera2CameraInfoHostApiImpl(mock(BinaryMessenger.class), testInstanceManager); -// final long camera2CameraInfoIdentifier = 60; -// final CameraInfo mockCameraInfo = mock(CameraInfo.class); -// final long cameraInfoIdentifier = 92; -// -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, cameraInfoIdentifier); -// testInstanceManager.addDartCreatedInstance(mockCamera2CameraInfo, camera2CameraInfoIdentifier); -// -// try (MockedStatic mockedCamera2CameraInfo = -// Mockito.mockStatic(Camera2CameraInfo.class)) { -// mockedCamera2CameraInfo -// .when(() -> Camera2CameraInfo.from(mockCameraInfo)) -// .thenAnswer((Answer) invocation -> mockCamera2CameraInfo); -// -// hostApi.createFrom(cameraInfoIdentifier); -// assertEquals( -// testInstanceManager.getInstance(camera2CameraInfoIdentifier), mockCamera2CameraInfo); -// } -// } -// -// @Test -// public void getSupportedHardwareLevel_returnsExpectedLevel() { -// final Camera2CameraInfoHostApiImpl hostApi = -// new Camera2CameraInfoHostApiImpl(mock(BinaryMessenger.class), testInstanceManager); -// final long camera2CameraInfoIdentifier = 3; -// final int expectedHardwareLevel = CameraMetadata.INFO_SUPPORTED_HARDWARE_LEVEL_FULL; -// -// testInstanceManager.addDartCreatedInstance(mockCamera2CameraInfo, camera2CameraInfoIdentifier); -// when(mockCamera2CameraInfo.getCameraCharacteristic( -// CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL)) -// .thenReturn(expectedHardwareLevel); -// -// assertEquals( -// expectedHardwareLevel, -// hostApi.getSupportedHardwareLevel(camera2CameraInfoIdentifier).intValue()); -// } -// -// @Test -// public void getCameraId_returnsExpectedId() { -// final Camera2CameraInfoHostApiImpl hostApi = -// new Camera2CameraInfoHostApiImpl(mock(BinaryMessenger.class), testInstanceManager); -// final long camera2CameraInfoIdentifier = 13; -// final String expectedCameraId = "testCameraId"; -// -// testInstanceManager.addDartCreatedInstance(mockCamera2CameraInfo, camera2CameraInfoIdentifier); -// when(mockCamera2CameraInfo.getCameraId()).thenReturn(expectedCameraId); -// -// assertEquals(expectedCameraId, hostApi.getCameraId(camera2CameraInfoIdentifier)); -// } -// -// @Test -// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { -// final Camera2CameraInfoFlutterApiImpl spyFlutterApi = -// spy(new Camera2CameraInfoFlutterApiImpl(mock(BinaryMessenger.class), testInstanceManager)); -// -// spyFlutterApi.create(mockCamera2CameraInfo, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull( -// testInstanceManager.getIdentifierForStrongReference(mockCamera2CameraInfo)); -// verify(spyFlutterApi).create(eq(identifier), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.Camera2CameraInfo; +import androidx.camera.core.CameraInfo; + +import android.hardware.camera2.CameraCharacteristics; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import org.mockito.stubbing.Answer; + +public class Camera2CameraInfoTest { + @Test + public void from() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final CameraInfo mockCameraInfo = mock(CameraInfo.class); + final Camera2CameraInfo mockCamera2CameraInfo = mock(Camera2CameraInfo.class); + + try (MockedStatic mockedCamera2CameraInfo = + Mockito.mockStatic(Camera2CameraInfo.class)) { + mockedCamera2CameraInfo + .when(() -> Camera2CameraInfo.from(mockCameraInfo)) + .thenAnswer((Answer) invocation -> mockCamera2CameraInfo); + + assertEquals(api.from(mockCameraInfo), mockCamera2CameraInfo); + } + } + + @Test + public void getCameraId() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); + final String value = "myString"; + when(instance.getCameraId()).thenReturn(value); + + assertEquals(value, api.getCameraId(instance )); + } + + @SuppressWarnings("unchecked") + @Test + public void getCameraCharacteristic() { + final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + + final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); + final CameraCharacteristics.Key key = mock(CameraCharacteristics.Key.class); + final int value = -1; + when(instance.getCameraCharacteristic(key)).thenReturn(value); + + assertEquals(value, api.getCameraCharacteristic(instance, key)); + } +} From 4afd975f19fc67e2dd10591f5a97eb7f5809ecc5 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 19 Feb 2025 17:38:22 -0500 Subject: [PATCH 082/148] plugin tests --- .../camerax/CameraAndroidCameraxPlugin.java | 5 +- .../CameraAndroidCameraxPluginTest.java | 615 +++++++----------- .../camerax/TestProxyApiRegistrar.java | 5 +- 3 files changed, 236 insertions(+), 389 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java index 67392ee4661..6c67f1da940 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java @@ -6,6 +6,8 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.annotation.VisibleForTesting; + import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.embedding.engine.plugins.activity.ActivityAware; import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; @@ -13,7 +15,8 @@ /** Platform implementation of the camera_plugin implemented with the CameraX library. */ public final class CameraAndroidCameraxPlugin implements FlutterPlugin, ActivityAware { private FlutterPluginBinding pluginBinding; - @Nullable private ProxyApiRegistrar proxyApiRegistrar; + @VisibleForTesting + @Nullable ProxyApiRegistrar proxyApiRegistrar; /** * Initialize this within the {@code #configureFlutterEngine} of a Flutter activity or fragment. diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java index 4ab865c8414..fbe7faa569e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java @@ -1,387 +1,228 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertNotNull; -//import static org.junit.Assert.assertTrue; -//import static org.mockito.Mockito.any; -//import static org.mockito.Mockito.doNothing; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -//import static org.mockito.Mockito.withSettings; -// -//import android.app.Activity; -//import android.app.Application; -//import android.content.Context; -//import androidx.lifecycle.LifecycleOwner; -//import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding; -//import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; -//import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.ArgumentCaptor; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class CameraAndroidCameraxPluginTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock ActivityPluginBinding activityPluginBinding; -// @Mock FlutterPluginBinding flutterPluginBinding; -// -// @Test -// public void onAttachedToActivity_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsNeeded() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final Activity mockActivity = -// mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); -// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = -// mock(ProcessCameraProviderHostApiImpl.class); -// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// -// doNothing().when(plugin).setUp(any(), any(), any()); -// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); -// -// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; -// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; -// plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); -// plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); -// -// plugin.onAttachedToEngine(flutterPluginBinding); -// plugin.onAttachedToActivity(activityPluginBinding); -// -// verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); -// verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); -// } -// -// @Test -// public void -// onAttachedToActivity_setsLifecycleOwnerAsProxyLifecycleProviderIfActivityNotLifecycleOwnerAsNeeded() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final Activity mockActivity = mock(Activity.class); -// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = -// mock(ProcessCameraProviderHostApiImpl.class); -// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// -// doNothing().when(plugin).setUp(any(), any(), any()); -// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); -// when(mockActivity.getApplication()).thenReturn(mock(Application.class)); -// -// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; -// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; -// plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); -// plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); -// -// plugin.onAttachedToEngine(flutterPluginBinding); -// plugin.onAttachedToActivity(activityPluginBinding); -// -// verify(mockProcessCameraProviderHostApiImpl) -// .setLifecycleOwner(any(ProxyLifecycleProvider.class)); -// verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(ProxyLifecycleProvider.class)); -// } -// -// @Test -// public void onAttachedToActivity_setsActivityAsNeededAndPermissionsRegistry() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final Activity mockActivity = mock(Activity.class); -// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = -// mock(SystemServicesHostApiImpl.class); -// final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = -// mock(DeviceOrientationManagerHostApiImpl.class); -// final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = -// mock(MeteringPointHostApiImpl.class); -// final ArgumentCaptor permissionsRegistryCaptor = -// ArgumentCaptor.forClass(PermissionsRegistry.class); -// -// doNothing().when(plugin).setUp(any(), any(), any()); -// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); -// when(mockActivity.getApplication()).thenReturn(mock(Application.class)); -// -// plugin.processCameraProviderHostApiImpl = mock(ProcessCameraProviderHostApiImpl.class); -// plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; -// plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; -// plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; -// -// plugin.onAttachedToEngine(flutterPluginBinding); -// plugin.onAttachedToActivity(activityPluginBinding); -// -// // Check Activity references are set. -// verify(mockSystemServicesHostApiImpl).setActivity(mockActivity); -// verify(mockDeviceOrientationManagerHostApiImpl).setActivity(mockActivity); -// verify(mockMeteringPointHostApiImpl).setActivity(mockActivity); -// -// // Check permissions registry reference is set. -// verify(mockSystemServicesHostApiImpl) -// .setPermissionsRegistry(permissionsRegistryCaptor.capture()); -// assertNotNull(permissionsRegistryCaptor.getValue()); -// assertTrue(permissionsRegistryCaptor.getValue() instanceof PermissionsRegistry); -// } -// -// @Test -// public void -// onDetachedFromActivityForConfigChanges_removesReferencesToActivityPluginBindingAndActivity() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = -// mock(ProcessCameraProviderHostApiImpl.class); -// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = -// mock(SystemServicesHostApiImpl.class); -// final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = -// mock(DeviceOrientationManagerHostApiImpl.class); -// final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = -// mock(MeteringPointHostApiImpl.class); -// -// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; -// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; -// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; -// plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; -// plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; -// -// plugin.onAttachedToEngine(flutterPluginBinding); -// plugin.onDetachedFromActivityForConfigChanges(); -// -// verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(null); -// verify(mockLiveDataHostApiImpl).setLifecycleOwner(null); -// verify(mockSystemServicesHostApiImpl).setActivity(null); -// verify(mockDeviceOrientationManagerHostApiImpl).setActivity(null); -// verify(mockMeteringPointHostApiImpl).setActivity(null); -// } -// -// @Test -// public void -// onDetachedFromActivityForConfigChanges_setsContextReferencesBasedOnFlutterPluginBinding() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final Context mockContext = mock(Context.class); -// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = -// mock(ProcessCameraProviderHostApiImpl.class); -// final RecorderHostApiImpl mockRecorderHostApiImpl = mock(RecorderHostApiImpl.class); -// final PendingRecordingHostApiImpl mockPendingRecordingHostApiImpl = -// mock(PendingRecordingHostApiImpl.class); -// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = -// mock(SystemServicesHostApiImpl.class); -// final ImageCaptureHostApiImpl mockImageCaptureHostApiImpl = mock(ImageCaptureHostApiImpl.class); -// final ImageAnalysisHostApiImpl mockImageAnalysisHostApiImpl = -// mock(ImageAnalysisHostApiImpl.class); -// final CameraControlHostApiImpl mockCameraControlHostApiImpl = -// mock(CameraControlHostApiImpl.class); -// final Camera2CameraControlHostApiImpl mockCamera2CameraControlHostApiImpl = -// mock(Camera2CameraControlHostApiImpl.class); -// -// when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); -// -// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; -// plugin.recorderHostApiImpl = mockRecorderHostApiImpl; -// plugin.pendingRecordingHostApiImpl = mockPendingRecordingHostApiImpl; -// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; -// plugin.imageCaptureHostApiImpl = mockImageCaptureHostApiImpl; -// plugin.imageAnalysisHostApiImpl = mockImageAnalysisHostApiImpl; -// plugin.cameraControlHostApiImpl = mockCameraControlHostApiImpl; -// plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// plugin.camera2CameraControlHostApiImpl = mockCamera2CameraControlHostApiImpl; -// -// plugin.onAttachedToEngine(flutterPluginBinding); -// plugin.onDetachedFromActivityForConfigChanges(); -// -// verify(mockProcessCameraProviderHostApiImpl).setContext(mockContext); -// verify(mockRecorderHostApiImpl).setContext(mockContext); -// verify(mockPendingRecordingHostApiImpl).setContext(mockContext); -// verify(mockSystemServicesHostApiImpl).setContext(mockContext); -// verify(mockImageCaptureHostApiImpl).setContext(mockContext); -// verify(mockImageAnalysisHostApiImpl).setContext(mockContext); -// verify(mockCameraControlHostApiImpl).setContext(mockContext); -// verify(mockCamera2CameraControlHostApiImpl).setContext(mockContext); -// } -// -// @Test -// public void -// onReattachedToActivityForConfigChanges_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsNeeded() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final Activity mockActivity = -// mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); -// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = -// mock(ProcessCameraProviderHostApiImpl.class); -// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// -// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); -// -// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; -// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; -// plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); -// plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); -// -// plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); -// -// verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); -// verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(LifecycleOwner.class)); -// } -// -// @Test -// public void -// onReattachedToActivityForConfigChanges_setsLifecycleOwnerAsProxyLifecycleProviderIfActivityNotLifecycleOwnerAsNeeded() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final Activity mockActivity = mock(Activity.class); -// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = -// mock(ProcessCameraProviderHostApiImpl.class); -// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// -// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); -// when(mockActivity.getApplication()).thenReturn(mock(Application.class)); -// -// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; -// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; -// plugin.systemServicesHostApiImpl = mock(SystemServicesHostApiImpl.class); -// plugin.deviceOrientationManagerHostApiImpl = mock(DeviceOrientationManagerHostApiImpl.class); -// -// plugin.onAttachedToEngine(flutterPluginBinding); -// plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); -// -// verify(mockProcessCameraProviderHostApiImpl) -// .setLifecycleOwner(any(ProxyLifecycleProvider.class)); -// verify(mockLiveDataHostApiImpl).setLifecycleOwner(any(ProxyLifecycleProvider.class)); -// } -// -// @Test -// public void onReattachedToActivityForConfigChanges_setsActivityAndPermissionsRegistryAsNeeded() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final Activity mockActivity = mock(Activity.class); -// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = -// mock(ProcessCameraProviderHostApiImpl.class); -// final RecorderHostApiImpl mockRecorderHostApiImpl = mock(RecorderHostApiImpl.class); -// final PendingRecordingHostApiImpl mockPendingRecordingHostApiImpl = -// mock(PendingRecordingHostApiImpl.class); -// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = -// mock(SystemServicesHostApiImpl.class); -// final ImageAnalysisHostApiImpl mockImageAnalysisHostApiImpl = -// mock(ImageAnalysisHostApiImpl.class); -// final ImageCaptureHostApiImpl mockImageCaptureHostApiImpl = mock(ImageCaptureHostApiImpl.class); -// final CameraControlHostApiImpl mockCameraControlHostApiImpl = -// mock(CameraControlHostApiImpl.class); -// final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = -// mock(DeviceOrientationManagerHostApiImpl.class); -// final Camera2CameraControlHostApiImpl mockCamera2CameraControlHostApiImpl = -// mock(Camera2CameraControlHostApiImpl.class); -// final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = -// mock(MeteringPointHostApiImpl.class); -// final ArgumentCaptor permissionsRegistryCaptor = -// ArgumentCaptor.forClass(PermissionsRegistry.class); -// -// when(activityPluginBinding.getActivity()).thenReturn(mockActivity); -// when(mockActivity.getApplication()).thenReturn(mock(Application.class)); -// -// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; -// plugin.recorderHostApiImpl = mockRecorderHostApiImpl; -// plugin.pendingRecordingHostApiImpl = mockPendingRecordingHostApiImpl; -// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; -// plugin.imageCaptureHostApiImpl = mockImageCaptureHostApiImpl; -// plugin.imageAnalysisHostApiImpl = mockImageAnalysisHostApiImpl; -// plugin.cameraControlHostApiImpl = mockCameraControlHostApiImpl; -// plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; -// plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; -// plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// plugin.camera2CameraControlHostApiImpl = mockCamera2CameraControlHostApiImpl; -// -// plugin.onAttachedToEngine(flutterPluginBinding); -// plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); -// -// // Check Activity references are set. -// verify(mockSystemServicesHostApiImpl).setActivity(mockActivity); -// verify(mockDeviceOrientationManagerHostApiImpl).setActivity(mockActivity); -// verify(mockMeteringPointHostApiImpl).setActivity(mockActivity); -// -// // Check Activity as Context references are set. -// verify(mockProcessCameraProviderHostApiImpl).setContext(mockActivity); -// verify(mockRecorderHostApiImpl).setContext(mockActivity); -// verify(mockPendingRecordingHostApiImpl).setContext(mockActivity); -// verify(mockSystemServicesHostApiImpl).setContext(mockActivity); -// verify(mockImageCaptureHostApiImpl).setContext(mockActivity); -// verify(mockImageAnalysisHostApiImpl).setContext(mockActivity); -// verify(mockCameraControlHostApiImpl).setContext(mockActivity); -// verify(mockCamera2CameraControlHostApiImpl).setContext(mockActivity); -// -// // Check permissions registry reference is set. -// verify(mockSystemServicesHostApiImpl) -// .setPermissionsRegistry(permissionsRegistryCaptor.capture()); -// assertNotNull(permissionsRegistryCaptor.getValue()); -// assertTrue(permissionsRegistryCaptor.getValue() instanceof PermissionsRegistry); -// } -// -// @Test -// public void onDetachedFromActivity_removesReferencesToActivityPluginBindingAndActivity() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = -// mock(ProcessCameraProviderHostApiImpl.class); -// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = -// mock(SystemServicesHostApiImpl.class); -// final LiveDataHostApiImpl mockLiveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// final DeviceOrientationManagerHostApiImpl mockDeviceOrientationManagerHostApiImpl = -// mock(DeviceOrientationManagerHostApiImpl.class); -// final MeteringPointHostApiImpl mockMeteringPointHostApiImpl = -// mock(MeteringPointHostApiImpl.class); -// -// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; -// plugin.liveDataHostApiImpl = mockLiveDataHostApiImpl; -// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; -// plugin.deviceOrientationManagerHostApiImpl = mockDeviceOrientationManagerHostApiImpl; -// plugin.meteringPointHostApiImpl = mockMeteringPointHostApiImpl; -// -// plugin.onAttachedToEngine(flutterPluginBinding); -// plugin.onDetachedFromActivityForConfigChanges(); -// -// verify(mockProcessCameraProviderHostApiImpl).setLifecycleOwner(null); -// verify(mockLiveDataHostApiImpl).setLifecycleOwner(null); -// verify(mockSystemServicesHostApiImpl).setActivity(null); -// verify(mockDeviceOrientationManagerHostApiImpl).setActivity(null); -// verify(mockMeteringPointHostApiImpl).setActivity(null); -// } -// -// @Test -// public void onDetachedFromActivity_setsContextReferencesBasedOnFlutterPluginBinding() { -// final CameraAndroidCameraxPlugin plugin = spy(new CameraAndroidCameraxPlugin()); -// final Context mockContext = mock(Context.class); -// final ProcessCameraProviderHostApiImpl mockProcessCameraProviderHostApiImpl = -// mock(ProcessCameraProviderHostApiImpl.class); -// final RecorderHostApiImpl mockRecorderHostApiImpl = mock(RecorderHostApiImpl.class); -// final PendingRecordingHostApiImpl mockPendingRecordingHostApiImpl = -// mock(PendingRecordingHostApiImpl.class); -// final SystemServicesHostApiImpl mockSystemServicesHostApiImpl = -// mock(SystemServicesHostApiImpl.class); -// final ImageAnalysisHostApiImpl mockImageAnalysisHostApiImpl = -// mock(ImageAnalysisHostApiImpl.class); -// final ImageCaptureHostApiImpl mockImageCaptureHostApiImpl = mock(ImageCaptureHostApiImpl.class); -// final CameraControlHostApiImpl mockCameraControlHostApiImpl = -// mock(CameraControlHostApiImpl.class); -// final Camera2CameraControlHostApiImpl mockCamera2CameraControlHostApiImpl = -// mock(Camera2CameraControlHostApiImpl.class); -// final ArgumentCaptor permissionsRegistryCaptor = -// ArgumentCaptor.forClass(PermissionsRegistry.class); -// -// when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); -// -// plugin.processCameraProviderHostApiImpl = mockProcessCameraProviderHostApiImpl; -// plugin.recorderHostApiImpl = mockRecorderHostApiImpl; -// plugin.pendingRecordingHostApiImpl = mockPendingRecordingHostApiImpl; -// plugin.systemServicesHostApiImpl = mockSystemServicesHostApiImpl; -// plugin.imageCaptureHostApiImpl = mockImageCaptureHostApiImpl; -// plugin.imageAnalysisHostApiImpl = mockImageAnalysisHostApiImpl; -// plugin.cameraControlHostApiImpl = mockCameraControlHostApiImpl; -// plugin.liveDataHostApiImpl = mock(LiveDataHostApiImpl.class); -// plugin.camera2CameraControlHostApiImpl = mockCamera2CameraControlHostApiImpl; -// -// plugin.onAttachedToEngine(flutterPluginBinding); -// plugin.onDetachedFromActivity(); -// -// verify(mockProcessCameraProviderHostApiImpl).setContext(mockContext); -// verify(mockRecorderHostApiImpl).setContext(mockContext); -// verify(mockPendingRecordingHostApiImpl).setContext(mockContext); -// verify(mockSystemServicesHostApiImpl).setContext(mockContext); -// verify(mockImageCaptureHostApiImpl).setContext(mockContext); -// verify(mockImageAnalysisHostApiImpl).setContext(mockContext); -// verify(mockCameraControlHostApiImpl).setContext(mockContext); -// verify(mockCamera2CameraControlHostApiImpl).setContext(mockContext); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.isNotNull; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.doNothing; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; +import static org.mockito.Mockito.withSettings; + +import android.app.Activity; +import android.app.Application; +import android.content.Context; +import androidx.lifecycle.LifecycleOwner; +import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding; +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; +import io.flutter.plugin.common.BinaryMessenger; +import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; +import io.flutter.view.TextureRegistry; + +import org.junit.Rule; +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; + +import java.util.Objects; + +public class CameraAndroidCameraxPluginTest { + @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); + + @Mock ActivityPluginBinding activityPluginBinding; + @Mock FlutterPluginBinding flutterPluginBinding; + + @Test + public void onAttachedToActivity_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsNeeded() { + final Activity mockActivity = + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + + when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); + when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); + when(flutterPluginBinding.getTextureRegistry()).thenReturn(mock(TextureRegistry.class)); + when(activityPluginBinding.getActivity()).thenReturn(mockActivity); + + final CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin(); + plugin.onAttachedToEngine(flutterPluginBinding); + plugin.onAttachedToActivity(activityPluginBinding); + + assertNotNull(plugin.proxyApiRegistrar); + assertEquals(plugin.proxyApiRegistrar.getActivity(), mockActivity); + assertEquals(plugin.proxyApiRegistrar.getLifecycleOwner(), mockActivity); + } + + @Test + public void + onAttachedToActivity_setsLifecycleOwnerAsProxyLifecycleProviderIfActivityNotLifecycleOwnerAsNeeded() { + final Activity mockActivity = mock(Activity.class); + when(mockActivity.getApplication()).thenReturn(mock(Application.class)); + + when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); + when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); + when(flutterPluginBinding.getTextureRegistry()).thenReturn(mock(TextureRegistry.class)); + when(activityPluginBinding.getActivity()).thenReturn(mockActivity); + + final CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin(); + plugin.onAttachedToEngine(flutterPluginBinding); + plugin.onAttachedToActivity(activityPluginBinding); + + assertNotNull(plugin.proxyApiRegistrar); + assertTrue(plugin.proxyApiRegistrar.getLifecycleOwner() instanceof ProxyLifecycleProvider); + } + + @Test + public void onAttachedToActivity_setsActivityAsNeededAndPermissionsRegistry() { + final Activity mockActivity = + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + + when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); + when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); + when(flutterPluginBinding.getTextureRegistry()).thenReturn(mock(TextureRegistry.class)); + when(activityPluginBinding.getActivity()).thenReturn(mockActivity); + + final CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin(); + plugin.onAttachedToEngine(flutterPluginBinding); + plugin.onAttachedToActivity(activityPluginBinding); + + assertNotNull(plugin.proxyApiRegistrar); + assertEquals(plugin.proxyApiRegistrar.getActivity(), mockActivity); + assertEquals(plugin.proxyApiRegistrar.getLifecycleOwner(), mockActivity); + assertNotNull(plugin.proxyApiRegistrar.getPermissionsRegistry()); + } + + @Test + public void + onDetachedFromActivityForConfigChanges_removesReferencesToActivityPluginBindingAndActivity() { + final Activity mockActivity = + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + + when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); + when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); + when(flutterPluginBinding.getTextureRegistry()).thenReturn(mock(TextureRegistry.class)); + when(activityPluginBinding.getActivity()).thenReturn(mockActivity); + + final CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin(); + plugin.onAttachedToEngine(flutterPluginBinding); + plugin.onAttachedToActivity(activityPluginBinding); + plugin.onDetachedFromActivity(); + + assertNotNull(plugin.proxyApiRegistrar); + assertNull(plugin.proxyApiRegistrar.getActivity()); + assertNull(plugin.proxyApiRegistrar.getLifecycleOwner()); + } + + @Test + public void + onDetachedFromActivityForConfigChanges_setsContextReferencesBasedOnFlutterPluginBinding() { + final Context mockContext = mock(Context.class); + final Activity mockActivity = + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + + when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); + when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); + when(flutterPluginBinding.getTextureRegistry()).thenReturn(mock(TextureRegistry.class)); + when(activityPluginBinding.getActivity()).thenReturn(mockActivity); + + final CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin(); + plugin.onAttachedToEngine(flutterPluginBinding); + plugin.onAttachedToActivity(activityPluginBinding); + plugin.onDetachedFromActivityForConfigChanges(); + + assertNotNull(plugin.proxyApiRegistrar); + assertEquals(plugin.proxyApiRegistrar.getContext(), mockContext); + assertNull(plugin.proxyApiRegistrar.getActivity()); + assertNull(plugin.proxyApiRegistrar.getLifecycleOwner()); + } + + @Test + public void + onReattachedToActivityForConfigChanges_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsNeeded() { + final Activity mockActivity = + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + + when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); + when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); + when(flutterPluginBinding.getTextureRegistry()).thenReturn(mock(TextureRegistry.class)); + when(activityPluginBinding.getActivity()).thenReturn(mockActivity); + + final CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin(); + plugin.onAttachedToEngine(flutterPluginBinding); + plugin.onAttachedToActivity(activityPluginBinding); + + assertNotNull(plugin.proxyApiRegistrar); + assertEquals(plugin.proxyApiRegistrar.getActivity(), mockActivity); + assertEquals(plugin.proxyApiRegistrar.getLifecycleOwner(), mockActivity); + } + + @Test + public void + onReattachedToActivityForConfigChanges_setsLifecycleOwnerAsProxyLifecycleProviderIfActivityNotLifecycleOwnerAsNeeded() { + final Activity mockActivity = mock(Activity.class); + when(mockActivity.getApplication()).thenReturn(mock(Application.class)); + + when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); + when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); + when(flutterPluginBinding.getTextureRegistry()).thenReturn(mock(TextureRegistry.class)); + when(activityPluginBinding.getActivity()).thenReturn(mockActivity); + + final CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin(); + plugin.onAttachedToEngine(flutterPluginBinding); + plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); + + assertNotNull(plugin.proxyApiRegistrar); + assertTrue(plugin.proxyApiRegistrar.getLifecycleOwner() instanceof ProxyLifecycleProvider); + } + + @Test + public void onReattachedToActivityForConfigChanges_setsActivityAndPermissionsRegistryAsNeeded() { + final Activity mockActivity = + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + + when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); + when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); + when(flutterPluginBinding.getTextureRegistry()).thenReturn(mock(TextureRegistry.class)); + when(activityPluginBinding.getActivity()).thenReturn(mockActivity); + + final CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin(); + plugin.onAttachedToEngine(flutterPluginBinding); + plugin.onReattachedToActivityForConfigChanges(activityPluginBinding); + + assertNotNull(plugin.proxyApiRegistrar); + assertEquals(plugin.proxyApiRegistrar.getActivity(), mockActivity); + assertEquals(plugin.proxyApiRegistrar.getLifecycleOwner(), mockActivity); + assertNotNull(plugin.proxyApiRegistrar.getPermissionsRegistry()); + } + + + @Test + public void onDetachedFromActivity_setsContextReferencesBasedOnFlutterPluginBinding() { + final Context mockContext = mock(Context.class); + final Activity mockActivity = + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + + when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); + when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); + when(flutterPluginBinding.getTextureRegistry()).thenReturn(mock(TextureRegistry.class)); + when(activityPluginBinding.getActivity()).thenReturn(mockActivity); + + final CameraAndroidCameraxPlugin plugin = new CameraAndroidCameraxPlugin(); + plugin.onAttachedToEngine(flutterPluginBinding); + plugin.onAttachedToActivity(activityPluginBinding); + plugin.onDetachedFromActivity(); + + assertNotNull(plugin.proxyApiRegistrar); + assertEquals(plugin.proxyApiRegistrar.getContext(), mockContext); + assertNull(plugin.proxyApiRegistrar.getActivity()); + assertNull(plugin.proxyApiRegistrar.getLifecycleOwner()); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java index 9150b6e3610..10fdf683b73 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java @@ -7,6 +7,9 @@ import static org.mockito.Mockito.mock; import android.content.Context; + +import org.checkerframework.checker.nullness.qual.NonNull; + import io.flutter.plugin.common.BinaryMessenger; import io.flutter.view.TextureRegistry; @@ -20,7 +23,7 @@ public TestProxyApiRegistrar() { } @Override - void runOnMainThread(Runnable runnable) { + void runOnMainThread(@NonNull Runnable runnable) { runnable.run(); } From 2fedfda4b4bdba75d50f6b0ddfef5a00699c0567 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:22:22 -0500 Subject: [PATCH 083/148] cameracontrol tests --- .../camerax/Camera2CameraControlTest.java | 1 - .../CameraCharacteristicsKeyProxyApiTest.java | 20 - .../CameraCharacteristicsProxyApiTest.java | 21 - .../camerax/CameraControlProxyApiTest.java | 78 --- .../plugins/camerax/CameraControlTest.java | 604 ++++++------------ 5 files changed, 207 insertions(+), 517 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java index 2af19dffc24..2a7466f5f3c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java @@ -29,7 +29,6 @@ import org.mockito.Mockito; import org.mockito.stubbing.Answer; -/** @noinspection unchecked*/ public class Camera2CameraControlTest { @Test public void from() { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java deleted file mode 100644 index 36491bdd3ef..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsKeyProxyApiTest.java +++ /dev/null @@ -1,20 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import android.hardware.camera2.CameraCharacteristics.Key<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraCharacteristicsKeyProxyApiTest { -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java deleted file mode 100644 index ef62915f5ce..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraCharacteristicsProxyApiTest.java +++ /dev/null @@ -1,21 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import android.hardware.camera2.CameraCharacteristics -//import android.hardware.camera2.CameraCharacteristics.Key<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraCharacteristicsProxyApiTest { -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java deleted file mode 100644 index bd6efb66fc9..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlProxyApiTest.java +++ /dev/null @@ -1,78 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.CameraControl -//import androidx.camera.core.FocusMeteringAction -//import androidx.camera.core.FocusMeteringResult -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraControlProxyApiTest { -// @Test -// public void enableTorch() { -// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); -// -// final CameraControl instance = mock(CameraControl.class); -// final Boolean torch = true; -// api.enableTorch(instance, torch); -// -// verify(instance).enableTorch(torch); -// } -// -// @Test -// public void setZoomRatio() { -// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); -// -// final CameraControl instance = mock(CameraControl.class); -// final Double ratio = 1.0; -// api.setZoomRatio(instance, ratio); -// -// verify(instance).setZoomRatio(ratio); -// } -// -// @Test -// public void startFocusAndMetering() { -// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); -// -// final CameraControl instance = mock(CameraControl.class); -// final androidx.camera.core.FocusMeteringAction action = mock(FocusMeteringAction.class); -// final androidx.camera.core.FocusMeteringResult value = mock(FocusMeteringResult.class); -// when(instance.startFocusAndMetering(action)).thenReturn(value); -// -// assertEquals(value, api.startFocusAndMetering(instance, action)); -// } -// -// @Test -// public void cancelFocusAndMetering() { -// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); -// -// final CameraControl instance = mock(CameraControl.class); -// api.cancelFocusAndMetering(instance ); -// -// verify(instance).cancelFocusAndMetering(); -// } -// -// @Test -// public void setExposureCompensationIndex() { -// final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); -// -// final CameraControl instance = mock(CameraControl.class); -// final Long index = 0; -// final Long value = 0; -// when(instance.setExposureCompensationIndex(index)).thenReturn(value); -// -// assertEquals(value, api.setExposureCompensationIndex(instance, index)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java index da36ecf6702..1bb6ddce797 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java @@ -1,397 +1,207 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.content.Context; -//import androidx.camera.core.CameraControl; -//import androidx.camera.core.FocusMeteringAction; -//import androidx.camera.core.FocusMeteringResult; -//import com.google.common.util.concurrent.FutureCallback; -//import com.google.common.util.concurrent.Futures; -//import com.google.common.util.concurrent.ListenableFuture; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.ArgumentCaptor; -//import org.mockito.Mock; -//import org.mockito.MockedStatic; -//import org.mockito.Mockito; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class CameraControlTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public CameraControl cameraControl; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void enableTorch_turnsTorchModeOnAndOffAsExpected() { -// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { -// final CameraControlHostApiImpl cameraControlHostApiImpl = -// new CameraControlHostApiImpl( -// mockBinaryMessenger, testInstanceManager, mock(Context.class)); -// final Long cameraControlIdentifier = 88L; -// final boolean enableTorch = true; -// -// @SuppressWarnings("unchecked") -// final ListenableFuture enableTorchFuture = mock(ListenableFuture.class); -// -// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); -// -// when(cameraControl.enableTorch(true)).thenReturn(enableTorchFuture); -// -// @SuppressWarnings("unchecked") -// final ArgumentCaptor> futureCallbackCaptor = -// ArgumentCaptor.forClass(FutureCallback.class); -// -// // Test successful behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result successfulMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// cameraControlHostApiImpl.enableTorch( -// cameraControlIdentifier, enableTorch, successfulMockResult); -// mockedFutures.verify( -// () -> Futures.addCallback(eq(enableTorchFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback successfulEnableTorchCallback = futureCallbackCaptor.getValue(); -// -// successfulEnableTorchCallback.onSuccess(mock(Void.class)); -// verify(successfulMockResult).success(null); -// -// // Test failed behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result failedMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final Throwable testThrowable = new Throwable(); -// cameraControlHostApiImpl.enableTorch(cameraControlIdentifier, enableTorch, failedMockResult); -// mockedFutures.verify( -// () -> Futures.addCallback(eq(enableTorchFuture), futureCallbackCaptor.capture(), any())); -// -// FutureCallback failedEnableTorchCallback = futureCallbackCaptor.getValue(); -// -// failedEnableTorchCallback.onFailure(testThrowable); -// verify(failedMockResult).error(testThrowable); -// } -// } -// -// @Test -// public void setZoomRatio_setsZoomAsExpected() { -// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { -// final CameraControlHostApiImpl cameraControlHostApiImpl = -// new CameraControlHostApiImpl( -// mockBinaryMessenger, testInstanceManager, mock(Context.class)); -// final Long cameraControlIdentifier = 33L; -// final Double zoomRatio = 0.2D; -// -// @SuppressWarnings("unchecked") -// final ListenableFuture setZoomRatioFuture = mock(ListenableFuture.class); -// -// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); -// -// when(cameraControl.setZoomRatio(zoomRatio.floatValue())).thenReturn(setZoomRatioFuture); -// -// @SuppressWarnings("unchecked") -// final ArgumentCaptor> futureCallbackCaptor = -// ArgumentCaptor.forClass(FutureCallback.class); -// -// // Test successful behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result successfulMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// cameraControlHostApiImpl.setZoomRatio( -// cameraControlIdentifier, zoomRatio, successfulMockResult); -// mockedFutures.verify( -// () -> Futures.addCallback(eq(setZoomRatioFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback successfulSetZoomRatioCallback = futureCallbackCaptor.getValue(); -// -// successfulSetZoomRatioCallback.onSuccess(mock(Void.class)); -// verify(successfulMockResult).success(null); -// -// // Test failed behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result failedMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final Throwable testThrowable = new Throwable(); -// cameraControlHostApiImpl.setZoomRatio(cameraControlIdentifier, zoomRatio, failedMockResult); -// mockedFutures.verify( -// () -> Futures.addCallback(eq(setZoomRatioFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback failedSetZoomRatioCallback = futureCallbackCaptor.getValue(); -// -// failedSetZoomRatioCallback.onFailure(testThrowable); -// verify(failedMockResult).error(testThrowable); -// -// // Test response to canceled operation. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result canceledOpResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final CameraControl.OperationCanceledException canceledOpThrowable = -// mock(CameraControl.OperationCanceledException.class); -// cameraControlHostApiImpl.setZoomRatio(cameraControlIdentifier, zoomRatio, canceledOpResult); -// mockedFutures.verify( -// () -> Futures.addCallback(eq(setZoomRatioFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback canceledOpCallback = futureCallbackCaptor.getValue(); -// -// canceledOpCallback.onFailure(canceledOpThrowable); -// verify(canceledOpResult).success(null); -// } -// } -// -// @Test -// public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { -// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { -// final CameraControlHostApiImpl cameraControlHostApiImpl = -// new CameraControlHostApiImpl( -// mockBinaryMessenger, testInstanceManager, mock(Context.class)); -// final Long cameraControlIdentifier = 90L; -// final FocusMeteringAction mockAction = mock(FocusMeteringAction.class); -// final Long mockActionId = 44L; -// final FocusMeteringResult mockResult = mock(FocusMeteringResult.class); -// final Long mockResultId = 33L; -// -// @SuppressWarnings("unchecked") -// final ListenableFuture startFocusAndMeteringFuture = -// mock(ListenableFuture.class); -// -// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); -// testInstanceManager.addDartCreatedInstance(mockResult, mockResultId); -// testInstanceManager.addDartCreatedInstance(mockAction, mockActionId); -// -// when(cameraControl.startFocusAndMetering(mockAction)).thenReturn(startFocusAndMeteringFuture); -// -// @SuppressWarnings("unchecked") -// final ArgumentCaptor> futureCallbackCaptor = -// ArgumentCaptor.forClass(FutureCallback.class); -// -// // Test successful behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result successfulMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// cameraControlHostApiImpl.startFocusAndMetering( -// cameraControlIdentifier, mockActionId, successfulMockResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback successfulCallback = futureCallbackCaptor.getValue(); -// -// successfulCallback.onSuccess(mockResult); -// verify(successfulMockResult).success(mockResultId); -// -// // Test failed behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result failedMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final Throwable testThrowable = new Throwable(); -// cameraControlHostApiImpl.startFocusAndMetering( -// cameraControlIdentifier, mockActionId, failedMockResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback failedCallback = futureCallbackCaptor.getValue(); -// -// failedCallback.onFailure(testThrowable); -// verify(failedMockResult).error(testThrowable); -// -// // Test response to canceled operation. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result canceledOpResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final CameraControl.OperationCanceledException canceledOpThrowable = -// mock(CameraControl.OperationCanceledException.class); -// cameraControlHostApiImpl.startFocusAndMetering( -// cameraControlIdentifier, mockActionId, canceledOpResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(startFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback canceledOpCallback = futureCallbackCaptor.getValue(); -// -// canceledOpCallback.onFailure(canceledOpThrowable); -// verify(canceledOpResult).success(null); -// } -// } -// -// @Test -// public void cancelFocusAndMetering_cancelsFocusAndMeteringAsExpected() { -// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { -// final CameraControlHostApiImpl cameraControlHostApiImpl = -// new CameraControlHostApiImpl( -// mockBinaryMessenger, testInstanceManager, mock(Context.class)); -// final Long cameraControlIdentifier = 8L; -// -// @SuppressWarnings("unchecked") -// final ListenableFuture cancelFocusAndMeteringFuture = mock(ListenableFuture.class); -// -// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); -// -// when(cameraControl.cancelFocusAndMetering()).thenReturn(cancelFocusAndMeteringFuture); -// -// @SuppressWarnings("unchecked") -// final ArgumentCaptor> futureCallbackCaptor = -// ArgumentCaptor.forClass(FutureCallback.class); -// -// // Test successful behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result successfulMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// cameraControlHostApiImpl.cancelFocusAndMetering( -// cameraControlIdentifier, successfulMockResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback successfulCallback = futureCallbackCaptor.getValue(); -// -// successfulCallback.onSuccess(mock(Void.class)); -// verify(successfulMockResult).success(null); -// -// // Test failed behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result failedMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final Throwable testThrowable = new Throwable(); -// cameraControlHostApiImpl.cancelFocusAndMetering(cameraControlIdentifier, failedMockResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(cancelFocusAndMeteringFuture), futureCallbackCaptor.capture(), any())); -// -// FutureCallback failedCallback = futureCallbackCaptor.getValue(); -// -// failedCallback.onFailure(testThrowable); -// verify(failedMockResult).error(testThrowable); -// } -// } -// -// @Test -// public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected() { -// try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { -// final CameraControlHostApiImpl cameraControlHostApiImpl = -// new CameraControlHostApiImpl( -// mockBinaryMessenger, testInstanceManager, mock(Context.class)); -// final Long cameraControlIdentifier = 53L; -// final Long index = 2L; -// -// @SuppressWarnings("unchecked") -// final ListenableFuture setExposureCompensationIndexFuture = -// mock(ListenableFuture.class); -// -// testInstanceManager.addDartCreatedInstance(cameraControl, cameraControlIdentifier); -// -// when(cameraControl.setExposureCompensationIndex(index.intValue())) -// .thenReturn(setExposureCompensationIndexFuture); -// -// @SuppressWarnings("unchecked") -// final ArgumentCaptor> futureCallbackCaptor = -// ArgumentCaptor.forClass(FutureCallback.class); -// -// // Test successful behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result successfulMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// cameraControlHostApiImpl.setExposureCompensationIndex( -// cameraControlIdentifier, index, successfulMockResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback successfulCallback = futureCallbackCaptor.getValue(); -// final Integer fakeResult = 4; -// -// successfulCallback.onSuccess(fakeResult); -// verify(successfulMockResult).success(fakeResult.longValue()); -// -// // Test failed behavior. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result failedMockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final Throwable testThrowable = new Throwable(); -// cameraControlHostApiImpl.setExposureCompensationIndex( -// cameraControlIdentifier, index, failedMockResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback failedCallback = futureCallbackCaptor.getValue(); -// -// failedCallback.onFailure(testThrowable); -// verify(failedMockResult).error(testThrowable); -// -// // Test response to canceled operation. -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result canceledOpResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final CameraControl.OperationCanceledException canceledOpThrowable = -// mock(CameraControl.OperationCanceledException.class); -// cameraControlHostApiImpl.setExposureCompensationIndex( -// cameraControlIdentifier, index, canceledOpResult); -// mockedFutures.verify( -// () -> -// Futures.addCallback( -// eq(setExposureCompensationIndexFuture), futureCallbackCaptor.capture(), any())); -// mockedFutures.clearInvocations(); -// -// FutureCallback canceledOpCallback = futureCallbackCaptor.getValue(); -// -// canceledOpCallback.onFailure(canceledOpThrowable); -// verify(canceledOpResult).success(null); -// } -// } -// -// @Test -// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { -// final CameraControlFlutterApiImpl spyFlutterApi = -// spy(new CameraControlFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// -// spyFlutterApi.create(cameraControl, reply -> {}); -// -// final long cameraControlIdentifier = -// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(cameraControl)); -// verify(spyFlutterApi).create(eq(cameraControlIdentifier), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraControl; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.FocusMeteringResult; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.mockito.ArgumentCaptor; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.google.common.util.concurrent.FutureCallback; +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; + +public class CameraControlTest { + @SuppressWarnings("unchecked") + @Test + public void enableTorch_turnsTorchModeOnAndOffAsExpected() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + + final ListenableFuture mockListenableFuture = mock(ListenableFuture.class); + final boolean enable = true; + when(instance.enableTorch(enable)).thenReturn(mockListenableFuture); + + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + final boolean[] isSuccess = {false}; + api.enableTorch(instance, enable, ResultCompat.asCompatCallback( + reply -> { + isSuccess[0] = reply.isSuccess(); + return null; + })); + + verify(instance).enableTorch(enable); + mockedFutures.verify( + () -> + Futures.addCallback( + eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + + successfulCallback.onSuccess(mock(Void.class)); + assertTrue(isSuccess[0]); + } + } + + @SuppressWarnings("unchecked") + @Test + public void setZoomRatio_setsZoomAsExpected() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + + final ListenableFuture mockListenableFuture = mock(ListenableFuture.class); + final float ratio = 1.0f; + when(instance.setZoomRatio(ratio)).thenReturn(mockListenableFuture); + + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + final boolean[] isSuccess = {false}; + api.setZoomRatio(instance, ratio, ResultCompat.asCompatCallback( + reply -> { + isSuccess[0] = reply.isSuccess(); + return null; + })); + + verify(instance).setZoomRatio(ratio); + mockedFutures.verify( + () -> + Futures.addCallback( + eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + + successfulCallback.onSuccess(mock(Void.class)); + assertTrue(isSuccess[0]); + } + } + + @SuppressWarnings("unchecked") + @Test + public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + + final ListenableFuture mockListenableFuture = mock(ListenableFuture.class); + final androidx.camera.core.FocusMeteringAction action = mock(FocusMeteringAction.class); + when(instance.startFocusAndMetering(action)).thenReturn(mockListenableFuture); + + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + final FocusMeteringResult[] resultArray = {null}; + api.startFocusAndMetering(instance, action, ResultCompat.asCompatCallback( + reply -> { + resultArray[0] = reply.getOrNull(); + return null; + })); + + verify(instance).startFocusAndMetering(action); + mockedFutures.verify( + () -> + Futures.addCallback( + eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + + final FocusMeteringResult result = mock(FocusMeteringResult.class); + successfulCallback.onSuccess(result); + assertEquals(resultArray[0], result); + } + } + + @SuppressWarnings("unchecked") + @Test + public void cancelFocusAndMetering_cancelsFocusAndMeteringAsExpected() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + + final ListenableFuture mockListenableFuture = mock(ListenableFuture.class); + when(instance.cancelFocusAndMetering()).thenReturn(mockListenableFuture); + + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + final boolean[] isSuccess = {false}; + api.cancelFocusAndMetering(instance, ResultCompat.asCompatCallback( + reply -> { + isSuccess[0] = reply.isSuccess(); + return null; + })); + + verify(instance).cancelFocusAndMetering(); + mockedFutures.verify( + () -> + Futures.addCallback( + eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + + successfulCallback.onSuccess(mock(Void.class)); + assertTrue(isSuccess[0]); + } + } + + @SuppressWarnings("unchecked") + @Test + public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected() { + final PigeonApiCameraControl api = new TestProxyApiRegistrar().getPigeonApiCameraControl(); + + final CameraControl instance = mock(CameraControl.class); + + final ListenableFuture mockListenableFuture = mock(ListenableFuture.class); + final int index = 1; + when(instance.setExposureCompensationIndex(index)).thenReturn(mockListenableFuture); + + try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { + final ArgumentCaptor> futureCallbackCaptor = + ArgumentCaptor.forClass(FutureCallback.class); + + final Long[] resultArray = {-1L}; + api.setExposureCompensationIndex(instance, index, ResultCompat.asCompatCallback( + reply -> { + resultArray[0] = reply.getOrNull(); + return null; + })); + + verify(instance).setExposureCompensationIndex(index); + mockedFutures.verify( + () -> + Futures.addCallback( + eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + mockedFutures.clearInvocations(); + + final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + + successfulCallback.onSuccess(index); + assertEquals(resultArray[0], Long.valueOf(index)); + } + } +} From 0886ff169d32fcc489766555da24650aa1b316bd Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 20 Feb 2025 16:27:22 -0500 Subject: [PATCH 084/148] camerainfo test --- .../camerax/CameraInfoProxyApiTest.java | 138 +++++++++--------- 1 file changed, 72 insertions(+), 66 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java index 75b4892f3ca..3c00e64c4c2 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java @@ -1,66 +1,72 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.CameraInfo -//import androidx.camera.core.ExposureState -//import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraInfoProxyApiTest { -// @Test -// public void sensorRotationDegrees() { -// final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); -// -// final CameraInfo instance = mock(CameraInfo.class); -// final Long value = 0; -// when(instance.getSensorRotationDegrees()).thenReturn(value); -// -// assertEquals(value, api.sensorRotationDegrees(instance)); -// } -// -// @Test -// public void exposureState() { -// final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); -// -// final CameraInfo instance = mock(CameraInfo.class); -// final androidx.camera.core.ExposureState value = mock(ExposureState.class); -// when(instance.getExposureState()).thenReturn(value); -// -// assertEquals(value, api.exposureState(instance)); -// } -// -// @Test -// public void getCameraState() { -// final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); -// -// final CameraInfo instance = mock(CameraInfo.class); -// final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); -// when(instance.getCameraState()).thenReturn(value); -// -// assertEquals(value, api.getCameraState(instance )); -// } -// -// @Test -// public void getZoomState() { -// final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); -// -// final CameraInfo instance = mock(CameraInfo.class); -// final io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper value = mock(LiveData.class); -// when(instance.getZoomState()).thenReturn(value); -// -// assertEquals(value, api.getZoomState(instance )); -// } -// -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraInfo; +import androidx.camera.core.CameraState; +import androidx.camera.core.ExposureState; +import androidx.camera.core.ZoomState; +import androidx.lifecycle.LiveData; + +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import static org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraInfoProxyApiTest { + @Test + public void sensorRotationDegrees() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final long value = 0; + when(instance.getSensorRotationDegrees()).thenReturn((int) value); + + assertEquals(value, api.sensorRotationDegrees(instance)); + } + + @Test + public void exposureState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final androidx.camera.core.ExposureState value = mock(ExposureState.class); + when(instance.getExposureState()).thenReturn(value); + + assertEquals(value, api.exposureState(instance)); + } + + @SuppressWarnings("unchecked") + @Test + public void getCameraState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final LiveData value = mock(LiveData.class); + when(instance.getCameraState()).thenReturn(value); + + assertEquals(value, api.getCameraState(instance).getLiveData()); + } + + @SuppressWarnings("unchecked") + @Test + public void getZoomState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final LiveData value = mock(LiveData.class); + when(instance.getZoomState()).thenReturn(value); + + assertEquals(value, api.getZoomState(instance ).getLiveData()); + } + +} From 703f17672ed235db8ad107ab46623b6e822fdfac Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 15:47:58 -0500 Subject: [PATCH 085/148] range tests --- .../camerax/CameraInfoProxyApiTest.java | 72 ------ .../plugins/camerax/CameraInfoTest.java | 205 ++++++------------ .../CameraIntegerRangeProxyApiTest.java | 101 ++++----- 3 files changed, 121 insertions(+), 257 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java deleted file mode 100644 index 3c00e64c4c2..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoProxyApiTest.java +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.CameraInfo; -import androidx.camera.core.CameraState; -import androidx.camera.core.ExposureState; -import androidx.camera.core.ZoomState; -import androidx.lifecycle.LiveData; - -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import static org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CameraInfoProxyApiTest { - @Test - public void sensorRotationDegrees() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final long value = 0; - when(instance.getSensorRotationDegrees()).thenReturn((int) value); - - assertEquals(value, api.sensorRotationDegrees(instance)); - } - - @Test - public void exposureState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final androidx.camera.core.ExposureState value = mock(ExposureState.class); - when(instance.getExposureState()).thenReturn(value); - - assertEquals(value, api.exposureState(instance)); - } - - @SuppressWarnings("unchecked") - @Test - public void getCameraState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final LiveData value = mock(LiveData.class); - when(instance.getCameraState()).thenReturn(value); - - assertEquals(value, api.getCameraState(instance).getLiveData()); - } - - @SuppressWarnings("unchecked") - @Test - public void getZoomState() { - final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); - - final CameraInfo instance = mock(CameraInfo.class); - final LiveData value = mock(LiveData.class); - when(instance.getZoomState()).thenReturn(value); - - assertEquals(value, api.getZoomState(instance ).getLiveData()); - } - -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java index 0b41d6f1ba0..95326547568 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java @@ -1,136 +1,69 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.CameraInfo; -//import androidx.camera.core.CameraState; -//import androidx.camera.core.ExposureState; -//import androidx.camera.core.ZoomState; -//import androidx.lifecycle.LiveData; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedType; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class CameraInfoTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public CameraInfo mockCameraInfo; -// @Mock public BinaryMessenger mockBinaryMessenger; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void getSensorRotationDegrees_makesCallToRetrieveSensorRotationDegrees() { -// final CameraInfoHostApiImpl cameraInfoHostApi = -// new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); -// -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, 1); -// -// when(mockCameraInfo.getSensorRotationDegrees()).thenReturn(90); -// -// assertEquals((long) cameraInfoHostApi.getSensorRotationDegrees(1L), 90L); -// verify(mockCameraInfo).getSensorRotationDegrees(); -// } -// -// @Test -// public void getCameraState_makesCallToRetrieveLiveCameraState() { -// final CameraInfoHostApiImpl cameraInfoHostApiImpl = -// new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final LiveDataFlutterApiWrapper mockLiveDataFlutterApiWrapper = -// mock(LiveDataFlutterApiWrapper.class); -// final Long mockCameraInfoIdentifier = 27L; -// @SuppressWarnings("unchecked") -// final LiveData mockLiveCameraState = (LiveData) mock(LiveData.class); -// -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); -// cameraInfoHostApiImpl.liveDataFlutterApiWrapper = mockLiveDataFlutterApiWrapper; -// when(mockCameraInfo.getCameraState()).thenReturn(mockLiveCameraState); -// -// final Long liveCameraStateIdentifier = -// cameraInfoHostApiImpl.getCameraState(mockCameraInfoIdentifier); -// -// verify(mockLiveDataFlutterApiWrapper) -// .create(eq(mockLiveCameraState), eq(LiveDataSupportedType.CAMERA_STATE), any()); -// assertEquals( -// liveCameraStateIdentifier, -// testInstanceManager.getIdentifierForStrongReference(mockLiveCameraState)); -// } -// -// @Test -// public void getExposureState_retrievesExpectedExposureState() { -// final CameraInfoHostApiImpl cameraInfoHostApiImpl = -// new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final ExposureState mockExposureState = mock(ExposureState.class); -// final Long mockCameraInfoIdentifier = 27L; -// final Long mockExposureStateIdentifier = 47L; -// -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); -// testInstanceManager.addDartCreatedInstance(mockExposureState, mockExposureStateIdentifier); -// -// when(mockCameraInfo.getExposureState()).thenReturn(mockExposureState); -// -// assertEquals( -// cameraInfoHostApiImpl.getExposureState(mockCameraInfoIdentifier), -// mockExposureStateIdentifier); -// verify(mockCameraInfo).getExposureState(); -// } -// -// @Test -// @SuppressWarnings("unchecked") -// public void getZoomState_retrievesExpectedZoomState() { -// final CameraInfoHostApiImpl cameraInfoHostApiImpl = -// new CameraInfoHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final LiveData mockLiveZoomState = (LiveData) mock(LiveData.class); -// final ZoomState mockZoomState = mock(ZoomState.class); -// final Long mockCameraInfoIdentifier = 20L; -// final Long mockLiveZoomStateIdentifier = 74L; -// -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); -// testInstanceManager.addDartCreatedInstance(mockLiveZoomState, mockLiveZoomStateIdentifier); -// -// when(mockCameraInfo.getZoomState()).thenReturn(mockLiveZoomState); -// -// assertEquals( -// cameraInfoHostApiImpl.getZoomState(mockCameraInfoIdentifier), mockLiveZoomStateIdentifier); -// verify(mockCameraInfo).getZoomState(); -// } -// -// @Test -// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { -// final CameraInfoFlutterApiImpl spyFlutterApi = -// spy(new CameraInfoFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// -// spyFlutterApi.create(mockCameraInfo, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockCameraInfo)); -// verify(spyFlutterApi).create(eq(identifier), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraInfo; +import androidx.camera.core.CameraState; +import androidx.camera.core.ExposureState; +import androidx.camera.core.ZoomState; +import androidx.lifecycle.LiveData; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraInfoTest { + @Test + public void getSensorRotationDegrees_makesCallToRetrieveSensorRotationDegrees() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final long value = 0; + when(instance.getSensorRotationDegrees()).thenReturn((int) value); + + assertEquals(value, api.sensorRotationDegrees(instance)); + } + + @SuppressWarnings("unchecked") + @Test + public void getCameraState_makesCallToRetrieveLiveCameraState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final LiveData value = mock(LiveData.class); + when(instance.getCameraState()).thenReturn(value); + + assertEquals(value, api.getCameraState(instance).getLiveData()); + } + + @Test + public void getExposureState_retrievesExpectedExposureState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final androidx.camera.core.ExposureState value = mock(ExposureState.class); + when(instance.getExposureState()).thenReturn(value); + + assertEquals(value, api.exposureState(instance)); + } + + @SuppressWarnings("unchecked") + @Test + public void getZoomState_retrievesExpectedZoomState() { + final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); + + final CameraInfo instance = mock(CameraInfo.class); + final LiveData value = mock(LiveData.class); + when(instance.getZoomState()).thenReturn(value); + + assertEquals(value, api.getZoomState(instance ).getLiveData()); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java index 474f67d710c..b2a490293bf 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java @@ -1,49 +1,52 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import android.util.Range<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraIntegerRangeProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); -// -// assertTrue(api.pigeon_defaultConstructor() instanceof CameraIntegerRangeProxyApi.CameraIntegerRange); -// } -// -// @Test -// public void lower() { -// final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); -// -// final CameraIntegerRange instance = mock(CameraIntegerRange.class); -// final Long value = 0; -// when(instance.getLower()).thenReturn(value); -// -// assertEquals(value, api.lower(instance)); -// } -// -// @Test -// public void upper() { -// final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); -// -// final CameraIntegerRange instance = mock(CameraIntegerRange.class); -// final Long value = 0; -// when(instance.getUpper()).thenReturn(value); -// -// assertEquals(value, api.upper(instance)); -// } -// -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.util.Range; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import static org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraIntegerRangeProxyApiTest { + @SuppressWarnings("unchecked") + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + final long lower = 2; + final long upper = 1; + + final Range instance = (Range) api.pigeon_defaultConstructor(lower, upper); + assertEquals((int) instance.getLower(), (int) lower); + assertEquals((int) instance.getUpper(), (int) upper); + } + + @Test + public void lower() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + final int lower = 3; + final Range instance = new Range<>(lower, 4); + + assertEquals(lower, api.lower(instance)); + } + + @Test + public void upper() { + final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + + final int upper = 4; + final Range instance = new Range<>(0, upper); + + assertEquals(upper, api.upper(instance)); + } +} From 03cbebe2ca234bb6e6141f6ca2e0ced6c753fbca Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 15:48:17 -0500 Subject: [PATCH 086/148] test class override --- .../src/test/java/android/util/Range.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/android/util/Range.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Range.java b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Range.java new file mode 100644 index 00000000000..e5e809ffb85 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Range.java @@ -0,0 +1,25 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package android.util; + +// Creates an implementation of Range that can be used with unittests and the JVM. +// Typically android.util.Range does nothing when not used with an Android environment. +public final class Range> { + private final T lower; + private final T upper; + + public Range(T lower, T upper) { + this.lower = lower; + this.upper = upper; + } + + public T getLower() { + return lower; + } + + public T getUpper() { + return upper; + } +} From 3b5722c9f076355ccc751751b39a445a1bdb833c Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 16:55:21 -0500 Subject: [PATCH 087/148] more tests --- .../camerax/Camera2CameraInfoTest.java | 2 +- ...iTest.java => CameraIntegerRangeTest.java} | 5 +- .../camerax/CameraPermissionsManagerTest.java | 178 +++++++++--------- .../plugins/camerax/CameraProxyApiTest.java | 44 ----- .../flutter/plugins/camerax/CameraTest.java | 132 ++++--------- 5 files changed, 132 insertions(+), 229 deletions(-) rename packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/{CameraIntegerRangeProxyApiTest.java => CameraIntegerRangeTest.java} (91%) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java index c734b0cc855..efe37cc0573 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java @@ -41,7 +41,7 @@ public void from() { } @Test - public void getCameraId() { + public void getCameraId_returnsExpectedId() { final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java similarity index 91% rename from packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java rename to packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java index b2a490293bf..9e1586ba1f4 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java @@ -8,15 +8,12 @@ import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; import static org.mockito.Mockito.any; -import java.util.HashMap; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; -public class CameraIntegerRangeProxyApiTest { +public class CameraIntegerRangeTest { @SuppressWarnings("unchecked") @Test public void pigeon_defaultConstructor() { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java index 232a294286a..d90bde95330 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java @@ -1,89 +1,89 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static junit.framework.TestCase.assertEquals; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.never; -//import static org.mockito.Mockito.verify; -// -//import android.content.pm.PackageManager; -//import io.flutter.plugins.camerax.CameraPermissionsManager.CameraRequestPermissionsListener; -//import io.flutter.plugins.camerax.CameraPermissionsManager.ResultCallback; -//import org.junit.Test; -// -//public class CameraPermissionsManagerTest { -// @Test -// public void listener_respondsOnce() { -// final int[] calledCounter = {0}; -// CameraRequestPermissionsListener permissionsListener = -// new CameraRequestPermissionsListener((String code, String desc) -> calledCounter[0]++); -// -// permissionsListener.onRequestPermissionsResult( -// 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); -// permissionsListener.onRequestPermissionsResult( -// 9796, null, new int[] {PackageManager.PERMISSION_GRANTED}); -// -// assertEquals(1, calledCounter[0]); -// } -// -// @Test -// public void callback_respondsWithCameraAccessDenied() { -// ResultCallback fakeResultCallback = mock(ResultCallback.class); -// CameraRequestPermissionsListener permissionsListener = -// new CameraRequestPermissionsListener(fakeResultCallback); -// -// permissionsListener.onRequestPermissionsResult( -// 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); -// -// verify(fakeResultCallback) -// .onResult("CameraAccessDenied", "Camera access permission was denied."); -// } -// -// @Test -// public void callback_respondsWithAudioAccessDenied() { -// ResultCallback fakeResultCallback = mock(ResultCallback.class); -// CameraRequestPermissionsListener permissionsListener = -// new CameraRequestPermissionsListener(fakeResultCallback); -// -// permissionsListener.onRequestPermissionsResult( -// 9796, -// null, -// new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_DENIED}); -// -// verify(fakeResultCallback).onResult("AudioAccessDenied", "Audio access permission was denied."); -// } -// -// @Test -// public void callback_doesNotRespond() { -// ResultCallback fakeResultCallback = mock(ResultCallback.class); -// CameraRequestPermissionsListener permissionsListener = -// new CameraRequestPermissionsListener(fakeResultCallback); -// -// permissionsListener.onRequestPermissionsResult( -// 9796, -// null, -// new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_GRANTED}); -// -// verify(fakeResultCallback, never()) -// .onResult("CameraAccessDenied", "Camera access permission was denied."); -// verify(fakeResultCallback, never()) -// .onResult("AudioAccessDenied", "Audio access permission was denied."); -// } -// -// @Test -// public void callback_respondsWithCameraAccessDeniedWhenEmptyResult() { -// // Handles the case where the grantResults array is empty -// -// ResultCallback fakeResultCallback = mock(ResultCallback.class); -// CameraRequestPermissionsListener permissionsListener = -// new CameraRequestPermissionsListener(fakeResultCallback); -// -// permissionsListener.onRequestPermissionsResult(9796, null, new int[] {}); -// -// verify(fakeResultCallback) -// .onResult("CameraAccessDenied", "Camera access permission was denied."); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static junit.framework.TestCase.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + +import android.content.pm.PackageManager; +import io.flutter.plugins.camerax.CameraPermissionsManager.CameraRequestPermissionsListener; +import io.flutter.plugins.camerax.CameraPermissionsManager.ResultCallback; +import org.junit.Test; + +public class CameraPermissionsManagerTest { + @Test + public void listener_respondsOnce() { + final int[] calledCounter = {0}; + CameraRequestPermissionsListener permissionsListener = + new CameraRequestPermissionsListener((String code, String desc) -> calledCounter[0]++); + + permissionsListener.onRequestPermissionsResult( + 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); + permissionsListener.onRequestPermissionsResult( + 9796, null, new int[] {PackageManager.PERMISSION_GRANTED}); + + assertEquals(1, calledCounter[0]); + } + + @Test + public void callback_respondsWithCameraAccessDenied() { + ResultCallback fakeResultCallback = mock(ResultCallback.class); + CameraRequestPermissionsListener permissionsListener = + new CameraRequestPermissionsListener(fakeResultCallback); + + permissionsListener.onRequestPermissionsResult( + 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); + + verify(fakeResultCallback) + .onResult("CameraAccessDenied", "Camera access permission was denied."); + } + + @Test + public void callback_respondsWithAudioAccessDenied() { + ResultCallback fakeResultCallback = mock(ResultCallback.class); + CameraRequestPermissionsListener permissionsListener = + new CameraRequestPermissionsListener(fakeResultCallback); + + permissionsListener.onRequestPermissionsResult( + 9796, + null, + new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_DENIED}); + + verify(fakeResultCallback).onResult("AudioAccessDenied", "Audio access permission was denied."); + } + + @Test + public void callback_doesNotRespond() { + ResultCallback fakeResultCallback = mock(ResultCallback.class); + CameraRequestPermissionsListener permissionsListener = + new CameraRequestPermissionsListener(fakeResultCallback); + + permissionsListener.onRequestPermissionsResult( + 9796, + null, + new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_GRANTED}); + + verify(fakeResultCallback, never()) + .onResult("CameraAccessDenied", "Camera access permission was denied."); + verify(fakeResultCallback, never()) + .onResult("AudioAccessDenied", "Audio access permission was denied."); + } + + @Test + public void callback_respondsWithCameraAccessDeniedWhenEmptyResult() { + // Handles the case where the grantResults array is empty + + ResultCallback fakeResultCallback = mock(ResultCallback.class); + CameraRequestPermissionsListener permissionsListener = + new CameraRequestPermissionsListener(fakeResultCallback); + + permissionsListener.onRequestPermissionsResult(9796, null, new int[] {}); + + verify(fakeResultCallback) + .onResult("CameraAccessDenied", "Camera access permission was denied."); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java deleted file mode 100644 index d56beecfc2e..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraProxyApiTest.java +++ /dev/null @@ -1,44 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.Camera -//import androidx.camera.core.CameraControl -//import androidx.camera.core.CameraInfo -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraProxyApiTest { -// @Test -// public void cameraControl() { -// final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); -// -// final Camera instance = mock(Camera.class); -// final androidx.camera.core.CameraControl value = mock(CameraControl.class); -// when(instance.getCameraControl()).thenReturn(value); -// -// assertEquals(value, api.cameraControl(instance)); -// } -// -// @Test -// public void getCameraInfo() { -// final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); -// -// final Camera instance = mock(Camera.class); -// final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); -// when(instance.getCameraInfo()).thenReturn(value); -// -// assertEquals(value, api.getCameraInfo(instance )); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java index 22375c47f74..a5575652530 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java @@ -1,91 +1,41 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.Camera; -//import androidx.camera.core.CameraControl; -//import androidx.camera.core.CameraInfo; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class CameraTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public Camera camera; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void getCameraInfo_retrievesExpectedCameraInfoInstance() { -// final CameraHostApiImpl cameraHostApiImpl = -// new CameraHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final CameraInfo mockCameraInfo = mock(CameraInfo.class); -// final Long cameraIdentifier = 34L; -// final Long mockCameraInfoIdentifier = 97L; -// -// testInstanceManager.addDartCreatedInstance(camera, cameraIdentifier); -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoIdentifier); -// -// when(camera.getCameraInfo()).thenReturn(mockCameraInfo); -// -// assertEquals(cameraHostApiImpl.getCameraInfo(cameraIdentifier), mockCameraInfoIdentifier); -// verify(camera).getCameraInfo(); -// } -// -// @Test -// public void getCameraControl_retrievesExpectedCameraControlInstance() { -// final CameraHostApiImpl cameraHostApiImpl = -// new CameraHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final CameraControl mockCameraControl = mock(CameraControl.class); -// final Long cameraIdentifier = 43L; -// final Long mockCameraControlIdentifier = 79L; -// -// testInstanceManager.addDartCreatedInstance(camera, cameraIdentifier); -// testInstanceManager.addDartCreatedInstance(mockCameraControl, mockCameraControlIdentifier); -// -// when(camera.getCameraControl()).thenReturn(mockCameraControl); -// -// assertEquals(cameraHostApiImpl.getCameraControl(cameraIdentifier), mockCameraControlIdentifier); -// verify(camera).getCameraControl(); -// } -// -// @Test -// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { -// final CameraFlutterApiImpl spyFlutterApi = -// spy(new CameraFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// -// spyFlutterApi.create(camera, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(camera)); -// verify(spyFlutterApi).create(eq(identifier), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.Camera; +import androidx.camera.core.CameraControl; +import androidx.camera.core.CameraInfo; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraTest { + @Test + public void cameraInfo_retrievesExpectedCameraInfoInstance() { + final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); + + final Camera instance = mock(Camera.class); + final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); + when(instance.getCameraInfo()).thenReturn(value); + + assertEquals(value, api.getCameraInfo(instance )); + } + + @Test + public void getCameraControl_retrievesExpectedCameraControlInstance() { + final PigeonApiCamera api = new TestProxyApiRegistrar().getPigeonApiCamera(); + + final Camera instance = mock(Camera.class); + final androidx.camera.core.CameraControl value = mock(CameraControl.class); + when(instance.getCameraControl()).thenReturn(value); + + assertEquals(value, api.cameraControl(instance)); + } +} From cfd8cac5d51055710d03319e1c0f276a3a82ad64 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 17:04:56 -0500 Subject: [PATCH 088/148] camera selector test --- .../camerax/CameraSelectorProxyApi.java | 4 +- .../camerax/CameraSelectorProxyApiTest.java | 40 ----- .../plugins/camerax/CameraSelectorTest.java | 142 ++++++------------ 3 files changed, 47 insertions(+), 139 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java index d3b29897b68..9b6a01272e9 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java @@ -38,7 +38,7 @@ public CameraSelector pigeon_defaultConstructor(@Nullable LensFacing requireLens builder.requireLensFacing(CameraSelector.LENS_FACING_EXTERNAL); break; case UNKNOWN: - builder.requireLensFacing(CameraSelector.LENS_FACING_FRONT); + builder.requireLensFacing(CameraSelector.LENS_FACING_UNKNOWN); break; } } @@ -57,7 +57,7 @@ public androidx.camera.core.CameraSelector defaultFrontCamera() { return CameraSelector.DEFAULT_FRONT_CAMERA; } - // List is the same as List. + // List can be considered the same as List. @SuppressWarnings("unchecked") @NonNull @Override diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java deleted file mode 100644 index edf23635fb8..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorProxyApiTest.java +++ /dev/null @@ -1,40 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.CameraSelector -//import androidx.camera.core.CameraInfo -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraSelectorProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); -// -// assertTrue(api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT) instanceof CameraSelectorProxyApi.CameraSelector); -// } -// -// @Test -// public void filter() { -// final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); -// -// final CameraSelector instance = mock(CameraSelector.class); -// final List cameraInfos = Arrays.asList(mock(CameraInfo.class)); -// final List value = Arrays.asList(mock(CameraInfo.class)); -// when(instance.filter(cameraInfos)).thenReturn(value); -// -// assertEquals(value, api.filter(instance, cameraInfos)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java index 8b582d6f4ff..8cbc17e1a87 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java @@ -1,97 +1,45 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.CameraInfo; -//import androidx.camera.core.CameraSelector; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.Arrays; -//import java.util.List; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class CameraSelectorTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public CameraSelector mockCameraSelector; -// @Mock public BinaryMessenger mockBinaryMessenger; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void createTest() { -// final CameraSelectorHostApiImpl cameraSelectorHostApi = -// new CameraSelectorHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); -// final CameraSelector.Builder mockCameraSelectorBuilder = mock(CameraSelector.Builder.class); -// -// cameraSelectorHostApi.cameraXProxy = mockCameraXProxy; -// when(mockCameraXProxy.createCameraSelectorBuilder()).thenReturn(mockCameraSelectorBuilder); -// -// when(mockCameraSelectorBuilder.requireLensFacing(1)).thenReturn(mockCameraSelectorBuilder); -// when(mockCameraSelectorBuilder.build()).thenReturn(mockCameraSelector); -// -// cameraSelectorHostApi.create(0L, 1L); -// -// verify(mockCameraSelectorBuilder).requireLensFacing(CameraSelector.LENS_FACING_BACK); -// assertEquals(testInstanceManager.getInstance(0L), mockCameraSelector); -// } -// -// @Test -// public void filterTest() { -// final CameraSelectorHostApiImpl cameraSelectorHostApi = -// new CameraSelectorHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final CameraInfo cameraInfo = mock(CameraInfo.class); -// final List cameraInfosForFilter = Arrays.asList(cameraInfo); -// final List cameraInfosIds = Arrays.asList(1L); -// -// testInstanceManager.addDartCreatedInstance(mockCameraSelector, 0); -// testInstanceManager.addDartCreatedInstance(cameraInfo, 1); -// -// when(mockCameraSelector.filter(cameraInfosForFilter)).thenReturn(cameraInfosForFilter); -// -// assertEquals( -// cameraSelectorHostApi.filter(0L, cameraInfosIds), -// Arrays.asList(testInstanceManager.getIdentifierForStrongReference(cameraInfo))); -// verify(mockCameraSelector).filter(cameraInfosForFilter); -// } -// -// @Test -// public void flutterApiCreateTest() { -// final CameraSelectorFlutterApiImpl spyFlutterApi = -// spy(new CameraSelectorFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// -// spyFlutterApi.create(mockCameraSelector, 0L, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull( -// testInstanceManager.getIdentifierForStrongReference(mockCameraSelector)); -// verify(spyFlutterApi).create(eq(identifier), eq(0L), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraSelector; +import androidx.camera.core.CameraInfo; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import static org.mockito.Mockito.any; + +import java.util.Collections; +import java.util.List; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraSelectorTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); + + final CameraSelector selector = api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT); + + assertEquals(selector.getLensFacing(), (Integer) CameraSelector.LENS_FACING_FRONT); + } + + @Test + public void filter() { + final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); + + final CameraSelector instance = mock(CameraSelector.class); + + final List cameraInfos = Collections.singletonList(mock(CameraInfo.class)); + final List value = Collections.singletonList(mock(CameraInfo.class)); + when(instance.filter(cameraInfos)).thenReturn(value); + + assertEquals(value, api.filter(instance, cameraInfos)); + } +} From 646fcd52f59c5c64d12ecdd9ae572d27b363d54a Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 17:15:29 -0500 Subject: [PATCH 089/148] more more tests --- .../src/test/java/android/util/Size.java | 26 ++++ .../camerax/CameraSizeProxyApiTest.java | 49 ------ .../plugins/camerax/CameraSizeTest.java | 52 +++++++ .../plugins/camerax/CameraStateErrorTest.java | 57 ------- .../camerax/CameraStateProxyApiTest.java | 43 ------ .../CameraStateStateErrorProxyApiTest.java | 31 ---- .../camerax/CameraStateStateErrorTest.java | 29 ++++ .../plugins/camerax/CameraStateTest.java | 142 +++++------------- 8 files changed, 147 insertions(+), 282 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateErrorTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java new file mode 100644 index 00000000000..0aae4b09db7 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java @@ -0,0 +1,26 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package android.util; + +// Creates an implementation of Range that can be used with unittests and the JVM. +// Typically android.util.Range does nothing when not used with an Android environment. + +public final class Size { + private final int width; + private final int height; + + public Size(int width, int height) { + this.width = width; + this.height = height; + } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java deleted file mode 100644 index 3cda72fdbb9..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeProxyApiTest.java +++ /dev/null @@ -1,49 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import android.util.Size -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraSizeProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); -// -// assertTrue(api.pigeon_defaultConstructor() instanceof CameraSizeProxyApi.CameraSize); -// } -// -// @Test -// public void width() { -// final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); -// -// final CameraSize instance = mock(CameraSize.class); -// final Long value = 0; -// when(instance.getWidth()).thenReturn(value); -// -// assertEquals(value, api.width(instance)); -// } -// -// @Test -// public void height() { -// final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); -// -// final CameraSize instance = mock(CameraSize.class); -// final Long value = 0; -// when(instance.getHeight()).thenReturn(value); -// -// assertEquals(value, api.height(instance)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java new file mode 100644 index 00000000000..a6e45803c00 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java @@ -0,0 +1,52 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import android.util.Size; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraSizeTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + final int width = 6; + final int height = 7; + final Size instance = api.pigeon_defaultConstructor(width, height); + + assertEquals(instance.getWidth(), width); + assertEquals(instance.getHeight(), height); + } + + @Test + public void width() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + final Size instance = mock(Size.class); + final int value = 0; + when(instance.getWidth()).thenReturn(value); + + assertEquals(value, api.width(instance)); + } + + @Test + public void height() { + final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); + + final Size instance = mock(Size.class); + final int value = 0; + when(instance.getHeight()).thenReturn(value); + + assertEquals(value, api.height(instance)); + } + +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateErrorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateErrorTest.java deleted file mode 100644 index e675b8ff12d..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateErrorTest.java +++ /dev/null @@ -1,57 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.verify; -// -//import androidx.camera.core.CameraState; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateErrorFlutterApi; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class CameraStateErrorTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public CameraState.StateError mockCameraStateError; -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public CameraStateErrorFlutterApi mockFlutterApi; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void flutterApiCreate_makesCallToDartToCreateInstance() { -// final CameraStateErrorFlutterApiWrapper flutterApi = -// new CameraStateErrorFlutterApiWrapper(mockBinaryMessenger, instanceManager); -// flutterApi.setApi(mockFlutterApi); -// -// final Long code = 0L; -// -// flutterApi.create(mockCameraStateError, code, reply -> {}); -// -// final long instanceIdentifier = -// Objects.requireNonNull( -// instanceManager.getIdentifierForStrongReference(mockCameraStateError)); -// verify(mockFlutterApi).create(eq(instanceIdentifier), eq(code), any()); -// } -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java deleted file mode 100644 index 6918f498ee2..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateProxyApiTest.java +++ /dev/null @@ -1,43 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.CameraState -//import androidx.camera.core.CameraState.StateError -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraStateProxyApiTest { -// @Test -// public void type() { -// final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); -// -// final CameraState instance = mock(CameraState.class); -// final CameraStateType value = io.flutter.plugins.camerax.CameraStateType.CLOSED; -// when(instance.getType()).thenReturn(value); -// -// assertEquals(value, api.type(instance)); -// } -// -// @Test -// public void error() { -// final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); -// -// final CameraState instance = mock(CameraState.class); -// final androidx.camera.core.CameraState.StateError value = mock(CameraStateStateError.class); -// when(instance.getError()).thenReturn(value); -// -// assertEquals(value, api.error(instance)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java deleted file mode 100644 index 6776dc98cae..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApiTest.java +++ /dev/null @@ -1,31 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.CameraState.StateError -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CameraStateStateErrorProxyApiTest { -// @Test -// public void code() { -// final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); -// -// final CameraStateStateError instance = mock(CameraStateStateError.class); -// final CameraStateErrorCode value = io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED; -// when(instance.getCode()).thenReturn(value); -// -// assertEquals(value, api.code(instance)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java new file mode 100644 index 00000000000..835d319a84a --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java @@ -0,0 +1,29 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraStateStateErrorTest { + @Test + public void code() { + final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); + + final CameraState.StateError instance = mock(CameraState.StateError.class); + final int value = CameraState.ERROR_CAMERA_DISABLED; + when(instance.getCode()).thenReturn(value); + + assertEquals(io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED, api.code(instance)); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java index 80593cb4130..0fd29555afa 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java @@ -1,102 +1,40 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.fail; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.verify; -// -//import androidx.camera.core.CameraState; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateFlutterApi; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateType; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateTypeData; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.ArgumentCaptor; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class CameraStateTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public CameraState mockCameraState; -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public CameraStateFlutterApi mockFlutterApi; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void flutterApiCreate_makesCallToDartToCreateInstance() { -// final CameraStateFlutterApiWrapper flutterApi = -// new CameraStateFlutterApiWrapper(mockBinaryMessenger, instanceManager); -// flutterApi.setApi(mockFlutterApi); -// -// final CameraStateType type = CameraStateType.OPEN; -// final CameraState.StateError mockError = mock(CameraState.StateError.class); -// -// flutterApi.create(mockCameraState, type, mockError, reply -> {}); -// -// final long instanceIdentifier = -// Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockCameraState)); -// final ArgumentCaptor cameraStateTypeDataCaptor = -// ArgumentCaptor.forClass(CameraStateTypeData.class); -// -// verify(mockFlutterApi) -// .create( -// eq(instanceIdentifier), -// cameraStateTypeDataCaptor.capture(), -// eq(Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockError))), -// any()); -// -// assertEquals(cameraStateTypeDataCaptor.getValue().getValue(), type); -// } -// -// @Test -// public void getCameraStateType_returnsExpectedType() { -// for (CameraState.Type type : CameraState.Type.values()) { -// switch (type) { -// case CLOSED: -// assertEquals( -// CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.CLOSED); -// break; -// case CLOSING: -// assertEquals( -// CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.CLOSING); -// break; -// case OPEN: -// assertEquals(CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.OPEN); -// break; -// case OPENING: -// assertEquals( -// CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.OPENING); -// break; -// case PENDING_OPEN: -// assertEquals( -// CameraStateFlutterApiWrapper.getCameraStateType(type), CameraStateType.PENDING_OPEN); -// break; -// default: -// fail("The CameraState.Type " + type.toString() + " is unhandled by this test."); -// } -// } -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.CameraState; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CameraStateTest { + @Test + public void type() { + final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); + + final CameraState instance = mock(CameraState.class); + final CameraState.Type value = CameraState.Type.CLOSED; + when(instance.getType()).thenReturn(value); + + assertEquals(io.flutter.plugins.camerax.CameraStateType.CLOSED, api.type(instance)); + } + + @Test + public void error() { + final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); + + final CameraState instance = mock(CameraState.class); + final androidx.camera.core.CameraState.StateError value = mock(CameraState.StateError.class); + when(instance.getError()).thenReturn(value); + + assertEquals(value, api.error(instance)); + } +} From fd07800bf4f4a5e1cb91f087c83c25e7b38d7e36 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 17:32:11 -0500 Subject: [PATCH 090/148] capture request optiosn --- .../CaptureRequestOptionsProxyApi.java | 7 +- .../CaptureRequestKeyProxyApiTest.java | 20 ---- .../CaptureRequestOptionsProxyApiTest.java | 99 +++++++++++-------- 3 files changed, 65 insertions(+), 61 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java index 6093987d564..8fe35bc2496 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -21,13 +21,18 @@ class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { super(pigeonRegistrar); } + @ExperimentalCamera2Interop + CaptureRequestOptions.Builder createBuilder() { + return new CaptureRequestOptions.Builder(); + } + @SuppressWarnings("unchecked") @ExperimentalCamera2Interop @NonNull @Override public CaptureRequestOptions pigeon_defaultConstructor( @NonNull Map, ?> options) { - final CaptureRequestOptions.Builder builder = new CaptureRequestOptions.Builder(); + final CaptureRequestOptions.Builder builder = createBuilder(); for (final Map.Entry, ?> option : options.entrySet()) { Object optionValue = option.getValue(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java deleted file mode 100644 index da388392b5a..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestKeyProxyApiTest.java +++ /dev/null @@ -1,20 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import android.hardware.camera2.CaptureRequest.Key<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CaptureRequestKeyProxyApiTest { -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java index a419ccd9047..cd15f1f54e6 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java @@ -1,40 +1,59 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.camera2.interop.CaptureRequestOptions -//import android.hardware.camera2.CaptureRequest.Key<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CaptureRequestOptionsProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); -// -// assertTrue(api.pigeon_defaultConstructor(new HashMap() {{put(mock(CaptureRequestKey.class), -1)}}) instanceof CaptureRequestOptionsProxyApi.CaptureRequestOptions); -// } -// -// @Test -// public void getCaptureRequestOption() { -// final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); -// -// final CaptureRequestOptions instance = mock(CaptureRequestOptions.class); -// final android.hardware.camera2.CaptureRequest.Key<*> key = mock(CaptureRequestKey.class); -// final Any value = -1; -// when(instance.getCaptureRequestOption(key)).thenReturn(value); -// -// assertEquals(value, api.getCaptureRequestOption(instance, key)); -// } -// -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.camera2.interop.CaptureRequestOptions; + +import android.hardware.camera2.CaptureRequest; +import android.hardware.camera2.CaptureRequest.Key; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import static org.mockito.Mockito.any; +import java.util.HashMap; +import java.util.Map; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class CaptureRequestOptionsProxyApiTest { + @SuppressWarnings("unchecked") + @Test + public void pigeon_defaultConstructor() { + final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); + final CaptureRequestOptions mockOptions = mock(CaptureRequestOptions.class); + when(mockBuilder.build()).thenReturn(mockOptions); + final PigeonApiCaptureRequestOptions api = new CaptureRequestOptionsProxyApi(mock(ProxyApiRegistrar.class)) { + @Override + CaptureRequestOptions.Builder createBuilder() { + return mockBuilder; + } + }; + + final Key mockKey = mock(CaptureRequest.Key.class); + final int value = -1; + final Map, Object> options = Map.of(mockKey, value); + final CaptureRequestOptions instance = api.pigeon_defaultConstructor(options); + + verify(mockBuilder).setCaptureRequestOption(mockKey, value); + assertEquals(instance, mockOptions); + } + + @SuppressWarnings("unchecked") + @Test + public void getCaptureRequestOption() { + final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); + + final CaptureRequestOptions instance = mock(CaptureRequestOptions.class); + final Key key = mock(CaptureRequest.Key.class); + final int value = -1; + when(instance.getCaptureRequestOption(key)).thenReturn(value); + + assertEquals(value, api.getCaptureRequestOption(instance, key)); + } +} From 424456e1dc6bcb5e100f26e93f2d94a27dc4a6ca Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 17:33:43 -0500 Subject: [PATCH 091/148] formatting --- .../camerax/CameraAndroidCameraxPlugin.java | 4 +- .../CaptureRequestOptionsProxyApi.java | 4 +- .../src/test/java/android/util/Range.java | 24 +-- .../src/test/java/android/util/Size.java | 24 +-- .../camerax/Camera2CameraControlTest.java | 36 ++-- .../camerax/Camera2CameraInfoTest.java | 27 ++- .../CameraAndroidCameraxPluginTest.java | 22 +-- .../plugins/camerax/CameraControlTest.java | 77 ++++---- .../plugins/camerax/CameraInfoTest.java | 19 +- .../camerax/CameraIntegerRangeTest.java | 17 +- .../plugins/camerax/CameraSelectorTest.java | 25 ++- .../plugins/camerax/CameraSizeTest.java | 10 +- .../camerax/CameraStateStateErrorTest.java | 16 +- .../plugins/camerax/CameraStateTest.java | 10 +- .../flutter/plugins/camerax/CameraTest.java | 13 +- .../CaptureRequestOptionsProxyApiTest.java | 59 ------- .../camerax/CaptureRequestOptionsTest.java | 164 ++++++------------ .../camerax/TestProxyApiRegistrar.java | 4 +- 18 files changed, 207 insertions(+), 348 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java index 6c67f1da940..b591bc01dbb 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java @@ -7,7 +7,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; - import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.embedding.engine.plugins.activity.ActivityAware; import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; @@ -15,8 +14,7 @@ /** Platform implementation of the camera_plugin implemented with the CameraX library. */ public final class CameraAndroidCameraxPlugin implements FlutterPlugin, ActivityAware { private FlutterPluginBinding pluginBinding; - @VisibleForTesting - @Nullable ProxyApiRegistrar proxyApiRegistrar; + @VisibleForTesting @Nullable ProxyApiRegistrar proxyApiRegistrar; /** * Initialize this within the {@code #configureFlutterEngine} of a Flutter activity or fragment. diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java index 8fe35bc2496..c6b12fcfc80 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -21,8 +21,8 @@ class CaptureRequestOptionsProxyApi extends PigeonApiCaptureRequestOptions { super(pigeonRegistrar); } - @ExperimentalCamera2Interop - CaptureRequestOptions.Builder createBuilder() { + @ExperimentalCamera2Interop + CaptureRequestOptions.Builder createBuilder() { return new CaptureRequestOptions.Builder(); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Range.java b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Range.java index e5e809ffb85..48f2c5f7d53 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Range.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Range.java @@ -7,19 +7,19 @@ // Creates an implementation of Range that can be used with unittests and the JVM. // Typically android.util.Range does nothing when not used with an Android environment. public final class Range> { - private final T lower; - private final T upper; + private final T lower; + private final T upper; - public Range(T lower, T upper) { - this.lower = lower; - this.upper = upper; - } + public Range(T lower, T upper) { + this.lower = lower; + this.upper = upper; + } - public T getLower() { - return lower; - } + public T getLower() { + return lower; + } - public T getUpper() { - return upper; - } + public T getUpper() { + return upper; + } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java index 0aae4b09db7..1aa91edc752 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java @@ -8,19 +8,19 @@ // Typically android.util.Range does nothing when not used with an Android environment. public final class Size { - private final int width; - private final int height; + private final int width; + private final int height; - public Size(int width, int height) { - this.width = width; - this.height = height; - } + public Size(int width, int height) { + this.width = width; + this.height = height; + } - public int getWidth() { - return width; - } + public int getWidth() { + return width; + } - public int getHeight() { - return height; - } + public int getHeight() { + return height; + } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java index 2a7466f5f3c..f3ba9f28b6b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java @@ -5,7 +5,6 @@ package io.flutter.plugins.camerax; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; @@ -14,15 +13,11 @@ import static org.mockito.Mockito.when; import androidx.camera.camera2.interop.Camera2CameraControl; -import androidx.camera.camera2.interop.Camera2CameraInfo; import androidx.camera.camera2.interop.CaptureRequestOptions; import androidx.camera.core.CameraControl; -import androidx.camera.core.CameraInfo; - import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; - import org.junit.Test; import org.mockito.ArgumentCaptor; import org.mockito.MockedStatic; @@ -32,16 +27,17 @@ public class Camera2CameraControlTest { @Test public void from() { - final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + final PigeonApiCamera2CameraControl api = + new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); final CameraControl mockCameraControl = mock(CameraControl.class); final Camera2CameraControl mockCamera2CameraControl = mock(Camera2CameraControl.class); try (MockedStatic mockedCamera2CameraControl = - Mockito.mockStatic(Camera2CameraControl.class)) { + Mockito.mockStatic(Camera2CameraControl.class)) { mockedCamera2CameraControl - .when(() -> Camera2CameraControl.from(mockCameraControl)) - .thenAnswer((Answer) invocation -> mockCamera2CameraControl); + .when(() -> Camera2CameraControl.from(mockCameraControl)) + .thenAnswer((Answer) invocation -> mockCamera2CameraControl); assertEquals(api.from(mockCameraControl), mockCamera2CameraControl); } @@ -65,7 +61,10 @@ public void addCaptureRequestOptions_respondsAsExpectedToSuccessful() { ArgumentCaptor.forClass(FutureCallback.class); final boolean[] isSuccess = {false}; - api.addCaptureRequestOptions(instance, bundle, ResultCompat.asCompatCallback( + api.addCaptureRequestOptions( + instance, + bundle, + ResultCompat.asCompatCallback( reply -> { isSuccess[0] = reply.isSuccess(); return null; @@ -89,21 +88,24 @@ public void addCaptureRequestOptions_respondsAsExpectedToSuccessful() { @Test public void addCaptureRequestOptions_respondsAsExpectedToFailure() { final PigeonApiCamera2CameraControl api = - new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); + new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); final Camera2CameraControl instance = mock(Camera2CameraControl.class); final androidx.camera.camera2.interop.CaptureRequestOptions bundle = - mock(CaptureRequestOptions.class); + mock(CaptureRequestOptions.class); final ListenableFuture addCaptureRequestOptionsFuture = mock(ListenableFuture.class); when(instance.addCaptureRequestOptions(bundle)).thenReturn(addCaptureRequestOptionsFuture); try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); + ArgumentCaptor.forClass(FutureCallback.class); final boolean[] isFailure = {false}; - api.addCaptureRequestOptions(instance, bundle, ResultCompat.asCompatCallback( + api.addCaptureRequestOptions( + instance, + bundle, + ResultCompat.asCompatCallback( reply -> { isFailure[0] = reply.isFailure(); return null; @@ -111,9 +113,9 @@ public void addCaptureRequestOptions_respondsAsExpectedToFailure() { verify(instance).addCaptureRequestOptions(bundle); mockedFutures.verify( - () -> - Futures.addCallback( - eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback( + eq(addCaptureRequestOptionsFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java index efe37cc0573..d68ef8eb27e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java @@ -4,28 +4,23 @@ package io.flutter.plugins.camerax; -import androidx.camera.camera2.interop.Camera2CameraInfo; -import androidx.camera.core.CameraInfo; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import android.hardware.camera2.CameraCharacteristics; - +import androidx.camera.camera2.interop.Camera2CameraInfo; +import androidx.camera.core.CameraInfo; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - import org.mockito.MockedStatic; import org.mockito.Mockito; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import org.mockito.stubbing.Answer; public class Camera2CameraInfoTest { @Test public void from() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + final PigeonApiCamera2CameraInfo api = + new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); final CameraInfo mockCameraInfo = mock(CameraInfo.class); final Camera2CameraInfo mockCamera2CameraInfo = mock(Camera2CameraInfo.class); @@ -42,19 +37,21 @@ public void from() { @Test public void getCameraId_returnsExpectedId() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + final PigeonApiCamera2CameraInfo api = + new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); final String value = "myString"; when(instance.getCameraId()).thenReturn(value); - assertEquals(value, api.getCameraId(instance )); + assertEquals(value, api.getCameraId(instance)); } @SuppressWarnings("unchecked") @Test public void getCameraCharacteristic() { - final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); + final PigeonApiCamera2CameraInfo api = + new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); final Camera2CameraInfo instance = mock(Camera2CameraInfo.class); final CameraCharacteristics.Key key = mock(CameraCharacteristics.Key.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java index fbe7faa569e..f4d08b66ab6 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java @@ -8,12 +8,7 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.isNotNull; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.mockito.Mockito.withSettings; @@ -24,17 +19,13 @@ import io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding; import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; import io.flutter.view.TextureRegistry; - import org.junit.Rule; import org.junit.Test; -import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; -import java.util.Objects; public class CameraAndroidCameraxPluginTest { @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); @@ -83,7 +74,7 @@ public void onAttachedToActivity_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsN @Test public void onAttachedToActivity_setsActivityAsNeededAndPermissionsRegistry() { final Activity mockActivity = - mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); @@ -104,7 +95,7 @@ public void onAttachedToActivity_setsActivityAsNeededAndPermissionsRegistry() { public void onDetachedFromActivityForConfigChanges_removesReferencesToActivityPluginBindingAndActivity() { final Activity mockActivity = - mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); @@ -126,7 +117,7 @@ public void onAttachedToActivity_setsActivityAsNeededAndPermissionsRegistry() { onDetachedFromActivityForConfigChanges_setsContextReferencesBasedOnFlutterPluginBinding() { final Context mockContext = mock(Context.class); final Activity mockActivity = - mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); @@ -148,7 +139,7 @@ public void onAttachedToActivity_setsActivityAsNeededAndPermissionsRegistry() { public void onReattachedToActivityForConfigChanges_setsLifecycleOwnerAsActivityIfLifecycleOwnerAsNeeded() { final Activity mockActivity = - mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); @@ -186,7 +177,7 @@ public void onAttachedToActivity_setsActivityAsNeededAndPermissionsRegistry() { @Test public void onReattachedToActivityForConfigChanges_setsActivityAndPermissionsRegistryAsNeeded() { final Activity mockActivity = - mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); when(flutterPluginBinding.getApplicationContext()).thenReturn(mock(Context.class)); @@ -203,12 +194,11 @@ public void onReattachedToActivityForConfigChanges_setsActivityAndPermissionsReg assertNotNull(plugin.proxyApiRegistrar.getPermissionsRegistry()); } - @Test public void onDetachedFromActivity_setsContextReferencesBasedOnFlutterPluginBinding() { final Context mockContext = mock(Context.class); final Activity mockActivity = - mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); + mock(Activity.class, withSettings().extraInterfaces(LifecycleOwner.class)); when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mock(BinaryMessenger.class)); when(flutterPluginBinding.getApplicationContext()).thenReturn(mockContext); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java index 1bb6ddce797..0b7d8f99a52 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraControlTest.java @@ -4,25 +4,24 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.CameraControl; -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.FocusMeteringResult; -import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; - -import org.mockito.ArgumentCaptor; -import org.mockito.MockedStatic; -import org.mockito.Mockito; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.CameraControl; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.FocusMeteringResult; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; +import org.junit.Test; +import org.mockito.ArgumentCaptor; +import org.mockito.MockedStatic; +import org.mockito.Mockito; public class CameraControlTest { @SuppressWarnings("unchecked") @@ -38,10 +37,13 @@ public void enableTorch_turnsTorchModeOnAndOffAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); + ArgumentCaptor.forClass(FutureCallback.class); final boolean[] isSuccess = {false}; - api.enableTorch(instance, enable, ResultCompat.asCompatCallback( + api.enableTorch( + instance, + enable, + ResultCompat.asCompatCallback( reply -> { isSuccess[0] = reply.isSuccess(); return null; @@ -49,9 +51,8 @@ public void enableTorch_turnsTorchModeOnAndOffAsExpected() { verify(instance).enableTorch(enable); mockedFutures.verify( - () -> - Futures.addCallback( - eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback(eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); @@ -74,10 +75,13 @@ public void setZoomRatio_setsZoomAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); + ArgumentCaptor.forClass(FutureCallback.class); final boolean[] isSuccess = {false}; - api.setZoomRatio(instance, ratio, ResultCompat.asCompatCallback( + api.setZoomRatio( + instance, + ratio, + ResultCompat.asCompatCallback( reply -> { isSuccess[0] = reply.isSuccess(); return null; @@ -85,9 +89,8 @@ public void setZoomRatio_setsZoomAsExpected() { verify(instance).setZoomRatio(ratio); mockedFutures.verify( - () -> - Futures.addCallback( - eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback(eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); @@ -110,10 +113,13 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); + ArgumentCaptor.forClass(FutureCallback.class); final FocusMeteringResult[] resultArray = {null}; - api.startFocusAndMetering(instance, action, ResultCompat.asCompatCallback( + api.startFocusAndMetering( + instance, + action, + ResultCompat.asCompatCallback( reply -> { resultArray[0] = reply.getOrNull(); return null; @@ -121,12 +127,12 @@ public void startFocusAndMetering_startsFocusAndMeteringAsExpected() { verify(instance).startFocusAndMetering(action); mockedFutures.verify( - () -> - Futures.addCallback( - eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback(eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); - final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); + final FutureCallback successfulCallback = + futureCallbackCaptor.getValue(); final FocusMeteringResult result = mock(FocusMeteringResult.class); successfulCallback.onSuccess(result); @@ -146,10 +152,12 @@ public void cancelFocusAndMetering_cancelsFocusAndMeteringAsExpected() { try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); + ArgumentCaptor.forClass(FutureCallback.class); final boolean[] isSuccess = {false}; - api.cancelFocusAndMetering(instance, ResultCompat.asCompatCallback( + api.cancelFocusAndMetering( + instance, + ResultCompat.asCompatCallback( reply -> { isSuccess[0] = reply.isSuccess(); return null; @@ -157,9 +165,8 @@ public void cancelFocusAndMetering_cancelsFocusAndMeteringAsExpected() { verify(instance).cancelFocusAndMetering(); mockedFutures.verify( - () -> - Futures.addCallback( - eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback(eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); @@ -182,10 +189,13 @@ public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected try (MockedStatic mockedFutures = Mockito.mockStatic(Futures.class)) { final ArgumentCaptor> futureCallbackCaptor = - ArgumentCaptor.forClass(FutureCallback.class); + ArgumentCaptor.forClass(FutureCallback.class); final Long[] resultArray = {-1L}; - api.setExposureCompensationIndex(instance, index, ResultCompat.asCompatCallback( + api.setExposureCompensationIndex( + instance, + index, + ResultCompat.asCompatCallback( reply -> { resultArray[0] = reply.getOrNull(); return null; @@ -193,9 +203,8 @@ public void setExposureCompensationIndex_setsExposureCompensationIndexAsExpected verify(instance).setExposureCompensationIndex(index); mockedFutures.verify( - () -> - Futures.addCallback( - eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); + () -> + Futures.addCallback(eq(mockListenableFuture), futureCallbackCaptor.capture(), any())); mockedFutures.clearInvocations(); final FutureCallback successfulCallback = futureCallbackCaptor.getValue(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java index 95326547568..efedf52fa69 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraInfoTest.java @@ -4,20 +4,16 @@ package io.flutter.plugins.camerax; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import androidx.camera.core.CameraInfo; import androidx.camera.core.CameraState; import androidx.camera.core.ExposureState; import androidx.camera.core.ZoomState; import androidx.lifecycle.LiveData; - import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; public class CameraInfoTest { @Test @@ -54,16 +50,15 @@ public void getExposureState_retrievesExpectedExposureState() { assertEquals(value, api.exposureState(instance)); } - @SuppressWarnings("unchecked") + @SuppressWarnings("unchecked") @Test public void getZoomState_retrievesExpectedZoomState() { final PigeonApiCameraInfo api = new TestProxyApiRegistrar().getPigeonApiCameraInfo(); final CameraInfo instance = mock(CameraInfo.class); - final LiveData value = mock(LiveData.class); + final LiveData value = mock(LiveData.class); when(instance.getZoomState()).thenReturn(value); - assertEquals(value, api.getZoomState(instance ).getLiveData()); + assertEquals(value, api.getZoomState(instance).getLiveData()); } - } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java index 9e1586ba1f4..7bbe70660a4 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java @@ -4,20 +4,17 @@ package io.flutter.plugins.camerax; +import static org.junit.Assert.assertEquals; + import android.util.Range; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; public class CameraIntegerRangeTest { @SuppressWarnings("unchecked") @Test public void pigeon_defaultConstructor() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + final PigeonApiCameraIntegerRange api = + new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); final long lower = 2; final long upper = 1; @@ -29,7 +26,8 @@ public void pigeon_defaultConstructor() { @Test public void lower() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + final PigeonApiCameraIntegerRange api = + new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); final int lower = 3; final Range instance = new Range<>(lower, 4); @@ -39,7 +37,8 @@ public void lower() { @Test public void upper() { - final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); + final PigeonApiCameraIntegerRange api = + new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); final int upper = 4; final Range instance = new Range<>(0, upper); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java index 8cbc17e1a87..5bc64a5e4de 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java @@ -4,28 +4,23 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.CameraSelector; -import androidx.camera.core.CameraInfo; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import static org.mockito.Mockito.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import androidx.camera.core.CameraInfo; +import androidx.camera.core.CameraSelector; import java.util.Collections; import java.util.List; - -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import org.junit.Test; public class CameraSelectorTest { @Test public void pigeon_defaultConstructor() { final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); - final CameraSelector selector = api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT); + final CameraSelector selector = + api.pigeon_defaultConstructor(io.flutter.plugins.camerax.LensFacing.FRONT); assertEquals(selector.getLensFacing(), (Integer) CameraSelector.LENS_FACING_FRONT); } @@ -36,8 +31,10 @@ public void filter() { final CameraSelector instance = mock(CameraSelector.class); - final List cameraInfos = Collections.singletonList(mock(CameraInfo.class)); - final List value = Collections.singletonList(mock(CameraInfo.class)); + final List cameraInfos = + Collections.singletonList(mock(CameraInfo.class)); + final List value = + Collections.singletonList(mock(CameraInfo.class)); when(instance.filter(cameraInfos)).thenReturn(value); assertEquals(value, api.filter(instance, cameraInfos)); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java index a6e45803c00..f2c2bd68bf5 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java @@ -4,16 +4,13 @@ package io.flutter.plugins.camerax; -import android.util.Size; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.util.Size; +import org.junit.Test; + public class CameraSizeTest { @Test public void pigeon_defaultConstructor() { @@ -48,5 +45,4 @@ public void height() { assertEquals(value, api.height(instance)); } - } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java index 835d319a84a..1bb0cf44829 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java @@ -4,26 +4,24 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.CameraState; - -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.CameraState; +import org.junit.Test; + public class CameraStateStateErrorTest { @Test public void code() { - final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); + final PigeonApiCameraStateStateError api = + new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); final CameraState.StateError instance = mock(CameraState.StateError.class); final int value = CameraState.ERROR_CAMERA_DISABLED; when(instance.getCode()).thenReturn(value); - assertEquals(io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED, api.code(instance)); + assertEquals( + io.flutter.plugins.camerax.CameraStateErrorCode.CAMERA_DISABLED, api.code(instance)); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java index 0fd29555afa..2f8cfe858dd 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java @@ -4,17 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.CameraState; - -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.CameraState; +import org.junit.Test; + public class CameraStateTest { @Test public void type() { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java index a5575652530..85f4fb0d3f1 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraTest.java @@ -4,17 +4,14 @@ package io.flutter.plugins.camerax; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import androidx.camera.core.Camera; import androidx.camera.core.CameraControl; import androidx.camera.core.CameraInfo; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; public class CameraTest { @Test @@ -25,7 +22,7 @@ public void cameraInfo_retrievesExpectedCameraInfoInstance() { final androidx.camera.core.CameraInfo value = mock(CameraInfo.class); when(instance.getCameraInfo()).thenReturn(value); - assertEquals(value, api.getCameraInfo(instance )); + assertEquals(value, api.getCameraInfo(instance)); } @Test diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java deleted file mode 100644 index cd15f1f54e6..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApiTest.java +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.camera2.interop.CaptureRequestOptions; - -import android.hardware.camera2.CaptureRequest; -import android.hardware.camera2.CaptureRequest.Key; -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import static org.mockito.Mockito.any; -import java.util.HashMap; -import java.util.Map; - -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class CaptureRequestOptionsProxyApiTest { - @SuppressWarnings("unchecked") - @Test - public void pigeon_defaultConstructor() { - final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); - final CaptureRequestOptions mockOptions = mock(CaptureRequestOptions.class); - when(mockBuilder.build()).thenReturn(mockOptions); - final PigeonApiCaptureRequestOptions api = new CaptureRequestOptionsProxyApi(mock(ProxyApiRegistrar.class)) { - @Override - CaptureRequestOptions.Builder createBuilder() { - return mockBuilder; - } - }; - - final Key mockKey = mock(CaptureRequest.Key.class); - final int value = -1; - final Map, Object> options = Map.of(mockKey, value); - final CaptureRequestOptions instance = api.pigeon_defaultConstructor(options); - - verify(mockBuilder).setCaptureRequestOption(mockKey, value); - assertEquals(instance, mockOptions); - } - - @SuppressWarnings("unchecked") - @Test - public void getCaptureRequestOption() { - final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); - - final CaptureRequestOptions instance = mock(CaptureRequestOptions.class); - final Key key = mock(CaptureRequest.Key.class); - final int value = -1; - when(instance.getCaptureRequestOption(key)).thenReturn(value); - - assertEquals(value, api.getCaptureRequestOption(instance, key)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java index 6b2ee3b6f5c..dd10e87ecf2 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java @@ -1,109 +1,55 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.hardware.camera2.CaptureRequest; -//import androidx.camera.camera2.interop.CaptureRequestOptions; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CaptureRequestKeySupportedType; -//import java.util.HashMap; -//import java.util.Map; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class CaptureRequestOptionsTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public CaptureRequestOptions mockCaptureRequestOptions; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void create_buildsExpectedCaptureKeyRequestOptionsWhenOptionsNonNull() { -// final CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy proxySpy = -// spy(new CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy()); -// final CaptureRequestOptionsHostApiImpl hostApi = -// new CaptureRequestOptionsHostApiImpl(testInstanceManager, proxySpy); -// final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); -// final long instanceIdentifier = 44; -// -// // Map between CaptureRequestOptions indices and a test value for that option. -// final Map options = -// new HashMap() { -// { -// put(0L, false); -// } -// }; -// -// when(proxySpy.getCaptureRequestOptionsBuilder()).thenReturn(mockBuilder); -// when(mockBuilder.build()).thenReturn(mockCaptureRequestOptions); -// -// hostApi.create(instanceIdentifier, options); -// for (CaptureRequestKeySupportedType supportedType : CaptureRequestKeySupportedType.values()) { -// final Long supportedTypeIndex = Long.valueOf(supportedType.index); -// final Object testValueForSupportedType = options.get(supportedTypeIndex); -// switch (supportedType) { -// case CONTROL_AE_LOCK: -// verify(mockBuilder) -// .setCaptureRequestOption( -// eq(CaptureRequest.CONTROL_AE_LOCK), eq((Boolean) testValueForSupportedType)); -// break; -// default: -// throw new IllegalArgumentException( -// "The capture request key is not currently supported by the plugin."); -// } -// } -// -// assertEquals(testInstanceManager.getInstance(instanceIdentifier), mockCaptureRequestOptions); -// } -// -// @Test -// public void create_buildsExpectedCaptureKeyRequestOptionsWhenAnOptionIsNull() { -// final CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy proxySpy = -// spy(new CaptureRequestOptionsHostApiImpl.CaptureRequestOptionsProxy()); -// final CaptureRequestOptionsHostApiImpl hostApi = -// new CaptureRequestOptionsHostApiImpl(testInstanceManager, proxySpy); -// final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); -// final long instanceIdentifier = 44; -// -// // Map between CaptureRequestOptions.CONTROL_AE_LOCK index and test value. -// final Map options = -// new HashMap() { -// { -// put(0L, null); -// } -// }; -// -// when(proxySpy.getCaptureRequestOptionsBuilder()).thenReturn(mockBuilder); -// when(mockBuilder.build()).thenReturn(mockCaptureRequestOptions); -// -// hostApi.create(instanceIdentifier, options); -// -// verify(mockBuilder).clearCaptureRequestOption(CaptureRequest.CONTROL_AE_LOCK); -// -// assertEquals(testInstanceManager.getInstance(instanceIdentifier), mockCaptureRequestOptions); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.hardware.camera2.CaptureRequest; +import android.hardware.camera2.CaptureRequest.Key; +import androidx.camera.camera2.interop.CaptureRequestOptions; +import java.util.Map; +import org.junit.Test; + +public class CaptureRequestOptionsTest { + @SuppressWarnings("unchecked") + @Test + public void pigeon_defaultConstructor() { + final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); + final CaptureRequestOptions mockOptions = mock(CaptureRequestOptions.class); + when(mockBuilder.build()).thenReturn(mockOptions); + final PigeonApiCaptureRequestOptions api = + new CaptureRequestOptionsProxyApi(mock(ProxyApiRegistrar.class)) { + @Override + CaptureRequestOptions.Builder createBuilder() { + return mockBuilder; + } + }; + + final Key mockKey = mock(CaptureRequest.Key.class); + final int value = -1; + final Map, Object> options = Map.of(mockKey, value); + final CaptureRequestOptions instance = api.pigeon_defaultConstructor(options); + + verify(mockBuilder).setCaptureRequestOption(mockKey, value); + assertEquals(instance, mockOptions); + } + + @SuppressWarnings("unchecked") + @Test + public void getCaptureRequestOption() { + final PigeonApiCaptureRequestOptions api = + new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); + + final CaptureRequestOptions instance = mock(CaptureRequestOptions.class); + final Key key = mock(CaptureRequest.Key.class); + final int value = -1; + when(instance.getCaptureRequestOption(key)).thenReturn(value); + + assertEquals(value, api.getCaptureRequestOption(instance, key)); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java index 10fdf683b73..38873620f34 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java @@ -7,11 +7,9 @@ import static org.mockito.Mockito.mock; import android.content.Context; - -import org.checkerframework.checker.nullness.qual.NonNull; - import io.flutter.plugin.common.BinaryMessenger; import io.flutter.view.TextureRegistry; +import org.checkerframework.checker.nullness.qual.NonNull; /** * Test implementation of `ProxyApiRegistrar` that provides mocks, instantly runs callbacks instead From 7f48551d5774d7400847ac82d589aaeb20e81e0b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 17:57:13 -0500 Subject: [PATCH 092/148] device orientation api test --- .../camerax/CaptureRequestProxyApiTest.java | 21 ----- .../DeviceOrientationManagerApiTest.java | 80 ++++++++++++++++++ .../DeviceOrientationManagerProxyApiTest.java | 83 ------------------- .../lib/src/android_camera_camerax.dart | 3 + 4 files changed, 83 insertions(+), 104 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java deleted file mode 100644 index be382be4df5..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestProxyApiTest.java +++ /dev/null @@ -1,21 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import android.hardware.camera2.CaptureRequest -//import android.hardware.camera2.CaptureRequest.Key<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class CaptureRequestProxyApiTest { -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java new file mode 100644 index 00000000000..3078d0d7f3b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java @@ -0,0 +1,80 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import androidx.annotation.NonNull; + +import io.flutter.embedding.engine.systemchannels.PlatformChannel; + +public class DeviceOrientationManagerApiTest { + @Test + public void startListeningForDeviceOrientationChange() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + api.startListeningForDeviceOrientationChange(instance, false, 0L); + + verify(instance).start(); + } + + @Test + public void stopListeningForDeviceOrientationChange() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + api.stopListeningForDeviceOrientationChange(instance ); + + verify(instance).stop(); + } + + @Test + public void getDefaultDisplayRotation() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final Long value = 0L; + when(instance.getDefaultRotation()).thenReturn(value.intValue()); + + assertEquals(value, (Long) api.getDefaultDisplayRotation(instance)); + } + + @Test + public void getUiOrientation() { + final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + + final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); + final PlatformChannel.DeviceOrientation orientation = PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT; + when(instance.getUIOrientation()).thenReturn(orientation); + + assertEquals(orientation.toString(), api.getUiOrientation(instance )); + } + + @Test + public void onDeviceOrientationChanged() { + final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); + when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); + + final PlatformChannel.DeviceOrientation orientation = PlatformChannel.DeviceOrientation.PORTRAIT_UP; + final DeviceOrientationManagerProxyApi.DeviceOrientationManagerImpl instance = new DeviceOrientationManagerProxyApi.DeviceOrientationManagerImpl(mockApi) { + @NonNull + @Override + PlatformChannel.DeviceOrientation getUIOrientation() { + return orientation; + } + }; + instance.handleUIOrientationChange(); + + verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation.toString()), any()); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java deleted file mode 100644 index 3842b253d75..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApiTest.java +++ /dev/null @@ -1,83 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -// -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class DeviceOrientationManagerProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); -// -// assertTrue(api.pigeon_defaultConstructor() instanceof DeviceOrientationManagerProxyApi.DeviceOrientationManager); -// } -// -// @Test -// public void startListeningForDeviceOrientationChange() { -// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); -// -// final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); -// final Boolean isFrontFacing = true; -// final Long sensorOrientation = 0; -// api.startListeningForDeviceOrientationChange(instance, isFrontFacing, sensorOrientation); -// -// verify(instance).startListeningForDeviceOrientationChange(isFrontFacing, sensorOrientation); -// } -// -// @Test -// public void stopListeningForDeviceOrientationChange() { -// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); -// -// final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); -// api.stopListeningForDeviceOrientationChange(instance ); -// -// verify(instance).stopListeningForDeviceOrientationChange(); -// } -// -// @Test -// public void getDefaultDisplayRotation() { -// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); -// -// final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); -// final Long value = 0; -// when(instance.getDefaultDisplayRotation()).thenReturn(value); -// -// assertEquals(value, api.getDefaultDisplayRotation(instance )); -// } -// -// @Test -// public void getUiOrientation() { -// final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); -// -// final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); -// final String value = "myString"; -// when(instance.getUiOrientation()).thenReturn(value); -// -// assertEquals(value, api.getUiOrientation(instance )); -// } -// -// @Test -// public void onDeviceOrientationChanged() { -// final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); -// when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); -// -// final DeviceOrientationManagerImpl instance = new DeviceOrientationManagerImpl(mockApi); -// final String orientation = "myString"; -// instance.onDeviceOrientationChanged(orientation); -// -// verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation), any()); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index c941d816472..56a6e60651e 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -346,6 +346,9 @@ class AndroidCameraCameraX extends CameraPlatform { requireLensFacing: cameraSelectorLensDirection, ); // Start listening for device orientation changes preceding camera creation. + // TODO(bparrishMines): `isFrontFacing` and `sensorOrientation` aren't used + // by the DeviceOrientationManager and can be removed if this was + // intentional. unawaited(deviceOrientationManager.startListeningForDeviceOrientationChange( cameraIsFrontFacing, cameraDescription.sensorOrientation, From a34228d6c66a941f4d4adac182fb4e3f31788879 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 21:53:06 -0500 Subject: [PATCH 093/148] 2 more tests --- .../CameraAndroidCameraxPluginTest.java | 1 - .../DeviceOrientationManagerApiTest.java | 41 ++-- .../camerax/ExposureStateProxyApiTest.java | 43 ---- .../plugins/camerax/ExposureStateTest.java | 123 ++++------ .../camerax/FallbackStrategyProxyApiTest.java | 48 ---- .../plugins/camerax/FallbackStrategyTest.java | 210 ++++++++---------- 6 files changed, 154 insertions(+), 312 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java index f4d08b66ab6..d94e13dffd0 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraAndroidCameraxPluginTest.java @@ -26,7 +26,6 @@ import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; - public class CameraAndroidCameraxPluginTest { @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java index 3078d0d7f3b..f6cbdaf1b56 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java @@ -4,9 +4,7 @@ package io.flutter.plugins.camerax; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; @@ -14,13 +12,14 @@ import static org.mockito.Mockito.when; import androidx.annotation.NonNull; - import io.flutter.embedding.engine.systemchannels.PlatformChannel; +import org.junit.Test; public class DeviceOrientationManagerApiTest { @Test public void startListeningForDeviceOrientationChange() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + final PigeonApiDeviceOrientationManager api = + new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); api.startListeningForDeviceOrientationChange(instance, false, 0L); @@ -30,17 +29,19 @@ public void startListeningForDeviceOrientationChange() { @Test public void stopListeningForDeviceOrientationChange() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + final PigeonApiDeviceOrientationManager api = + new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - api.stopListeningForDeviceOrientationChange(instance ); + api.stopListeningForDeviceOrientationChange(instance); verify(instance).stop(); } @Test public void getDefaultDisplayRotation() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + final PigeonApiDeviceOrientationManager api = + new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); final Long value = 0L; @@ -51,13 +52,15 @@ public void getDefaultDisplayRotation() { @Test public void getUiOrientation() { - final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); + final PigeonApiDeviceOrientationManager api = + new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - final PlatformChannel.DeviceOrientation orientation = PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT; + final PlatformChannel.DeviceOrientation orientation = + PlatformChannel.DeviceOrientation.LANDSCAPE_RIGHT; when(instance.getUIOrientation()).thenReturn(orientation); - assertEquals(orientation.toString(), api.getUiOrientation(instance )); + assertEquals(orientation.toString(), api.getUiOrientation(instance)); } @Test @@ -65,14 +68,16 @@ public void onDeviceOrientationChanged() { final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); - final PlatformChannel.DeviceOrientation orientation = PlatformChannel.DeviceOrientation.PORTRAIT_UP; - final DeviceOrientationManagerProxyApi.DeviceOrientationManagerImpl instance = new DeviceOrientationManagerProxyApi.DeviceOrientationManagerImpl(mockApi) { - @NonNull - @Override - PlatformChannel.DeviceOrientation getUIOrientation() { - return orientation; - } - }; + final PlatformChannel.DeviceOrientation orientation = + PlatformChannel.DeviceOrientation.PORTRAIT_UP; + final DeviceOrientationManagerProxyApi.DeviceOrientationManagerImpl instance = + new DeviceOrientationManagerProxyApi.DeviceOrientationManagerImpl(mockApi) { + @NonNull + @Override + PlatformChannel.DeviceOrientation getUIOrientation() { + return orientation; + } + }; instance.handleUIOrientationChange(); verify(mockApi).onDeviceOrientationChanged(eq(instance), eq(orientation.toString()), any()); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java deleted file mode 100644 index d3b259b5cf1..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateProxyApiTest.java +++ /dev/null @@ -1,43 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.ExposureState -//import android.util.Range<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ExposureStateProxyApiTest { -// @Test -// public void exposureCompensationRange() { -// final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); -// -// final ExposureState instance = mock(ExposureState.class); -// final android.util.Range<*> value = mock(CameraIntegerRange.class); -// when(instance.getExposureCompensationRange()).thenReturn(value); -// -// assertEquals(value, api.exposureCompensationRange(instance)); -// } -// -// @Test -// public void exposureCompensationStep() { -// final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); -// -// final ExposureState instance = mock(ExposureState.class); -// final Double value = 1.0; -// when(instance.getExposureCompensationStep()).thenReturn(value); -// -// assertEquals(value, api.exposureCompensationStep(instance)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java index aaa61a00140..517eaf41170 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java @@ -1,84 +1,39 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.util.Range; -//import android.util.Rational; -//import androidx.camera.core.ExposureState; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ExposureCompensationRange; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.ArgumentCaptor; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -//import org.robolectric.annotation.Config; -// -//@RunWith(RobolectricTestRunner.class) -//public class ExposureStateTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public ExposureState mockExposureState; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Config(sdk = 21) -// @Test -// public void create_makesExpectedCallToCreateInstanceOnDartSide() { -// // SDK version configured because ExposureState requires Android 21. -// ExposureStateFlutterApiImpl exposureStateFlutterApiImpl = -// spy(new ExposureStateFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// final int minExposureCompensation = 0; -// final int maxExposureCompensation = 1; -// Range testExposueCompensationRange = -// new Range(minExposureCompensation, maxExposureCompensation); -// Rational textExposureCompensationStep = new Rational(1, 5); // Makes expected Double value 0.2. -// -// when(mockExposureState.getExposureCompensationRange()).thenReturn(testExposueCompensationRange); -// when(mockExposureState.getExposureCompensationStep()).thenReturn(textExposureCompensationStep); -// -// final ArgumentCaptor exposureCompensationRangeCaptor = -// ArgumentCaptor.forClass(ExposureCompensationRange.class); -// -// exposureStateFlutterApiImpl.create(mockExposureState, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull( -// testInstanceManager.getIdentifierForStrongReference(mockExposureState)); -// verify(exposureStateFlutterApiImpl) -// .create(eq(identifier), exposureCompensationRangeCaptor.capture(), eq(0.2), any()); -// -// ExposureCompensationRange exposureCompensationRange = -// exposureCompensationRangeCaptor.getValue(); -// assertEquals( -// exposureCompensationRange.getMinCompensation().intValue(), minExposureCompensation); -// assertEquals( -// exposureCompensationRange.getMaxCompensation().intValue(), maxExposureCompensation); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import android.util.Range; +import android.util.Rational; +import androidx.camera.core.ExposureState; +import org.junit.Test; + +public class ExposureStateTest { + @SuppressWarnings("unchecked") + @Test + public void exposureCompensationRange() { + final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); + + final ExposureState instance = mock(ExposureState.class); + final android.util.Range value = mock(Range.class); + when(instance.getExposureCompensationRange()).thenReturn(value); + + assertEquals(value, api.exposureCompensationRange(instance)); + } + + @Test + public void exposureCompensationStep() { + final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); + + final ExposureState instance = mock(ExposureState.class); + final double value = (double) 3 / 5; + when(instance.getExposureCompensationStep()).thenReturn(new Rational(3, 5)); + + assertEquals(value, api.exposureCompensationStep(instance), 0.1); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java deleted file mode 100644 index 778f0680174..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyProxyApiTest.java +++ /dev/null @@ -1,48 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.FallbackStrategy -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class FallbackStrategyProxyApiTest { -// @Test -// public void higherQualityOrLowerThan() { -// final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); -// -// assertTrue(api.higherQualityOrLowerThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); -// } -// -// @Test -// public void higherQualityThan() { -// final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); -// -// assertTrue(api.higherQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); -// } -// -// @Test -// public void lowerQualityOrHigherThan() { -// final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); -// -// assertTrue(api.lowerQualityOrHigherThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); -// } -// -// @Test -// public void lowerQualityThan() { -// final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); -// -// assertTrue(api.lowerQualityThan(io.flutter.plugins.camerax.VideoQuality.SD) instanceof FallbackStrategyProxyApi.FallbackStrategy); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java index 187ce45f02c..29054b440d2 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java @@ -1,118 +1,92 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.fail; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.mockStatic; -// -//import androidx.camera.video.FallbackStrategy; -//import androidx.camera.video.Quality; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoResolutionFallbackRule; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.MockedStatic; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.mockito.stubbing.Answer; -// -//public class FallbackStrategyTest { -// -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// @Mock public FallbackStrategy mockFallbackStrategy; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void hostApiCreate_makesCallToCreateExpectedFallbackStrategy() { -// final FallbackStrategyHostApiImpl hostApi = new FallbackStrategyHostApiImpl(instanceManager); -// final long instanceIdentifier = 45; -// final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); -// -// try (MockedStatic mockedFallbackStrategy = -// mockStatic(FallbackStrategy.class)) { -// for (VideoQuality videoQuality : VideoQuality.values()) { -// for (VideoResolutionFallbackRule fallbackRule : VideoResolutionFallbackRule.values()) { -// // Determine expected Quality based on videoQuality being tested. -// Quality convertedQuality = null; -// switch (videoQuality) { -// case SD: -// convertedQuality = Quality.SD; -// break; -// case HD: -// convertedQuality = Quality.HD; -// break; -// case FHD: -// convertedQuality = Quality.FHD; -// break; -// case UHD: -// convertedQuality = Quality.UHD; -// break; -// case LOWEST: -// convertedQuality = Quality.LOWEST; -// break; -// case HIGHEST: -// convertedQuality = Quality.HIGHEST; -// break; -// default: -// fail("The VideoQuality " + videoQuality.toString() + "is unhandled by this test."); -// } -// // Set Quality as final local variable to avoid error about using non-final (or effecitvely final) local variables in lambda expressions. -// final Quality expectedQuality = convertedQuality; -// -// // Mock calls to create FallbackStrategy according to fallbackRule being tested. -// switch (fallbackRule) { -// case HIGHER_QUALITY_OR_LOWER_THAN: -// mockedFallbackStrategy -// .when(() -> FallbackStrategy.higherQualityOrLowerThan(expectedQuality)) -// .thenAnswer((Answer) invocation -> mockFallbackStrategy); -// break; -// case HIGHER_QUALITY_THAN: -// mockedFallbackStrategy -// .when(() -> FallbackStrategy.higherQualityThan(expectedQuality)) -// .thenAnswer((Answer) invocation -> mockFallbackStrategy); -// break; -// case LOWER_QUALITY_OR_HIGHER_THAN: -// mockedFallbackStrategy -// .when(() -> FallbackStrategy.lowerQualityOrHigherThan(expectedQuality)) -// .thenAnswer((Answer) invocation -> mockFallbackStrategy); -// break; -// case LOWER_QUALITY_THAN: -// mockedFallbackStrategy -// .when(() -> FallbackStrategy.lowerQualityThan(expectedQuality)) -// .thenAnswer((Answer) invocation -> mockFallbackStrategy); -// break; -// default: -// fail( -// "The VideoResolutionFallbackRule " -// + fallbackRule.toString() -// + "is unhandled by this test."); -// } -// hostApi.create(instanceIdentifier, videoQuality, fallbackRule); -// assertEquals(instanceManager.getInstance(instanceIdentifier), mockFallbackStrategy); -// -// // Clear/reset FallbackStrategy mock and InstanceManager. -// mockedFallbackStrategy.reset(); -// instanceManager.clear(); -// } -// } -// } -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; + +import androidx.camera.video.FallbackStrategy; +import androidx.camera.video.Quality; + +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.stubbing.Answer; + +public class FallbackStrategyTest { + @Test + public void higherQualityOrLowerThan() { + final PigeonApiFallbackStrategy api = + new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); + + try (MockedStatic mockedFallbackStrategy = + Mockito.mockStatic(FallbackStrategy.class)) { + final Quality quality = Quality.HD; + mockedFallbackStrategy + .when(() -> FallbackStrategy.higherQualityOrLowerThan(quality)) + .thenAnswer((Answer) invocation -> mockFallbackStrategy); + + assertEquals(api.higherQualityOrLowerThan(VideoQuality.HD), mockFallbackStrategy); + } + } + + @Test + public void higherQualityThan() { + final PigeonApiFallbackStrategy api = + new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); + + try (MockedStatic mockedFallbackStrategy = + Mockito.mockStatic(FallbackStrategy.class)) { + final Quality quality = Quality.HD; + mockedFallbackStrategy + .when(() -> FallbackStrategy.higherQualityThan(quality)) + .thenAnswer((Answer) invocation -> mockFallbackStrategy); + + assertEquals(api.higherQualityThan(VideoQuality.HD), mockFallbackStrategy); + } + } + + @Test + public void lowerQualityOrHigherThan() { + final PigeonApiFallbackStrategy api = + new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); + + try (MockedStatic mockedFallbackStrategy = + Mockito.mockStatic(FallbackStrategy.class)) { + final Quality quality = Quality.HD; + mockedFallbackStrategy + .when(() -> FallbackStrategy.lowerQualityOrHigherThan(quality)) + .thenAnswer((Answer) invocation -> mockFallbackStrategy); + + assertEquals(api.lowerQualityOrHigherThan(VideoQuality.HD), mockFallbackStrategy); + } + } + + @Test + public void lowerQualityThan() { + final PigeonApiFallbackStrategy api = + new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + + final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); + + try (MockedStatic mockedFallbackStrategy = + Mockito.mockStatic(FallbackStrategy.class)) { + final Quality quality = Quality.HD; + mockedFallbackStrategy + .when(() -> FallbackStrategy.lowerQualityThan(quality)) + .thenAnswer((Answer) invocation -> mockFallbackStrategy); + + assertEquals(api.lowerQualityThan(VideoQuality.HD), mockFallbackStrategy); + } + } +} From 4410f79ba3e421d38b90c2f61c419db88664e252 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 22:00:04 -0500 Subject: [PATCH 094/148] focusmetering tests --- .../src/test/java/android/util/Rational.java | 22 ++ ...ocusMeteringActionBuilderProxyApiTest.java | 80 ------ .../FocusMeteringActionBuilderTest.java | 62 +++++ .../FocusMeteringActionProxyApiTest.java | 65 ----- .../camerax/FocusMeteringActionTest.java | 259 +++++------------- .../FocusMeteringResultProxyApiTest.java | 31 --- .../camerax/FocusMeteringResultTest.java | 101 ++----- 7 files changed, 179 insertions(+), 441 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/android/util/Rational.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Rational.java b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Rational.java new file mode 100644 index 00000000000..ca45e0270ff --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Rational.java @@ -0,0 +1,22 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package android.util; + +// Creates an implementation of Rational that can be used with unittests and the JVM. +// Typically android.util.Range does nothing when not used with an Android environment. + +public final class Rational { + private final int numerator; + private final int denominator; + + public Rational(int numerator, int denominator) { + this.numerator = numerator; + this.denominator = denominator; + } + + public double doubleValue() { + return (double) numerator / denominator; + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java deleted file mode 100644 index 87e3f4e5eeb..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApiTest.java +++ /dev/null @@ -1,80 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.FocusMeteringAction.Builder -//import androidx.camera.core.MeteringPoint -//import androidx.camera.core.FocusMeteringAction -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class FocusMeteringActionBuilderProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); -// -// assertTrue(api.pigeon_defaultConstructor(mock(MeteringPoint.class)) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); -// } -// -// @Test -// public void withMode() { -// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); -// -// assertTrue(api.withMode(mock(MeteringPoint.class), io.flutter.plugins.camerax.MeteringMode.AE) instanceof FocusMeteringActionBuilderProxyApi.FocusMeteringActionBuilder); -// } -// -// @Test -// public void addPoint() { -// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); -// -// final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); -// final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); -// api.addPoint(instance, point); -// -// verify(instance).addPoint(point); -// } -// -// @Test -// public void addPointWithMode() { -// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); -// -// final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); -// final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); -// final MeteringMode mode = io.flutter.plugins.camerax.MeteringMode.AE; -// api.addPointWithMode(instance, point, mode); -// -// verify(instance).addPointWithMode(point, mode); -// } -// -// @Test -// public void disableAutoCancel() { -// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); -// -// final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); -// api.disableAutoCancel(instance ); -// -// verify(instance).disableAutoCancel(); -// } -// -// @Test -// public void build() { -// final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); -// -// final FocusMeteringActionBuilder instance = mock(FocusMeteringActionBuilder.class); -// final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); -// when(instance.build()).thenReturn(value); -// -// assertEquals(value, api.build(instance )); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java new file mode 100644 index 00000000000..85721f09c86 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java @@ -0,0 +1,62 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.MeteringPoint; +import androidx.camera.core.FocusMeteringAction; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringActionBuilderTest { + @Test + public void addPoint() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringAction.Builder instance = mock(FocusMeteringAction.Builder.class); + final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); + api.addPoint(instance, point); + + verify(instance).addPoint(point); + } + + @Test + public void addPointWithMode() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringAction.Builder instance = mock(FocusMeteringAction.Builder.class); + final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); + final MeteringMode mode = io.flutter.plugins.camerax.MeteringMode.AE; + api.addPointWithMode(instance, point, mode); + + verify(instance).addPoint(point, FocusMeteringAction.FLAG_AE); + } + + @Test + public void disableAutoCancel() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringAction.Builder instance = mock(FocusMeteringAction.Builder.class); + api.disableAutoCancel(instance); + + verify(instance).disableAutoCancel(); + } + + @Test + public void build() { + final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + + final FocusMeteringAction.Builder instance = mock(FocusMeteringAction.Builder.class); + final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); + when(instance.build()).thenReturn(value); + + assertEquals(value, api.build(instance )); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java deleted file mode 100644 index 1da0e74fadd..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApiTest.java +++ /dev/null @@ -1,65 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.FocusMeteringAction -//import androidx.camera.core.MeteringPoint -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class FocusMeteringActionProxyApiTest { -// @Test -// public void meteringPointsAe() { -// final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); -// -// final FocusMeteringAction instance = mock(FocusMeteringAction.class); -// final List value = Arrays.asList(mock(MeteringPoint.class)); -// when(instance.getMeteringPointsAe()).thenReturn(value); -// -// assertEquals(value, api.meteringPointsAe(instance)); -// } -// -// @Test -// public void meteringPointsAf() { -// final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); -// -// final FocusMeteringAction instance = mock(FocusMeteringAction.class); -// final List value = Arrays.asList(mock(MeteringPoint.class)); -// when(instance.getMeteringPointsAf()).thenReturn(value); -// -// assertEquals(value, api.meteringPointsAf(instance)); -// } -// -// @Test -// public void meteringPointsAwb() { -// final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); -// -// final FocusMeteringAction instance = mock(FocusMeteringAction.class); -// final List value = Arrays.asList(mock(MeteringPoint.class)); -// when(instance.getMeteringPointsAwb()).thenReturn(value); -// -// assertEquals(value, api.meteringPointsAwb(instance)); -// } -// -// @Test -// public void isAutoCancelEnabled() { -// final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); -// -// final FocusMeteringAction instance = mock(FocusMeteringAction.class); -// final Boolean value = true; -// when(instance.getIsAutoCancelEnabled()).thenReturn(value); -// -// assertEquals(value, api.isAutoCancelEnabled(instance)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index ba121fb9e48..a3e1a47db84 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -1,192 +1,67 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.never; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.FocusMeteringAction; -//import androidx.camera.core.MeteringPoint; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.MeteringPointInfo; -//import java.util.Arrays; -//import java.util.List; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class FocusMeteringActionTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public FocusMeteringAction focusMeteringAction; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatHasMode() { -// FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = -// spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); -// FocusMeteringActionHostApiImpl hostApi = -// new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); -// final Long focusMeteringActionIdentifier = 43L; -// -// FocusMeteringAction.Builder mockFocusMeteringActionBuilder = -// mock(FocusMeteringAction.Builder.class); -// final MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); -// final MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); -// final MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); -// final Long mockMeteringPoint1Id = 47L; -// final Long mockMeteringPoint2Id = 56L; -// final Long mockMeteringPoint3Id = 99L; -// final Integer mockMeteringPoint1Mode = FocusMeteringAction.FLAG_AE; -// final Integer mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; -// -// MeteringPointInfo fakeMeteringPointInfo1 = -// new MeteringPointInfo.Builder() -// .setMeteringPointId(mockMeteringPoint1Id) -// .setMeteringMode(mockMeteringPoint1Mode.longValue()) -// .build(); -// MeteringPointInfo fakeMeteringPointInfo2 = -// new MeteringPointInfo.Builder() -// .setMeteringPointId(mockMeteringPoint2Id) -// .setMeteringMode(mockMeteringPoint2Mode.longValue()) -// .build(); -// MeteringPointInfo fakeMeteringPointInfo3 = -// new MeteringPointInfo.Builder() -// .setMeteringPointId(mockMeteringPoint3Id) -// .setMeteringMode(null) -// .build(); -// -// testInstanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); -// testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); -// testInstanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); -// -// when(proxySpy.getFocusMeteringActionBuilder( -// mockMeteringPoint1, mockMeteringPoint1Mode.intValue())) -// .thenReturn(mockFocusMeteringActionBuilder); -// when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); -// -// List mockMeteringPointInfos = -// Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); -// -// hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos, null); -// -// verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint2, mockMeteringPoint2Mode); -// verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint3); -// assertEquals( -// testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); -// } -// -// @Test -// public void -// hostApiCreate_createsExpectedFocusMeteringActionWithInitialPointThatDoesNotHaveMode() { -// FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = -// spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); -// FocusMeteringActionHostApiImpl hostApi = -// new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); -// final Long focusMeteringActionIdentifier = 43L; -// -// FocusMeteringAction.Builder mockFocusMeteringActionBuilder = -// mock(FocusMeteringAction.Builder.class); -// final MeteringPoint mockMeteringPoint1 = mock(MeteringPoint.class); -// final MeteringPoint mockMeteringPoint2 = mock(MeteringPoint.class); -// final MeteringPoint mockMeteringPoint3 = mock(MeteringPoint.class); -// final Long mockMeteringPoint1Id = 47L; -// final Long mockMeteringPoint2Id = 56L; -// final Long mockMeteringPoint3Id = 99L; -// final Integer mockMeteringPoint2Mode = FocusMeteringAction.FLAG_AF; -// -// MeteringPointInfo fakeMeteringPointInfo1 = -// new MeteringPointInfo.Builder() -// .setMeteringPointId(mockMeteringPoint1Id) -// .setMeteringMode(null) -// .build(); -// MeteringPointInfo fakeMeteringPointInfo2 = -// new MeteringPointInfo.Builder() -// .setMeteringPointId(mockMeteringPoint2Id) -// .setMeteringMode(mockMeteringPoint2Mode.longValue()) -// .build(); -// MeteringPointInfo fakeMeteringPointInfo3 = -// new MeteringPointInfo.Builder() -// .setMeteringPointId(mockMeteringPoint3Id) -// .setMeteringMode(null) -// .build(); -// -// testInstanceManager.addDartCreatedInstance(mockMeteringPoint1, mockMeteringPoint1Id); -// testInstanceManager.addDartCreatedInstance(mockMeteringPoint2, mockMeteringPoint2Id); -// testInstanceManager.addDartCreatedInstance(mockMeteringPoint3, mockMeteringPoint3Id); -// -// when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint1)) -// .thenReturn(mockFocusMeteringActionBuilder); -// when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); -// -// List mockMeteringPointInfos = -// Arrays.asList(fakeMeteringPointInfo1, fakeMeteringPointInfo2, fakeMeteringPointInfo3); -// -// hostApi.create(focusMeteringActionIdentifier, mockMeteringPointInfos, null); -// -// verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint2, mockMeteringPoint2Mode); -// verify(mockFocusMeteringActionBuilder).addPoint(mockMeteringPoint3); -// assertEquals( -// testInstanceManager.getInstance(focusMeteringActionIdentifier), focusMeteringAction); -// } -// -// @Test -// public void hostApiCreate_disablesAutoCancelAsExpected() { -// FocusMeteringActionHostApiImpl.FocusMeteringActionProxy proxySpy = -// spy(new FocusMeteringActionHostApiImpl.FocusMeteringActionProxy()); -// FocusMeteringActionHostApiImpl hostApi = -// new FocusMeteringActionHostApiImpl(testInstanceManager, proxySpy); -// -// FocusMeteringAction.Builder mockFocusMeteringActionBuilder = -// mock(FocusMeteringAction.Builder.class); -// final MeteringPoint mockMeteringPoint = mock(MeteringPoint.class); -// final Long mockMeteringPointId = 47L; -// -// MeteringPointInfo fakeMeteringPointInfo = -// new MeteringPointInfo.Builder() -// .setMeteringPointId(mockMeteringPointId) -// .setMeteringMode(null) -// .build(); -// -// testInstanceManager.addDartCreatedInstance(mockMeteringPoint, mockMeteringPointId); -// -// when(proxySpy.getFocusMeteringActionBuilder(mockMeteringPoint)) -// .thenReturn(mockFocusMeteringActionBuilder); -// when(mockFocusMeteringActionBuilder.build()).thenReturn(focusMeteringAction); -// -// List mockMeteringPointInfos = Arrays.asList(fakeMeteringPointInfo); -// -// // Test not disabling auto cancel. -// hostApi.create(73L, mockMeteringPointInfos, /* disableAutoCancel */ null); -// verify(mockFocusMeteringActionBuilder, never()).disableAutoCancel(); -// -// hostApi.create(74L, mockMeteringPointInfos, /* disableAutoCancel */ false); -// verify(mockFocusMeteringActionBuilder, never()).disableAutoCancel(); -// -// // Test disabling auto cancel. -// hostApi.create(75L, mockMeteringPointInfos, /* disableAutoCancel */ true); -// verify(mockFocusMeteringActionBuilder).disableAutoCancel(); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.MeteringPoint; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; + +import java.util.Collections; +import java.util.List; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringActionTest { + @Test + public void meteringPointsAe() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Collections.singletonList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAe()).thenReturn(value); + + assertEquals(value, api.meteringPointsAe(instance)); + } + + @Test + public void meteringPointsAf() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Collections.singletonList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAf()).thenReturn(value); + + assertEquals(value, api.meteringPointsAf(instance)); + } + + @Test + public void meteringPointsAwb() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final List value = Collections.singletonList(mock(MeteringPoint.class)); + when(instance.getMeteringPointsAwb()).thenReturn(value); + + assertEquals(value, api.meteringPointsAwb(instance)); + } + + @Test + public void isAutoCancelEnabled() { + final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + + final FocusMeteringAction instance = mock(FocusMeteringAction.class); + final Boolean value = true; + when(instance.isAutoCancelEnabled()).thenReturn(value); + + assertEquals(value, api.isAutoCancelEnabled(instance)); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java deleted file mode 100644 index 8c90ceac41d..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApiTest.java +++ /dev/null @@ -1,31 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.FocusMeteringResult -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class FocusMeteringResultProxyApiTest { -// @Test -// public void isFocusSuccessful() { -// final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); -// -// final FocusMeteringResult instance = mock(FocusMeteringResult.class); -// final Boolean value = true; -// when(instance.getIsFocusSuccessful()).thenReturn(value); -// -// assertEquals(value, api.isFocusSuccessful(instance)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java index db64f0dcb7e..2fe77f281eb 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java @@ -1,73 +1,28 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertTrue; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.FocusMeteringResult; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.FocusMeteringResultFlutterApi; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class FocusMeteringResultTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public FocusMeteringResult focusMeteringResult; -// @Mock public FocusMeteringResultFlutterApi mockFlutterApi; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void isFocusSuccessful_returnsExpectedResult() { -// final FocusMeteringResultHostApiImpl focusMeteringResultHostApiImpl = -// new FocusMeteringResultHostApiImpl(testInstanceManager); -// final Long focusMeteringResultIdentifier = 98L; -// final boolean result = true; -// -// testInstanceManager.addDartCreatedInstance(focusMeteringResult, focusMeteringResultIdentifier); -// -// when(focusMeteringResult.isFocusSuccessful()).thenReturn(result); -// -// assertTrue(focusMeteringResultHostApiImpl.isFocusSuccessful(focusMeteringResultIdentifier)); -// verify(focusMeteringResult).isFocusSuccessful(); -// } -// -// @Test -// public void flutterApiCreate_makesCallToCreateInstanceOnDartSide() { -// final FocusMeteringResultFlutterApiImpl flutterApi = -// new FocusMeteringResultFlutterApiImpl(mockBinaryMessenger, testInstanceManager); -// -// flutterApi.setApi(mockFlutterApi); -// -// flutterApi.create(focusMeteringResult, reply -> {}); -// final long focusMeteringResultIdentifier = -// Objects.requireNonNull( -// testInstanceManager.getIdentifierForStrongReference(focusMeteringResult)); -// -// verify(mockFlutterApi).create(eq(focusMeteringResultIdentifier), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.FocusMeteringResult; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class FocusMeteringResultTest { + @Test + public void isFocusSuccessful() { + final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); + + final FocusMeteringResult instance = mock(FocusMeteringResult.class); + final Boolean value = true; + when(instance.isFocusSuccessful()).thenReturn(value); + + assertEquals(value, api.isFocusSuccessful(instance)); + } +} From fb912b80077ee1982664f459bd3ba1708d56b25d Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sat, 22 Feb 2025 22:45:19 -0500 Subject: [PATCH 095/148] image analysis --- .../camerax/ImageAnalysisProxyApi.java | 1 - .../camerax/ImageAnalysisProxyApiTest.java | 72 ------ .../plugins/camerax/ImageAnalysisTest.java | 215 ++++++++---------- .../camerax/JavaObjectHostApiTest.java | 32 --- .../plugins/camerax/UseCaseProxyApiTest.java | 20 -- .../VideoRecordEventFinalizeProxyApiTest.java | 20 -- .../camerax/VideoRecordEventProxyApiTest.java | 20 -- .../VideoRecordEventStartProxyApiTest.java | 20 -- 8 files changed, 97 insertions(+), 303 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/JavaObjectHostApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java index 0bd44433110..89861a38f75 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java @@ -16,7 +16,6 @@ * native class or an instance of that class. */ class ImageAnalysisProxyApi extends PigeonApiImageAnalysis { - private long clearFinalizedWeakReferencesIntervalDefaultValue; static final long CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL_FOR_IMAGE_ANALYSIS = 1000; @NonNull diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java deleted file mode 100644 index 584d4808511..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisProxyApiTest.java +++ /dev/null @@ -1,72 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.ImageAnalysis -//import androidx.camera.core.resolutionselector.ResolutionSelector -//import androidx.camera.core.ImageAnalysis.Analyzer -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ImageAnalysisProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); -// -// assertTrue(api.pigeon_defaultConstructor(0) instanceof ImageAnalysisProxyApi.ImageAnalysis); -// } -// -// @Test -// public void resolutionSelector() { -// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); -// -// final ImageAnalysis instance = mock(ImageAnalysis.class); -// final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); -// when(instance.getResolutionSelector()).thenReturn(value); -// -// assertEquals(value, api.resolutionSelector(instance)); -// } -// -// @Test -// public void setAnalyzer() { -// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); -// -// final ImageAnalysis instance = mock(ImageAnalysis.class); -// final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); -// api.setAnalyzer(instance, analyzer); -// -// verify(instance).setAnalyzer(analyzer); -// } -// -// @Test -// public void clearAnalyzer() { -// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); -// -// final ImageAnalysis instance = mock(ImageAnalysis.class); -// api.clearAnalyzer(instance ); -// -// verify(instance).clearAnalyzer(); -// } -// -// @Test -// public void setTargetRotation() { -// final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); -// -// final ImageAnalysis instance = mock(ImageAnalysis.class); -// final Long rotation = 0; -// api.setTargetRotation(instance, rotation); -// -// verify(instance).setTargetRotation(rotation); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java index 36675baf372..85fc36137c0 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java @@ -1,118 +1,97 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.content.Context; -//import android.view.Surface; -//import androidx.camera.core.ImageAnalysis; -//import androidx.camera.core.resolutionselector.ResolutionSelector; -//import androidx.test.core.app.ApplicationProvider; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.concurrent.Executor; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -// -//@RunWith(RobolectricTestRunner.class) -//public class ImageAnalysisTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// @Mock public ImageAnalysis mockImageAnalysis; -// @Mock public BinaryMessenger mockBinaryMessenger; -// -// InstanceManager instanceManager; -// private Context context; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// context = ApplicationProvider.getApplicationContext(); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void hostApiCreate_createsExpectedImageAnalysisInstanceWithExpectedIdentifier() { -// final ImageAnalysisHostApiImpl hostApi = -// new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); -// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); -// final ImageAnalysis.Builder mockImageAnalysisBuilder = mock(ImageAnalysis.Builder.class); -// final ResolutionSelector mockResolutionSelector = mock(ResolutionSelector.class); -// final long instanceIdentifier = 0; -// final long mockResolutionSelectorId = 25; -// final int targetRotation = Surface.ROTATION_90; -// -// hostApi.cameraXProxy = mockCameraXProxy; -// instanceManager.addDartCreatedInstance(mockResolutionSelector, mockResolutionSelectorId); -// -// when(mockCameraXProxy.createImageAnalysisBuilder()).thenReturn(mockImageAnalysisBuilder); -// when(mockImageAnalysisBuilder.build()).thenReturn(mockImageAnalysis); -// -// hostApi.create(instanceIdentifier, Long.valueOf(targetRotation), mockResolutionSelectorId); -// -// verify(mockImageAnalysisBuilder).setTargetRotation(targetRotation); -// verify(mockImageAnalysisBuilder).setResolutionSelector(mockResolutionSelector); -// assertEquals(instanceManager.getInstance(instanceIdentifier), mockImageAnalysis); -// } -// -// @Test -// public void setAnalyzer_makesCallToSetAnalyzerOnExpectedImageAnalysisInstance() { -// final ImageAnalysisHostApiImpl hostApi = -// new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); -// -// final ImageAnalysis.Analyzer mockAnalyzer = mock(ImageAnalysis.Analyzer.class); -// final long analyzerIdentifier = 10; -// final long instanceIdentifier = 94; -// -// instanceManager.addDartCreatedInstance(mockAnalyzer, analyzerIdentifier); -// instanceManager.addDartCreatedInstance(mockImageAnalysis, instanceIdentifier); -// -// hostApi.setAnalyzer(instanceIdentifier, analyzerIdentifier); -// -// verify(mockImageAnalysis).setAnalyzer(any(Executor.class), eq(mockAnalyzer)); -// } -// -// @Test -// public void clearAnalyzer_makesCallToClearAnalyzerOnExpectedImageAnalysisInstance() { -// final ImageAnalysisHostApiImpl hostApi = -// new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); -// final long instanceIdentifier = 22; -// -// instanceManager.addDartCreatedInstance(mockImageAnalysis, instanceIdentifier); -// -// hostApi.clearAnalyzer(instanceIdentifier); -// -// verify(mockImageAnalysis).clearAnalyzer(); -// } -// -// @Test -// public void setTargetRotation_makesCallToSetTargetRotation() { -// final ImageAnalysisHostApiImpl hostApi = -// new ImageAnalysisHostApiImpl(mockBinaryMessenger, instanceManager, context); -// final long instanceIdentifier = 32; -// final int targetRotation = Surface.ROTATION_180; -// -// instanceManager.addDartCreatedInstance(mockImageAnalysis, instanceIdentifier); -// -// hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); -// -// verify(mockImageAnalysis).setTargetRotation(targetRotation); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageAnalysis; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.ImageAnalysis.Analyzer; +import androidx.core.content.ContextCompat; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.runner.RunWith; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.stubbing.Answer; +import org.robolectric.RobolectricTestRunner; + +import static org.mockito.Mockito.any; + +import java.util.concurrent.Executor; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.view.Surface; + +@RunWith(RobolectricTestRunner.class) +public class ImageAnalysisTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); + final long targetResolution = Surface.ROTATION_0; + final ImageAnalysis imageAnalysis = api.pigeon_defaultConstructor(mockResolutionSelector, targetResolution); + + assertEquals(imageAnalysis.getResolutionSelector(), mockResolutionSelector); + assertEquals(imageAnalysis.getTargetRotation(), Surface.ROTATION_0); + } + + @Test + public void resolutionSelector() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); + } + + @Test + public void setAnalyzer_makesCallToSetAnalyzerOnExpectedImageAnalysisInstance() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); + + try (MockedStatic mockedContextCompat = + Mockito.mockStatic(ContextCompat.class)) { + mockedContextCompat + .when(() -> ContextCompat.getMainExecutor(any())) + .thenAnswer((Answer) invocation -> mock(Executor.class)); + + api.setAnalyzer(instance, analyzer); + + verify(instance).setAnalyzer(any(), eq(analyzer)); + } + } + + @Test + public void clearAnalyzer_makesCallToClearAnalyzerOnExpectedImageAnalysisInstance() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + api.clearAnalyzer(instance ); + + verify(instance).clearAnalyzer(); + } + + @Test + public void setTargetRotation_makesCallToSetTargetRotation() { + final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); + + final ImageAnalysis instance = mock(ImageAnalysis.class); + final long rotation = Surface.ROTATION_180; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation(Surface.ROTATION_180); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/JavaObjectHostApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/JavaObjectHostApiTest.java deleted file mode 100644 index ad732f2c2e8..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/JavaObjectHostApiTest.java +++ /dev/null @@ -1,32 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertNull; -// -//import org.junit.Test; -// -//public class JavaObjectHostApiTest { -// @Test -// public void dispose() { -// final InstanceManager instanceManager = InstanceManager.create(identifier -> {}); -// -// final JavaObjectHostApiImpl hostApi = new JavaObjectHostApiImpl(instanceManager); -// -// Object object = new Object(); -// instanceManager.addDartCreatedInstance(object, 0); -// -// // To free object for garbage collection. -// //noinspection UnusedAssignment -// object = null; -// -// hostApi.dispose(0L); -// Runtime.getRuntime().gc(); -// -// assertNull(instanceManager.getInstance(0)); -// -// instanceManager.stopFinalizationListener(); -// } -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java deleted file mode 100644 index a0481b652ad..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/UseCaseProxyApiTest.java +++ /dev/null @@ -1,20 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.UseCase -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class UseCaseProxyApiTest { -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java deleted file mode 100644 index 62bb6863f1e..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventFinalizeProxyApiTest.java +++ /dev/null @@ -1,20 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.VideoRecordEvent.Finalize -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class VideoRecordEventFinalizeProxyApiTest { -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java deleted file mode 100644 index 435de4c856e..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventProxyApiTest.java +++ /dev/null @@ -1,20 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.VideoRecordEvent -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class VideoRecordEventProxyApiTest { -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java deleted file mode 100644 index 55cd98f36d4..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventStartProxyApiTest.java +++ /dev/null @@ -1,20 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.VideoRecordEvent.Start -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class VideoRecordEventStartProxyApiTest { -//} From 503aea9f98eb6e5c349caa63fd7cf2afe9b716b4 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 14:20:56 -0500 Subject: [PATCH 096/148] image capture tests --- .../plugins/camerax/ImageCaptureProxyApi.java | 12 +- .../plugins/camerax/FallbackStrategyTest.java | 29 +- .../FocusMeteringActionBuilderTest.java | 24 +- .../camerax/FocusMeteringActionTest.java | 34 +- .../camerax/FocusMeteringResultTest.java | 12 +- .../plugins/camerax/ImageAnalysisTest.java | 40 ++- .../camerax/ImageCaptureProxyApiTest.java | 294 ++++++++++++++---- 7 files changed, 299 insertions(+), 146 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java index 70aade62346..c7f248f4460 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java @@ -109,6 +109,12 @@ public void setTargetRotation(ImageCapture pigeon_instance, long rotation) { pigeon_instance.setTargetRotation((int) rotation); } + @Nullable + @Override + public ResolutionSelector resolutionSelector(@NonNull ImageCapture pigeon_instance) { + return pigeon_instance.getResolutionSelector(); + } + ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { return new ImageCapture.OutputFileOptions.Builder(file).build(); } @@ -128,10 +134,4 @@ public void onError(@NonNull ImageCaptureException exception) { } }; } - - @Nullable - @Override - public ResolutionSelector resolutionSelector(@NonNull ImageCapture pigeon_instance) { - return pigeon_instance.getResolutionSelector(); - } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java index 29054b440d2..7a80f1a8e06 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java @@ -5,13 +5,10 @@ package io.flutter.plugins.camerax; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import androidx.camera.video.FallbackStrategy; import androidx.camera.video.Quality; - import org.junit.Test; import org.mockito.MockedStatic; import org.mockito.Mockito; @@ -27,7 +24,7 @@ public void higherQualityOrLowerThan() { try (MockedStatic mockedFallbackStrategy = Mockito.mockStatic(FallbackStrategy.class)) { - final Quality quality = Quality.HD; + final Quality quality = Quality.HD; mockedFallbackStrategy .when(() -> FallbackStrategy.higherQualityOrLowerThan(quality)) .thenAnswer((Answer) invocation -> mockFallbackStrategy); @@ -39,16 +36,16 @@ public void higherQualityOrLowerThan() { @Test public void higherQualityThan() { final PigeonApiFallbackStrategy api = - new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); try (MockedStatic mockedFallbackStrategy = - Mockito.mockStatic(FallbackStrategy.class)) { + Mockito.mockStatic(FallbackStrategy.class)) { final Quality quality = Quality.HD; mockedFallbackStrategy - .when(() -> FallbackStrategy.higherQualityThan(quality)) - .thenAnswer((Answer) invocation -> mockFallbackStrategy); + .when(() -> FallbackStrategy.higherQualityThan(quality)) + .thenAnswer((Answer) invocation -> mockFallbackStrategy); assertEquals(api.higherQualityThan(VideoQuality.HD), mockFallbackStrategy); } @@ -57,16 +54,16 @@ public void higherQualityThan() { @Test public void lowerQualityOrHigherThan() { final PigeonApiFallbackStrategy api = - new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); try (MockedStatic mockedFallbackStrategy = - Mockito.mockStatic(FallbackStrategy.class)) { + Mockito.mockStatic(FallbackStrategy.class)) { final Quality quality = Quality.HD; mockedFallbackStrategy - .when(() -> FallbackStrategy.lowerQualityOrHigherThan(quality)) - .thenAnswer((Answer) invocation -> mockFallbackStrategy); + .when(() -> FallbackStrategy.lowerQualityOrHigherThan(quality)) + .thenAnswer((Answer) invocation -> mockFallbackStrategy); assertEquals(api.lowerQualityOrHigherThan(VideoQuality.HD), mockFallbackStrategy); } @@ -75,16 +72,16 @@ public void lowerQualityOrHigherThan() { @Test public void lowerQualityThan() { final PigeonApiFallbackStrategy api = - new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); + new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); try (MockedStatic mockedFallbackStrategy = - Mockito.mockStatic(FallbackStrategy.class)) { + Mockito.mockStatic(FallbackStrategy.class)) { final Quality quality = Quality.HD; mockedFallbackStrategy - .when(() -> FallbackStrategy.lowerQualityThan(quality)) - .thenAnswer((Answer) invocation -> mockFallbackStrategy); + .when(() -> FallbackStrategy.lowerQualityThan(quality)) + .thenAnswer((Answer) invocation -> mockFallbackStrategy); assertEquals(api.lowerQualityThan(VideoQuality.HD), mockFallbackStrategy); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java index 85721f09c86..5cd6268ad9d 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java @@ -4,21 +4,20 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.MeteringPoint; -import androidx.camera.core.FocusMeteringAction; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.MeteringPoint; +import org.junit.Test; + public class FocusMeteringActionBuilderTest { @Test public void addPoint() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + final PigeonApiFocusMeteringActionBuilder api = + new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); final FocusMeteringAction.Builder instance = mock(FocusMeteringAction.Builder.class); final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); @@ -29,7 +28,8 @@ public void addPoint() { @Test public void addPointWithMode() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + final PigeonApiFocusMeteringActionBuilder api = + new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); final FocusMeteringAction.Builder instance = mock(FocusMeteringAction.Builder.class); final androidx.camera.core.MeteringPoint point = mock(MeteringPoint.class); @@ -41,7 +41,8 @@ public void addPointWithMode() { @Test public void disableAutoCancel() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + final PigeonApiFocusMeteringActionBuilder api = + new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); final FocusMeteringAction.Builder instance = mock(FocusMeteringAction.Builder.class); api.disableAutoCancel(instance); @@ -51,12 +52,13 @@ public void disableAutoCancel() { @Test public void build() { - final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); + final PigeonApiFocusMeteringActionBuilder api = + new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); final FocusMeteringAction.Builder instance = mock(FocusMeteringAction.Builder.class); final androidx.camera.core.FocusMeteringAction value = mock(FocusMeteringAction.class); when(instance.build()).thenReturn(value); - assertEquals(value, api.build(instance )); + assertEquals(value, api.build(instance)); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index a3e1a47db84..8a4fc29386e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -4,26 +4,21 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.FocusMeteringAction; -import androidx.camera.core.MeteringPoint; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import androidx.camera.core.FocusMeteringAction; +import androidx.camera.core.MeteringPoint; import java.util.Collections; import java.util.List; - -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import org.junit.Test; public class FocusMeteringActionTest { @Test public void meteringPointsAe() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); - + final PigeonApiFocusMeteringAction api = + new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); final FocusMeteringAction instance = mock(FocusMeteringAction.class); final List value = Collections.singletonList(mock(MeteringPoint.class)); @@ -34,10 +29,12 @@ public void meteringPointsAe() { @Test public void meteringPointsAf() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + final PigeonApiFocusMeteringAction api = + new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Collections.singletonList(mock(MeteringPoint.class)); + final List value = + Collections.singletonList(mock(MeteringPoint.class)); when(instance.getMeteringPointsAf()).thenReturn(value); assertEquals(value, api.meteringPointsAf(instance)); @@ -45,10 +42,12 @@ public void meteringPointsAf() { @Test public void meteringPointsAwb() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + final PigeonApiFocusMeteringAction api = + new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); final FocusMeteringAction instance = mock(FocusMeteringAction.class); - final List value = Collections.singletonList(mock(MeteringPoint.class)); + final List value = + Collections.singletonList(mock(MeteringPoint.class)); when(instance.getMeteringPointsAwb()).thenReturn(value); assertEquals(value, api.meteringPointsAwb(instance)); @@ -56,7 +55,8 @@ public void meteringPointsAwb() { @Test public void isAutoCancelEnabled() { - final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); + final PigeonApiFocusMeteringAction api = + new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); final FocusMeteringAction instance = mock(FocusMeteringAction.class); final Boolean value = true; diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java index 2fe77f281eb..6d3fd6aeff1 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java @@ -4,20 +4,18 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.FocusMeteringResult; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.FocusMeteringResult; +import org.junit.Test; + public class FocusMeteringResultTest { @Test public void isFocusSuccessful() { - final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); + final PigeonApiFocusMeteringResult api = + new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); final FocusMeteringResult instance = mock(FocusMeteringResult.class); final Boolean value = true; diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java index 85fc36137c0..f888e84b3af 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java @@ -4,32 +4,26 @@ package io.flutter.plugins.camerax; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.view.Surface; import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.resolutionselector.ResolutionSelector; import androidx.camera.core.ImageAnalysis.Analyzer; +import androidx.camera.core.resolutionselector.ResolutionSelector; import androidx.core.content.ContextCompat; - +import java.util.concurrent.Executor; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - import org.junit.runner.RunWith; import org.mockito.MockedStatic; import org.mockito.Mockito; import org.mockito.stubbing.Answer; import org.robolectric.RobolectricTestRunner; -import static org.mockito.Mockito.any; - -import java.util.concurrent.Executor; - -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.view.Surface; - @RunWith(RobolectricTestRunner.class) public class ImageAnalysisTest { @Test @@ -38,7 +32,8 @@ public void pigeon_defaultConstructor() { final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); final long targetResolution = Surface.ROTATION_0; - final ImageAnalysis imageAnalysis = api.pigeon_defaultConstructor(mockResolutionSelector, targetResolution); + final ImageAnalysis imageAnalysis = + api.pigeon_defaultConstructor(mockResolutionSelector, targetResolution); assertEquals(imageAnalysis.getResolutionSelector(), mockResolutionSelector); assertEquals(imageAnalysis.getTargetRotation(), Surface.ROTATION_0); @@ -49,7 +44,8 @@ public void resolutionSelector() { final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); final ImageAnalysis instance = mock(ImageAnalysis.class); - final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = + mock(ResolutionSelector.class); when(instance.getResolutionSelector()).thenReturn(value); assertEquals(value, api.resolutionSelector(instance)); @@ -63,10 +59,10 @@ public void setAnalyzer_makesCallToSetAnalyzerOnExpectedImageAnalysisInstance() final androidx.camera.core.ImageAnalysis.Analyzer analyzer = mock(Analyzer.class); try (MockedStatic mockedContextCompat = - Mockito.mockStatic(ContextCompat.class)) { + Mockito.mockStatic(ContextCompat.class)) { mockedContextCompat - .when(() -> ContextCompat.getMainExecutor(any())) - .thenAnswer((Answer) invocation -> mock(Executor.class)); + .when(() -> ContextCompat.getMainExecutor(any())) + .thenAnswer((Answer) invocation -> mock(Executor.class)); api.setAnalyzer(instance, analyzer); @@ -79,7 +75,7 @@ public void clearAnalyzer_makesCallToClearAnalyzerOnExpectedImageAnalysisInstanc final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); final ImageAnalysis instance = mock(ImageAnalysis.class); - api.clearAnalyzer(instance ); + api.clearAnalyzer(instance); verify(instance).clearAnalyzer(); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java index 4cc142ef140..bfea152c210 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java @@ -1,72 +1,232 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.ImageCapture -//import androidx.camera.core.resolutionselector.ResolutionSelector -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ImageCaptureProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); -// -// assertTrue(api.pigeon_defaultConstructor(0, io.flutter.plugins.camerax.CameraXFlashMode.AUTO) instanceof ImageCaptureProxyApi.ImageCapture); -// } -// -// @Test -// public void resolutionSelector() { -// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); -// -// final ImageCapture instance = mock(ImageCapture.class); -// final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); -// when(instance.getResolutionSelector()).thenReturn(value); -// -// assertEquals(value, api.resolutionSelector(instance)); -// } -// +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoInteractions; +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.view.Surface; +import androidx.annotation.NonNull; +import androidx.camera.core.ImageCapture; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import java.io.File; +import java.io.IOException; +import java.util.concurrent.Executor; +import kotlin.Result; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.MockedStatic; +import org.robolectric.RobolectricTestRunner; + +@RunWith(RobolectricTestRunner.class) +public class ImageCaptureProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); + final long targetResolution = Surface.ROTATION_0; + final ImageCapture imageCapture = + api.pigeon_defaultConstructor( + mockResolutionSelector, targetResolution, CameraXFlashMode.OFF); + + assertEquals(imageCapture.getResolutionSelector(), mockResolutionSelector); + assertEquals(imageCapture.getTargetRotation(), Surface.ROTATION_0); + assertEquals(imageCapture.getFlashMode(), ImageCapture.FLASH_MODE_OFF); + } + + @Test + public void resolutionSelector() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); + } + + @Test + public void setFlashMode_setsFlashModeOfImageCaptureInstance() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; + api.setFlashMode(instance, flashMode); + + verify(instance).setFlashMode(ImageCapture.FLASH_MODE_AUTO); + } + + @Test + public void + takePicture_sendsRequestToTakePictureWithExpectedConfigurationWhenTemporaryFileCanBeCreated() { + final ProxyApiRegistrar mockApiRegistrar = mock(ProxyApiRegistrar.class); + final Context mockContext = mock(Context.class); + final File mockOutputDir = mock(File.class); + when(mockContext.getCacheDir()).thenReturn(mockOutputDir); + when(mockApiRegistrar.getContext()).thenReturn(mockContext); + + final String filename = "myFile.jpg"; + final ImageCaptureProxyApi api = + new ImageCaptureProxyApi(mockApiRegistrar) { + @Override + ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { + return super.createImageCaptureOutputFileOptions(file); + } + + @NonNull + @Override + ImageCapture.OnImageSavedCallback createOnImageSavedCallback( + @NonNull File file, @NonNull Function1, Unit> callback) { + ResultCompat.success(filename, callback); + return super.createOnImageSavedCallback(file, callback); + } + }; + + final ImageCapture instance = mock(ImageCapture.class); + + try (MockedStatic mockedStaticFile = mockStatic(File.class)) { + final File mockFile = mock(File.class); + mockedStaticFile + .when( + () -> + File.createTempFile( + ImageCaptureProxyApi.TEMPORARY_FILE_NAME, + ImageCaptureProxyApi.JPG_FILE_TYPE, + mockOutputDir)) + .thenReturn(mockFile); + + final String[] result = {null}; + api.takePicture( + instance, + ResultCompat.asCompatCallback( + reply -> { + result[0] = reply.getOrNull(); + return null; + })); + + verify(instance) + .takePicture( + any(ImageCapture.OutputFileOptions.class), + any(Executor.class), + any(ImageCapture.OnImageSavedCallback.class)); + assertEquals(result[0], filename); + } + } + + @Test + public void + takePicture_sendsErrorWhenTemporaryFileCannotBeCreated() { + final ProxyApiRegistrar mockApiRegistrar = mock(ProxyApiRegistrar.class); + final Context mockContext = mock(Context.class); + final File mockOutputDir = mock(File.class); + when(mockContext.getCacheDir()).thenReturn(mockOutputDir); + when(mockApiRegistrar.getContext()).thenReturn(mockContext); + + final PigeonApiImageCapture api = new ImageCaptureProxyApi(mockApiRegistrar); + + final ImageCapture instance = mock(ImageCapture.class); + + try (MockedStatic mockedStaticFile = mockStatic(File.class)) { + final IOException fileCreationException = new IOException(); + mockedStaticFile + .when( + () -> + File.createTempFile( + ImageCaptureProxyApi.TEMPORARY_FILE_NAME, + ImageCaptureProxyApi.JPG_FILE_TYPE, + mockOutputDir)) + .thenThrow(fileCreationException); + + final Throwable[] result = {null}; + api.takePicture( + instance, + ResultCompat.asCompatCallback( + reply -> { + result[0] = reply.exceptionOrNull(); + return null; + })); + + verifyNoInteractions(instance); + assertEquals(result[0], fileCreationException); + } + } + // @Test -// public void setFlashMode() { -// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); +// public void +// takePicture_sendsRequestToTakePictureWithExpectedConfigurationWhenTemporaryFileCanBeCreated() { +// final ProxyApiRegistrar mockApiRegistrar = mock(ProxyApiRegistrar.class); +// final Context mockContext = mock(Context.class); +// final File mockOutputDir = mock(File.class); +// when(mockContext.getCacheDir()).thenReturn(mockOutputDir); +// when(mockApiRegistrar.getContext()).thenReturn(mockContext); +// +// final String filename = "myFile.jpg"; +// final ImageCaptureProxyApi api = +// new ImageCaptureProxyApi(mockApiRegistrar) { +// @Override +// ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { +// return super.createImageCaptureOutputFileOptions(file); +// } +// +// @NonNull +// @Override +// ImageCapture.OnImageSavedCallback createOnImageSavedCallback( +// @NonNull File file, @NonNull Function1, Unit> callback) { +// ResultCompat.success(filename, callback); +// return super.createOnImageSavedCallback(file, callback); +// } +// }; // // final ImageCapture instance = mock(ImageCapture.class); -// final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; -// api.setFlashMode(instance, flashMode); // -// verify(instance).setFlashMode(flashMode); +// try (MockedStatic mockedStaticFile = mockStatic(File.class)) { +// final File mockFile = mock(File.class); +// mockedStaticFile +// .when( +// () -> +// File.createTempFile( +// ImageCaptureProxyApi.TEMPORARY_FILE_NAME, +// ImageCaptureProxyApi.JPG_FILE_TYPE, +// mockOutputDir)) +// .thenReturn(mockFile); +// +// final String[] result = {null}; +// api.takePicture( +// instance, +// ResultCompat.asCompatCallback( +// reply -> { +// result[0] = reply.getOrNull(); +// return null; +// })); +// +// verify(instance) +// .takePicture( +// any(ImageCapture.OutputFileOptions.class), +// any(Executor.class), +// any(ImageCapture.OnImageSavedCallback.class)); +// assertEquals(result[0], filename); +// } // } -// -// @Test -// public void takePicture() { -// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); -// -// final ImageCapture instance = mock(ImageCapture.class); -// final String value = "myString"; -// when(instance.takePicture()).thenReturn(value); -// -// assertEquals(value, api.takePicture(instance )); -// } -// -// @Test -// public void setTargetRotation() { -// final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); -// -// final ImageCapture instance = mock(ImageCapture.class); -// final Long rotation = 0; -// api.setTargetRotation(instance, rotation); -// -// verify(instance).setTargetRotation(rotation); -// } -// -//} + + @Test + public void setTargetRotation_makesCallToSetTargetRotation() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation((int) rotation); + } +} From 2a48433dfa89ad0bb026ef86eaf6ed7981004d44 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 14:29:12 -0500 Subject: [PATCH 097/148] image capture test --- .../camerax/ImageCaptureProxyApiTest.java | 232 --------- .../plugins/camerax/ImageCaptureTest.java | 458 +++++++++--------- 2 files changed, 237 insertions(+), 453 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java deleted file mode 100644 index bfea152c210..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureProxyApiTest.java +++ /dev/null @@ -1,232 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.mockStatic; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoInteractions; -import static org.mockito.Mockito.when; - -import android.content.Context; -import android.view.Surface; -import androidx.annotation.NonNull; -import androidx.camera.core.ImageCapture; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import java.io.File; -import java.io.IOException; -import java.util.concurrent.Executor; -import kotlin.Result; -import kotlin.Unit; -import kotlin.jvm.functions.Function1; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.MockedStatic; -import org.robolectric.RobolectricTestRunner; - -@RunWith(RobolectricTestRunner.class) -public class ImageCaptureProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); - final long targetResolution = Surface.ROTATION_0; - final ImageCapture imageCapture = - api.pigeon_defaultConstructor( - mockResolutionSelector, targetResolution, CameraXFlashMode.OFF); - - assertEquals(imageCapture.getResolutionSelector(), mockResolutionSelector); - assertEquals(imageCapture.getTargetRotation(), Surface.ROTATION_0); - assertEquals(imageCapture.getFlashMode(), ImageCapture.FLASH_MODE_OFF); - } - - @Test - public void resolutionSelector() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final ResolutionSelector value = mock(ResolutionSelector.class); - when(instance.getResolutionSelector()).thenReturn(value); - - assertEquals(value, api.resolutionSelector(instance)); - } - - @Test - public void setFlashMode_setsFlashModeOfImageCaptureInstance() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; - api.setFlashMode(instance, flashMode); - - verify(instance).setFlashMode(ImageCapture.FLASH_MODE_AUTO); - } - - @Test - public void - takePicture_sendsRequestToTakePictureWithExpectedConfigurationWhenTemporaryFileCanBeCreated() { - final ProxyApiRegistrar mockApiRegistrar = mock(ProxyApiRegistrar.class); - final Context mockContext = mock(Context.class); - final File mockOutputDir = mock(File.class); - when(mockContext.getCacheDir()).thenReturn(mockOutputDir); - when(mockApiRegistrar.getContext()).thenReturn(mockContext); - - final String filename = "myFile.jpg"; - final ImageCaptureProxyApi api = - new ImageCaptureProxyApi(mockApiRegistrar) { - @Override - ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { - return super.createImageCaptureOutputFileOptions(file); - } - - @NonNull - @Override - ImageCapture.OnImageSavedCallback createOnImageSavedCallback( - @NonNull File file, @NonNull Function1, Unit> callback) { - ResultCompat.success(filename, callback); - return super.createOnImageSavedCallback(file, callback); - } - }; - - final ImageCapture instance = mock(ImageCapture.class); - - try (MockedStatic mockedStaticFile = mockStatic(File.class)) { - final File mockFile = mock(File.class); - mockedStaticFile - .when( - () -> - File.createTempFile( - ImageCaptureProxyApi.TEMPORARY_FILE_NAME, - ImageCaptureProxyApi.JPG_FILE_TYPE, - mockOutputDir)) - .thenReturn(mockFile); - - final String[] result = {null}; - api.takePicture( - instance, - ResultCompat.asCompatCallback( - reply -> { - result[0] = reply.getOrNull(); - return null; - })); - - verify(instance) - .takePicture( - any(ImageCapture.OutputFileOptions.class), - any(Executor.class), - any(ImageCapture.OnImageSavedCallback.class)); - assertEquals(result[0], filename); - } - } - - @Test - public void - takePicture_sendsErrorWhenTemporaryFileCannotBeCreated() { - final ProxyApiRegistrar mockApiRegistrar = mock(ProxyApiRegistrar.class); - final Context mockContext = mock(Context.class); - final File mockOutputDir = mock(File.class); - when(mockContext.getCacheDir()).thenReturn(mockOutputDir); - when(mockApiRegistrar.getContext()).thenReturn(mockContext); - - final PigeonApiImageCapture api = new ImageCaptureProxyApi(mockApiRegistrar); - - final ImageCapture instance = mock(ImageCapture.class); - - try (MockedStatic mockedStaticFile = mockStatic(File.class)) { - final IOException fileCreationException = new IOException(); - mockedStaticFile - .when( - () -> - File.createTempFile( - ImageCaptureProxyApi.TEMPORARY_FILE_NAME, - ImageCaptureProxyApi.JPG_FILE_TYPE, - mockOutputDir)) - .thenThrow(fileCreationException); - - final Throwable[] result = {null}; - api.takePicture( - instance, - ResultCompat.asCompatCallback( - reply -> { - result[0] = reply.exceptionOrNull(); - return null; - })); - - verifyNoInteractions(instance); - assertEquals(result[0], fileCreationException); - } - } - -// @Test -// public void -// takePicture_sendsRequestToTakePictureWithExpectedConfigurationWhenTemporaryFileCanBeCreated() { -// final ProxyApiRegistrar mockApiRegistrar = mock(ProxyApiRegistrar.class); -// final Context mockContext = mock(Context.class); -// final File mockOutputDir = mock(File.class); -// when(mockContext.getCacheDir()).thenReturn(mockOutputDir); -// when(mockApiRegistrar.getContext()).thenReturn(mockContext); -// -// final String filename = "myFile.jpg"; -// final ImageCaptureProxyApi api = -// new ImageCaptureProxyApi(mockApiRegistrar) { -// @Override -// ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { -// return super.createImageCaptureOutputFileOptions(file); -// } -// -// @NonNull -// @Override -// ImageCapture.OnImageSavedCallback createOnImageSavedCallback( -// @NonNull File file, @NonNull Function1, Unit> callback) { -// ResultCompat.success(filename, callback); -// return super.createOnImageSavedCallback(file, callback); -// } -// }; -// -// final ImageCapture instance = mock(ImageCapture.class); -// -// try (MockedStatic mockedStaticFile = mockStatic(File.class)) { -// final File mockFile = mock(File.class); -// mockedStaticFile -// .when( -// () -> -// File.createTempFile( -// ImageCaptureProxyApi.TEMPORARY_FILE_NAME, -// ImageCaptureProxyApi.JPG_FILE_TYPE, -// mockOutputDir)) -// .thenReturn(mockFile); -// -// final String[] result = {null}; -// api.takePicture( -// instance, -// ResultCompat.asCompatCallback( -// reply -> { -// result[0] = reply.getOrNull(); -// return null; -// })); -// -// verify(instance) -// .takePicture( -// any(ImageCapture.OutputFileOptions.class), -// any(Executor.class), -// any(ImageCapture.OnImageSavedCallback.class)); -// assertEquals(result[0], filename); -// } -// } - - @Test - public void setTargetRotation_makesCallToSetTargetRotation() { - final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); - - final ImageCapture instance = mock(ImageCapture.class); - final long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation((int) rotation); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java index 3c3e568f676..a206af2b3b5 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java @@ -1,221 +1,237 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.mockStatic; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.times; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.content.Context; -//import android.view.Surface; -//import androidx.camera.core.ImageCapture; -//import androidx.camera.core.ImageCaptureException; -//import androidx.camera.core.resolutionselector.ResolutionSelector; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.io.File; -//import java.io.IOException; -//import java.util.concurrent.Executor; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.Mock; -//import org.mockito.MockedStatic; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -// -//@RunWith(RobolectricTestRunner.class) -//public class ImageCaptureTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public ImageCapture mockImageCapture; -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public CameraXProxy mockCameraXProxy; -// -// InstanceManager testInstanceManager; -// private Context context; -// private MockedStatic mockedStaticFile; -// -// @Before -// public void setUp() throws Exception { -// testInstanceManager = spy(InstanceManager.create(identifier -> {})); -// context = mock(Context.class); -// mockedStaticFile = mockStatic(File.class); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// mockedStaticFile.close(); -// } -// -// @Test -// public void create_createsImageCaptureWithCorrectConfiguration() { -// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = -// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final ImageCapture.Builder mockImageCaptureBuilder = mock(ImageCapture.Builder.class); -// final Long imageCaptureIdentifier = 74L; -// final int flashMode = ImageCapture.FLASH_MODE_ON; -// final ResolutionSelector mockResolutionSelector = mock(ResolutionSelector.class); -// final long mockResolutionSelectorId = 77; -// final int targetRotation = Surface.ROTATION_270; -// -// imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; -// testInstanceManager.addDartCreatedInstance(mockResolutionSelector, mockResolutionSelectorId); -// when(mockCameraXProxy.createImageCaptureBuilder()).thenReturn(mockImageCaptureBuilder); -// when(mockImageCaptureBuilder.build()).thenReturn(mockImageCapture); -// -// imageCaptureHostApiImpl.create( -// imageCaptureIdentifier, -// Long.valueOf(targetRotation), -// Long.valueOf(flashMode), -// mockResolutionSelectorId); -// -// verify(mockImageCaptureBuilder).setTargetRotation(targetRotation); -// verify(mockImageCaptureBuilder).setFlashMode(flashMode); -// verify(mockImageCaptureBuilder).setResolutionSelector(mockResolutionSelector); -// verify(mockImageCaptureBuilder).build(); -// verify(testInstanceManager).addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); -// } -// -// @Test -// public void setFlashMode_setsFlashModeOfImageCaptureInstance() { -// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = -// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final Long imageCaptureIdentifier = 85L; -// final Long flashMode = Long.valueOf(ImageCapture.FLASH_MODE_AUTO); -// -// testInstanceManager.addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); -// -// imageCaptureHostApiImpl.setFlashMode(imageCaptureIdentifier, flashMode); -// -// verify(mockImageCapture).setFlashMode(flashMode.intValue()); -// } -// -// @Test -// public void -// takePicture_sendsRequestToTakePictureWithExpectedConfigurationWhenTemporaryFileCanBeCreated() { -// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = -// spy(new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context)); -// final Long imageCaptureIdentifier = 6L; -// final File mockOutputDir = mock(File.class); -// final File mockFile = mock(File.class); -// final ImageCapture.OutputFileOptions mockOutputFileOptions = -// mock(ImageCapture.OutputFileOptions.class); -// final ImageCapture.OnImageSavedCallback mockOnImageSavedCallback = -// mock(ImageCapture.OnImageSavedCallback.class); -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result mockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// -// testInstanceManager.addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); -// when(context.getCacheDir()).thenReturn(mockOutputDir); -// imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; -// mockedStaticFile -// .when( -// () -> -// File.createTempFile( -// ImageCaptureHostApiImpl.TEMPORARY_FILE_NAME, -// ImageCaptureHostApiImpl.JPG_FILE_TYPE, -// mockOutputDir)) -// .thenReturn(mockFile); -// when(mockCameraXProxy.createImageCaptureOutputFileOptions(mockFile)) -// .thenReturn(mockOutputFileOptions); -// when(imageCaptureHostApiImpl.createOnImageSavedCallback(mockFile, mockResult)) -// .thenReturn(mockOnImageSavedCallback); -// -// imageCaptureHostApiImpl.takePicture(imageCaptureIdentifier, mockResult); -// -// verify(mockImageCapture) -// .takePicture(eq(mockOutputFileOptions), any(Executor.class), eq(mockOnImageSavedCallback)); -// } -// -// @Test -// public void takePicture_sendsErrorWhenTemporaryFileCannotBeCreated() { -// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = -// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final Long imageCaptureIdentifier = 6L; -// final File mockOutputDir = mock(File.class); -// final File mockTemporaryCaptureFile = mock(File.class); -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result mockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final IOException fileCreationException = new IOException(); -// -// testInstanceManager.addDartCreatedInstance(mockImageCapture, imageCaptureIdentifier); -// imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; -// when(context.getCacheDir()).thenReturn(mockOutputDir); -// mockedStaticFile -// .when( -// () -> -// File.createTempFile( -// ImageCaptureHostApiImpl.TEMPORARY_FILE_NAME, -// ImageCaptureHostApiImpl.JPG_FILE_TYPE, -// mockOutputDir)) -// .thenThrow(fileCreationException); -// -// imageCaptureHostApiImpl.takePicture(imageCaptureIdentifier, mockResult); -// -// verify(mockResult).error(fileCreationException); -// verify(mockImageCapture, times(0)) -// .takePicture( -// any(ImageCapture.OutputFileOptions.class), -// any(Executor.class), -// any(ImageCapture.OnImageSavedCallback.class)); -// } -// -// @Test -// public void takePicture_usesExpectedOnImageSavedCallback() { -// final ImageCaptureHostApiImpl imageCaptureHostApiImpl = -// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final SystemServicesFlutterApiImpl mockSystemServicesFlutterApiImpl = -// mock(SystemServicesFlutterApiImpl.class); -// final File mockFile = mock(File.class); -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result mockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// final ImageCapture.OutputFileResults mockOutputFileResults = -// mock(ImageCapture.OutputFileResults.class); -// final String mockFileAbsolutePath = "absolute/path/to/captured/image"; -// final ImageCaptureException mockException = mock(ImageCaptureException.class); -// -// imageCaptureHostApiImpl.cameraXProxy = mockCameraXProxy; -// when(mockFile.getAbsolutePath()).thenReturn(mockFileAbsolutePath); -// -// ImageCapture.OnImageSavedCallback onImageSavedCallback = -// imageCaptureHostApiImpl.createOnImageSavedCallback(mockFile, mockResult); -// -// // Test success case. -// onImageSavedCallback.onImageSaved(mockOutputFileResults); -// -// verify(mockResult).success(mockFileAbsolutePath); -// -// // Test error case. -// onImageSavedCallback.onError(mockException); -// -// verify(mockResult).error(mockException); -// } -// -// @Test -// public void setTargetRotation_makesCallToSetTargetRotation() { -// final ImageCaptureHostApiImpl hostApi = -// new ImageCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final long instanceIdentifier = 42; -// final int targetRotation = Surface.ROTATION_90; -// -// testInstanceManager.addDartCreatedInstance(mockImageCapture, instanceIdentifier); -// -// hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); -// -// verify(mockImageCapture).setTargetRotation(targetRotation); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoInteractions; +import static org.mockito.Mockito.when; + +import android.content.Context; +import android.view.Surface; +import androidx.annotation.NonNull; +import androidx.camera.core.ImageCapture; +import androidx.camera.core.ImageCaptureException; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import java.io.File; +import java.io.IOException; +import java.util.concurrent.Executor; +import kotlin.Result; +import kotlin.Unit; +import kotlin.jvm.functions.Function1; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.MockedStatic; +import org.robolectric.RobolectricTestRunner; + +@RunWith(RobolectricTestRunner.class) +public class ImageCaptureTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); + final long targetResolution = Surface.ROTATION_0; + final ImageCapture imageCapture = + api.pigeon_defaultConstructor( + mockResolutionSelector, targetResolution, CameraXFlashMode.OFF); + + assertEquals(imageCapture.getResolutionSelector(), mockResolutionSelector); + assertEquals(imageCapture.getTargetRotation(), Surface.ROTATION_0); + assertEquals(imageCapture.getFlashMode(), ImageCapture.FLASH_MODE_OFF); + } + + @Test + public void resolutionSelector() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); + } + + @Test + public void setFlashMode_setsFlashModeOfImageCaptureInstance() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final CameraXFlashMode flashMode = io.flutter.plugins.camerax.CameraXFlashMode.AUTO; + api.setFlashMode(instance, flashMode); + + verify(instance).setFlashMode(ImageCapture.FLASH_MODE_AUTO); + } + + @Test + public void + takePicture_sendsRequestToTakePictureWithExpectedConfigurationWhenTemporaryFileCanBeCreated() { + final ProxyApiRegistrar mockApiRegistrar = mock(ProxyApiRegistrar.class); + final Context mockContext = mock(Context.class); + final File mockOutputDir = mock(File.class); + when(mockContext.getCacheDir()).thenReturn(mockOutputDir); + when(mockApiRegistrar.getContext()).thenReturn(mockContext); + + final String filename = "myFile.jpg"; + final ImageCaptureProxyApi api = + new ImageCaptureProxyApi(mockApiRegistrar) { + @Override + ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { + return super.createImageCaptureOutputFileOptions(file); + } + + @NonNull + @Override + ImageCapture.OnImageSavedCallback createOnImageSavedCallback( + @NonNull File file, @NonNull Function1, Unit> callback) { + final File mockFile = mock(File.class); + when(mockFile.getAbsolutePath()).thenReturn(filename); + final ImageCapture.OnImageSavedCallback imageSavedCallback = + super.createOnImageSavedCallback(mockFile, callback); + imageSavedCallback.onImageSaved(mock(ImageCapture.OutputFileResults.class)); + return imageSavedCallback; + } + }; + + final ImageCapture instance = mock(ImageCapture.class); + + try (MockedStatic mockedStaticFile = mockStatic(File.class)) { + final File mockFile = mock(File.class); + mockedStaticFile + .when( + () -> + File.createTempFile( + ImageCaptureProxyApi.TEMPORARY_FILE_NAME, + ImageCaptureProxyApi.JPG_FILE_TYPE, + mockOutputDir)) + .thenReturn(mockFile); + + final String[] result = {null}; + api.takePicture( + instance, + ResultCompat.asCompatCallback( + reply -> { + result[0] = reply.getOrNull(); + return null; + })); + + verify(instance) + .takePicture( + any(ImageCapture.OutputFileOptions.class), + any(Executor.class), + any(ImageCapture.OnImageSavedCallback.class)); + assertEquals(result[0], filename); + } + } + + @Test + public void takePicture_sendsErrorWhenTemporaryFileCannotBeCreated() { + final ProxyApiRegistrar mockApiRegistrar = mock(ProxyApiRegistrar.class); + final Context mockContext = mock(Context.class); + final File mockOutputDir = mock(File.class); + when(mockContext.getCacheDir()).thenReturn(mockOutputDir); + when(mockApiRegistrar.getContext()).thenReturn(mockContext); + + final PigeonApiImageCapture api = new ImageCaptureProxyApi(mockApiRegistrar); + + final ImageCapture instance = mock(ImageCapture.class); + + try (MockedStatic mockedStaticFile = mockStatic(File.class)) { + final IOException fileCreationException = new IOException(); + mockedStaticFile + .when( + () -> + File.createTempFile( + ImageCaptureProxyApi.TEMPORARY_FILE_NAME, + ImageCaptureProxyApi.JPG_FILE_TYPE, + mockOutputDir)) + .thenThrow(fileCreationException); + + final Throwable[] result = {null}; + api.takePicture( + instance, + ResultCompat.asCompatCallback( + reply -> { + result[0] = reply.exceptionOrNull(); + return null; + })); + + verifyNoInteractions(instance); + assertEquals(result[0], fileCreationException); + } + } + + @Test + public void takePicture_onImageSavedCallbackCanSendsError() { + final ProxyApiRegistrar mockApiRegistrar = mock(ProxyApiRegistrar.class); + final Context mockContext = mock(Context.class); + final File mockOutputDir = mock(File.class); + when(mockContext.getCacheDir()).thenReturn(mockOutputDir); + when(mockApiRegistrar.getContext()).thenReturn(mockContext); + + final ImageCaptureException captureException = mock(ImageCaptureException.class); + final ImageCaptureProxyApi api = + new ImageCaptureProxyApi(mockApiRegistrar) { + @Override + ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { + return super.createImageCaptureOutputFileOptions(file); + } + + @NonNull + @Override + ImageCapture.OnImageSavedCallback createOnImageSavedCallback( + @NonNull File file, @NonNull Function1, Unit> callback) { + final ImageCapture.OnImageSavedCallback imageSavedCallback = + super.createOnImageSavedCallback(mock(File.class), callback); + imageSavedCallback.onError(captureException); + return imageSavedCallback; + } + }; + + final ImageCapture instance = mock(ImageCapture.class); + + try (MockedStatic mockedStaticFile = mockStatic(File.class)) { + final File mockFile = mock(File.class); + mockedStaticFile + .when( + () -> + File.createTempFile( + ImageCaptureProxyApi.TEMPORARY_FILE_NAME, + ImageCaptureProxyApi.JPG_FILE_TYPE, + mockOutputDir)) + .thenReturn(mockFile); + + final Throwable[] result = {null}; + api.takePicture( + instance, + ResultCompat.asCompatCallback( + reply -> { + result[0] = reply.exceptionOrNull(); + return null; + })); + + verify(instance) + .takePicture( + any(ImageCapture.OutputFileOptions.class), + any(Executor.class), + any(ImageCapture.OnImageSavedCallback.class)); + assertEquals(result[0], captureException); + } + } + + @Test + public void setTargetRotation_makesCallToSetTargetRotation() { + final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); + + final ImageCapture instance = mock(ImageCapture.class); + final long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation((int) rotation); + } +} From 542cd06a336a94399698a27f0e7f7da318fcc954 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 14:45:13 -0500 Subject: [PATCH 098/148] live data --- .../camerax/ImageProxyProxyApiTest.java | 75 ------- .../plugins/camerax/ImageProxyTest.java | 195 +++++++----------- .../plugins/camerax/LiveDataProxyApiTest.java | 150 ++++++++------ 3 files changed, 162 insertions(+), 258 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java deleted file mode 100644 index f33a86c3acf..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyProxyApiTest.java +++ /dev/null @@ -1,75 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.ImageProxy -//import androidx.camera.core.ImageProxy.PlaneProxy -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ImageProxyProxyApiTest { -// @Test -// public void format() { -// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); -// -// final ImageProxy instance = mock(ImageProxy.class); -// final Long value = 0; -// when(instance.getFormat()).thenReturn(value); -// -// assertEquals(value, api.format(instance)); -// } -// -// @Test -// public void width() { -// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); -// -// final ImageProxy instance = mock(ImageProxy.class); -// final Long value = 0; -// when(instance.getWidth()).thenReturn(value); -// -// assertEquals(value, api.width(instance)); -// } -// -// @Test -// public void height() { -// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); -// -// final ImageProxy instance = mock(ImageProxy.class); -// final Long value = 0; -// when(instance.getHeight()).thenReturn(value); -// -// assertEquals(value, api.height(instance)); -// } -// -// @Test -// public void getPlanes() { -// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); -// -// final ImageProxy instance = mock(ImageProxy.class); -// final List value = Arrays.asList(mock(PlaneProxy.class)); -// when(instance.getPlanes()).thenReturn(value); -// -// assertEquals(value, api.getPlanes(instance )); -// } -// -// @Test -// public void close() { -// final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); -// -// final ImageProxy instance = mock(ImageProxy.class); -// api.close(instance ); -// -// verify(instance).close(); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java index d0bfd62fb7c..b26f4e6d792 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java @@ -1,119 +1,76 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.ImageProxy; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ImageProxyFlutterApi; -//import java.nio.ByteBuffer; -//import java.util.List; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.annotation.Config; -// -//public class ImageProxyTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// @Mock public ImageProxy mockImageProxy; -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public ImageProxyFlutterApi mockFlutterApi; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Config(sdk = 21) -// @Test -// public void getPlanes_returnsExpectedPlanesFromExpectedImageProxyInstance() { -// final ImageProxyHostApiImpl hostApi = -// new ImageProxyHostApiImpl(mockBinaryMessenger, instanceManager); -// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); -// final PlaneProxyFlutterApiImpl mockPlaneProxyFlutterApiImpl = -// mock(PlaneProxyFlutterApiImpl.class); -// final long instanceIdentifier = 24; -// final long mockPlaneProxyIdentifier = 45; -// final ImageProxy.PlaneProxy mockPlaneProxy = mock(ImageProxy.PlaneProxy.class); -// final ImageProxy.PlaneProxy[] returnValue = new ImageProxy.PlaneProxy[] {mockPlaneProxy}; -// final ByteBuffer mockByteBuffer = mock(ByteBuffer.class); -// final int bufferRemaining = 23; -// final byte[] buffer = new byte[bufferRemaining]; -// final int pixelStride = 2; -// final int rowStride = 65; -// -// instanceManager.addDartCreatedInstance(mockImageProxy, instanceIdentifier); -// -// hostApi.cameraXProxy = mockCameraXProxy; -// hostApi.planeProxyFlutterApiImpl = mockPlaneProxyFlutterApiImpl; -// -// when(mockImageProxy.getPlanes()).thenReturn(returnValue); -// when(mockPlaneProxy.getBuffer()).thenReturn(mockByteBuffer); -// when(mockByteBuffer.remaining()).thenReturn(bufferRemaining); -// when(mockCameraXProxy.getBytesFromBuffer(bufferRemaining)).thenReturn(buffer); -// when(mockPlaneProxy.getPixelStride()).thenReturn(pixelStride); -// when(mockPlaneProxy.getRowStride()).thenReturn(rowStride); -// -// final List result = hostApi.getPlanes(instanceIdentifier); -// -// verify(mockImageProxy).getPlanes(); -// verify(mockPlaneProxyFlutterApiImpl) -// .create( -// eq(mockPlaneProxy), -// eq(buffer), -// eq(Long.valueOf(pixelStride)), -// eq(Long.valueOf(rowStride)), -// any()); -// assertEquals(result.size(), 1); -// } -// -// @Test -// public void close_makesCallToCloseExpectedImageProxyInstance() { -// final ImageProxyHostApiImpl hostApi = -// new ImageProxyHostApiImpl(mockBinaryMessenger, instanceManager); -// final long instanceIdentifier = 9; -// -// instanceManager.addDartCreatedInstance(mockImageProxy, instanceIdentifier); -// -// hostApi.close(instanceIdentifier); -// -// verify(mockImageProxy).close(); -// } -// -// @Test -// public void flutterApiCreate_makesCallToDartCreate() { -// final ImageProxyFlutterApiImpl flutterApi = -// new ImageProxyFlutterApiImpl(mockBinaryMessenger, instanceManager); -// final long format = 3; -// final long height = 2; -// final long width = 1; -// -// flutterApi.setApi(mockFlutterApi); -// -// flutterApi.create(mockImageProxy, format, height, width, reply -> {}); -// final long instanceIdentifier = -// Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockImageProxy)); -// -// verify(mockFlutterApi).create(eq(instanceIdentifier), eq(format), eq(height), eq(width), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageProxy; +import androidx.camera.core.ImageProxy.PlaneProxy; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; + +import java.util.Collections; +import java.util.List; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ImageProxyTest { + @Test + public void format() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final long value = 0; + when(instance.getFormat()).thenReturn((int) value); + + assertEquals(value, api.format(instance)); + } + + @Test + public void width() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final long value = 0; + when(instance.getWidth()).thenReturn((int) value); + + assertEquals(value, api.width(instance)); + } + + @Test + public void height() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final long value = 0; + when(instance.getHeight()).thenReturn((int) value); + + assertEquals(value, api.height(instance)); + } + + @Test + public void getPlanes() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + final List value = Collections.singletonList(mock(PlaneProxy.class)); + when(instance.getPlanes()).thenReturn(value.toArray(new PlaneProxy[]{})); + + assertEquals(value, api.getPlanes(instance)); + } + + @Test + public void close() { + final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); + + final ImageProxy instance = mock(ImageProxy.class); + api.close(instance ); + + verify(instance).close(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java index 492801ba430..449858ca606 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java @@ -1,64 +1,86 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper -//import androidx.lifecycle.Observer<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class LiveDataProxyApiTest { -// @Test -// public void type() { -// final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); -// -// final LiveData instance = mock(LiveData.class); -// final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; -// when(instance.getType()).thenReturn(value); -// -// assertEquals(value, api.type(instance)); -// } -// -// @Test -// public void observe() { -// final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); -// -// final LiveData instance = mock(LiveData.class); -// final androidx.lifecycle.Observer<*> observer = mock(Observer.class); -// api.observe(instance, observer); -// -// verify(instance).observe(observer); -// } -// -// @Test -// public void removeObservers() { -// final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); -// -// final LiveData instance = mock(LiveData.class); -// api.removeObservers(instance ); -// -// verify(instance).removeObservers(); -// } -// -// @Test -// public void getValue() { -// final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); -// -// final LiveData instance = mock(LiveData.class); -// final Any value = -1; -// when(instance.getValue()).thenReturn(value); -// -// assertEquals(value, api.getValue(instance )); -// } -// -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; + +import androidx.annotation.Nullable; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.Observer; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import static org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class LiveDataProxyApiTest { + @Test + public void type() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + final LiveDataWrapper instance = new LiveDataWrapper(mock(LiveData.class), value); + + assertEquals(value, api.type(instance)); + } + + @SuppressWarnings("unchecked") + @Test + public void observe() { + final PigeonApiLiveData api = new TestProxyApiRegistrar() { + @Nullable + @Override + public LifecycleOwner getLifecycleOwner() { + return mock(LifecycleOwner.class); + } + }.getPigeonApiLiveData(); + + final LiveData liveData = mock(LiveData.class); + final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); + + final Observer observer = mock(Observer.class); + api.observe(instance, observer); + + verify(liveData).observe(any(LifecycleOwner.class), eq(observer)); + } + + @SuppressWarnings("unchecked") + @Test + public void removeObservers() { + final PigeonApiLiveData api = new TestProxyApiRegistrar() { + @Nullable + @Override + public LifecycleOwner getLifecycleOwner() { + return mock(LifecycleOwner.class); + } + }.getPigeonApiLiveData(); + + final LiveData liveData = mock(LiveData.class); + final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); + + api.removeObservers(instance); + + verify(liveData).removeObservers(any(LifecycleOwner.class)); + } + + @SuppressWarnings("unchecked") + @Test + public void getValue() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData liveData = mock(LiveData.class); + final String result = "result"; + when(liveData.getValue()).thenReturn(result); + final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); + + assertEquals(result, api.getValue(instance)); + } +} From 50eb1310def3d83d9686be9d3c5b7c295c8fb733 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 14:51:21 -0500 Subject: [PATCH 099/148] metering point tests --- ...entedMeteringPointFactoryProxyApiTest.java | 28 -- .../plugins/camerax/LiveDataProxyApiTest.java | 86 ------ .../flutter/plugins/camerax/LiveDataTest.java | 238 ++++++---------- .../MeteringPointFactoryProxyApiTest.java | 48 ---- .../camerax/MeteringPointFactoryTest.java | 45 +++ .../camerax/MeteringPointProxyApiTest.java | 31 --- .../plugins/camerax/MeteringPointTest.java | 259 ++---------------- .../plugins/camerax/ObserverProxyApiTest.java | 1 - 8 files changed, 157 insertions(+), 579 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java deleted file mode 100644 index 512ae6a55db..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DisplayOrientedMeteringPointFactoryProxyApiTest.java +++ /dev/null @@ -1,28 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.DisplayOrientedMeteringPointFactory -//import androidx.camera.core.CameraInfo -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class DisplayOrientedMeteringPointFactoryProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiDisplayOrientedMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiDisplayOrientedMeteringPointFactory(); -// -// assertTrue(api.pigeon_defaultConstructor(mock(CameraInfo.class), 1.0, 1.0) instanceof DisplayOrientedMeteringPointFactoryProxyApi.DisplayOrientedMeteringPointFactory); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java deleted file mode 100644 index 449858ca606..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataProxyApiTest.java +++ /dev/null @@ -1,86 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; - -import androidx.annotation.Nullable; -import androidx.lifecycle.LifecycleOwner; -import androidx.lifecycle.LiveData; -import androidx.lifecycle.Observer; -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import static org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class LiveDataProxyApiTest { - @Test - public void type() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; - final LiveDataWrapper instance = new LiveDataWrapper(mock(LiveData.class), value); - - assertEquals(value, api.type(instance)); - } - - @SuppressWarnings("unchecked") - @Test - public void observe() { - final PigeonApiLiveData api = new TestProxyApiRegistrar() { - @Nullable - @Override - public LifecycleOwner getLifecycleOwner() { - return mock(LifecycleOwner.class); - } - }.getPigeonApiLiveData(); - - final LiveData liveData = mock(LiveData.class); - final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); - - final Observer observer = mock(Observer.class); - api.observe(instance, observer); - - verify(liveData).observe(any(LifecycleOwner.class), eq(observer)); - } - - @SuppressWarnings("unchecked") - @Test - public void removeObservers() { - final PigeonApiLiveData api = new TestProxyApiRegistrar() { - @Nullable - @Override - public LifecycleOwner getLifecycleOwner() { - return mock(LifecycleOwner.class); - } - }.getPigeonApiLiveData(); - - final LiveData liveData = mock(LiveData.class); - final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); - - api.removeObservers(instance); - - verify(liveData).removeObservers(any(LifecycleOwner.class)); - } - - @SuppressWarnings("unchecked") - @Test - public void getValue() { - final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - - final LiveData liveData = mock(LiveData.class); - final String result = "result"; - when(liveData.getValue()).thenReturn(result); - final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); - - assertEquals(result, api.getValue(instance)); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java index e5ecea79ac5..0fa8cfbf609 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java @@ -1,154 +1,84 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.fail; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.CameraState; -//import androidx.camera.core.ZoomState; -//import androidx.lifecycle.LifecycleOwner; -//import androidx.lifecycle.LiveData; -//import androidx.lifecycle.Observer; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataFlutterApi; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedType; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.LiveDataSupportedTypeData; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.ArgumentCaptor; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class LiveDataTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public LiveData mockLiveData; -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public LiveDataFlutterApi mockFlutterApi; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// @SuppressWarnings({"unchecked", "rawtypes"}) -// public void observe_addsExpectedObserverToLiveDataInstance() { -// final LiveDataHostApiImpl hostApi = -// new LiveDataHostApiImpl(mockBinaryMessenger, instanceManager); -// final Observer mockObserver = mock(Observer.class); -// final long observerIdentifier = 20; -// final long instanceIdentifier = 29; -// final LifecycleOwner mockLifecycleOwner = mock(LifecycleOwner.class); -// -// instanceManager.addDartCreatedInstance(mockObserver, observerIdentifier); -// instanceManager.addDartCreatedInstance(mockLiveData, instanceIdentifier); -// -// hostApi.setLifecycleOwner(mockLifecycleOwner); -// hostApi.observe(instanceIdentifier, observerIdentifier); -// -// verify(mockLiveData).observe(mockLifecycleOwner, mockObserver); -// } -// -// @Test -// public void removeObservers_makesCallToRemoveObserversFromLiveDataInstance() { -// final LiveDataHostApiImpl hostApi = -// new LiveDataHostApiImpl(mockBinaryMessenger, instanceManager); -// final long instanceIdentifier = 10; -// final LifecycleOwner mockLifecycleOwner = mock(LifecycleOwner.class); -// -// instanceManager.addDartCreatedInstance(mockLiveData, instanceIdentifier); -// -// hostApi.setLifecycleOwner(mockLifecycleOwner); -// hostApi.removeObservers(instanceIdentifier); -// -// verify(mockLiveData).removeObservers(mockLifecycleOwner); -// } -// -// @Test -// @SuppressWarnings("unchecked") -// public void getValue_returnsExpectedValue() { -// final LiveDataHostApiImpl hostApi = -// new LiveDataHostApiImpl(mockBinaryMessenger, instanceManager); -// -// for (LiveDataSupportedType supportedType : LiveDataSupportedType.values()) { -// LiveDataSupportedTypeData typeData = -// new LiveDataSupportedTypeData.Builder().setValue(supportedType).build(); -// -// switch (supportedType) { -// case CAMERA_STATE: -// CameraState mockCameraState = mock(CameraState.class); -// final Long mockCameraStateIdentifier = 56L; -// final long instanceIdentifier = 33; -// -// instanceManager.addDartCreatedInstance(mockLiveData, instanceIdentifier); -// instanceManager.addDartCreatedInstance(mockCameraState, mockCameraStateIdentifier); -// -// when(mockLiveData.getValue()).thenReturn(mockCameraState); -// when(mockCameraState.getType()).thenReturn(CameraState.Type.CLOSED); -// when(mockCameraState.getError()).thenReturn(null); -// -// assertEquals(hostApi.getValue(instanceIdentifier, typeData), mockCameraStateIdentifier); -// break; -// case ZOOM_STATE: -// final LiveData mockLiveZoomState = (LiveData) mock(LiveData.class); -// ZoomState mockZoomState = mock(ZoomState.class); -// final Long mockLiveZoomStateIdentifier = 22L; -// final Long mockZoomStateIdentifier = 8L; -// -// when(mockLiveZoomState.getValue()).thenReturn(mockZoomState); -// instanceManager.addDartCreatedInstance(mockLiveZoomState, mockLiveZoomStateIdentifier); -// instanceManager.addDartCreatedInstance(mockZoomState, mockZoomStateIdentifier); -// -// assertEquals( -// hostApi.getValue(mockLiveZoomStateIdentifier, typeData), mockZoomStateIdentifier); -// break; -// default: -// fail( -// "The LiveDataSupportedType " -// + supportedType.toString() -// + "is unhandled by this test."); -// } -// } -// } -// -// @Test -// public void flutterApiCreate_makesCallToDartToCreateInstance() { -// final LiveDataFlutterApiWrapper flutterApi = -// new LiveDataFlutterApiWrapper(mockBinaryMessenger, instanceManager); -// final LiveDataSupportedType liveDataType = LiveDataSupportedType.CAMERA_STATE; -// -// flutterApi.setApi(mockFlutterApi); -// -// final ArgumentCaptor liveDataSupportedTypeDataCaptor = -// ArgumentCaptor.forClass(LiveDataSupportedTypeData.class); -// -// flutterApi.create(mockLiveData, liveDataType, reply -> {}); -// -// final long instanceIdentifier = -// Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockLiveData)); -// verify(mockFlutterApi) -// .create(eq(instanceIdentifier), liveDataSupportedTypeDataCaptor.capture(), any()); -// assertEquals(liveDataSupportedTypeDataCaptor.getValue().getValue(), liveDataType); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; + +import androidx.annotation.Nullable; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.Observer; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class LiveDataTest { + @Test + public void type() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + final LiveDataWrapper instance = new LiveDataWrapper(mock(LiveData.class), value); + + assertEquals(value, api.type(instance)); + } + + @SuppressWarnings("unchecked") + @Test + public void observe() { + final PigeonApiLiveData api = new TestProxyApiRegistrar() { + @Nullable + @Override + public LifecycleOwner getLifecycleOwner() { + return mock(LifecycleOwner.class); + } + }.getPigeonApiLiveData(); + + final LiveData liveData = mock(LiveData.class); + final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); + + final Observer observer = mock(Observer.class); + api.observe(instance, observer); + + verify(liveData).observe(any(LifecycleOwner.class), eq(observer)); + } + + @SuppressWarnings("unchecked") + @Test + public void removeObservers() { + final PigeonApiLiveData api = new TestProxyApiRegistrar() { + @Nullable + @Override + public LifecycleOwner getLifecycleOwner() { + return mock(LifecycleOwner.class); + } + }.getPigeonApiLiveData(); + + final LiveData liveData = mock(LiveData.class); + final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); + + api.removeObservers(instance); + + verify(liveData).removeObservers(any(LifecycleOwner.class)); + } + + @SuppressWarnings("unchecked") + @Test + public void getValue() { + final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); + + final LiveData liveData = mock(LiveData.class); + final String result = "result"; + when(liveData.getValue()).thenReturn(result); + final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); + + assertEquals(result, api.getValue(instance)); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java deleted file mode 100644 index 1ac6dd5d6cf..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApiTest.java +++ /dev/null @@ -1,48 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.MeteringPointFactory -//import androidx.camera.core.MeteringPoint -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class MeteringPointFactoryProxyApiTest { -// @Test -// public void createPoint() { -// final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); -// -// final MeteringPointFactory instance = mock(MeteringPointFactory.class); -// final Double x = 1.0; -// final Double y = 1.0; -// final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); -// when(instance.createPoint(x, y)).thenReturn(value); -// -// assertEquals(value, api.createPoint(instance, x, y)); -// } -// -// @Test -// public void createPointWithSize() { -// final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); -// -// final MeteringPointFactory instance = mock(MeteringPointFactory.class); -// final Double x = 1.0; -// final Double y = 1.0; -// final Double size = 1.0; -// final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); -// when(instance.createPointWithSize(x, y, size)).thenReturn(value); -// -// assertEquals(value, api.createPointWithSize(instance, x, y, size)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java new file mode 100644 index 00000000000..d08bce53b6b --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java @@ -0,0 +1,45 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.MeteringPointFactory; +import androidx.camera.core.MeteringPoint; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MeteringPointFactoryTest { + @Test + public void createPoint() { + final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + + final MeteringPointFactory instance = mock(MeteringPointFactory.class); + final double x = 1.0; + final double y = 2.0; + final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); + when(instance.createPoint((float) x, (float) y)).thenReturn(value); + + assertEquals(value, api.createPoint(instance, x, y)); + } + + @Test + public void createPointWithSize() { + final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + + final MeteringPointFactory instance = mock(MeteringPointFactory.class); + final double x = 1.0; + final double y = 2.0; + final double size = 3.0; + final androidx.camera.core.MeteringPoint value = mock(MeteringPoint.class); + when(instance.createPoint((float) x, (float) y, (float) size)).thenReturn(value); + + assertEquals(value, api.createPointWithSize(instance, x, y, size)); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java deleted file mode 100644 index de9bb3a5e46..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointProxyApiTest.java +++ /dev/null @@ -1,31 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.MeteringPoint -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class MeteringPointProxyApiTest { -// @Test -// public void getSize() { -// final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); -// -// final MeteringPoint instance = mock(MeteringPoint.class); -// final Double value = 1.0; -// when(instance.getSize()).thenReturn(value); -// -// assertEquals(value, api.getSize(instance )); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java index dfc73b0125c..3dba2c3b6c3 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java @@ -1,231 +1,28 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.app.Activity; -//import android.content.Context; -//import android.view.Display; -//import android.view.WindowManager; -//import androidx.camera.core.CameraInfo; -//import androidx.camera.core.DisplayOrientedMeteringPointFactory; -//import androidx.camera.core.MeteringPoint; -//import androidx.camera.core.MeteringPointFactory; -//import io.flutter.plugin.common.BinaryMessenger; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.Mock; -//import org.mockito.MockedStatic; -//import org.mockito.Mockito; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.mockito.stubbing.Answer; -//import org.robolectric.RobolectricTestRunner; -//import org.robolectric.annotation.Config; -// -//@RunWith(RobolectricTestRunner.class) -//public class MeteringPointTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public MeteringPoint meteringPoint; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// @Config(sdk = 30) -// public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified_AboveAndroid30() { -// final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = -// spy(new MeteringPointHostApiImpl.MeteringPointProxy()); -// final MeteringPointHostApiImpl hostApi = -// new MeteringPointHostApiImpl(testInstanceManager, proxySpy); -// final Long meteringPointIdentifier = 78L; -// final Float x = 0.25f; -// final Float y = 0.18f; -// final Float size = 0.6f; -// final Float surfaceWidth = 1f; -// final Float surfaceHeight = 1f; -// final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = -// mock(DisplayOrientedMeteringPointFactory.class); -// final Activity mockActivity = mock(Activity.class); -// final Display mockDisplay = mock(Display.class); -// final CameraInfo mockCameraInfo = mock(CameraInfo.class); -// final long mockCameraInfoId = 55L; -// -// hostApi.setActivity(mockActivity); -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); -// -// when(mockActivity.getDisplay()).thenReturn(mockDisplay); -// when(proxySpy.getDisplayOrientedMeteringPointFactory( -// mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) -// .thenReturn(mockDisplayOrientedMeteringPointFactory); -// when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y, size)).thenReturn(meteringPoint); -// -// hostApi.create( -// meteringPointIdentifier, -// x.doubleValue(), -// y.doubleValue(), -// size.doubleValue(), -// mockCameraInfoId); -// -// verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y, size); -// assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); -// } -// -// @Test -// @Config(sdk = 29) -// @SuppressWarnings("deprecation") -// public void hostApiCreate_createsExpectedMeteringPointWithSizeSpecified_BelowAndroid30() { -// final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = -// spy(new MeteringPointHostApiImpl.MeteringPointProxy()); -// final MeteringPointHostApiImpl hostApi = -// new MeteringPointHostApiImpl(testInstanceManager, proxySpy); -// final Long meteringPointIdentifier = 78L; -// final Float x = 0.3f; -// final Float y = 0.2f; -// final Float size = 6f; -// final Float surfaceWidth = 1f; -// final Float surfaceHeight = 1f; -// final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = -// mock(DisplayOrientedMeteringPointFactory.class); -// final Activity mockActivity = mock(Activity.class); -// final WindowManager mockWindowManager = mock(WindowManager.class); -// final Display mockDisplay = mock(Display.class); -// final CameraInfo mockCameraInfo = mock(CameraInfo.class); -// final long mockCameraInfoId = 5L; -// -// hostApi.setActivity(mockActivity); -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); -// -// when(mockActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mockWindowManager); -// when(mockWindowManager.getDefaultDisplay()).thenReturn(mockDisplay); -// when(proxySpy.getDisplayOrientedMeteringPointFactory( -// mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) -// .thenReturn(mockDisplayOrientedMeteringPointFactory); -// when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y, size)).thenReturn(meteringPoint); -// -// hostApi.create( -// meteringPointIdentifier, -// x.doubleValue(), -// y.doubleValue(), -// size.doubleValue(), -// mockCameraInfoId); -// -// verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y, size); -// assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); -// } -// -// @Test -// @Config(sdk = 30) -// public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified_AboveAndroid30() { -// final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = -// spy(new MeteringPointHostApiImpl.MeteringPointProxy()); -// final MeteringPointHostApiImpl hostApi = -// new MeteringPointHostApiImpl(testInstanceManager, proxySpy); -// final Long meteringPointIdentifier = 78L; -// final Float x = 0.23f; -// final Float y = 0.32f; -// final Float surfaceWidth = 1f; -// final Float surfaceHeight = 1f; -// final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = -// mock(DisplayOrientedMeteringPointFactory.class); -// final Activity mockActivity = mock(Activity.class); -// final Display mockDisplay = mock(Display.class); -// final CameraInfo mockCameraInfo = mock(CameraInfo.class); -// final long mockCameraInfoId = 6L; -// -// hostApi.setActivity(mockActivity); -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); -// -// when(mockActivity.getDisplay()).thenReturn(mockDisplay); -// when(proxySpy.getDisplayOrientedMeteringPointFactory( -// mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) -// .thenReturn(mockDisplayOrientedMeteringPointFactory); -// when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y)).thenReturn(meteringPoint); -// -// hostApi.create( -// meteringPointIdentifier, x.doubleValue(), y.doubleValue(), null, mockCameraInfoId); -// -// verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y); -// assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); -// } -// -// @Test -// @Config(sdk = 29) -// @SuppressWarnings("deprecation") -// public void hostApiCreate_createsExpectedMeteringPointWithoutSizeSpecified_BelowAndroid30() { -// final MeteringPointHostApiImpl.MeteringPointProxy proxySpy = -// spy(new MeteringPointHostApiImpl.MeteringPointProxy()); -// final MeteringPointHostApiImpl hostApi = -// new MeteringPointHostApiImpl(testInstanceManager, proxySpy); -// final Long meteringPointIdentifier = 78L; -// final Float x = 0.1f; -// final Float y = 0.8f; -// final Float surfaceWidth = 1f; -// final Float surfaceHeight = 1f; -// final DisplayOrientedMeteringPointFactory mockDisplayOrientedMeteringPointFactory = -// mock(DisplayOrientedMeteringPointFactory.class); -// final Activity mockActivity = mock(Activity.class); -// final WindowManager mockWindowManager = mock(WindowManager.class); -// final Display mockDisplay = mock(Display.class); -// final CameraInfo mockCameraInfo = mock(CameraInfo.class); -// final long mockCameraInfoId = 7L; -// -// hostApi.setActivity(mockActivity); -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, mockCameraInfoId); -// -// when(mockActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mockWindowManager); -// when(mockWindowManager.getDefaultDisplay()).thenReturn(mockDisplay); -// when(proxySpy.getDisplayOrientedMeteringPointFactory( -// mockDisplay, mockCameraInfo, surfaceWidth, surfaceHeight)) -// .thenReturn(mockDisplayOrientedMeteringPointFactory); -// when(mockDisplayOrientedMeteringPointFactory.createPoint(x, y)).thenReturn(meteringPoint); -// -// hostApi.create( -// meteringPointIdentifier, x.doubleValue(), y.doubleValue(), null, mockCameraInfoId); -// -// verify(mockDisplayOrientedMeteringPointFactory).createPoint(x, y); -// assertEquals(testInstanceManager.getInstance(meteringPointIdentifier), meteringPoint); -// } -// -// @Test -// public void getDefaultPointSize_returnsExpectedSize() { -// try (MockedStatic mockedMeteringPointFactory = -// Mockito.mockStatic(MeteringPointFactory.class)) { -// final MeteringPointHostApiImpl meteringPointHostApiImpl = -// new MeteringPointHostApiImpl(testInstanceManager); -// final Long meteringPointIdentifier = 93L; -// final Long index = 2L; -// final Double defaultPointSize = 4D; -// -// testInstanceManager.addDartCreatedInstance(meteringPoint, meteringPointIdentifier); -// -// mockedMeteringPointFactory -// .when(() -> MeteringPointFactory.getDefaultPointSize()) -// .thenAnswer((Answer) invocation -> defaultPointSize.floatValue()); -// -// assertEquals(meteringPointHostApiImpl.getDefaultPointSize(), defaultPointSize); -// mockedMeteringPointFactory.verify(() -> MeteringPointFactory.getDefaultPointSize()); -// } -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.MeteringPoint; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MeteringPointTest { + @Test + public void getSize() { + final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); + + final MeteringPoint instance = mock(MeteringPoint.class); + final double value = 1.0; + when(instance.getSize()).thenReturn((float) value); + + assertEquals(value, api.getSize(instance ), 0.1); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java index cb517471795..0cedc3370b9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java @@ -35,5 +35,4 @@ // // verify(mockApi).onChanged(eq(instance), eq(value), any()); // } -// //} From 2f8e3c2001ea5267271c4e1edac4c5ec47e9bf23 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 15:20:39 -0500 Subject: [PATCH 100/148] pending recording --- .../plugins/camerax/ImageProxyTest.java | 20 +- .../flutter/plugins/camerax/LiveDataTest.java | 57 +++--- .../camerax/MeteringPointFactoryTest.java | 17 +- .../plugins/camerax/MeteringPointTest.java | 11 +- .../plugins/camerax/ObserverProxyApiTest.java | 38 ---- .../flutter/plugins/camerax/ObserverTest.java | 160 +++------------- .../camerax/PendingRecordingProxyApiTest.java | 33 ---- .../plugins/camerax/PendingRecordingTest.java | 178 +++++------------- 8 files changed, 122 insertions(+), 392 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java index b26f4e6d792..621adf29802 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java @@ -4,21 +4,17 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ImageProxy; -import androidx.camera.core.ImageProxy.PlaneProxy; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; - -import java.util.Collections; -import java.util.List; - -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.ImageProxy; +import androidx.camera.core.ImageProxy.PlaneProxy; +import java.util.Collections; +import java.util.List; +import org.junit.Test; + public class ImageProxyTest { @Test public void format() { @@ -59,7 +55,7 @@ public void getPlanes() { final ImageProxy instance = mock(ImageProxy.class); final List value = Collections.singletonList(mock(PlaneProxy.class)); - when(instance.getPlanes()).thenReturn(value.toArray(new PlaneProxy[]{})); + when(instance.getPlanes()).thenReturn(value.toArray(new PlaneProxy[] {})); assertEquals(value, api.getPlanes(instance)); } @@ -69,7 +65,7 @@ public void close() { final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); final ImageProxy instance = mock(ImageProxy.class); - api.close(instance ); + api.close(instance); verify(instance).close(); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java index 0fa8cfbf609..9b84be53f28 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java @@ -4,27 +4,27 @@ package io.flutter.plugins.camerax; -import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; - -import androidx.annotation.Nullable; -import androidx.lifecycle.LifecycleOwner; -import androidx.lifecycle.LiveData; -import androidx.lifecycle.Observer; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.annotation.Nullable; +import androidx.lifecycle.LifecycleOwner; +import androidx.lifecycle.LiveData; +import androidx.lifecycle.Observer; +import io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper; +import org.junit.Test; + public class LiveDataTest { @Test public void type() { final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); - final LiveDataSupportedType value = io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; + final LiveDataSupportedType value = + io.flutter.plugins.camerax.LiveDataSupportedType.CAMERA_STATE; final LiveDataWrapper instance = new LiveDataWrapper(mock(LiveData.class), value); assertEquals(value, api.type(instance)); @@ -33,16 +33,18 @@ public void type() { @SuppressWarnings("unchecked") @Test public void observe() { - final PigeonApiLiveData api = new TestProxyApiRegistrar() { - @Nullable - @Override - public LifecycleOwner getLifecycleOwner() { - return mock(LifecycleOwner.class); - } - }.getPigeonApiLiveData(); + final PigeonApiLiveData api = + new TestProxyApiRegistrar() { + @Nullable + @Override + public LifecycleOwner getLifecycleOwner() { + return mock(LifecycleOwner.class); + } + }.getPigeonApiLiveData(); final LiveData liveData = mock(LiveData.class); - final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); + final LiveDataWrapper instance = + new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); final Observer observer = mock(Observer.class); api.observe(instance, observer); @@ -53,16 +55,18 @@ public LifecycleOwner getLifecycleOwner() { @SuppressWarnings("unchecked") @Test public void removeObservers() { - final PigeonApiLiveData api = new TestProxyApiRegistrar() { - @Nullable - @Override - public LifecycleOwner getLifecycleOwner() { - return mock(LifecycleOwner.class); - } - }.getPigeonApiLiveData(); + final PigeonApiLiveData api = + new TestProxyApiRegistrar() { + @Nullable + @Override + public LifecycleOwner getLifecycleOwner() { + return mock(LifecycleOwner.class); + } + }.getPigeonApiLiveData(); final LiveData liveData = mock(LiveData.class); - final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); + final LiveDataWrapper instance = + new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); api.removeObservers(instance); @@ -77,7 +81,8 @@ public void getValue() { final LiveData liveData = mock(LiveData.class); final String result = "result"; when(liveData.getValue()).thenReturn(result); - final LiveDataWrapper instance = new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); + final LiveDataWrapper instance = + new LiveDataWrapper(liveData, LiveDataSupportedType.CAMERA_STATE); assertEquals(result, api.getValue(instance)); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java index d08bce53b6b..349f10700e5 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java @@ -4,21 +4,19 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.MeteringPointFactory; -import androidx.camera.core.MeteringPoint; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.MeteringPoint; +import androidx.camera.core.MeteringPointFactory; +import org.junit.Test; + public class MeteringPointFactoryTest { @Test public void createPoint() { - final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + final PigeonApiMeteringPointFactory api = + new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); final MeteringPointFactory instance = mock(MeteringPointFactory.class); final double x = 1.0; @@ -31,7 +29,8 @@ public void createPoint() { @Test public void createPointWithSize() { - final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); + final PigeonApiMeteringPointFactory api = + new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); final MeteringPointFactory instance = mock(MeteringPointFactory.class); final double x = 1.0; diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java index 3dba2c3b6c3..a5974514a97 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java @@ -4,16 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.MeteringPoint; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.MeteringPoint; +import org.junit.Test; + public class MeteringPointTest { @Test public void getSize() { @@ -23,6 +20,6 @@ public void getSize() { final double value = 1.0; when(instance.getSize()).thenReturn((float) value); - assertEquals(value, api.getSize(instance ), 0.1); + assertEquals(value, api.getSize(instance), 0.1); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java deleted file mode 100644 index 0cedc3370b9..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverProxyApiTest.java +++ /dev/null @@ -1,38 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.lifecycle.Observer<*> -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ObserverProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiObserver api = new TestProxyApiRegistrar().getPigeonApiObserver(); -// -// assertTrue(api.pigeon_defaultConstructor() instanceof ObserverProxyApi.ObserverImpl); -// } -// -// @Test -// public void onChanged() { -// final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); -// when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); -// -// final ObserverImpl instance = new ObserverImpl(mockApi); -// final Any value = -1; -// instance.onChanged(value); -// -// verify(mockApi).onChanged(eq(instance), eq(value), any()); -// } -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java index 4a9b464a19c..977c4f5dc7f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java @@ -1,132 +1,28 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertThrows; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.CameraState; -//import androidx.camera.core.ZoomState; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraStateType; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ObserverFlutterApi; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class ObserverTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public ObserverHostApiImpl.ObserverImpl mockObserver; -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public ObserverFlutterApi mockFlutterApi; -// @Mock public ObserverHostApiImpl.ObserverProxy mockProxy; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void create_createsObserverInstance() { -// final ObserverHostApiImpl hostApi = -// new ObserverHostApiImpl(mockBinaryMessenger, instanceManager, mockProxy); -// final long instanceIdentifier = 0; -// -// when(mockProxy.create(mockBinaryMessenger, instanceManager)) -// .thenReturn(mockObserver); -// -// hostApi.create(instanceIdentifier); -// -// assertEquals(instanceManager.getInstance(instanceIdentifier), mockObserver); -// } -// -// @Test -// public void onChanged_makesExpectedCallToDartCallbackForCameraState() { -// final ObserverFlutterApiWrapper flutterApi = -// new ObserverFlutterApiWrapper(mockBinaryMessenger, instanceManager); -// final ObserverHostApiImpl.ObserverImpl instance = -// new ObserverHostApiImpl.ObserverImpl(mockBinaryMessenger, instanceManager); -// final CameraStateFlutterApiWrapper mockCameraStateFlutterApiWrapper = -// mock(CameraStateFlutterApiWrapper.class); -// final long instanceIdentifier = 60; -// final CameraState.StateError testCameraStateError = -// CameraState.StateError.create(CameraState.ERROR_CAMERA_IN_USE); -// final CameraState testCameraState = -// CameraState.create(CameraState.Type.CLOSED, testCameraStateError); -// final Long mockCameraStateIdentifier = instanceManager.addHostCreatedInstance(testCameraState); -// -// flutterApi.setApi(mockFlutterApi); -// instance.setApi(flutterApi); -// flutterApi.cameraStateFlutterApiWrapper = mockCameraStateFlutterApiWrapper; -// -// instanceManager.addDartCreatedInstance(instance, instanceIdentifier); -// -// instance.onChanged(testCameraState); -// -// verify(mockFlutterApi) -// .onChanged( -// eq(instanceIdentifier), eq(Objects.requireNonNull(mockCameraStateIdentifier)), any()); -// verify(mockCameraStateFlutterApiWrapper) -// .create(eq(testCameraState), eq(CameraStateType.CLOSED), eq(testCameraStateError), any()); -// } -// -// @Test -// public void onChanged_makesExpectedCallToDartCallbackForZoomState() { -// final ObserverFlutterApiWrapper flutterApi = -// new ObserverFlutterApiWrapper(mockBinaryMessenger, instanceManager); -// final ObserverHostApiImpl.ObserverImpl instance = -// new ObserverHostApiImpl.ObserverImpl(mockBinaryMessenger, instanceManager); -// final long instanceIdentifier = 2; -// final ZoomStateFlutterApiImpl mockZoomStateFlutterApiImpl = mock(ZoomStateFlutterApiImpl.class); -// final ZoomState mockZoomState = mock(ZoomState.class); -// final Long mockZoomStateIdentifier = instanceManager.addHostCreatedInstance(mockZoomState); -// -// flutterApi.setApi(mockFlutterApi); -// instance.setApi(flutterApi); -// flutterApi.zoomStateFlutterApiImpl = mockZoomStateFlutterApiImpl; -// -// instanceManager.addDartCreatedInstance(instance, instanceIdentifier); -// -// instance.onChanged(mockZoomState); -// -// verify(mockFlutterApi).onChanged(eq(instanceIdentifier), eq(mockZoomStateIdentifier), any()); -// verify(mockZoomStateFlutterApiImpl).create(eq(mockZoomState), any()); -// } -// -// @Test -// public void onChanged_throwsExceptionForUnsupportedLiveDataType() { -// final ObserverFlutterApiWrapper flutterApi = -// new ObserverFlutterApiWrapper(mockBinaryMessenger, instanceManager); -// final ObserverHostApiImpl.ObserverImpl instance = -// new ObserverHostApiImpl.ObserverImpl(mockBinaryMessenger, instanceManager); -// final long instanceIdentifier = 2; -// -// flutterApi.setApi(mockFlutterApi); -// instance.setApi(flutterApi); -// -// instanceManager.addDartCreatedInstance(instance, instanceIdentifier); -// -// assertThrows(UnsupportedOperationException.class, () -> instance.onChanged(mock(Object.class))); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import org.junit.Test; + +public class ObserverTest { + @Test + public void onChanged() { + final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); + when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); + + final ObserverProxyApi.ObserverImpl instance = + new ObserverProxyApi.ObserverImpl<>(mockApi); + final String value = "result"; + instance.onChanged(value); + + verify(mockApi).onChanged(eq(instance), eq(value), any()); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java deleted file mode 100644 index b6621199213..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingProxyApiTest.java +++ /dev/null @@ -1,33 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.PendingRecording -//import androidx.camera.video.Recording -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class PendingRecordingProxyApiTest { -// @Test -// public void start() { -// final PigeonApiPendingRecording api = new TestProxyApiRegistrar().getPigeonApiPendingRecording(); -// -// final PendingRecording instance = mock(PendingRecording.class); -// final VideoRecordEventListener listener = mock(VideoRecordEventListener.class); -// final androidx.camera.video.Recording value = mock(Recording.class); -// when(instance.start(listener)).thenReturn(value); -// -// assertEquals(value, api.start(instance, listener)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java index 87f7054694c..8feee28b227 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java @@ -1,135 +1,43 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.doNothing; -//import static org.mockito.Mockito.doReturn; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.content.Context; -//import androidx.camera.video.PendingRecording; -//import androidx.camera.video.Recording; -//import androidx.camera.video.VideoRecordEvent; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.Objects; -//import java.util.concurrent.Executor; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -// -//@RunWith(RobolectricTestRunner.class) -//public class PendingRecordingTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public PendingRecording mockPendingRecording; -// @Mock public Recording mockRecording; -// @Mock public RecordingFlutterApiImpl mockRecordingFlutterApi; -// @Mock public Context mockContext; -// @Mock public SystemServicesFlutterApiImpl mockSystemServicesFlutterApi; -// @Mock public PendingRecordingFlutterApiImpl mockPendingRecordingFlutterApi; -// @Mock public VideoRecordEvent.Finalize event; -// @Mock public Throwable throwable; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = spy(InstanceManager.create(identifier -> {})); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void testStart() { -// final Long mockPendingRecordingId = 3L; -// final Long mockRecordingId = testInstanceManager.addHostCreatedInstance(mockRecording); -// testInstanceManager.addDartCreatedInstance(mockPendingRecording, mockPendingRecordingId); -// -// doReturn(mockRecording).when(mockPendingRecording).start(any(), any()); -// doNothing().when(mockRecordingFlutterApi).create(any(Recording.class), any()); -// PendingRecordingHostApiImpl spy = -// spy(new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext)); -// doReturn(mock(Executor.class)).when(spy).getExecutor(); -// spy.recordingFlutterApi = mockRecordingFlutterApi; -// assertEquals(spy.start(mockPendingRecordingId), mockRecordingId); -// verify(mockRecordingFlutterApi).create(eq(mockRecording), any()); -// -// testInstanceManager.remove(mockPendingRecordingId); -// testInstanceManager.remove(mockRecordingId); -// } -// -// @Test -// public void testHandleVideoRecordEventSendsError() { -// PendingRecordingHostApiImpl pendingRecordingHostApi = -// new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext); -// pendingRecordingHostApi.systemServicesFlutterApi = mockSystemServicesFlutterApi; -// pendingRecordingHostApi.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; -// final String eventMessage = "example failure message"; -// -// when(event.hasError()).thenReturn(true); -// when(event.getCause()).thenReturn(throwable); -// when(throwable.toString()).thenReturn(eventMessage); -// doNothing().when(mockSystemServicesFlutterApi).sendCameraError(any(), any()); -// -// pendingRecordingHostApi.handleVideoRecordEvent(event); -// -// verify(mockPendingRecordingFlutterApi).sendVideoRecordingFinalizedEvent(any()); -// verify(mockSystemServicesFlutterApi).sendCameraError(eq(eventMessage), any()); -// } -// -// @Test -// public void handleVideoRecordEvent_SendsVideoRecordingFinalizedEvent() { -// PendingRecordingHostApiImpl pendingRecordingHostApi = -// new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext); -// pendingRecordingHostApi.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; -// -// when(event.hasError()).thenReturn(false); -// -// pendingRecordingHostApi.handleVideoRecordEvent(event); -// -// verify(mockPendingRecordingFlutterApi).sendVideoRecordingFinalizedEvent(any()); -// } -// -// @Test -// public void handleVideoRecordEvent_SendsVideoRecordingStartedEvent() { -// PendingRecordingHostApiImpl pendingRecordingHostApi = -// new PendingRecordingHostApiImpl(mockBinaryMessenger, testInstanceManager, mockContext); -// pendingRecordingHostApi.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; -// VideoRecordEvent.Start mockStartEvent = mock(VideoRecordEvent.Start.class); -// -// pendingRecordingHostApi.handleVideoRecordEvent(mockStartEvent); -// -// verify(mockPendingRecordingFlutterApi).sendVideoRecordingStartedEvent(any()); -// } -// -// @Test -// public void flutterApiCreateTest() { -// final PendingRecordingFlutterApiImpl spyPendingRecordingFlutterApi = -// spy(new PendingRecordingFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// -// spyPendingRecordingFlutterApi.create(mockPendingRecording, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull( -// testInstanceManager.getIdentifierForStrongReference(mockPendingRecording)); -// verify(spyPendingRecordingFlutterApi).create(eq(identifier), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import androidx.camera.video.PendingRecording; +import androidx.camera.video.Recording; +import androidx.core.content.ContextCompat; +import java.util.concurrent.Executor; +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.stubbing.Answer; + +public class PendingRecordingTest { + @Test + public void start() { + final PigeonApiPendingRecording api = + new TestProxyApiRegistrar().getPigeonApiPendingRecording(); + + final PendingRecording instance = mock(PendingRecording.class); + final VideoRecordEventListener listener = event -> {}; + final Recording value = mock(Recording.class); + + try (MockedStatic mockedContextCompat = + Mockito.mockStatic(ContextCompat.class)) { + mockedContextCompat + .when(() -> ContextCompat.getMainExecutor(any())) + .thenAnswer((Answer) invocation -> mock(Executor.class)); + + when(instance.start(any(), any())).thenReturn(value); + + assertEquals(value, api.start(instance, listener)); + } + } +} From 6e21dbafeb7fcc25982b4897e389bc9018382cd5 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 17:10:23 -0500 Subject: [PATCH 101/148] start of preview tests --- .../camerax/PlaneProxyProxyApiTest.java | 53 ----- .../plugins/camerax/PlaneProxyTest.java | 99 ++++----- .../plugins/camerax/PreviewProxyApiTest.java | 206 +++++++++++------- 3 files changed, 163 insertions(+), 195 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java deleted file mode 100644 index 8c2b20154b4..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyProxyApiTest.java +++ /dev/null @@ -1,53 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.ImageProxy.PlaneProxy -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class PlaneProxyProxyApiTest { -// @Test -// public void buffer() { -// final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); -// -// final PlaneProxy instance = mock(PlaneProxy.class); -// final ByteArray value = {0xA1}; -// when(instance.getBuffer()).thenReturn(value); -// -// assertEquals(value, api.buffer(instance)); -// } -// -// @Test -// public void pixelStride() { -// final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); -// -// final PlaneProxy instance = mock(PlaneProxy.class); -// final Long value = 0; -// when(instance.getPixelStride()).thenReturn(value); -// -// assertEquals(value, api.pixelStride(instance)); -// } -// -// @Test -// public void rowStride() { -// final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); -// -// final PlaneProxy instance = mock(PlaneProxy.class); -// final Long value = 0; -// when(instance.getRowStride()).thenReturn(value); -// -// assertEquals(value, api.rowStride(instance)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java index a635f5720e9..a6f0f664619 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java @@ -1,58 +1,41 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.verify; -// -//import androidx.camera.core.ImageProxy; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.PlaneProxyFlutterApi; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class PlaneProxyTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// @Mock public ImageProxy.PlaneProxy mockPlaneProxy; -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public PlaneProxyFlutterApi mockFlutterApi; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void flutterApiCreate_makesCallToCreateInstanceWithExpectedIdentifier() { -// final PlaneProxyFlutterApiImpl flutterApi = -// new PlaneProxyFlutterApiImpl(mockBinaryMessenger, instanceManager); -// final byte[] buffer = new byte[23]; -// final long pixelStride = 20; -// final long rowStride = 2; -// -// flutterApi.setApi(mockFlutterApi); -// -// flutterApi.create(mockPlaneProxy, buffer, pixelStride, rowStride, reply -> {}); -// final long instanceIdentifier = -// Objects.requireNonNull(instanceManager.getIdentifierForStrongReference(mockPlaneProxy)); -// -// verify(mockFlutterApi) -// .create(eq(instanceIdentifier), eq(buffer), eq(pixelStride), eq(rowStride), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ImageProxy.PlaneProxy; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import static org.mockito.Mockito.any; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class PlaneProxyTest { + @Test + public void pixelStride() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final long value = 0; + when(instance.getPixelStride()).thenReturn((int) value); + + assertEquals(value, api.pixelStride(instance)); + } + + @Test + public void rowStride() { + final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); + + final PlaneProxy instance = mock(PlaneProxy.class); + final long value = 0; + when(instance.getRowStride()).thenReturn((int) value); + + assertEquals(value, api.rowStride(instance)); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java index 26e9c64ca90..98607eb6ed9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java @@ -1,84 +1,122 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.Preview -//import androidx.camera.core.resolutionselector.ResolutionSelector -//import androidx.camera.core.ResolutionInfo -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class PreviewProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); -// -// assertTrue(api.pigeon_defaultConstructor(0) instanceof PreviewProxyApi.Preview); -// } -// -// @Test -// public void resolutionSelector() { -// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); -// -// final Preview instance = mock(Preview.class); -// final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); -// when(instance.getResolutionSelector()).thenReturn(value); -// -// assertEquals(value, api.resolutionSelector(instance)); -// } -// -// @Test -// public void setSurfaceProvider() { -// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); -// -// final Preview instance = mock(Preview.class); -// final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); -// final Long value = 0; -// when(instance.setSurfaceProvider(systemServicesManager)).thenReturn(value); -// -// assertEquals(value, api.setSurfaceProvider(instance, systemServicesManager)); -// } -// -// @Test -// public void releaseSurfaceProvider() { -// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); -// -// final Preview instance = mock(Preview.class); -// api.releaseSurfaceProvider(instance ); -// -// verify(instance).releaseSurfaceProvider(); -// } -// -// @Test -// public void getResolutionInfo() { -// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); -// -// final Preview instance = mock(Preview.class); -// final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); -// when(instance.getResolutionInfo()).thenReturn(value); -// -// assertEquals(value, api.getResolutionInfo(instance )); -// } -// -// @Test -// public void setTargetRotation() { -// final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); -// -// final Preview instance = mock(Preview.class); -// final Long rotation = 0; -// api.setTargetRotation(instance, rotation); -// -// verify(instance).setTargetRotation(rotation); -// } -// -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.annotation.NonNull; +import androidx.camera.core.ImageAnalysis; +import androidx.camera.core.Preview; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.ResolutionInfo; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.robolectric.RobolectricTestRunner; + +import static org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.view.Surface; + +import io.flutter.view.TextureRegistry; + +@RunWith(RobolectricTestRunner.class) +public class PreviewProxyApiTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); + final long targetResolution = Surface.ROTATION_0; + final Preview instance = + api.pigeon_defaultConstructor(mockResolutionSelector, targetResolution); + + assertEquals(instance.getResolutionSelector(), mockResolutionSelector); + assertEquals(instance.getTargetRotation(), Surface.ROTATION_0); + } + + @Test + public void resolutionSelector() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); + } + + @Test + public void setSurfaceProvider() { + final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + final long textureId = 0; + when(mockSurfaceProducer.id()).thenReturn(textureId); + when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); + final PigeonApiPreview api = new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); + + assertEquals(textureId, api.setSurfaceProvider(instance, systemServicesManager)); + verify(instance).setSurfaceProvider(any(Preview.SurfaceProvider.class)); + } + + @Test + public void releaseSurfaceProvider_makesCallToReleaseFlutterSurfaceTexture() { + final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + when(mockSurfaceProducer.id()).thenReturn(0L); + when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); + final PigeonApiPreview api = new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); + api.setSurfaceProvider(instance, systemServicesManager); + api.releaseSurfaceProvider(instance); + + verify(mockSurfaceProducer).release(); + } + + @Test + public void getResolutionInfo() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); + when(instance.getResolutionInfo()).thenReturn(value); + + assertEquals(value, api.getResolutionInfo(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation((int) rotation); + } +} From a3b5dcb9df387f82f31f4cc18ff59e75f4101343 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 17:29:28 -0500 Subject: [PATCH 102/148] preview test --- .../plugins/camerax/PreviewProxyApiTest.java | 122 ---- .../flutter/plugins/camerax/PreviewTest.java | 536 +++++++++--------- 2 files changed, 263 insertions(+), 395 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java deleted file mode 100644 index 98607eb6ed9..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewProxyApiTest.java +++ /dev/null @@ -1,122 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.annotation.NonNull; -import androidx.camera.core.ImageAnalysis; -import androidx.camera.core.Preview; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.ResolutionInfo; -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.runner.RunWith; -import org.mockito.Mockito; -import org.robolectric.RobolectricTestRunner; - -import static org.mockito.Mockito.any; -import java.util.HashMap; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.view.Surface; - -import io.flutter.view.TextureRegistry; - -@RunWith(RobolectricTestRunner.class) -public class PreviewProxyApiTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); - final long targetResolution = Surface.ROTATION_0; - final Preview instance = - api.pigeon_defaultConstructor(mockResolutionSelector, targetResolution); - - assertEquals(instance.getResolutionSelector(), mockResolutionSelector); - assertEquals(instance.getTargetRotation(), Surface.ROTATION_0); - } - - @Test - public void resolutionSelector() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); - when(instance.getResolutionSelector()).thenReturn(value); - - assertEquals(value, api.resolutionSelector(instance)); - } - - @Test - public void setSurfaceProvider() { - final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); - final long textureId = 0; - when(mockSurfaceProducer.id()).thenReturn(textureId); - when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); - final PigeonApiPreview api = new TestProxyApiRegistrar() { - @NonNull - @Override - TextureRegistry getTextureRegistry() { - return mockTextureRegistry; - } - }.getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); - - assertEquals(textureId, api.setSurfaceProvider(instance, systemServicesManager)); - verify(instance).setSurfaceProvider(any(Preview.SurfaceProvider.class)); - } - - @Test - public void releaseSurfaceProvider_makesCallToReleaseFlutterSurfaceTexture() { - final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); - when(mockSurfaceProducer.id()).thenReturn(0L); - when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); - final PigeonApiPreview api = new TestProxyApiRegistrar() { - @NonNull - @Override - TextureRegistry getTextureRegistry() { - return mockTextureRegistry; - } - }.getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); - api.setSurfaceProvider(instance, systemServicesManager); - api.releaseSurfaceProvider(instance); - - verify(mockSurfaceProducer).release(); - } - - @Test - public void getResolutionInfo() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); - when(instance.getResolutionInfo()).thenReturn(value); - - assertEquals(value, api.getResolutionInfo(instance )); - } - - @Test - public void setTargetRotation() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - - final Preview instance = mock(Preview.class); - final long rotation = 0; - api.setTargetRotation(instance, rotation); - - verify(instance).setTargetRotation((int) rotation); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java index 243cf77fe07..e93ae0a1d5d 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java @@ -1,273 +1,263 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.Mockito.anyString; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.reset; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.verifyNoMoreInteractions; -//import static org.mockito.Mockito.when; -// -//import android.util.Size; -//import android.view.Surface; -//import androidx.camera.core.Preview; -//import androidx.camera.core.SurfaceRequest; -//import androidx.camera.core.resolutionselector.ResolutionSelector; -//import androidx.core.util.Consumer; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.SystemServicesFlutterApi.Reply; -//import io.flutter.view.TextureRegistry; -//import java.util.concurrent.Executor; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.ArgumentCaptor; -//import org.mockito.ArgumentMatchers; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -// -//@RunWith(RobolectricTestRunner.class) -//public class PreviewTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public Preview mockPreview; -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public TextureRegistry mockTextureRegistry; -// @Mock public CameraXProxy mockCameraXProxy; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = spy(InstanceManager.create(identifier -> {})); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void create_createsPreviewWithCorrectConfiguration() { -// final PreviewHostApiImpl previewHostApi = -// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); -// final Preview.Builder mockPreviewBuilder = mock(Preview.Builder.class); -// final int targetRotation = 90; -// final Long previewIdentifier = 3L; -// final ResolutionSelector mockResolutionSelector = mock(ResolutionSelector.class); -// final long mockResolutionSelectorId = 90; -// -// previewHostApi.cameraXProxy = mockCameraXProxy; -// testInstanceManager.addDartCreatedInstance(mockResolutionSelector, mockResolutionSelectorId); -// when(mockCameraXProxy.createPreviewBuilder()).thenReturn(mockPreviewBuilder); -// when(mockPreviewBuilder.build()).thenReturn(mockPreview); -// -// previewHostApi.create( -// previewIdentifier, Long.valueOf(targetRotation), mockResolutionSelectorId); -// -// verify(mockPreviewBuilder).setTargetRotation(targetRotation); -// verify(mockPreviewBuilder).setResolutionSelector(mockResolutionSelector); -// verify(mockPreviewBuilder).build(); -// verify(testInstanceManager).addDartCreatedInstance(mockPreview, previewIdentifier); -// } -// -// @Test -// public void setSurfaceProvider_createsSurfaceProviderAndReturnsTextureEntryId() { -// final PreviewHostApiImpl previewHostApi = -// spy(new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry)); -// final TextureRegistry.SurfaceProducer mockSurfaceProducer = -// mock(TextureRegistry.SurfaceProducer.class); -// final Long previewIdentifier = 5L; -// final Long surfaceProducerEntryId = 120L; -// -// previewHostApi.cameraXProxy = mockCameraXProxy; -// testInstanceManager.addDartCreatedInstance(mockPreview, previewIdentifier); -// -// when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); -// when(mockSurfaceProducer.id()).thenReturn(surfaceProducerEntryId); -// -// final ArgumentCaptor surfaceProviderCaptor = -// ArgumentCaptor.forClass(Preview.SurfaceProvider.class); -// -// // Test that surface provider was set and the surface texture ID was returned. -// assertEquals(previewHostApi.setSurfaceProvider(previewIdentifier), surfaceProducerEntryId); -// verify(mockPreview).setSurfaceProvider(surfaceProviderCaptor.capture()); -// verify(previewHostApi).createSurfaceProvider(mockSurfaceProducer); -// } -// -// @Test -// public void createSurfaceProducer_setsExpectedSurfaceProducerCallback() { -// final PreviewHostApiImpl previewHostApi = -// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); -// final TextureRegistry.SurfaceProducer mockSurfaceProducer = -// mock(TextureRegistry.SurfaceProducer.class); -// final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); -// final ArgumentCaptor callbackCaptor = -// ArgumentCaptor.forClass(TextureRegistry.SurfaceProducer.Callback.class); -// -// when(mockSurfaceRequest.getResolution()).thenReturn(new Size(5, 6)); -// when(mockSurfaceProducer.getSurface()).thenReturn(mock(Surface.class)); -// -// Preview.SurfaceProvider previewSurfaceProvider = -// previewHostApi.createSurfaceProvider(mockSurfaceProducer); -// previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); -// -// verify(mockSurfaceProducer).setCallback(callbackCaptor.capture()); -// -// TextureRegistry.SurfaceProducer.Callback callback = callbackCaptor.getValue(); -// -// // Verify callback's onSurfaceDestroyed invalidates SurfaceRequest. -// simulateSurfaceDestruction(callback); -// verify(mockSurfaceRequest).invalidate(); -// -// reset(mockSurfaceRequest); -// -// // Verify callback's onSurfaceAvailable does not interact with the SurfaceRequest. -// callback.onSurfaceAvailable(); -// verifyNoMoreInteractions(mockSurfaceRequest); -// } -// -// @Test -// public void createSurfaceProvider_createsExpectedPreviewSurfaceProvider() { -// final PreviewHostApiImpl previewHostApi = -// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); -// final TextureRegistry.SurfaceProducer mockSurfaceProducer = -// mock(TextureRegistry.SurfaceProducer.class); -// final Surface mockSurface = mock(Surface.class); -// final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); -// final SurfaceRequest.Result mockSurfaceRequestResult = mock(SurfaceRequest.Result.class); -// final SystemServicesFlutterApiImpl mockSystemServicesFlutterApi = -// mock(SystemServicesFlutterApiImpl.class); -// final int resolutionWidth = 200; -// final int resolutionHeight = 500; -// final Long surfaceProducerEntryId = 120L; -// -// previewHostApi.cameraXProxy = mockCameraXProxy; -// when(mockSurfaceRequest.getResolution()) -// .thenReturn(new Size(resolutionWidth, resolutionHeight)); -// when(mockCameraXProxy.createSystemServicesFlutterApiImpl(mockBinaryMessenger)) -// .thenReturn(mockSystemServicesFlutterApi); -// when(mockSurfaceProducer.getSurface()).thenReturn(mockSurface); -// -// final ArgumentCaptor surfaceCaptor = ArgumentCaptor.forClass(Surface.class); -// @SuppressWarnings("unchecked") -// final ArgumentCaptor> consumerCaptor = -// ArgumentCaptor.forClass(Consumer.class); -// -// Preview.SurfaceProvider previewSurfaceProvider = -// previewHostApi.createSurfaceProvider(mockSurfaceProducer); -// previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); -// -// verify(mockSurfaceProducer).setSize(resolutionWidth, resolutionHeight); -// verify(mockSurfaceRequest) -// .provideSurface(surfaceCaptor.capture(), any(Executor.class), consumerCaptor.capture()); -// -// // Test that the surface derived from the surface texture entry will be provided to the surface -// // request. -// assertEquals(surfaceCaptor.getValue(), mockSurface); -// -// // Test that the Consumer used to handle surface request result releases Flutter surface texture -// // appropriately -// // and sends camera errors appropriately. -// Consumer capturedConsumer = consumerCaptor.getValue(); -// -// // Case where Surface should be released. -// when(mockSurfaceRequestResult.getResultCode()) -// .thenReturn(SurfaceRequest.Result.RESULT_REQUEST_CANCELLED); -// capturedConsumer.accept(mockSurfaceRequestResult); -// verify(mockSurface).release(); -// reset(mockSurface); -// -// when(mockSurfaceRequestResult.getResultCode()) -// .thenReturn(SurfaceRequest.Result.RESULT_REQUEST_CANCELLED); -// capturedConsumer.accept(mockSurfaceRequestResult); -// verify(mockSurface).release(); -// reset(mockSurface); -// -// when(mockSurfaceRequestResult.getResultCode()) -// .thenReturn(SurfaceRequest.Result.RESULT_WILL_NOT_PROVIDE_SURFACE); -// capturedConsumer.accept(mockSurfaceRequestResult); -// verify(mockSurface).release(); -// reset(mockSurface); -// -// when(mockSurfaceRequestResult.getResultCode()) -// .thenReturn(SurfaceRequest.Result.RESULT_SURFACE_USED_SUCCESSFULLY); -// capturedConsumer.accept(mockSurfaceRequestResult); -// verify(mockSurface).release(); -// reset(mockSurface); -// -// // Case where error must be sent. -// when(mockSurfaceRequestResult.getResultCode()) -// .thenReturn(SurfaceRequest.Result.RESULT_INVALID_SURFACE); -// capturedConsumer.accept(mockSurfaceRequestResult); -// verify(mockSurface).release(); -// verify(mockSystemServicesFlutterApi) -// .sendCameraError(anyString(), ArgumentMatchers.>any()); -// } -// -// @Test -// public void releaseFlutterSurfaceTexture_makesCallToReleaseFlutterSurfaceTexture() { -// final PreviewHostApiImpl previewHostApi = -// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); -// final TextureRegistry.SurfaceProducer mockSurfaceProducer = -// mock(TextureRegistry.SurfaceProducer.class); -// -// previewHostApi.flutterSurfaceProducer = mockSurfaceProducer; -// -// previewHostApi.releaseFlutterSurfaceTexture(); -// verify(mockSurfaceProducer).release(); -// } -// -// @Test -// public void getResolutionInfo_makesCallToRetrievePreviewResolutionInfo() { -// final PreviewHostApiImpl previewHostApi = -// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); -// final androidx.camera.core.ResolutionInfo mockResolutionInfo = -// mock(androidx.camera.core.ResolutionInfo.class); -// final Long previewIdentifier = 23L; -// final int resolutionWidth = 500; -// final int resolutionHeight = 200; -// -// testInstanceManager.addDartCreatedInstance(mockPreview, previewIdentifier); -// when(mockPreview.getResolutionInfo()).thenReturn(mockResolutionInfo); -// when(mockResolutionInfo.getResolution()) -// .thenReturn(new Size(resolutionWidth, resolutionHeight)); -// -// ResolutionInfo resolutionInfo = previewHostApi.getResolutionInfo(previewIdentifier); -// assertEquals(resolutionInfo.getWidth(), Long.valueOf(resolutionWidth)); -// assertEquals(resolutionInfo.getHeight(), Long.valueOf(resolutionHeight)); -// } -// -// @Test -// public void setTargetRotation_makesCallToSetTargetRotation() { -// final PreviewHostApiImpl hostApi = -// new PreviewHostApiImpl(mockBinaryMessenger, testInstanceManager, mockTextureRegistry); -// final long instanceIdentifier = 52; -// final int targetRotation = Surface.ROTATION_180; -// -// testInstanceManager.addDartCreatedInstance(mockPreview, instanceIdentifier); -// -// hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); -// -// verify(mockPreview).setTargetRotation(targetRotation); -// } -// -// // TODO(bparrishMines): Replace with inline calls to onSurfaceCleanup once available on stable; -// // see https://github.com/flutter/flutter/issues/16125. This separate method only exists to scope -// // the suppression. -// @SuppressWarnings({"deprecation", "removal"}) -// void simulateSurfaceDestruction(TextureRegistry.SurfaceProducer.Callback producerLifecycle) { -// producerLifecycle.onSurfaceDestroyed(); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.annotation.NonNull; +import androidx.camera.core.Preview; +import androidx.camera.core.SurfaceRequest; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.ResolutionInfo; +import androidx.core.util.Consumer; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.robolectric.RobolectricTestRunner; + +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.any; + +import java.util.concurrent.Executor; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.reset; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; + +import android.util.Size; +import android.view.Surface; + +import io.flutter.view.TextureRegistry; + +@RunWith(RobolectricTestRunner.class) +public class PreviewTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); + final long targetResolution = Surface.ROTATION_0; + final Preview instance = + api.pigeon_defaultConstructor(mockResolutionSelector, targetResolution); + + assertEquals(instance.getResolutionSelector(), mockResolutionSelector); + assertEquals(instance.getTargetRotation(), Surface.ROTATION_0); + } + + @Test + public void resolutionSelector() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + when(instance.getResolutionSelector()).thenReturn(value); + + assertEquals(value, api.resolutionSelector(instance)); + } + + @Test + public void setSurfaceProvider() { + final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + final long textureId = 0; + when(mockSurfaceProducer.id()).thenReturn(textureId); + when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); + final PigeonApiPreview api = new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); + + assertEquals(textureId, api.setSurfaceProvider(instance, systemServicesManager)); + verify(instance).setSurfaceProvider(any(Preview.SurfaceProvider.class)); + } + + @Test + public void createSurfaceProducer_setsExpectedSurfaceProducerCallback() { + final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + final long textureId = 0; + when(mockSurfaceProducer.id()).thenReturn(textureId); + when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); + final PreviewProxyApi api = (PreviewProxyApi) new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); + + final SystemServicesManager mockSystemServicesManager = mock(SystemServicesManager.class); + final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); + final ArgumentCaptor callbackCaptor = + ArgumentCaptor.forClass(TextureRegistry.SurfaceProducer.Callback.class); + + when(mockSurfaceRequest.getResolution()).thenReturn(new Size(5, 6)); + when(mockSurfaceProducer.getSurface()).thenReturn(mock(Surface.class)); + + final Preview.SurfaceProvider previewSurfaceProvider = api.createSurfaceProvider(mockSurfaceProducer, mockSystemServicesManager); + previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); + + verify(mockSurfaceProducer).setCallback(callbackCaptor.capture()); + + final TextureRegistry.SurfaceProducer.Callback callback = callbackCaptor.getValue(); + + // Verify callback's onSurfaceDestroyed invalidates SurfaceRequest. + simulateSurfaceDestruction(callback); + verify(mockSurfaceRequest).invalidate(); + + reset(mockSurfaceRequest); + + // Verify callback's onSurfaceAvailable does not interact with the SurfaceRequest. + callback.onSurfaceAvailable(); + verifyNoMoreInteractions(mockSurfaceRequest); + } + + @SuppressWarnings("unchecked") + @Test + public void createSurfaceProvider_createsExpectedPreviewSurfaceProvider() { + final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + final long textureId = 0; + when(mockSurfaceProducer.id()).thenReturn(textureId); + when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); + final PreviewProxyApi api = (PreviewProxyApi) new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); + + final SystemServicesManager mockSystemServicesManager = mock(SystemServicesManager.class); + + final Surface mockSurface = mock(Surface.class); + final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); + final SurfaceRequest.Result mockSurfaceRequestResult = mock(SurfaceRequest.Result.class); + + final int resolutionWidth = 200; + final int resolutionHeight = 500; + final Long surfaceProducerEntryId = 120L; + + when(mockSurfaceRequest.getResolution()) + .thenReturn(new Size(resolutionWidth, resolutionHeight)); + when(mockSurfaceProducer.getSurface()).thenReturn(mockSurface); + + final ArgumentCaptor surfaceCaptor = ArgumentCaptor.forClass(Surface.class); + final ArgumentCaptor> consumerCaptor = + ArgumentCaptor.forClass(Consumer.class); + + final Preview.SurfaceProvider previewSurfaceProvider = + api.createSurfaceProvider(mockSurfaceProducer, mockSystemServicesManager); + previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); + + verify(mockSurfaceProducer).setSize(resolutionWidth, resolutionHeight); + verify(mockSurfaceRequest) + .provideSurface(surfaceCaptor.capture(), any(Executor.class), consumerCaptor.capture()); + + // Test that the surface derived from the surface texture entry will be provided to the surface + // request. + assertEquals(surfaceCaptor.getValue(), mockSurface); + + // Test that the Consumer used to handle surface request result releases Flutter surface texture + // appropriately + // and sends camera errors appropriately. + Consumer capturedConsumer = consumerCaptor.getValue(); + + // Case where Surface should be released. + when(mockSurfaceRequestResult.getResultCode()) + .thenReturn(SurfaceRequest.Result.RESULT_REQUEST_CANCELLED); + capturedConsumer.accept(mockSurfaceRequestResult); + verify(mockSurface).release(); + reset(mockSurface); + + when(mockSurfaceRequestResult.getResultCode()) + .thenReturn(SurfaceRequest.Result.RESULT_REQUEST_CANCELLED); + capturedConsumer.accept(mockSurfaceRequestResult); + verify(mockSurface).release(); + reset(mockSurface); + + when(mockSurfaceRequestResult.getResultCode()) + .thenReturn(SurfaceRequest.Result.RESULT_WILL_NOT_PROVIDE_SURFACE); + capturedConsumer.accept(mockSurfaceRequestResult); + verify(mockSurface).release(); + reset(mockSurface); + + when(mockSurfaceRequestResult.getResultCode()) + .thenReturn(SurfaceRequest.Result.RESULT_SURFACE_USED_SUCCESSFULLY); + capturedConsumer.accept(mockSurfaceRequestResult); + verify(mockSurface).release(); + reset(mockSurface); + + // Case where error must be sent. + when(mockSurfaceRequestResult.getResultCode()) + .thenReturn(SurfaceRequest.Result.RESULT_INVALID_SURFACE); + capturedConsumer.accept(mockSurfaceRequestResult); + verify(mockSurface).release(); + verify(mockSystemServicesManager).onCameraError(anyString()); + } + + @Test + public void releaseSurfaceProvider_makesCallToReleaseFlutterSurfaceTexture() { + final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + when(mockSurfaceProducer.id()).thenReturn(0L); + when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); + final PigeonApiPreview api = new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); + api.setSurfaceProvider(instance, systemServicesManager); + api.releaseSurfaceProvider(instance); + + verify(mockSurfaceProducer).release(); + } + + @Test + public void getResolutionInfo() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); + when(instance.getResolutionInfo()).thenReturn(value); + + assertEquals(value, api.getResolutionInfo(instance )); + } + + @Test + public void setTargetRotation() { + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + + final Preview instance = mock(Preview.class); + final long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation((int) rotation); + } + + // TODO(bparrishMines): Replace with inline calls to onSurfaceCleanup once available on stable; + // see https://github.com/flutter/flutter/issues/16125. This separate method only exists to scope + // the suppression. + @SuppressWarnings({"deprecation", "removal"}) + void simulateSurfaceDestruction(TextureRegistry.SurfaceProducer.Callback producerLifecycle) { + producerLifecycle.onSurfaceDestroyed(); + } +} From d02456fec79b75096c481924bb1b11e768992afc Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 18:19:32 -0500 Subject: [PATCH 103/148] process camera tests --- .../ProcessCameraProviderProxyApiTest.java | 81 ----- .../camerax/ProcessCameraProviderTest.java | 332 ++++++++---------- .../camerax/ProxyLifecycleProviderTest.java | 242 ++++++------- 3 files changed, 266 insertions(+), 389 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java deleted file mode 100644 index cfddc9871b8..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApiTest.java +++ /dev/null @@ -1,81 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.lifecycle.ProcessCameraProvider -//import androidx.camera.core.UseCase -//import androidx.camera.core.CameraSelector -//import androidx.camera.core.CameraInfo -//import androidx.camera.core.Camera -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ProcessCameraProviderProxyApiTest { -// @Test -// public void getAvailableCameraInfos() { -// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); -// -// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); -// final List value = Arrays.asList(mock(CameraInfo.class)); -// when(instance.getAvailableCameraInfos()).thenReturn(value); -// -// assertEquals(value, api.getAvailableCameraInfos(instance )); -// } -// -// @Test -// public void bindToLifecycle() { -// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); -// -// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); -// final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); -// final List useCases = Arrays.asList(mock(UseCase.class)); -// final androidx.camera.core.Camera value = mock(Camera.class); -// when(instance.bindToLifecycle(cameraSelector, useCases)).thenReturn(value); -// -// assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); -// } -// -// @Test -// public void isBound() { -// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); -// -// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); -// final androidx.camera.core.UseCase useCase = mock(UseCase.class); -// final Boolean value = true; -// when(instance.isBound(useCase)).thenReturn(value); -// -// assertEquals(value, api.isBound(instance, useCase)); -// } -// -// @Test -// public void unbind() { -// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); -// -// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); -// final List useCases = Arrays.asList(mock(UseCase.class)); -// api.unbind(instance, useCases); -// -// verify(instance).unbind(useCases); -// } -// -// @Test -// public void unbindAll() { -// final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); -// -// final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); -// api.unbindAll(instance ); -// -// verify(instance).unbindAll(); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java index f1095720f23..69672c24dee 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java @@ -1,187 +1,145 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.content.Context; -//import androidx.camera.core.Camera; -//import androidx.camera.core.CameraInfo; -//import androidx.camera.core.CameraSelector; -//import androidx.camera.core.UseCase; -//import androidx.camera.lifecycle.ProcessCameraProvider; -//import androidx.lifecycle.LifecycleOwner; -//import androidx.test.core.app.ApplicationProvider; -//import com.google.common.util.concurrent.Futures; -//import com.google.common.util.concurrent.ListenableFuture; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.Arrays; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.ArgumentCaptor; -//import org.mockito.Mock; -//import org.mockito.MockedStatic; -//import org.mockito.Mockito; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.mockito.stubbing.Answer; -//import org.robolectric.RobolectricTestRunner; -// -//@RunWith(RobolectricTestRunner.class) -//public class ProcessCameraProviderTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public ProcessCameraProvider processCameraProvider; -// @Mock public BinaryMessenger mockBinaryMessenger; -// -// InstanceManager testInstanceManager; -// private Context context; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// context = ApplicationProvider.getApplicationContext(); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void getInstanceTest() { -// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = -// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final ListenableFuture processCameraProviderFuture = -// spy(Futures.immediateFuture(processCameraProvider)); -// @SuppressWarnings("unchecked") -// final GeneratedCameraXLibrary.Result mockResult = -// mock(GeneratedCameraXLibrary.Result.class); -// -// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); -// -// try (MockedStatic mockedProcessCameraProvider = -// Mockito.mockStatic(ProcessCameraProvider.class)) { -// mockedProcessCameraProvider -// .when(() -> ProcessCameraProvider.getInstance(context)) -// .thenAnswer( -// (Answer>) -// invocation -> processCameraProviderFuture); -// -// final ArgumentCaptor runnableCaptor = ArgumentCaptor.forClass(Runnable.class); -// -// processCameraProviderHostApi.getInstance(mockResult); -// verify(processCameraProviderFuture).addListener(runnableCaptor.capture(), any()); -// runnableCaptor.getValue().run(); -// verify(mockResult).success(0L); -// } -// } -// -// @Test -// public void getAvailableCameraInfosTest() { -// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = -// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final CameraInfo mockCameraInfo = mock(CameraInfo.class); -// -// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); -// testInstanceManager.addDartCreatedInstance(mockCameraInfo, 1); -// -// when(processCameraProvider.getAvailableCameraInfos()).thenReturn(Arrays.asList(mockCameraInfo)); -// -// assertEquals(processCameraProviderHostApi.getAvailableCameraInfos(0L), Arrays.asList(1L)); -// verify(processCameraProvider).getAvailableCameraInfos(); -// } -// -// @Test -// public void bindToLifecycleTest() { -// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = -// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final Camera mockCamera = mock(Camera.class); -// final CameraSelector mockCameraSelector = mock(CameraSelector.class); -// final UseCase mockUseCase = mock(UseCase.class); -// UseCase[] mockUseCases = new UseCase[] {mockUseCase}; -// -// LifecycleOwner mockLifecycleOwner = mock(LifecycleOwner.class); -// processCameraProviderHostApi.setLifecycleOwner(mockLifecycleOwner); -// -// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); -// testInstanceManager.addDartCreatedInstance(mockCameraSelector, 1); -// testInstanceManager.addDartCreatedInstance(mockUseCase, 2); -// testInstanceManager.addDartCreatedInstance(mockCamera, 3); -// -// when(processCameraProvider.bindToLifecycle( -// mockLifecycleOwner, mockCameraSelector, mockUseCases)) -// .thenReturn(mockCamera); -// -// assertEquals( -// processCameraProviderHostApi.bindToLifecycle(0L, 1L, Arrays.asList(2L)), Long.valueOf(3)); -// verify(processCameraProvider) -// .bindToLifecycle(mockLifecycleOwner, mockCameraSelector, mockUseCases); -// } -// -// @Test -// public void isBoundTest() { -// final ProcessCameraProviderHostApiImpl processCameraProviderHostApiImpl = -// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final UseCase mockUseCase = mock(UseCase.class); -// -// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); -// testInstanceManager.addDartCreatedInstance(mockUseCase, 27); -// -// when(processCameraProvider.isBound(mockUseCase)).thenReturn(true); -// -// assertTrue(processCameraProviderHostApiImpl.isBound(0L, 27L)); -// verify(processCameraProvider).isBound(mockUseCase); -// } -// -// @Test -// public void unbindTest() { -// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = -// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// final UseCase mockUseCase = mock(UseCase.class); -// UseCase[] mockUseCases = new UseCase[] {mockUseCase}; -// -// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); -// testInstanceManager.addDartCreatedInstance(mockUseCase, 1); -// -// processCameraProviderHostApi.unbind(0L, Arrays.asList(1L)); -// verify(processCameraProvider).unbind(mockUseCases); -// } -// -// @Test -// public void unbindAllTest() { -// final ProcessCameraProviderHostApiImpl processCameraProviderHostApi = -// new ProcessCameraProviderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// -// testInstanceManager.addDartCreatedInstance(processCameraProvider, 0); -// -// processCameraProviderHostApi.unbindAll(0L); -// verify(processCameraProvider).unbindAll(); -// } -// -// @Test -// public void flutterApiCreateTest() { -// final ProcessCameraProviderFlutterApiImpl spyFlutterApi = -// spy(new ProcessCameraProviderFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// -// spyFlutterApi.create(processCameraProvider, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull( -// testInstanceManager.getIdentifierForStrongReference(processCameraProvider)); -// verify(spyFlutterApi).create(eq(identifier), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.annotation.Nullable; +import androidx.camera.lifecycle.ProcessCameraProvider; +import androidx.camera.core.UseCase; +import androidx.camera.core.CameraSelector; +import androidx.camera.core.CameraInfo; +import androidx.camera.core.Camera; +import androidx.core.content.ContextCompat; +import androidx.lifecycle.LifecycleOwner; + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.stubbing.Answer; +import org.robolectric.RobolectricTestRunner; + +import static org.mockito.Mockito.any; + +import java.util.Collections; +import java.util.List; +import java.util.concurrent.Executor; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; + +@RunWith(RobolectricTestRunner.class) +public class ProcessCameraProviderTest { + @Test + public void getInstanceTest() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final ListenableFuture processCameraProviderFuture = + spy(Futures.immediateFuture(instance)); + + try (MockedStatic mockedProcessCameraProvider = + Mockito.mockStatic(ProcessCameraProvider.class); + MockedStatic mockedContextCompat = Mockito.mockStatic(ContextCompat.class)) { + mockedProcessCameraProvider + .when(() -> ProcessCameraProvider.getInstance(any())) + .thenAnswer( + (Answer>) + invocation -> processCameraProviderFuture); + + mockedContextCompat + .when(() -> ContextCompat.getMainExecutor(any())) + .thenAnswer( + (Answer) + invocation -> mock(Executor.class)); + + + final ArgumentCaptor runnableCaptor = ArgumentCaptor.forClass(Runnable.class); + + final ProcessCameraProvider[] resultArray = {null}; + api.getInstance(ResultCompat.asCompatCallback( + reply -> { + resultArray[0] = reply.getOrNull(); + return null; + })); + + verify(processCameraProviderFuture).addListener(runnableCaptor.capture(), any()); + runnableCaptor.getValue().run(); + assertEquals(resultArray[0], instance); + } + } + + @Test + public void getAvailableCameraInfos() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final List value = Collections.singletonList(mock(CameraInfo.class)); + when(instance.getAvailableCameraInfos()).thenReturn(value); + + assertEquals(value, api.getAvailableCameraInfos(instance )); + } + + @Test + public void bindToLifecycle() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar() { + @Nullable + @Override + public LifecycleOwner getLifecycleOwner() { + return mock(LifecycleOwner.class); + } + }.getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); + final List useCases = Collections.singletonList(mock(UseCase.class)); + final androidx.camera.core.Camera value = mock(Camera.class); + when(instance.bindToLifecycle(any(), eq(cameraSelector), eq(useCases.toArray(new UseCase[]{})))).thenReturn(value); + + assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); + } + + @Test + public void isBound() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final androidx.camera.core.UseCase useCase = mock(UseCase.class); + final Boolean value = true; + when(instance.isBound(useCase)).thenReturn(value); + + assertEquals(value, api.isBound(instance, useCase)); + } + + @Test + public void unbind() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + final List useCases = Collections.singletonList(mock(UseCase.class)); + api.unbind(instance, useCases); + + verify(instance).unbind(useCases.toArray(new UseCase[]{})); + } + + @Test + public void unbindAll() { + final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + + final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); + api.unbindAll(instance ); + + verify(instance).unbindAll(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProxyLifecycleProviderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProxyLifecycleProviderTest.java index 8adc88aba55..850f552e51e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProxyLifecycleProviderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProxyLifecycleProviderTest.java @@ -1,121 +1,121 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.verifyNoInteractions; -//import static org.mockito.Mockito.when; -// -//import android.app.Activity; -//import android.app.Application; -//import android.os.Bundle; -//import androidx.lifecycle.Lifecycle.Event; -//import androidx.lifecycle.LifecycleRegistry; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class ProxyLifecycleProviderTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock Activity activity; -// @Mock Application application; -// @Mock LifecycleRegistry mockLifecycleRegistry; -// -// private final int testHashCode = 27; -// -// @Before -// public void setUp() { -// when(activity.getApplication()).thenReturn(application); -// } -// -// @Test -// public void onActivityCreated_handlesOnCreateEvent() { -// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); -// Bundle mockBundle = mock(Bundle.class); -// -// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; -// -// proxyLifecycleProvider.onActivityCreated(activity, mockBundle); -// -// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_CREATE); -// } -// -// @Test -// public void onActivityStarted_handlesOnActivityStartedEvent() { -// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); -// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; -// -// proxyLifecycleProvider.onActivityStarted(activity); -// -// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_START); -// } -// -// @Test -// public void onActivityResumed_handlesOnActivityResumedEvent() { -// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); -// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; -// -// proxyLifecycleProvider.onActivityResumed(activity); -// -// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_RESUME); -// } -// -// @Test -// public void onActivityPaused_handlesOnActivityPausedEvent() { -// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); -// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; -// -// proxyLifecycleProvider.onActivityPaused(activity); -// -// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_PAUSE); -// } -// -// @Test -// public void onActivityStopped_handlesOnActivityStoppedEvent() { -// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); -// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; -// -// proxyLifecycleProvider.onActivityStopped(activity); -// -// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_STOP); -// } -// -// @Test -// public void onActivityDestroyed_handlesOnActivityDestroyed() { -// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); -// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; -// -// proxyLifecycleProvider.onActivityDestroyed(activity); -// -// verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_DESTROY); -// } -// -// @Test -// public void onActivitySaveInstanceState_doesNotHandleLifecycleEvvent() { -// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); -// Bundle mockBundle = mock(Bundle.class); -// -// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; -// -// proxyLifecycleProvider.onActivitySaveInstanceState(activity, mockBundle); -// -// verifyNoInteractions(mockLifecycleRegistry); -// } -// -// @Test -// public void getLifecycle_returnsExpectedLifecycle() { -// ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); -// -// proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; -// -// assertEquals(proxyLifecycleProvider.getLifecycle(), mockLifecycleRegistry); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoInteractions; +import static org.mockito.Mockito.when; + +import android.app.Activity; +import android.app.Application; +import android.os.Bundle; +import androidx.lifecycle.Lifecycle.Event; +import androidx.lifecycle.LifecycleRegistry; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnit; +import org.mockito.junit.MockitoRule; + +public class ProxyLifecycleProviderTest { + @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); + + @Mock Activity activity; + @Mock Application application; + @Mock LifecycleRegistry mockLifecycleRegistry; + + private final int testHashCode = 27; + + @Before + public void setUp() { + when(activity.getApplication()).thenReturn(application); + } + + @Test + public void onActivityCreated_handlesOnCreateEvent() { + ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); + Bundle mockBundle = mock(Bundle.class); + + proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; + + proxyLifecycleProvider.onActivityCreated(activity, mockBundle); + + verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_CREATE); + } + + @Test + public void onActivityStarted_handlesOnActivityStartedEvent() { + ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); + proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; + + proxyLifecycleProvider.onActivityStarted(activity); + + verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_START); + } + + @Test + public void onActivityResumed_handlesOnActivityResumedEvent() { + ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); + proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; + + proxyLifecycleProvider.onActivityResumed(activity); + + verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_RESUME); + } + + @Test + public void onActivityPaused_handlesOnActivityPausedEvent() { + ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); + proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; + + proxyLifecycleProvider.onActivityPaused(activity); + + verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_PAUSE); + } + + @Test + public void onActivityStopped_handlesOnActivityStoppedEvent() { + ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); + proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; + + proxyLifecycleProvider.onActivityStopped(activity); + + verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_STOP); + } + + @Test + public void onActivityDestroyed_handlesOnActivityDestroyed() { + ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); + proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; + + proxyLifecycleProvider.onActivityDestroyed(activity); + + verify(mockLifecycleRegistry).handleLifecycleEvent(Event.ON_DESTROY); + } + + @Test + public void onActivitySaveInstanceState_doesNotHandleLifecycleEvvent() { + ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); + Bundle mockBundle = mock(Bundle.class); + + proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; + + proxyLifecycleProvider.onActivitySaveInstanceState(activity, mockBundle); + + verifyNoInteractions(mockLifecycleRegistry); + } + + @Test + public void getLifecycle_returnsExpectedLifecycle() { + ProxyLifecycleProvider proxyLifecycleProvider = new ProxyLifecycleProvider(activity); + + proxyLifecycleProvider.lifecycle = mockLifecycleRegistry; + + assertEquals(proxyLifecycleProvider.getLifecycle(), mockLifecycleRegistry); + } +} From fc23510eb435232718722b12cbf4447394845f7d Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 18:49:16 -0500 Subject: [PATCH 104/148] quality selector --- .../plugins/camerax/PendingRecordingTest.java | 1 - .../plugins/camerax/PlaneProxyTest.java | 11 +- .../flutter/plugins/camerax/PreviewTest.java | 126 +++++++++--------- .../camerax/ProcessCameraProviderTest.java | 102 +++++++------- .../camerax/QualitySelectorProxyApiTest.java | 121 ++++++++++++----- 5 files changed, 204 insertions(+), 157 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java index 8feee28b227..d750d3d495c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java @@ -6,7 +6,6 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java index a6f0f664619..51b34846c1d 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java @@ -4,18 +4,13 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ImageProxy.PlaneProxy; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import static org.mockito.Mockito.any; - -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import androidx.camera.core.ImageProxy.PlaneProxy; +import org.junit.Test; + public class PlaneProxyTest { @Test public void pixelStride() { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java index e93ae0a1d5d..caf231d14a7 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java @@ -4,27 +4,9 @@ package io.flutter.plugins.camerax; -import androidx.annotation.NonNull; -import androidx.camera.core.Preview; -import androidx.camera.core.SurfaceRequest; -import androidx.camera.core.resolutionselector.ResolutionSelector; -import androidx.camera.core.ResolutionInfo; -import androidx.core.util.Consumer; - -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.robolectric.RobolectricTestRunner; - import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.any; - -import java.util.concurrent.Executor; - -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; @@ -33,22 +15,32 @@ import android.util.Size; import android.view.Surface; - +import androidx.annotation.NonNull; +import androidx.camera.core.Preview; +import androidx.camera.core.ResolutionInfo; +import androidx.camera.core.SurfaceRequest; +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.core.util.Consumer; import io.flutter.view.TextureRegistry; +import java.util.concurrent.Executor; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.robolectric.RobolectricTestRunner; @RunWith(RobolectricTestRunner.class) public class PreviewTest { @Test public void pigeon_defaultConstructor() { - final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); + final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); - final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); - final long targetResolution = Surface.ROTATION_0; - final Preview instance = - api.pigeon_defaultConstructor(mockResolutionSelector, targetResolution); + final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); + final long targetResolution = Surface.ROTATION_0; + final Preview instance = + api.pigeon_defaultConstructor(mockResolutionSelector, targetResolution); - assertEquals(instance.getResolutionSelector(), mockResolutionSelector); - assertEquals(instance.getTargetRotation(), Surface.ROTATION_0); + assertEquals(instance.getResolutionSelector(), mockResolutionSelector); + assertEquals(instance.getTargetRotation(), Surface.ROTATION_0); } @Test @@ -56,7 +48,8 @@ public void resolutionSelector() { final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); final Preview instance = mock(Preview.class); - final androidx.camera.core.resolutionselector.ResolutionSelector value = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.ResolutionSelector value = + mock(ResolutionSelector.class); when(instance.getResolutionSelector()).thenReturn(value); assertEquals(value, api.resolutionSelector(instance)); @@ -65,17 +58,19 @@ public void resolutionSelector() { @Test public void setSurfaceProvider() { final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = + mock(TextureRegistry.SurfaceProducer.class); final long textureId = 0; when(mockSurfaceProducer.id()).thenReturn(textureId); when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); - final PigeonApiPreview api = new TestProxyApiRegistrar() { - @NonNull - @Override - TextureRegistry getTextureRegistry() { - return mockTextureRegistry; - } - }.getPigeonApiPreview(); + final PigeonApiPreview api = + new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); final Preview instance = mock(Preview.class); final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); @@ -87,17 +82,20 @@ TextureRegistry getTextureRegistry() { @Test public void createSurfaceProducer_setsExpectedSurfaceProducerCallback() { final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = + mock(TextureRegistry.SurfaceProducer.class); final long textureId = 0; when(mockSurfaceProducer.id()).thenReturn(textureId); when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); - final PreviewProxyApi api = (PreviewProxyApi) new TestProxyApiRegistrar() { - @NonNull - @Override - TextureRegistry getTextureRegistry() { - return mockTextureRegistry; - } - }.getPigeonApiPreview(); + final PreviewProxyApi api = + (PreviewProxyApi) + new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); final SystemServicesManager mockSystemServicesManager = mock(SystemServicesManager.class); final SurfaceRequest mockSurfaceRequest = mock(SurfaceRequest.class); @@ -107,7 +105,8 @@ TextureRegistry getTextureRegistry() { when(mockSurfaceRequest.getResolution()).thenReturn(new Size(5, 6)); when(mockSurfaceProducer.getSurface()).thenReturn(mock(Surface.class)); - final Preview.SurfaceProvider previewSurfaceProvider = api.createSurfaceProvider(mockSurfaceProducer, mockSystemServicesManager); + final Preview.SurfaceProvider previewSurfaceProvider = + api.createSurfaceProvider(mockSurfaceProducer, mockSystemServicesManager); previewSurfaceProvider.onSurfaceRequested(mockSurfaceRequest); verify(mockSurfaceProducer).setCallback(callbackCaptor.capture()); @@ -129,17 +128,20 @@ TextureRegistry getTextureRegistry() { @Test public void createSurfaceProvider_createsExpectedPreviewSurfaceProvider() { final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = + mock(TextureRegistry.SurfaceProducer.class); final long textureId = 0; when(mockSurfaceProducer.id()).thenReturn(textureId); when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); - final PreviewProxyApi api = (PreviewProxyApi) new TestProxyApiRegistrar() { - @NonNull - @Override - TextureRegistry getTextureRegistry() { - return mockTextureRegistry; - } - }.getPigeonApiPreview(); + final PreviewProxyApi api = + (PreviewProxyApi) + new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); final SystemServicesManager mockSystemServicesManager = mock(SystemServicesManager.class); @@ -212,16 +214,18 @@ TextureRegistry getTextureRegistry() { @Test public void releaseSurfaceProvider_makesCallToReleaseFlutterSurfaceTexture() { final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); - final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); + final TextureRegistry.SurfaceProducer mockSurfaceProducer = + mock(TextureRegistry.SurfaceProducer.class); when(mockSurfaceProducer.id()).thenReturn(0L); when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); - final PigeonApiPreview api = new TestProxyApiRegistrar() { - @NonNull - @Override - TextureRegistry getTextureRegistry() { - return mockTextureRegistry; - } - }.getPigeonApiPreview(); + final PigeonApiPreview api = + new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); final Preview instance = mock(Preview.class); final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); @@ -239,7 +243,7 @@ public void getResolutionInfo() { final androidx.camera.core.ResolutionInfo value = mock(ResolutionInfo.class); when(instance.getResolutionInfo()).thenReturn(value); - assertEquals(value, api.getResolutionInfo(instance )); + assertEquals(value, api.getResolutionInfo(instance)); } @Test diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java index 69672c24dee..e217a5f29df 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java @@ -4,19 +4,28 @@ package io.flutter.plugins.camerax; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import androidx.annotation.Nullable; -import androidx.camera.lifecycle.ProcessCameraProvider; -import androidx.camera.core.UseCase; -import androidx.camera.core.CameraSelector; -import androidx.camera.core.CameraInfo; import androidx.camera.core.Camera; +import androidx.camera.core.CameraInfo; +import androidx.camera.core.CameraSelector; +import androidx.camera.core.UseCase; +import androidx.camera.lifecycle.ProcessCameraProvider; import androidx.core.content.ContextCompat; import androidx.lifecycle.LifecycleOwner; - +import com.google.common.util.concurrent.Futures; +import com.google.common.util.concurrent.ListenableFuture; +import java.util.Collections; +import java.util.List; +import java.util.concurrent.Executor; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.MockedStatic; @@ -24,34 +33,20 @@ import org.mockito.stubbing.Answer; import org.robolectric.RobolectricTestRunner; -import static org.mockito.Mockito.any; - -import java.util.Collections; -import java.util.List; -import java.util.concurrent.Executor; - -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; - @RunWith(RobolectricTestRunner.class) public class ProcessCameraProviderTest { @Test public void getInstanceTest() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + final PigeonApiProcessCameraProvider api = + new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final ListenableFuture processCameraProviderFuture = + final ListenableFuture processCameraProviderFuture = spy(Futures.immediateFuture(instance)); try (MockedStatic mockedProcessCameraProvider = - Mockito.mockStatic(ProcessCameraProvider.class); - MockedStatic mockedContextCompat = Mockito.mockStatic(ContextCompat.class)) { + Mockito.mockStatic(ProcessCameraProvider.class); + MockedStatic mockedContextCompat = Mockito.mockStatic(ContextCompat.class)) { mockedProcessCameraProvider .when(() -> ProcessCameraProvider.getInstance(any())) .thenAnswer( @@ -59,16 +54,14 @@ public void getInstanceTest() { invocation -> processCameraProviderFuture); mockedContextCompat - .when(() -> ContextCompat.getMainExecutor(any())) - .thenAnswer( - (Answer) - invocation -> mock(Executor.class)); - + .when(() -> ContextCompat.getMainExecutor(any())) + .thenAnswer((Answer) invocation -> mock(Executor.class)); final ArgumentCaptor runnableCaptor = ArgumentCaptor.forClass(Runnable.class); final ProcessCameraProvider[] resultArray = {null}; - api.getInstance(ResultCompat.asCompatCallback( + api.getInstance( + ResultCompat.asCompatCallback( reply -> { resultArray[0] = reply.getOrNull(); return null; @@ -82,37 +75,43 @@ public void getInstanceTest() { @Test public void getAvailableCameraInfos() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + final PigeonApiProcessCameraProvider api = + new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); final List value = Collections.singletonList(mock(CameraInfo.class)); when(instance.getAvailableCameraInfos()).thenReturn(value); - assertEquals(value, api.getAvailableCameraInfos(instance )); + assertEquals(value, api.getAvailableCameraInfos(instance)); } @Test public void bindToLifecycle() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar() { - @Nullable - @Override - public LifecycleOwner getLifecycleOwner() { - return mock(LifecycleOwner.class); - } - }.getPigeonApiProcessCameraProvider(); + final PigeonApiProcessCameraProvider api = + new TestProxyApiRegistrar() { + @Nullable + @Override + public LifecycleOwner getLifecycleOwner() { + return mock(LifecycleOwner.class); + } + }.getPigeonApiProcessCameraProvider(); final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); final androidx.camera.core.CameraSelector cameraSelector = mock(CameraSelector.class); - final List useCases = Collections.singletonList(mock(UseCase.class)); + final List useCases = + Collections.singletonList(mock(UseCase.class)); final androidx.camera.core.Camera value = mock(Camera.class); - when(instance.bindToLifecycle(any(), eq(cameraSelector), eq(useCases.toArray(new UseCase[]{})))).thenReturn(value); + when(instance.bindToLifecycle( + any(), eq(cameraSelector), eq(useCases.toArray(new UseCase[] {})))) + .thenReturn(value); assertEquals(value, api.bindToLifecycle(instance, cameraSelector, useCases)); } @Test public void isBound() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + final PigeonApiProcessCameraProvider api = + new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); final androidx.camera.core.UseCase useCase = mock(UseCase.class); @@ -124,21 +123,24 @@ public void isBound() { @Test public void unbind() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + final PigeonApiProcessCameraProvider api = + new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - final List useCases = Collections.singletonList(mock(UseCase.class)); + final List useCases = + Collections.singletonList(mock(UseCase.class)); api.unbind(instance, useCases); - verify(instance).unbind(useCases.toArray(new UseCase[]{})); + verify(instance).unbind(useCases.toArray(new UseCase[] {})); } @Test public void unbindAll() { - final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); + final PigeonApiProcessCameraProvider api = + new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); final ProcessCameraProvider instance = mock(ProcessCameraProvider.class); - api.unbindAll(instance ); + api.unbindAll(instance); verify(instance).unbindAll(); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java index 8b3241597e5..600ae4b7d98 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java @@ -1,37 +1,84 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.QualitySelector -//import androidx.camera.video.FallbackStrategy -//import androidx.camera.core.CameraInfo -//import android.util.Size -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class QualitySelectorProxyApiTest { -// @Test -// public void from() { -// final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); -// -// assertTrue(api.from(io.flutter.plugins.camerax.VideoQuality.SD, mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); -// } -// -// @Test -// public void fromOrderedList() { -// final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); -// -// assertTrue(api.fromOrderedList(Arrays.asList(io.flutter.plugins.camerax.VideoQuality.SD), mock(FallbackStrategy.class)) instanceof QualitySelectorProxyApi.QualitySelector); -// } -// -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; + +import android.util.Size; + +import androidx.camera.camera2.interop.Camera2CameraControl; +import androidx.camera.core.CameraControl; +import androidx.camera.core.CameraInfo; +import androidx.camera.video.FallbackStrategy; +import androidx.camera.video.Quality; +import androidx.camera.video.QualitySelector; + +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.stubbing.Answer; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class QualitySelectorProxyApiTest { + @Test + public void from() { + final PigeonApiQualitySelector api = + new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + final QualitySelector mockQualitySelector = mock(QualitySelector.class); + final FallbackStrategy fallbackStrategy = mock(FallbackStrategy.class); + + try (MockedStatic mockedQualitySelector = + Mockito.mockStatic(QualitySelector.class)) { + mockedQualitySelector + .when(() -> QualitySelector.from(Quality.HD, fallbackStrategy)) + .thenAnswer((Answer) invocation -> mockQualitySelector); + + assertEquals(api.from(VideoQuality.HD, fallbackStrategy), mockQualitySelector); + } + } + + @Test + public void fromOrderedList() { + final PigeonApiQualitySelector api = + new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + final QualitySelector mockQualitySelector = mock(QualitySelector.class); + final FallbackStrategy fallbackStrategy = mock(FallbackStrategy.class); + + try (MockedStatic mockedQualitySelector = + Mockito.mockStatic(QualitySelector.class)) { + mockedQualitySelector + .when(() -> QualitySelector.fromOrderedList(Collections.singletonList(Quality.SD), fallbackStrategy)) + .thenAnswer((Answer) invocation -> mockQualitySelector); + + assertEquals(api.fromOrderedList(Collections.singletonList(VideoQuality.SD), fallbackStrategy), mockQualitySelector); + } + } + + @Test + public void getResolution_returnsExpectedResolutionInfo() { + final PigeonApiQualitySelector api = + new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + final CameraInfo cameraInfo = mock(CameraInfo.class); + + try (MockedStatic mockedQualitySelector = + Mockito.mockStatic(QualitySelector.class)) { + final Size value = new Size(1, 2); + mockedQualitySelector + .when(() -> QualitySelector.getResolution(cameraInfo, Quality.UHD)) + .thenAnswer((Answer) invocation -> value); + + assertEquals(api.getResolution(cameraInfo, VideoQuality.UHD), value); + } + } +} From 0ab8585508f8d9e5524997a30a56196fc610dd01 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 19:19:06 -0500 Subject: [PATCH 105/148] recorder tests --- .../camerax/QualitySelectorProxyApiTest.java | 84 ------ .../plugins/camerax/QualitySelectorTest.java | 229 ++++++--------- .../plugins/camerax/RecorderProxyApiTest.java | 74 ----- .../flutter/plugins/camerax/RecorderTest.java | 269 ++++++------------ 4 files changed, 171 insertions(+), 485 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java deleted file mode 100644 index 600ae4b7d98..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorProxyApiTest.java +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.mock; - -import android.util.Size; - -import androidx.camera.camera2.interop.Camera2CameraControl; -import androidx.camera.core.CameraControl; -import androidx.camera.core.CameraInfo; -import androidx.camera.video.FallbackStrategy; -import androidx.camera.video.Quality; -import androidx.camera.video.QualitySelector; - -import org.junit.Test; -import org.mockito.MockedStatic; -import org.mockito.Mockito; -import org.mockito.stubbing.Answer; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -public class QualitySelectorProxyApiTest { - @Test - public void from() { - final PigeonApiQualitySelector api = - new TestProxyApiRegistrar().getPigeonApiQualitySelector(); - - final QualitySelector mockQualitySelector = mock(QualitySelector.class); - final FallbackStrategy fallbackStrategy = mock(FallbackStrategy.class); - - try (MockedStatic mockedQualitySelector = - Mockito.mockStatic(QualitySelector.class)) { - mockedQualitySelector - .when(() -> QualitySelector.from(Quality.HD, fallbackStrategy)) - .thenAnswer((Answer) invocation -> mockQualitySelector); - - assertEquals(api.from(VideoQuality.HD, fallbackStrategy), mockQualitySelector); - } - } - - @Test - public void fromOrderedList() { - final PigeonApiQualitySelector api = - new TestProxyApiRegistrar().getPigeonApiQualitySelector(); - - final QualitySelector mockQualitySelector = mock(QualitySelector.class); - final FallbackStrategy fallbackStrategy = mock(FallbackStrategy.class); - - try (MockedStatic mockedQualitySelector = - Mockito.mockStatic(QualitySelector.class)) { - mockedQualitySelector - .when(() -> QualitySelector.fromOrderedList(Collections.singletonList(Quality.SD), fallbackStrategy)) - .thenAnswer((Answer) invocation -> mockQualitySelector); - - assertEquals(api.fromOrderedList(Collections.singletonList(VideoQuality.SD), fallbackStrategy), mockQualitySelector); - } - } - - @Test - public void getResolution_returnsExpectedResolutionInfo() { - final PigeonApiQualitySelector api = - new TestProxyApiRegistrar().getPigeonApiQualitySelector(); - - final CameraInfo cameraInfo = mock(CameraInfo.class); - - try (MockedStatic mockedQualitySelector = - Mockito.mockStatic(QualitySelector.class)) { - final Size value = new Size(1, 2); - mockedQualitySelector - .when(() -> QualitySelector.getResolution(cameraInfo, Quality.UHD)) - .thenAnswer((Answer) invocation -> value); - - assertEquals(api.getResolution(cameraInfo, VideoQuality.UHD), value); - } - } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java index f9947b8ca98..aa95badc57b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java @@ -1,149 +1,80 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.mockStatic; -// -//import android.util.Size; -//import androidx.camera.core.CameraInfo; -//import androidx.camera.video.FallbackStrategy; -//import androidx.camera.video.Quality; -//import androidx.camera.video.QualitySelector; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQuality; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.VideoQualityData; -//import java.util.Arrays; -//import java.util.List; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.MockedStatic; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.mockito.stubbing.Answer; -// -//public class QualitySelectorTest { -// -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// @Mock public QualitySelector mockQualitySelectorWithoutFallbackStrategy; -// @Mock public QualitySelector mockQualitySelectorWithFallbackStrategy; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void hostApiCreate_createsExpectedQualitySelectorWhenOneQualitySpecified() { -// final VideoQualityData expectedVideoQualityData = -// new VideoQualityData.Builder().setQuality(VideoQuality.UHD).build(); -// final List videoQualityDataList = Arrays.asList(expectedVideoQualityData); -// final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); -// final long fallbackStrategyIdentifier = 9; -// final QualitySelectorHostApiImpl hostApi = new QualitySelectorHostApiImpl(instanceManager); -// -// instanceManager.addDartCreatedInstance(mockFallbackStrategy, fallbackStrategyIdentifier); -// -// try (MockedStatic mockedQualitySelector = mockStatic(QualitySelector.class)) { -// mockedQualitySelector -// .when(() -> QualitySelector.from(Quality.UHD)) -// .thenAnswer( -// (Answer) invocation -> mockQualitySelectorWithoutFallbackStrategy); -// mockedQualitySelector -// .when(() -> QualitySelector.from(Quality.UHD, mockFallbackStrategy)) -// .thenAnswer( -// (Answer) invocation -> mockQualitySelectorWithFallbackStrategy); -// -// // Test with no fallback strategy. -// long instanceIdentifier = 0; -// hostApi.create(instanceIdentifier, videoQualityDataList, null); -// -// assertEquals( -// instanceManager.getInstance(instanceIdentifier), -// mockQualitySelectorWithoutFallbackStrategy); -// -// // Test with fallback strategy. -// instanceIdentifier = 1; -// hostApi.create(instanceIdentifier, videoQualityDataList, fallbackStrategyIdentifier); -// -// assertEquals( -// instanceManager.getInstance(instanceIdentifier), mockQualitySelectorWithFallbackStrategy); -// } -// } -// -// @Test -// public void hostApiCreate_createsExpectedQualitySelectorWhenOrderedListOfQualitiesSpecified() { -// final List videoQualityDataList = -// Arrays.asList( -// new VideoQualityData.Builder().setQuality(VideoQuality.UHD).build(), -// new VideoQualityData.Builder().setQuality(VideoQuality.HIGHEST).build()); -// final List expectedVideoQualityList = Arrays.asList(Quality.UHD, Quality.HIGHEST); -// final FallbackStrategy mockFallbackStrategy = mock(FallbackStrategy.class); -// final long fallbackStrategyIdentifier = 9; -// final QualitySelectorHostApiImpl hostApi = new QualitySelectorHostApiImpl(instanceManager); -// -// instanceManager.addDartCreatedInstance(mockFallbackStrategy, fallbackStrategyIdentifier); -// -// try (MockedStatic mockedQualitySelector = mockStatic(QualitySelector.class)) { -// mockedQualitySelector -// .when(() -> QualitySelector.fromOrderedList(expectedVideoQualityList)) -// .thenAnswer( -// (Answer) invocation -> mockQualitySelectorWithoutFallbackStrategy); -// mockedQualitySelector -// .when( -// () -> QualitySelector.fromOrderedList(expectedVideoQualityList, mockFallbackStrategy)) -// .thenAnswer( -// (Answer) invocation -> mockQualitySelectorWithFallbackStrategy); -// -// // Test with no fallback strategy. -// long instanceIdentifier = 0; -// hostApi.create(instanceIdentifier, videoQualityDataList, null); -// -// assertEquals( -// instanceManager.getInstance(instanceIdentifier), -// mockQualitySelectorWithoutFallbackStrategy); -// -// // Test with fallback strategy. -// instanceIdentifier = 1; -// hostApi.create(instanceIdentifier, videoQualityDataList, fallbackStrategyIdentifier); -// -// assertEquals( -// instanceManager.getInstance(instanceIdentifier), mockQualitySelectorWithFallbackStrategy); -// } -// } -// -// @Test -// public void getResolution_returnsExpectedResolutionInfo() { -// final CameraInfo mockCameraInfo = mock(CameraInfo.class); -// final long cameraInfoIdentifier = 6; -// final VideoQuality videoQuality = VideoQuality.FHD; -// final Size sizeResult = new Size(30, 40); -// final QualitySelectorHostApiImpl hostApi = new QualitySelectorHostApiImpl(instanceManager); -// -// instanceManager.addDartCreatedInstance(mockCameraInfo, cameraInfoIdentifier); -// -// try (MockedStatic mockedQualitySelector = mockStatic(QualitySelector.class)) { -// mockedQualitySelector -// .when(() -> QualitySelector.getResolution(mockCameraInfo, Quality.FHD)) -// .thenAnswer((Answer) invocation -> sizeResult); -// -// final ResolutionInfo result = hostApi.getResolution(cameraInfoIdentifier, videoQuality); -// -// assertEquals(result.getWidth(), Long.valueOf(sizeResult.getWidth())); -// assertEquals(result.getHeight(), Long.valueOf(sizeResult.getHeight())); -// } -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; + +import android.util.Size; + +import androidx.camera.core.CameraInfo; +import androidx.camera.video.FallbackStrategy; +import androidx.camera.video.Quality; +import androidx.camera.video.QualitySelector; + +import org.junit.Test; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.stubbing.Answer; + +import java.util.Collections; + +public class QualitySelectorTest { + @Test + public void from() { + final PigeonApiQualitySelector api = + new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + final QualitySelector mockQualitySelector = mock(QualitySelector.class); + final FallbackStrategy fallbackStrategy = mock(FallbackStrategy.class); + + try (MockedStatic mockedQualitySelector = + Mockito.mockStatic(QualitySelector.class)) { + mockedQualitySelector + .when(() -> QualitySelector.from(Quality.HD, fallbackStrategy)) + .thenAnswer((Answer) invocation -> mockQualitySelector); + + assertEquals(api.from(VideoQuality.HD, fallbackStrategy), mockQualitySelector); + } + } + + @Test + public void fromOrderedList() { + final PigeonApiQualitySelector api = + new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + final QualitySelector mockQualitySelector = mock(QualitySelector.class); + final FallbackStrategy fallbackStrategy = mock(FallbackStrategy.class); + + try (MockedStatic mockedQualitySelector = + Mockito.mockStatic(QualitySelector.class)) { + mockedQualitySelector + .when(() -> QualitySelector.fromOrderedList(Collections.singletonList(Quality.SD), fallbackStrategy)) + .thenAnswer((Answer) invocation -> mockQualitySelector); + + assertEquals(api.fromOrderedList(Collections.singletonList(VideoQuality.SD), fallbackStrategy), mockQualitySelector); + } + } + + @Test + public void getResolution_returnsExpectedResolutionInfo() { + final PigeonApiQualitySelector api = + new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + + final CameraInfo cameraInfo = mock(CameraInfo.class); + + try (MockedStatic mockedQualitySelector = + Mockito.mockStatic(QualitySelector.class)) { + final Size value = new Size(1, 2); + mockedQualitySelector + .when(() -> QualitySelector.getResolution(cameraInfo, Quality.UHD)) + .thenAnswer((Answer) invocation -> value); + + assertEquals(api.getResolution(cameraInfo, VideoQuality.UHD), value); + } + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java deleted file mode 100644 index 811679fda77..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderProxyApiTest.java +++ /dev/null @@ -1,74 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.Recorder -//import androidx.camera.video.QualitySelector -//import androidx.camera.video.PendingRecording -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class RecorderProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); -// -// assertTrue(api.pigeon_defaultConstructor(0, 0, mock(QualitySelector.class)) instanceof RecorderProxyApi.Recorder); -// } -// -// @Test -// public void getAspectRatio() { -// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); -// -// final Recorder instance = mock(Recorder.class); -// final Long value = 0; -// when(instance.getAspectRatio()).thenReturn(value); -// -// assertEquals(value, api.getAspectRatio(instance )); -// } -// -// @Test -// public void getTargetVideoEncodingBitRate() { -// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); -// -// final Recorder instance = mock(Recorder.class); -// final Long value = 0; -// when(instance.getTargetVideoEncodingBitRate()).thenReturn(value); -// -// assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); -// } -// -// @Test -// public void getQualitySelector() { -// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); -// -// final Recorder instance = mock(Recorder.class); -// final androidx.camera.video.QualitySelector value = mock(QualitySelector.class); -// when(instance.getQualitySelector()).thenReturn(value); -// -// assertEquals(value, api.getQualitySelector(instance )); -// } -// -// @Test -// public void prepareRecording() { -// final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); -// -// final Recorder instance = mock(Recorder.class); -// final String path = "myString"; -// final androidx.camera.video.PendingRecording value = mock(PendingRecording.class); -// when(instance.prepareRecording(path)).thenReturn(value); -// -// assertEquals(value, api.prepareRecording(instance, path)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java index 39cc0cc3377..1da0e1e9743 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java @@ -1,178 +1,91 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertThrows; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.doNothing; -//import static org.mockito.Mockito.doReturn; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.content.Context; -//import androidx.camera.video.FileOutputOptions; -//import androidx.camera.video.PendingRecording; -//import androidx.camera.video.QualitySelector; -//import androidx.camera.video.Recorder; -//import androidx.test.core.app.ApplicationProvider; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.io.File; -//import java.util.Objects; -//import java.util.concurrent.Executor; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -// -//@RunWith(RobolectricTestRunner.class) -//public class RecorderTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public Recorder mockRecorder; -// private Context context; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = spy(InstanceManager.create(identifier -> {})); -// context = ApplicationProvider.getApplicationContext(); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void create_createsExpectedRecorderInstance() { -// final int recorderId = 0; -// final int aspectRatio = 1; -// final int bitRate = 2; -// final int qualitySelectorId = 3; -// -// final RecorderHostApiImpl recorderHostApi = -// new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// -// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); -// final Recorder.Builder mockRecorderBuilder = mock(Recorder.Builder.class); -// final QualitySelector mockQualitySelector = mock(QualitySelector.class); -// recorderHostApi.cameraXProxy = mockCameraXProxy; -// when(mockCameraXProxy.createRecorderBuilder()).thenReturn(mockRecorderBuilder); -// when(mockRecorderBuilder.setAspectRatio(aspectRatio)).thenReturn(mockRecorderBuilder); -// when(mockRecorderBuilder.setTargetVideoEncodingBitRate(bitRate)) -// .thenReturn(mockRecorderBuilder); -// when(mockRecorderBuilder.setExecutor(any(Executor.class))).thenReturn(mockRecorderBuilder); -// when(mockRecorderBuilder.build()).thenReturn(mockRecorder); -// testInstanceManager.addDartCreatedInstance( -// mockQualitySelector, Long.valueOf(qualitySelectorId)); -// -// recorderHostApi.create( -// Long.valueOf(recorderId), -// Long.valueOf(aspectRatio), -// Long.valueOf(bitRate), -// Long.valueOf(qualitySelectorId)); -// verify(mockCameraXProxy).createRecorderBuilder(); -// verify(mockRecorderBuilder).setAspectRatio(aspectRatio); -// verify(mockRecorderBuilder).setTargetVideoEncodingBitRate(bitRate); -// verify(mockRecorderBuilder).setQualitySelector(mockQualitySelector); -// verify(mockRecorderBuilder).build(); -// assertEquals(testInstanceManager.getInstance(Long.valueOf(recorderId)), mockRecorder); -// testInstanceManager.remove(Long.valueOf(recorderId)); -// } -// -// @Test -// public void getAspectRatioTest() { -// final int recorderId = 3; -// final int aspectRatio = 6; -// -// when(mockRecorder.getAspectRatio()).thenReturn(aspectRatio); -// testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); -// final RecorderHostApiImpl recorderHostApi = -// new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// assertEquals( -// recorderHostApi.getAspectRatio(Long.valueOf(recorderId)), Long.valueOf(aspectRatio)); -// verify(mockRecorder).getAspectRatio(); -// testInstanceManager.remove(Long.valueOf(recorderId)); -// } -// -// @Test -// public void getTargetVideoEncodingBitRateTest() { -// final int bitRate = 7; -// final int recorderId = 3; -// -// when(mockRecorder.getTargetVideoEncodingBitRate()).thenReturn(bitRate); -// testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); -// final RecorderHostApiImpl recorderHostApi = -// new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// assertEquals( -// recorderHostApi.getTargetVideoEncodingBitRate(Long.valueOf(recorderId)), -// Long.valueOf(bitRate)); -// verify(mockRecorder).getTargetVideoEncodingBitRate(); -// testInstanceManager.remove(Long.valueOf(recorderId)); -// } -// -// @Test -// @SuppressWarnings("unchecked") -// public void prepareRecording_returnsExpectedPendingRecording() { -// final int recorderId = 3; -// -// PendingRecordingFlutterApiImpl mockPendingRecordingFlutterApi = -// mock(PendingRecordingFlutterApiImpl.class); -// PendingRecording mockPendingRecording = mock(PendingRecording.class); -// testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); -// when(mockRecorder.prepareRecording(any(Context.class), any(FileOutputOptions.class))) -// .thenReturn(mockPendingRecording); -// doNothing().when(mockPendingRecordingFlutterApi).create(any(PendingRecording.class), any()); -// Long mockPendingRecordingId = testInstanceManager.addHostCreatedInstance(mockPendingRecording); -// -// RecorderHostApiImpl spy = -// spy(new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context)); -// spy.pendingRecordingFlutterApi = mockPendingRecordingFlutterApi; -// doReturn(mock(File.class)).when(spy).openTempFile(any()); -// spy.prepareRecording(Long.valueOf(recorderId), ""); -// -// testInstanceManager.remove(Long.valueOf(recorderId)); -// testInstanceManager.remove(mockPendingRecordingId); -// } -// -// @Test -// @SuppressWarnings("unchecked") -// public void prepareRecording_errorsWhenPassedNullPath() { -// final int recorderId = 3; -// -// testInstanceManager.addDartCreatedInstance(mockRecorder, Long.valueOf(recorderId)); -// RecorderHostApiImpl recorderHostApi = -// new RecorderHostApiImpl(mockBinaryMessenger, testInstanceManager, context); -// assertThrows( -// RuntimeException.class, -// () -> { -// recorderHostApi.prepareRecording(Long.valueOf(recorderId), null); -// }); -// testInstanceManager.remove(Long.valueOf(recorderId)); -// } -// -// @Test -// public void flutterApiCreateTest() { -// final RecorderFlutterApiImpl spyRecorderFlutterApi = -// spy(new RecorderFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// -// spyRecorderFlutterApi.create(mockRecorder, null, null, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockRecorder)); -// verify(spyRecorderFlutterApi).create(eq(identifier), eq(null), eq(null), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.FileOutputOptions; +import androidx.camera.video.Quality; +import androidx.camera.video.Recorder; +import androidx.camera.video.QualitySelector; +import androidx.camera.video.PendingRecording; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import static org.mockito.Mockito.any; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.content.Context; + +@RunWith(RobolectricTestRunner.class) +public class RecorderTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final long aspectRatio = 5; + final long targetVideoEncodingBitRate = 7; + final QualitySelector qualitySelector = QualitySelector.from(Quality.HD); + final Recorder recorder = + api.pigeon_defaultConstructor( + aspectRatio, targetVideoEncodingBitRate, qualitySelector); + + assertEquals(recorder.getAspectRatio(), aspectRatio); + assertEquals(recorder.getTargetVideoEncodingBitRate(), targetVideoEncodingBitRate); + assertEquals(recorder.getQualitySelector(), qualitySelector); + } + + @Test + public void getAspectRatioTest() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final long value = 0; + when(instance.getAspectRatio()).thenReturn((int) value); + + assertEquals(value, api.getAspectRatio(instance )); + } + + @Test + public void getTargetVideoEncodingBitRateTest() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final long value = 0; + when(instance.getTargetVideoEncodingBitRate()).thenReturn((int) value); + + assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); + } + + @Test + public void getQualitySelector() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder instance = mock(Recorder.class); + final androidx.camera.video.QualitySelector value = mock(QualitySelector.class); + when(instance.getQualitySelector()).thenReturn(value); + + assertEquals(value, api.getQualitySelector(instance )); + } + + @Test + public void prepareRecording_returnsExpectedPendingRecording() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final Recorder mockRecorder = mock(Recorder.class); + final PendingRecording mockPendingRecording = mock(PendingRecording.class); + when(mockRecorder.prepareRecording(any(Context.class), any(FileOutputOptions.class))) + .thenReturn(mockPendingRecording); + + assertEquals(mockPendingRecording, api.prepareRecording(mockRecorder, "myFile.mp4")); + } +} From 395e7687e381aeb80c25e6ebbf9545a42c1fb19e Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 19:31:24 -0500 Subject: [PATCH 106/148] resolution filter and recording --- .../src/test/java/android/util/Size.java | 13 ++ .../camerax/RecordingProxyApiTest.java | 60 ------- .../plugins/camerax/RecordingTest.java | 167 ++++++------------ .../camerax/ResolutionFilterProxyApiTest.java | 83 ++++++--- 4 files changed, 124 insertions(+), 199 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java index 1aa91edc752..aeb768ecb60 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java @@ -23,4 +23,17 @@ public int getWidth() { public int getHeight() { return height; } + + public boolean equals(Object obj) { + if (obj instanceof Size) { + return ((Size) obj).width == width && ((Size) obj).height == height; + } + + return false; + } + + @Override + public int hashCode() { + return super.hashCode(); + } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java deleted file mode 100644 index 38c894e417d..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingProxyApiTest.java +++ /dev/null @@ -1,60 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.Recording -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class RecordingProxyApiTest { -// @Test -// public void close() { -// final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); -// -// final Recording instance = mock(Recording.class); -// api.close(instance ); -// -// verify(instance).close(); -// } -// -// @Test -// public void pause() { -// final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); -// -// final Recording instance = mock(Recording.class); -// api.pause(instance ); -// -// verify(instance).pause(); -// } -// -// @Test -// public void resume() { -// final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); -// -// final Recording instance = mock(Recording.class); -// api.resume(instance ); -// -// verify(instance).resume(); -// } -// -// @Test -// public void stop() { -// final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); -// -// final Recording instance = mock(Recording.class); -// api.stop(instance ); -// -// verify(instance).stop(); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java index be8138a2e8f..295acc884be 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java @@ -1,111 +1,56 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -// -//import androidx.camera.video.Recording; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -// -//@RunWith(RobolectricTestRunner.class) -//public class RecordingTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public Recording mockRecording; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = spy(InstanceManager.create(identifier -> {})); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void close_getsRecordingFromInstanceManagerAndCloses() { -// final RecordingHostApiImpl recordingHostApi = -// new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final Long recordingId = 5L; -// -// testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); -// -// recordingHostApi.close(recordingId); -// -// verify(mockRecording).close(); -// testInstanceManager.remove(recordingId); -// } -// -// @Test -// public void stop_getsRecordingFromInstanceManagerAndStops() { -// final RecordingHostApiImpl recordingHostApi = -// new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final Long recordingId = 5L; -// -// testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); -// -// recordingHostApi.stop(recordingId); -// -// verify(mockRecording).stop(); -// testInstanceManager.remove(recordingId); -// } -// -// @Test -// public void resume_getsRecordingFromInstanceManagerAndResumes() { -// final RecordingHostApiImpl recordingHostApi = -// new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final Long recordingId = 5L; -// -// testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); -// -// recordingHostApi.resume(recordingId); -// -// verify(mockRecording).resume(); -// testInstanceManager.remove(recordingId); -// } -// -// @Test -// public void pause_getsRecordingFromInstanceManagerAndPauses() { -// final RecordingHostApiImpl recordingHostApi = -// new RecordingHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final Long recordingId = 5L; -// -// testInstanceManager.addDartCreatedInstance(mockRecording, recordingId); -// -// recordingHostApi.pause(recordingId); -// -// verify(mockRecording).pause(); -// testInstanceManager.remove(recordingId); -// } -// -// @Test -// public void flutterApiCreateTest() { -// final RecordingFlutterApiImpl spyRecordingFlutterApi = -// spy(new RecordingFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// -// spyRecordingFlutterApi.create(mockRecording, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockRecording)); -// verify(spyRecordingFlutterApi).create(eq(identifier), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.video.Recording; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +public class RecordingTest { + @Test + public void close() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.close(instance ); + + verify(instance).close(); + } + + @Test + public void pause() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.pause(instance ); + + verify(instance).pause(); + } + + @Test + public void resume() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.resume(instance ); + + verify(instance).resume(); + } + + @Test + public void stop() { + final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); + + final Recording instance = mock(Recording.class); + api.stop(instance ); + + verify(instance).stop(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java index 197bc8e2228..f8377935723 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java @@ -1,28 +1,55 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.resolutionselector.ResolutionFilter -//import android.util.Size -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ResolutionFilterProxyApiTest { -// @Test -// public void createWithOnePreferredSize() { -// final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); -// -// assertTrue(api.createWithOnePreferredSize(mock(CameraSize.class)) instanceof ResolutionFilterProxyApi.ResolutionFilter); -// } -// -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionFilter; +import android.util.Size; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import org.mockito.Mockito; +import static org.mockito.Mockito.any; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionFilterProxyApiTest { + @Test + public void createWithOnePreferredSize() { + final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); + + final int preferredResolutionWidth = 20; + final int preferredResolutionHeight = 80; + final ResolutionFilter resolutionFilter = api.createWithOnePreferredSize(new Size( preferredResolutionWidth, preferredResolutionHeight)); + + // Test that instance filters supported resolutions as expected. + final Size fakeSupportedSize1 = new Size(720, 480); + final Size fakeSupportedSize2 = new Size(20, 80); + final Size fakeSupportedSize3 = new Size(2, 8); + final Size preferredSize = + new Size( preferredResolutionWidth, preferredResolutionHeight); + + final ArrayList fakeSupportedSizes = new ArrayList<>(); + fakeSupportedSizes.add(fakeSupportedSize1); + fakeSupportedSizes.add(fakeSupportedSize2); + fakeSupportedSizes.add(preferredSize); + fakeSupportedSizes.add(fakeSupportedSize3); + + // Test the case where preferred resolution is supported. + List filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); + assertEquals(filteredSizes.get(0), preferredSize); + + // Test the case where preferred resolution is not supported. + fakeSupportedSizes.remove(0); + filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); + assertEquals(filteredSizes, fakeSupportedSizes); + } +} From 8691de434c6381a6eab4e2aa57eff39d105d127f Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 20:35:28 -0500 Subject: [PATCH 107/148] more java tests --- .../camerax/ResolutionFilterProxyApiTest.java | 55 ------- .../plugins/camerax/ResolutionFilterTest.java | 128 +++++++--------- .../camerax/ResolutionInfoProxyApiTest.java | 32 ---- .../plugins/camerax/ResolutionInfoTest.java | 29 ++++ .../ResolutionSelectorProxyApiTest.java | 63 -------- .../camerax/ResolutionSelectorTest.java | 141 +++++++++--------- .../ResolutionStrategyProxyApiTest.java | 50 ------- .../camerax/ResolutionStrategyTest.java | 126 +++++++--------- 8 files changed, 209 insertions(+), 415 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java deleted file mode 100644 index f8377935723..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterProxyApiTest.java +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import androidx.camera.core.resolutionselector.ResolutionFilter; -import android.util.Size; -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import org.mockito.Mockito; -import static org.mockito.Mockito.any; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class ResolutionFilterProxyApiTest { - @Test - public void createWithOnePreferredSize() { - final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); - - final int preferredResolutionWidth = 20; - final int preferredResolutionHeight = 80; - final ResolutionFilter resolutionFilter = api.createWithOnePreferredSize(new Size( preferredResolutionWidth, preferredResolutionHeight)); - - // Test that instance filters supported resolutions as expected. - final Size fakeSupportedSize1 = new Size(720, 480); - final Size fakeSupportedSize2 = new Size(20, 80); - final Size fakeSupportedSize3 = new Size(2, 8); - final Size preferredSize = - new Size( preferredResolutionWidth, preferredResolutionHeight); - - final ArrayList fakeSupportedSizes = new ArrayList<>(); - fakeSupportedSizes.add(fakeSupportedSize1); - fakeSupportedSizes.add(fakeSupportedSize2); - fakeSupportedSizes.add(preferredSize); - fakeSupportedSizes.add(fakeSupportedSize3); - - // Test the case where preferred resolution is supported. - List filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); - assertEquals(filteredSizes.get(0), preferredSize); - - // Test the case where preferred resolution is not supported. - fakeSupportedSizes.remove(0); - filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); - assertEquals(filteredSizes, fakeSupportedSizes); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java index 3e9a3fda4ba..c4bf7a70e46 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java @@ -1,76 +1,52 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -// -//import android.util.Size; -//import androidx.camera.core.resolutionselector.ResolutionFilter; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.ResolutionInfo; -//import java.util.ArrayList; -//import java.util.List; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -// -//@RunWith(RobolectricTestRunner.class) -//public class ResolutionFilterTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void hostApiCreateWithOnePreferredSize_createsExpectedResolutionFilterInstance() { -// final ResolutionFilterHostApiImpl hostApi = new ResolutionFilterHostApiImpl(instanceManager); -// final long instanceIdentifier = 50; -// final long preferredResolutionWidth = 20; -// final long preferredResolutionHeight = 80; -// final ResolutionInfo preferredResolution = -// new ResolutionInfo.Builder() -// .setWidth(preferredResolutionWidth) -// .setHeight(preferredResolutionHeight) -// .build(); -// -// hostApi.createWithOnePreferredSize(instanceIdentifier, preferredResolution); -// -// // Test that instance filters supported resolutions as expected. -// final ResolutionFilter resolutionFilter = instanceManager.getInstance(instanceIdentifier); -// final Size fakeSupportedSize1 = new Size(720, 480); -// final Size fakeSupportedSize2 = new Size(20, 80); -// final Size fakeSupportedSize3 = new Size(2, 8); -// final Size preferredSize = -// new Size((int) preferredResolutionWidth, (int) preferredResolutionHeight); -// -// final ArrayList fakeSupportedSizes = new ArrayList(); -// fakeSupportedSizes.add(fakeSupportedSize1); -// fakeSupportedSizes.add(fakeSupportedSize2); -// fakeSupportedSizes.add(preferredSize); -// fakeSupportedSizes.add(fakeSupportedSize3); -// -// // Test the case where preferred resolution is supported. -// List filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); -// assertEquals(filteredSizes.get(0), preferredSize); -// -// // Test the case where preferred resolution is not supported. -// fakeSupportedSizes.remove(0); -// filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); -// assertEquals(filteredSizes, fakeSupportedSizes); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionFilter; +import android.util.Size; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; + +import java.util.ArrayList; +import java.util.List; + +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +public class ResolutionFilterTest { + @Test + public void createWithOnePreferredSize() { + final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); + + final int preferredResolutionWidth = 20; + final int preferredResolutionHeight = 80; + final ResolutionFilter resolutionFilter = api.createWithOnePreferredSize(new Size( preferredResolutionWidth, preferredResolutionHeight)); + + // Test that instance filters supported resolutions as expected. + final Size fakeSupportedSize1 = new Size(720, 480); + final Size fakeSupportedSize2 = new Size(20, 80); + final Size fakeSupportedSize3 = new Size(2, 8); + final Size preferredSize = + new Size( preferredResolutionWidth, preferredResolutionHeight); + + final ArrayList fakeSupportedSizes = new ArrayList<>(); + fakeSupportedSizes.add(fakeSupportedSize1); + fakeSupportedSizes.add(fakeSupportedSize2); + fakeSupportedSizes.add(preferredSize); + fakeSupportedSizes.add(fakeSupportedSize3); + + // Test the case where preferred resolution is supported. + List filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); + assertEquals(filteredSizes.get(0), preferredSize); + + // Test the case where preferred resolution is not supported. + fakeSupportedSizes.remove(0); + filteredSizes = resolutionFilter.filter(fakeSupportedSizes, 90); + assertEquals(filteredSizes, fakeSupportedSizes); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java deleted file mode 100644 index 41e8c90644b..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoProxyApiTest.java +++ /dev/null @@ -1,32 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.ResolutionInfo -//import android.util.Size -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ResolutionInfoProxyApiTest { -// @Test -// public void resolution() { -// final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); -// -// final ResolutionInfo instance = mock(ResolutionInfo.class); -// final android.util.Size value = mock(CameraSize.class); -// when(instance.getResolution()).thenReturn(value); -// -// assertEquals(value, api.resolution(instance)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java new file mode 100644 index 00000000000..b49a761891e --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java @@ -0,0 +1,29 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.ResolutionInfo; +import android.util.Size; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class ResolutionInfoTest { + @Test + public void resolution() { + final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); + + final ResolutionInfo instance = mock(ResolutionInfo.class); + final Size value = mock(Size.class); + when(instance.getResolution()).thenReturn(value); + + assertEquals(value, api.resolution(instance)); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java deleted file mode 100644 index e2b4a01f757..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApiTest.java +++ /dev/null @@ -1,63 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.resolutionselector.ResolutionSelector -//import androidx.camera.core.resolutionselector.AspectRatioStrategy -//import androidx.camera.core.resolutionselector.ResolutionFilter -//import androidx.camera.core.resolutionselector.ResolutionStrategy -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ResolutionSelectorProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); -// -// assertTrue(api.pigeon_defaultConstructor(mock(AspectRatioStrategy.class)) instanceof ResolutionSelectorProxyApi.ResolutionSelector); -// } -// -// @Test -// public void resolutionFilter() { -// final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); -// -// final ResolutionSelector instance = mock(ResolutionSelector.class); -// final androidx.camera.core.resolutionselector.ResolutionFilter value = mock(ResolutionFilter.class); -// when(instance.getResolutionFilter()).thenReturn(value); -// -// assertEquals(value, api.resolutionFilter(instance)); -// } -// -// @Test -// public void resolutionStrategy() { -// final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); -// -// final ResolutionSelector instance = mock(ResolutionSelector.class); -// final androidx.camera.core.resolutionselector.ResolutionStrategy value = mock(ResolutionStrategy.class); -// when(instance.getResolutionStrategy()).thenReturn(value); -// -// assertEquals(value, api.resolutionStrategy(instance)); -// } -// -// @Test -// public void getAspectRatioStrategy() { -// final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); -// -// final ResolutionSelector instance = mock(ResolutionSelector.class); -// final androidx.camera.core.resolutionselector.AspectRatioStrategy value = mock(AspectRatioStrategy.class); -// when(instance.getAspectRatioStrategy()).thenReturn(value); -// -// assertEquals(value, api.getAspectRatioStrategy(instance )); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java index a8cbf08fdbc..fbd9e7bfac1 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java @@ -1,68 +1,73 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.resolutionselector.AspectRatioStrategy; -//import androidx.camera.core.resolutionselector.ResolutionFilter; -//import androidx.camera.core.resolutionselector.ResolutionSelector; -//import androidx.camera.core.resolutionselector.ResolutionStrategy; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class ResolutionSelectorTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// @Mock public ResolutionSelector mockResolutionSelector; -// @Mock public ResolutionSelectorHostApiImpl.ResolutionSelectorProxy mockProxy; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void hostApiCreate_createsExpectedResolutionSelectorInstance() { -// final ResolutionStrategy mockResolutionStrategy = mock(ResolutionStrategy.class); -// final long resolutionStrategyIdentifier = 14; -// instanceManager.addDartCreatedInstance(mockResolutionStrategy, resolutionStrategyIdentifier); -// -// final AspectRatioStrategy mockAspectRatioStrategy = mock(AspectRatioStrategy.class); -// final long aspectRatioStrategyIdentifier = 15; -// instanceManager.addDartCreatedInstance(mockAspectRatioStrategy, aspectRatioStrategyIdentifier); -// -// final ResolutionFilter mockResolutionFilter = mock(ResolutionFilter.class); -// final long resolutionFilterIdentifier = 33; -// instanceManager.addDartCreatedInstance(mockResolutionFilter, resolutionFilterIdentifier); -// -// when(mockProxy.create(mockResolutionStrategy, mockAspectRatioStrategy, mockResolutionFilter)) -// .thenReturn(mockResolutionSelector); -// final ResolutionSelectorHostApiImpl hostApi = -// new ResolutionSelectorHostApiImpl(instanceManager, mockProxy); -// -// final long instanceIdentifier = 0; -// hostApi.create( -// instanceIdentifier, -// resolutionStrategyIdentifier, -// resolutionFilterIdentifier, -// aspectRatioStrategyIdentifier); -// -// assertEquals(instanceManager.getInstance(instanceIdentifier), mockResolutionSelector); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionSelector; +import androidx.camera.core.resolutionselector.AspectRatioStrategy; +import androidx.camera.core.resolutionselector.ResolutionFilter; +import androidx.camera.core.resolutionselector.ResolutionStrategy; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(RobolectricTestRunner.class) +public class ResolutionSelectorTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionFilter resolutionFilter = mock(ResolutionFilter.class); + final ResolutionStrategy resolutionStrategy = mock(ResolutionStrategy.class); + final AspectRatioStrategy aspectRatioStrategy = mock(AspectRatioStrategy.class); + + final ResolutionSelector instance = api.pigeon_defaultConstructor(resolutionFilter, resolutionStrategy, aspectRatioStrategy); + + assertEquals(instance.getResolutionFilter(), resolutionFilter); + assertEquals(instance.getResolutionStrategy(), resolutionStrategy); + assertEquals(instance.getAspectRatioStrategy(), aspectRatioStrategy); + } + + @Test + public void resolutionFilter() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionSelector instance = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.ResolutionFilter value = mock(ResolutionFilter.class); + when(instance.getResolutionFilter()).thenReturn(value); + + assertEquals(value, api.resolutionFilter(instance)); + } + + @Test + public void resolutionStrategy() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionSelector instance = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.ResolutionStrategy value = mock(ResolutionStrategy.class); + when(instance.getResolutionStrategy()).thenReturn(value); + + assertEquals(value, api.resolutionStrategy(instance)); + } + + @Test + public void getAspectRatioStrategy() { + final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + + final ResolutionSelector instance = mock(ResolutionSelector.class); + final androidx.camera.core.resolutionselector.AspectRatioStrategy value = mock(AspectRatioStrategy.class); + when(instance.getAspectRatioStrategy()).thenReturn(value); + + assertEquals(value, api.getAspectRatioStrategy(instance )); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java deleted file mode 100644 index 2fb607b2053..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApiTest.java +++ /dev/null @@ -1,50 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.resolutionselector.ResolutionStrategy -//import android.util.Size -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ResolutionStrategyProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); -// -// assertTrue(api.pigeon_defaultConstructor(mock(CameraSize.class), io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER) instanceof ResolutionStrategyProxyApi.ResolutionStrategy); -// } -// -// @Test -// public void getBoundSize() { -// final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); -// -// final ResolutionStrategy instance = mock(ResolutionStrategy.class); -// final android.util.Size value = mock(CameraSize.class); -// when(instance.getBoundSize()).thenReturn(value); -// -// assertEquals(value, api.getBoundSize(instance )); -// } -// -// @Test -// public void getFallbackRule() { -// final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); -// -// final ResolutionStrategy instance = mock(ResolutionStrategy.class); -// final ResolutionStrategyFallbackRule value = io.flutter.plugins.camerax.ResolutionStrategyFallbackRule.CLOSEST_HIGHER; -// when(instance.getFallbackRule()).thenReturn(value); -// -// assertEquals(value, api.getFallbackRule(instance )); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java index 2a33d77e918..6e081c74dce 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java @@ -1,71 +1,55 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertThrows; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.when; -// -//import android.util.Size; -//import androidx.camera.core.resolutionselector.ResolutionStrategy; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class ResolutionStrategyTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// @Mock public ResolutionStrategy mockResolutionStrategy; -// @Mock public ResolutionStrategyHostApiImpl.ResolutionStrategyProxy mockProxy; -// -// InstanceManager instanceManager; -// -// @Before -// public void setUp() { -// instanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// instanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void hostApiCreate_createsExpectedResolutionStrategyInstanceWhenArgumentsValid() { -// final GeneratedCameraXLibrary.ResolutionInfo boundSize = -// new GeneratedCameraXLibrary.ResolutionInfo.Builder().setWidth(50L).setHeight(30L).build(); -// -// final Long fallbackRule = 0L; -// -// when(mockProxy.create(any(Size.class), eq(fallbackRule))).thenReturn(mockResolutionStrategy); -// -// final ResolutionStrategyHostApiImpl hostApi = -// new ResolutionStrategyHostApiImpl(instanceManager, mockProxy); -// -// final long instanceIdentifier = 0; -// hostApi.create(instanceIdentifier, boundSize, fallbackRule); -// -// assertEquals(instanceManager.getInstance(instanceIdentifier), mockResolutionStrategy); -// } -// -// @Test -// public void hostApiCreate_throwsAssertionErrorWhenArgumentsInvalid() { -// final Long fallbackRule = 8L; -// final long instanceIdentifier = 0; -// -// final ResolutionStrategyHostApiImpl hostApi = -// new ResolutionStrategyHostApiImpl(instanceManager, mockProxy); -// -// // We expect an exception to be thrown if fallback rule is specified but bound size is not. -// assertThrows( -// IllegalArgumentException.class, -// () -> hostApi.create(instanceIdentifier, null, fallbackRule)); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.camera.core.resolutionselector.ResolutionStrategy; +import android.util.Size; +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +@RunWith(RobolectricTestRunner.class) +public class ResolutionStrategyTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + final Size size = new Size(1, 2); + final ResolutionStrategy resolutionStrategy = api.pigeon_defaultConstructor(size, ResolutionStrategyFallbackRule.CLOSEST_HIGHER); + + assertEquals(resolutionStrategy.getBoundSize(), size); + assertEquals(resolutionStrategy.getFallbackRule(), ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER); + } + + @Test + public void getBoundSize() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + final ResolutionStrategy instance = mock(ResolutionStrategy.class); + final Size value = mock(Size.class); + when(instance.getBoundSize()).thenReturn(value); + + assertEquals(value, api.getBoundSize(instance )); + } + + @Test + public void getFallbackRule() { + final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + + final ResolutionStrategy instance = mock(ResolutionStrategy.class);; + when(instance.getFallbackRule()).thenReturn(ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER); + + assertEquals(ResolutionStrategyFallbackRule.CLOSEST_HIGHER_THEN_LOWER, api.getFallbackRule(instance )); + } +} From 8a904b3f3d33a0dd7114d0c64c659771739b6113 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 21:58:04 -0500 Subject: [PATCH 108/148] create camerapermissions error --- .../camerax/CameraPermissionsError.java | 47 + .../CameraPermissionsErrorProxyApi.java | 26 + .../camerax/CameraPermissionsManager.java | 20 +- .../plugins/camerax/CameraXLibrary.g.kt | 4697 +++++++---------- .../plugins/camerax/ProxyApiRegistrar.java | 6 + .../camerax/SystemServicesManager.java | 4 +- .../SystemServicesManagerProxyApi.java | 7 +- .../camerax/CameraPermissionsErrorTest.java | 31 + .../camerax/CameraPermissionsManagerTest.java | 12 +- .../SystemServicesManagerProxyApiTest.java | 125 +- .../lib/src/camerax_library.g.dart | 426 +- .../pigeons/camerax_library.dart | 9 +- .../camera_android_camerax/pubspec.yaml | 5 - 13 files changed, 2303 insertions(+), 3112 deletions(-) create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsError.java create mode 100644 packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsError.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsError.java new file mode 100644 index 00000000000..990f3fc82dd --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsError.java @@ -0,0 +1,47 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import java.util.Objects; + +/** + * Contains data when an attempt to retrieve camera permissions fails. + */ +public class CameraPermissionsError { + private final String errorCode; + private final String description; + + public CameraPermissionsError(@NonNull String errorCode, @NonNull String description) { + this.errorCode = errorCode; + this.description = description; + } + + @NonNull + public String getErrorCode() { + return errorCode; + } + + @NonNull + public String getDescription() { + return description; + } + + @Override + public boolean equals(@Nullable Object obj) { + if (obj instanceof CameraPermissionsError) { + return Objects.equals(((CameraPermissionsError) obj).errorCode, errorCode) && Objects.equals(((CameraPermissionsError) obj).description, description); + } + + return false; + } + + @Override + public int hashCode() { + return Objects.hash(errorCode, description); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java new file mode 100644 index 00000000000..ad7b54c3598 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java @@ -0,0 +1,26 @@ +package io.flutter.plugins.camerax; + +import androidx.annotation.NonNull; + +/** + * ProxyApi implementation for {@link CameraPermissionsError}. This class may handle instantiating native + * object instances that are attached to a Dart instance or handle method calls on the associated + * native class or an instance of that class. + */ +public class CameraPermissionsErrorProxyApi extends PigeonApiCameraPermissionsError { + public CameraPermissionsErrorProxyApi(@NonNull CameraXLibraryPigeonProxyApiRegistrar pigeonRegistrar) { + super(pigeonRegistrar); + } + + @NonNull + @Override + public String errorCode(@NonNull CameraPermissionsError pigeon_instance) { + return pigeon_instance.getErrorCode(); + } + + @NonNull + @Override + public String description(@NonNull CameraPermissionsError pigeon_instance) { + return pigeon_instance.getDescription(); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java index 6c719fa8d38..bc1f90c8adb 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java @@ -9,10 +9,13 @@ import android.app.Activity; import android.content.pm.PackageManager; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; +import org.checkerframework.checker.units.qual.C; + public final class CameraPermissionsManager { interface PermissionsRegistry { @SuppressWarnings("deprecation") @@ -21,7 +24,7 @@ void addListener( } interface ResultCallback { - void onResult(String errorCode, String errorDescription); + void onResult(@Nullable CameraPermissionsError error); } /** @@ -47,16 +50,15 @@ void requestPermissions( boolean enableAudio, ResultCallback callback) { if (ongoing) { - callback.onResult( - CAMERA_PERMISSIONS_REQUEST_ONGOING, CAMERA_PERMISSIONS_REQUEST_ONGOING_MESSAGE); + callback.onResult(new CameraPermissionsError(CAMERA_PERMISSIONS_REQUEST_ONGOING, CAMERA_PERMISSIONS_REQUEST_ONGOING_MESSAGE)); return; } if (!hasCameraPermission(activity) || (enableAudio && !hasAudioPermission(activity))) { permissionsRegistry.addListener( new CameraRequestPermissionsListener( - (String errorCode, String errorDescription) -> { + (CameraPermissionsError error) -> { ongoing = false; - callback.onResult(errorCode, errorDescription); + callback.onResult(error); })); ongoing = true; ActivityCompat.requestPermissions( @@ -67,7 +69,7 @@ void requestPermissions( CAMERA_REQUEST_ID); } else { // Permissions already exist. Call the callback with success. - callback.onResult(null, null); + callback.onResult(null); } } @@ -110,11 +112,11 @@ public boolean onRequestPermissionsResult( // grantResults could be empty if the permissions request with the user is interrupted // https://developer.android.com/reference/android/app/Activity#onRequestPermissionsResult(int,%20java.lang.String[],%20int[]) if (grantResults.length == 0 || grantResults[0] != PackageManager.PERMISSION_GRANTED) { - callback.onResult(CAMERA_ACCESS_DENIED, CAMERA_ACCESS_DENIED_MESSAGE); + callback.onResult(new CameraPermissionsError(CAMERA_ACCESS_DENIED, CAMERA_ACCESS_DENIED_MESSAGE)); } else if (grantResults.length > 1 && grantResults[1] != PackageManager.PERMISSION_GRANTED) { - callback.onResult(AUDIO_ACCESS_DENIED, AUDIO_ACCESS_DENIED_MESSAGE); + callback.onResult(new CameraPermissionsError(AUDIO_ACCESS_DENIED, AUDIO_ACCESS_DENIED_MESSAGE)); } else { - callback.onResult(null, null); + callback.onResult(null); } return true; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 8934b20ff34..4889c13b802 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -10,7 +10,9 @@ package io.flutter.plugins.camerax import android.util.Log import io.flutter.plugin.common.BasicMessageChannel import io.flutter.plugin.common.BinaryMessenger +import io.flutter.plugin.common.EventChannel import io.flutter.plugin.common.MessageCodec +import io.flutter.plugin.common.StandardMethodCodec import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer @@ -21,52 +23,52 @@ private fun wrapResult(result: Any?): List { private fun wrapError(exception: Throwable): List { return if (exception is CameraXError) { - listOf(exception.code, exception.message, exception.details) + listOf( + exception.code, + exception.message, + exception.details + ) } else { listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)) + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) + ) } } private fun createConnectionError(channelName: String): CameraXError { - return CameraXError( - "channel-error", "Unable to establish connection on channel: '$channelName'.", "") -} + return CameraXError("channel-error", "Unable to establish connection on channel: '$channelName'.", "")} /** * Error class for passing custom error details to Flutter via a thrown PlatformException. - * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class CameraXError( - val code: String, - override val message: String? = null, - val details: Any? = null +class CameraXError ( + val code: String, + override val message: String? = null, + val details: Any? = null ) : Throwable() /** * Maintains instances used to communicate with the corresponding objects in Dart. * - * Objects stored in this container are represented by an object in Dart that is also stored in an - * InstanceManager with the same identifier. + * Objects stored in this container are represented by an object in Dart that is also stored in + * an InstanceManager with the same identifier. * * When an instance is added with an identifier, either can be used to retrieve the other. * - * Added instances are added as a weak reference and a strong reference. When the strong reference - * is removed with [remove] and the weak reference is deallocated, the - * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the - * strong reference is removed and then the identifier is retrieved with the intention to pass the - * identifier to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the - * instance is recreated. The strong reference will then need to be removed manually again. + * Added instances are added as a weak reference and a strong reference. When the strong + * reference is removed with [remove] and the weak reference is deallocated, the + * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the strong + * reference is removed and then the identifier is retrieved with the intention to pass the identifier + * to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the instance + * is recreated. The strong reference will then need to be removed manually again. */ @Suppress("UNCHECKED_CAST", "MemberVisibilityCanBePrivate") -class CameraXLibraryPigeonInstanceManager( - private val finalizationListener: PigeonFinalizationListener -) { - /** Interface for listening when a weak reference of an instance is removed from the manager. */ +class CameraXLibraryPigeonInstanceManager(private val finalizationListener: PigeonFinalizationListener) { + /** Interface for listening when a weak reference of an instance is removed from the manager. */ interface PigeonFinalizationListener { fun onFinalize(identifier: Long) } @@ -92,7 +94,10 @@ class CameraXLibraryPigeonInstanceManager( } init { - handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) + handler.postDelayed( + { releaseAllFinalizedInstances() }, + clearFinalizedWeakReferencesInterval + ) } companion object { @@ -104,20 +109,19 @@ class CameraXLibraryPigeonInstanceManager( private const val tag = "PigeonInstanceManager" /** - * Instantiate a new manager with a listener for garbage collected weak references. + * Instantiate a new manager with a listener for garbage collected weak + * references. * * When the manager is no longer needed, [stopFinalizationListener] must be called. */ - fun create( - finalizationListener: PigeonFinalizationListener - ): CameraXLibraryPigeonInstanceManager { + fun create(finalizationListener: PigeonFinalizationListener): CameraXLibraryPigeonInstanceManager { return CameraXLibraryPigeonInstanceManager(finalizationListener) } } /** - * Removes `identifier` and return its associated strongly referenced instance, if present, from - * the manager. + * Removes `identifier` and return its associated strongly referenced instance, if present, + * from the manager. */ fun remove(identifier: Long): T? { logWarningIfFinalizationListenerHasStopped() @@ -127,13 +131,15 @@ class CameraXLibraryPigeonInstanceManager( /** * Retrieves the identifier paired with an instance, if present, otherwise `null`. * + * * If the manager contains a strong reference to `instance`, it will return the identifier * associated with `instance`. If the manager contains only a weak reference to `instance`, a new * strong reference to `instance` will be added and will need to be removed again with [remove]. * + * * If this method returns a nonnull identifier, this method also expects the Dart - * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart - * instance the identifier is associated with. + * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart instance the + * identifier is associated with. */ fun getIdentifierForStrongReference(instance: Any?): Long? { logWarningIfFinalizationListenerHasStopped() @@ -147,9 +153,9 @@ class CameraXLibraryPigeonInstanceManager( /** * Adds a new instance that was instantiated from Dart. * - * The same instance can be added multiple times, but each identifier must be unique. This allows - * two objects that are equivalent (e.g. the `equals` method returns true and their hashcodes are - * equal) to both be added. + * The same instance can be added multiple times, but each identifier must be unique. This + * allows two objects that are equivalent (e.g. the `equals` method returns true and their + * hashcodes are equal) to both be added. * * [identifier] must be >= 0 and unique. */ @@ -165,9 +171,7 @@ class CameraXLibraryPigeonInstanceManager( */ fun addHostCreatedInstance(instance: Any): Long { logWarningIfFinalizationListenerHasStopped() - require(!containsInstance(instance)) { - "Instance of ${instance.javaClass} has already been added." - } + require(!containsInstance(instance)) { "Instance of ${instance.javaClass} has already been added." } val identifier = nextIdentifier++ addInstance(instance, identifier) return identifier @@ -225,8 +229,7 @@ class CameraXLibraryPigeonInstanceManager( return } var reference: java.lang.ref.WeakReference? - while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != - null) { + while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != null) { val identifier = weakReferencesToIdentifiers.remove(reference) if (identifier != null) { weakInstances.remove(identifier) @@ -234,7 +237,10 @@ class CameraXLibraryPigeonInstanceManager( finalizationListener.onFinalize(identifier) } } - handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) + handler.postDelayed( + { releaseAllFinalizedInstances() }, + clearFinalizedWeakReferencesInterval + ) } private fun addInstance(instance: Any, identifier: Long) { @@ -252,43 +258,39 @@ class CameraXLibraryPigeonInstanceManager( private fun logWarningIfFinalizationListenerHasStopped() { if (hasFinalizationListenerStopped()) { Log.w( - tag, - "The manager was used after calls to the PigeonFinalizationListener has been stopped.") + tag, + "The manager was used after calls to the PigeonFinalizationListener has been stopped." + ) } } } + /** Generated API for managing the Dart and native `InstanceManager`s. */ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: BinaryMessenger) { companion object { /** The codec used by CameraXLibraryPigeonInstanceManagerApi. */ - val codec: MessageCodec by lazy { CameraXLibraryPigeonCodec() } + val codec: MessageCodec by lazy { + CameraXLibraryPigeonCodec() + } /** * Sets up an instance of `CameraXLibraryPigeonInstanceManagerApi` to handle messages from the * `binaryMessenger`. */ - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - instanceManager: CameraXLibraryPigeonInstanceManager? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, instanceManager: CameraXLibraryPigeonInstanceManager?) { run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", codec) if (instanceManager != null) { channel.setMessageHandler { message, reply -> val args = message as List val identifierArg = args[0] as Long - val wrapped: List = - try { - instanceManager.remove(identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + instanceManager.remove(identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -296,20 +298,15 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", codec) if (instanceManager != null) { channel.setMessageHandler { _, reply -> - val wrapped: List = - try { - instanceManager.clear() - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + instanceManager.clear() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -319,9 +316,9 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } - fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) { - val channelName = - "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" + fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) +{ + val channelName = "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(identifierArg)) { if (it is List<*>) { @@ -332,13 +329,13 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } /** - * Provides implementations for each ProxyApi implementation and provides access to resources needed - * by any implementation. + * Provides implementations for each ProxyApi implementation and provides access to resources + * needed by any implementation. */ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: BinaryMessenger) { /** Whether APIs should ignore calling to Dart. */ @@ -355,23 +352,24 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary init { val api = CameraXLibraryPigeonInstanceManagerApi(binaryMessenger) - instanceManager = - CameraXLibraryPigeonInstanceManager.create( - object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { - override fun onFinalize(identifier: Long) { - api.removeStrongReference(identifier) { - if (it.isFailure) { - Log.e( - "PigeonProxyApiRegistrar", - "Failed to remove Dart strong reference with identifier: $identifier") - } - } - } - }) + instanceManager = CameraXLibraryPigeonInstanceManager.create( + object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { + override fun onFinalize(identifier: Long) { + api.removeStrongReference(identifier) { + if (it.isFailure) { + Log.e( + "PigeonProxyApiRegistrar", + "Failed to remove Dart strong reference with identifier: $identifier" + ) + } + } + } + } + ) } /** - * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of `CameraSize` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of + * `CameraSize` to the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraSize(): PigeonApiCameraSize @@ -391,7 +389,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEvent] used to add a new Dart instance of * `VideoRecordEvent` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { + open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent + { return PigeonApiVideoRecordEvent(this) } @@ -399,7 +398,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventStart] used to add a new Dart instance of * `VideoRecordEventStart` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart { + open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart + { return PigeonApiVideoRecordEventStart(this) } @@ -407,7 +407,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventFinalize] used to add a new Dart instance of * `VideoRecordEventFinalize` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize { + open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize + { return PigeonApiVideoRecordEventFinalize(this) } @@ -418,14 +419,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPoint(): PigeonApiMeteringPoint /** - * An implementation of [PigeonApiObserver] used to add a new Dart instance of `Observer` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiObserver] used to add a new Dart instance of + * `Observer` to the Dart `InstanceManager`. */ abstract fun getPigeonApiObserver(): PigeonApiObserver /** - * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of `CameraInfo` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of + * `CameraInfo` to the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraInfo(): PigeonApiCameraInfo @@ -442,16 +443,17 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiProcessCameraProvider(): PigeonApiProcessCameraProvider /** - * An implementation of [PigeonApiUseCase] used to add a new Dart instance of `UseCase` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiUseCase] used to add a new Dart instance of + * `UseCase` to the Dart `InstanceManager`. */ - open fun getPigeonApiUseCase(): PigeonApiUseCase { + open fun getPigeonApiUseCase(): PigeonApiUseCase + { return PigeonApiUseCase(this) } /** - * An implementation of [PigeonApiCamera] used to add a new Dart instance of `Camera` to the Dart - * `InstanceManager`. + * An implementation of [PigeonApiCamera] used to add a new Dart instance of + * `Camera` to the Dart `InstanceManager`. */ abstract fun getPigeonApiCamera(): PigeonApiCamera @@ -461,6 +463,12 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary */ abstract fun getPigeonApiSystemServicesManager(): PigeonApiSystemServicesManager + /** + * An implementation of [PigeonApiCameraPermissionsError] used to add a new Dart instance of + * `CameraPermissionsError` to the Dart `InstanceManager`. + */ + abstract fun getPigeonApiCameraPermissionsError(): PigeonApiCameraPermissionsError + /** * An implementation of [PigeonApiDeviceOrientationManager] used to add a new Dart instance of * `DeviceOrientationManager` to the Dart `InstanceManager`. @@ -468,28 +476,29 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiDeviceOrientationManager(): PigeonApiDeviceOrientationManager /** - * An implementation of [PigeonApiPreview] used to add a new Dart instance of `Preview` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiPreview] used to add a new Dart instance of + * `Preview` to the Dart `InstanceManager`. */ abstract fun getPigeonApiPreview(): PigeonApiPreview /** - * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of `VideoCapture` - * to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of + * `VideoCapture` to the Dart `InstanceManager`. */ abstract fun getPigeonApiVideoCapture(): PigeonApiVideoCapture /** - * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of `VideoOutput` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of + * `VideoOutput` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput { + open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput + { return PigeonApiVideoOutput(this) } /** - * An implementation of [PigeonApiRecorder] used to add a new Dart instance of `Recorder` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiRecorder] used to add a new Dart instance of + * `Recorder` to the Dart `InstanceManager`. */ abstract fun getPigeonApiRecorder(): PigeonApiRecorder @@ -506,14 +515,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiPendingRecording(): PigeonApiPendingRecording /** - * An implementation of [PigeonApiRecording] used to add a new Dart instance of `Recording` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiRecording] used to add a new Dart instance of + * `Recording` to the Dart `InstanceManager`. */ abstract fun getPigeonApiRecording(): PigeonApiRecording /** - * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of `ImageCapture` - * to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of + * `ImageCapture` to the Dart `InstanceManager`. */ abstract fun getPigeonApiImageCapture(): PigeonApiImageCapture @@ -536,8 +545,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiAspectRatioStrategy(): PigeonApiAspectRatioStrategy /** - * An implementation of [PigeonApiCameraState] used to add a new Dart instance of `CameraState` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraState] used to add a new Dart instance of + * `CameraState` to the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraState(): PigeonApiCameraState @@ -548,8 +557,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiExposureState(): PigeonApiExposureState /** - * An implementation of [PigeonApiZoomState] used to add a new Dart instance of `ZoomState` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiZoomState] used to add a new Dart instance of + * `ZoomState` to the Dart `InstanceManager`. */ abstract fun getPigeonApiZoomState(): PigeonApiZoomState @@ -560,8 +569,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiImageAnalysis(): PigeonApiImageAnalysis /** - * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of `Analyzer` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of + * `Analyzer` to the Dart `InstanceManager`. */ abstract fun getPigeonApiAnalyzer(): PigeonApiAnalyzer @@ -572,20 +581,20 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiCameraStateStateError(): PigeonApiCameraStateStateError /** - * An implementation of [PigeonApiLiveData] used to add a new Dart instance of `LiveData` to the - * Dart `InstanceManager`. + * An implementation of [PigeonApiLiveData] used to add a new Dart instance of + * `LiveData` to the Dart `InstanceManager`. */ abstract fun getPigeonApiLiveData(): PigeonApiLiveData /** - * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of `ImageProxy` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of + * `ImageProxy` to the Dart `InstanceManager`. */ abstract fun getPigeonApiImageProxy(): PigeonApiImageProxy /** - * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of `PlaneProxy` to - * the Dart `InstanceManager`. + * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of + * `PlaneProxy` to the Dart `InstanceManager`. */ abstract fun getPigeonApiPlaneProxy(): PigeonApiPlaneProxy @@ -635,7 +644,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCaptureRequestKey] used to add a new Dart instance of * `CaptureRequestKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey { + open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey + { return PigeonApiCaptureRequestKey(this) } @@ -661,7 +671,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCameraCharacteristicsKey] used to add a new Dart instance of * `CameraCharacteristicsKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey { + open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey + { return PigeonApiCameraCharacteristicsKey(this) } @@ -684,42 +695,33 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory /** - * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart - * instance of `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. + * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart instance of + * `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. */ - abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): - PigeonApiDisplayOrientedMeteringPointFactory + abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): PigeonApiDisplayOrientedMeteringPointFactory fun setUp() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, instanceManager) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSize()) - PigeonApiCameraIntegerRange.setUpMessageHandlers( - binaryMessenger, getPigeonApiCameraIntegerRange()) + PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraIntegerRange()) PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPoint()) PigeonApiObserver.setUpMessageHandlers(binaryMessenger, getPigeonApiObserver()) PigeonApiCameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraInfo()) PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSelector()) - PigeonApiProcessCameraProvider.setUpMessageHandlers( - binaryMessenger, getPigeonApiProcessCameraProvider()) + PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, getPigeonApiProcessCameraProvider()) PigeonApiCamera.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera()) - PigeonApiSystemServicesManager.setUpMessageHandlers( - binaryMessenger, getPigeonApiSystemServicesManager()) - PigeonApiDeviceOrientationManager.setUpMessageHandlers( - binaryMessenger, getPigeonApiDeviceOrientationManager()) + PigeonApiSystemServicesManager.setUpMessageHandlers(binaryMessenger, getPigeonApiSystemServicesManager()) + PigeonApiDeviceOrientationManager.setUpMessageHandlers(binaryMessenger, getPigeonApiDeviceOrientationManager()) PigeonApiPreview.setUpMessageHandlers(binaryMessenger, getPigeonApiPreview()) PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoCapture()) PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, getPigeonApiRecorder()) - PigeonApiVideoRecordEventListener.setUpMessageHandlers( - binaryMessenger, getPigeonApiVideoRecordEventListener()) + PigeonApiVideoRecordEventListener.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoRecordEventListener()) PigeonApiPendingRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiPendingRecording()) PigeonApiRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiRecording()) PigeonApiImageCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiImageCapture()) - PigeonApiResolutionStrategy.setUpMessageHandlers( - binaryMessenger, getPigeonApiResolutionStrategy()) - PigeonApiResolutionSelector.setUpMessageHandlers( - binaryMessenger, getPigeonApiResolutionSelector()) - PigeonApiAspectRatioStrategy.setUpMessageHandlers( - binaryMessenger, getPigeonApiAspectRatioStrategy()) + PigeonApiResolutionStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionStrategy()) + PigeonApiResolutionSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionSelector()) + PigeonApiAspectRatioStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiAspectRatioStrategy()) PigeonApiImageAnalysis.setUpMessageHandlers(binaryMessenger, getPigeonApiImageAnalysis()) PigeonApiAnalyzer.setUpMessageHandlers(binaryMessenger, getPigeonApiAnalyzer()) PigeonApiLiveData.setUpMessageHandlers(binaryMessenger, getPigeonApiLiveData()) @@ -727,24 +729,16 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiQualitySelector.setUpMessageHandlers(binaryMessenger, getPigeonApiQualitySelector()) PigeonApiFallbackStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiFallbackStrategy()) PigeonApiCameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraControl()) - PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers( - binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) + PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers(binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) PigeonApiCaptureRequest.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequest()) - PigeonApiCaptureRequestOptions.setUpMessageHandlers( - binaryMessenger, getPigeonApiCaptureRequestOptions()) - PigeonApiCamera2CameraControl.setUpMessageHandlers( - binaryMessenger, getPigeonApiCamera2CameraControl()) + PigeonApiCaptureRequestOptions.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequestOptions()) + PigeonApiCamera2CameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraControl()) PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionFilter()) - PigeonApiCameraCharacteristics.setUpMessageHandlers( - binaryMessenger, getPigeonApiCameraCharacteristics()) - PigeonApiCamera2CameraInfo.setUpMessageHandlers( - binaryMessenger, getPigeonApiCamera2CameraInfo()) - PigeonApiMeteringPointFactory.setUpMessageHandlers( - binaryMessenger, getPigeonApiMeteringPointFactory()) - PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers( - binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) + PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraCharacteristics()) + PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraInfo()) + PigeonApiMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPointFactory()) + PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) } - fun tearDown() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, null) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, null) @@ -785,17 +779,17 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, null) } } - -private class CameraXLibraryPigeonProxyApiBaseCodec( - val registrar: CameraXLibraryPigeonProxyApiRegistrar -) : CameraXLibraryPigeonCodec() { +private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibraryPigeonProxyApiRegistrar) : CameraXLibraryPigeonCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { val identifier: Long = readValue(buffer) as Long val instance: Any? = registrar.instanceManager.getInstance(identifier) if (instance == null) { - Log.e("PigeonProxyApiBaseCodec", "Failed to find instance with identifier: $identifier") + Log.e( + "PigeonProxyApiBaseCodec", + "Failed to find instance with identifier: $identifier" + ) } return instance } @@ -804,136 +798,166 @@ private class CameraXLibraryPigeonProxyApiBaseCodec( } override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { - if (value is Boolean || - value is ByteArray || - value is Double || - value is DoubleArray || - value is FloatArray || - value is Int || - value is IntArray || - value is List<*> || - value is Long || - value is LongArray || - value is Map<*, *> || - value is String || - value is InfoSupportedHardwareLevel || - value is AspectRatio || - value is CameraStateType || - value is LiveDataSupportedType || - value is VideoQuality || - value is MeteringMode || - value is LensFacing || - value is CameraXFlashMode || - value is ResolutionStrategyFallbackRule || - value is AspectRatioStrategyFallbackRule || - value is CameraStateErrorCode || - value == null) { + if (value is Boolean || value is ByteArray || value is Double || value is DoubleArray || value is FloatArray || value is Int || value is IntArray || value is List<*> || value is Long || value is LongArray || value is Map<*, *> || value is String || value is InfoSupportedHardwareLevel || value is AspectRatio || value is CameraStateType || value is LiveDataSupportedType || value is VideoQuality || value is MeteringMode || value is LensFacing || value is CameraXFlashMode || value is ResolutionStrategyFallbackRule || value is AspectRatioStrategyFallbackRule || value is CameraStateErrorCode || value == null) { super.writeValue(stream, value) return } if (value is android.util.Size) { - registrar.getPigeonApiCameraSize().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ResolutionInfo) { - registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) {} - } else if (value is android.util.Range<*>) { - registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoRecordEvent.Start) { - registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { - registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoRecordEvent) { - registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.MeteringPoint) { - registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) {} - } else if (value is androidx.lifecycle.Observer<*>) { - registrar.getPigeonApiObserver().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraInfo) { - registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraSelector) { - registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) {} - } else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { - registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.Camera) { - registrar.getPigeonApiCamera().pigeon_newInstance(value) {} - } else if (value is SystemServicesManager) { - registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) {} - } else if (value is DeviceOrientationManager) { - registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.Preview) { - registrar.getPigeonApiPreview().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoCapture<*>) { - registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.Recorder) { - registrar.getPigeonApiRecorder().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.VideoOutput) { - registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) {} - } else if (value is VideoRecordEventListener) { - registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.PendingRecording) { - registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.Recording) { - registrar.getPigeonApiRecording().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageCapture) { - registrar.getPigeonApiImageCapture().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { - registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { - registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { - registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraState) { - registrar.getPigeonApiCameraState().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ExposureState) { - registrar.getPigeonApiExposureState().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ZoomState) { - registrar.getPigeonApiZoomState().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageAnalysis) { - registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.UseCase) { - registrar.getPigeonApiUseCase().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { - registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraState.StateError) { - registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) {} - } else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { - registrar.getPigeonApiLiveData().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageProxy) { - registrar.getPigeonApiImageProxy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { - registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.QualitySelector) { - registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) {} - } else if (value is androidx.camera.video.FallbackStrategy) { - registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.CameraControl) { - registrar.getPigeonApiCameraControl().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.FocusMeteringAction.Builder) { - registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.FocusMeteringAction) { - registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.FocusMeteringResult) { - registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) {} - } else if (value is android.hardware.camera2.CaptureRequest) { - registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) {} - } else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { - registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) {} - } else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { - registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) {} - } else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { - registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { - registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) {} - } else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { - registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) {} - } else if (value is android.hardware.camera2.CameraCharacteristics) { - registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) {} - } else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { - registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { - registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) {} - } else if (value is androidx.camera.core.MeteringPointFactory) { - registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) {} + registrar.getPigeonApiCameraSize().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ResolutionInfo) { + registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) { } + } + else if (value is android.util.Range<*>) { + registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoRecordEvent.Start) { + registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { + registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoRecordEvent) { + registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.MeteringPoint) { + registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) { } + } + else if (value is androidx.lifecycle.Observer<*>) { + registrar.getPigeonApiObserver().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraInfo) { + registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraSelector) { + registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { + registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.Camera) { + registrar.getPigeonApiCamera().pigeon_newInstance(value) { } + } + else if (value is SystemServicesManager) { + registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) { } + } + else if (value is CameraPermissionsError) { + registrar.getPigeonApiCameraPermissionsError().pigeon_newInstance(value) { } + } + else if (value is DeviceOrientationManager) { + registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.Preview) { + registrar.getPigeonApiPreview().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoCapture<*>) { + registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.Recorder) { + registrar.getPigeonApiRecorder().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.VideoOutput) { + registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) { } + } + else if (value is VideoRecordEventListener) { + registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.PendingRecording) { + registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.Recording) { + registrar.getPigeonApiRecording().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageCapture) { + registrar.getPigeonApiImageCapture().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { + registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { + registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { + registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraState) { + registrar.getPigeonApiCameraState().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ExposureState) { + registrar.getPigeonApiExposureState().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ZoomState) { + registrar.getPigeonApiZoomState().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageAnalysis) { + registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.UseCase) { + registrar.getPigeonApiUseCase().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { + registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraState.StateError) { + registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) { } + } + else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { + registrar.getPigeonApiLiveData().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageProxy) { + registrar.getPigeonApiImageProxy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { + registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.QualitySelector) { + registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.video.FallbackStrategy) { + registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.CameraControl) { + registrar.getPigeonApiCameraControl().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.FocusMeteringAction.Builder) { + registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.FocusMeteringAction) { + registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.FocusMeteringResult) { + registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CaptureRequest) { + registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { + registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { + registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { + registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { + registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { + registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) { } + } + else if (value is android.hardware.camera2.CameraCharacteristics) { + registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { + registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { + registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) { } + } + else if (value is androidx.camera.core.MeteringPointFactory) { + registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) { } } when { @@ -941,9 +965,7 @@ private class CameraXLibraryPigeonProxyApiBaseCodec( stream.write(128) writeValue(stream, registrar.instanceManager.getIdentifierForStrongReference(value)) } - else -> - throw IllegalArgumentException( - "Unsupported value: '$value' of type '${value.javaClass.name}'") + else -> throw IllegalArgumentException("Unsupported value: '$value' of type '${value.javaClass.name}'") } } } @@ -951,22 +973,27 @@ private class CameraXLibraryPigeonProxyApiBaseCodec( /** * Generally classifies the overall set of the camera device functionality. * - * See - * https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. + * See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. */ enum class InfoSupportedHardwareLevel(val raw: Int) { /** - * This camera device is capable of YUV reprocessing and RAW data capture, in addition to - * FULL-level capabilities. + * This camera device is capable of YUV reprocessing and RAW data capture, in + * addition to FULL-level capabilities. */ LEVEL3(0), - /** This camera device is backed by an external camera connected to this Android device. */ + /** + * This camera device is backed by an external camera connected to this + * Android device. + */ EXTERNAL(1), /** This camera device is capable of supporting advanced imaging applications. */ FULL(2), /** This camera device is running in backward compatibility mode. */ LEGACY(3), - /** This camera device does not have enough capabilities to qualify as a FULL device or better. */ + /** + * This camera device does not have enough capabilities to qualify as a FULL + * device or better. + */ LIMITED(4); companion object { @@ -1013,8 +1040,8 @@ enum class CameraStateType(val raw: Int) { /** Represents a state where the camera device is currently opening. */ OPENING(3), /** - * Represents a state where the camera is waiting for a signal to attempt to open the camera - * device. + * Represents a state where the camera is waiting for a signal to attempt to + * open the camera device. */ PENDING_OPEN(4), /** This value is not recognized by this wrapper. */ @@ -1040,8 +1067,8 @@ enum class LiveDataSupportedType(val raw: Int) { } /** - * Video quality constraints that will be used by a QualitySelector to choose an appropriate video - * resolution. + * Video quality constraints that will be used by a QualitySelector to choose + * an appropriate video resolution. * * These are pre-defined quality constants that are universally used for video. * @@ -1071,15 +1098,23 @@ enum class VideoQuality(val raw: Int) { /** * A flag used for indicating metering mode regions. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). + * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). */ enum class MeteringMode(val raw: Int) { - /** A flag used in metering mode indicating the AE (Auto Exposure) region is enabled. */ + /** + * A flag used in metering mode indicating the AE (Auto Exposure) region is + * enabled. + */ AE(0), - /** A flag used in metering mode indicating the AF (Auto Focus) region is enabled. */ + /** + * A flag used in metering mode indicating the AF (Auto Focus) region is + * enabled. + */ AF(1), - /** A flag used in metering mode indicating the AWB (Auto White Balance) region is enabled. */ + /** + * A flag used in metering mode indicating the AWB (Auto White Balance) + * region is enabled. + */ AWB(2); companion object { @@ -1092,15 +1127,20 @@ enum class MeteringMode(val raw: Int) { /** * Direction of lens of a camera. * - * See - * https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). + * See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). */ enum class LensFacing(val raw: Int) { /** A camera on the device facing the same direction as the device's screen. */ FRONT(0), - /** A camera on the device facing the opposite direction as the device's screen. */ + /** + * A camera on the device facing the opposite direction as the device's + * screen. + */ BACK(1), - /** An external camera that has no fixed facing relative to the device's screen. */ + /** + * An external camera that has no fixed facing relative to the device's + * screen. + */ EXTERNAL(2), /** A camera on the devices that its lens facing is resolved. */ UNKNOWN(3); @@ -1115,14 +1155,14 @@ enum class LensFacing(val raw: Int) { /** * FlashModes for image capture. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). + * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). */ enum class CameraXFlashMode(val raw: Int) { /** * Auto flash. * - * The flash will be used according to the camera system's determination when taking a picture. + * The flash will be used according to the camera system's determination when + * taking a picture. */ AUTO(0), /** @@ -1146,33 +1186,36 @@ enum class CameraXFlashMode(val raw: Int) { } /** - * Fallback rule for choosing an alternate size when the specified bound size is unavailable. + * Fallback rule for choosing an alternate size when the specified bound size + * is unavailable. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ enum class ResolutionStrategyFallbackRule(val raw: Int) { /** - * When the specified bound size is unavailable, CameraX falls back to the closest higher - * resolution size. + * When the specified bound size is unavailable, CameraX falls back to the + * closest higher resolution size. */ CLOSEST_HIGHER(0), /** - * When the specified bound size is unavailable, CameraX falls back to select the closest higher - * resolution size. + * When the specified bound size is unavailable, CameraX falls back to select + * the closest higher resolution size. */ CLOSEST_HIGHER_THEN_LOWER(1), /** - * When the specified bound size is unavailable, CameraX falls back to the closest lower - * resolution size. + * When the specified bound size is unavailable, CameraX falls back to the + * closest lower resolution size. */ CLOSEST_LOWER(2), /** - * When the specified bound size is unavailable, CameraX falls back to select the closest lower - * resolution size. + * When the specified bound size is unavailable, CameraX falls back to select + * the closest lower resolution size. */ CLOSEST_LOWER_THEN_HIGHER(3), - /** CameraX doesn't select an alternate size when the specified bound size is unavailable. */ + /** + * CameraX doesn't select an alternate size when the specified bound size is + * unavailable. + */ NONE(4), /** The value is not recognized by the wrapper. */ UNKNOWN(5); @@ -1185,20 +1228,21 @@ enum class ResolutionStrategyFallbackRule(val raw: Int) { } /** - * Fallback rule for choosing the aspect ratio when the preferred aspect ratio is not available. + * Fallback rule for choosing the aspect ratio when the preferred aspect ratio + * is not available. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). */ enum class AspectRatioStrategyFallbackRule(val raw: Int) { /** - * CameraX automatically chooses the next best aspect ratio which contains the closest field of - * view (FOV) of the camera sensor, from the remaining options. + * CameraX automatically chooses the next best aspect ratio which contains + * the closest field of view (FOV) of the camera sensor, from the remaining + * options. */ AUTO(0), /** - * CameraX doesn't fall back to select sizes of any other aspect ratio when this fallback rule is - * used. + * CameraX doesn't fall back to select sizes of any other aspect ratio when + * this fallback rule is used. */ NONE(1), /** The value is not recognized by the wrapper. */ @@ -1217,23 +1261,34 @@ enum class AspectRatioStrategyFallbackRule(val raw: Int) { * https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() */ enum class CameraStateErrorCode(val raw: Int) { - /** An error indicating that the camera device could not be opened due to a device policy. */ + /** + * An error indicating that the camera device could not be opened due to a + * device policy. + */ CAMERA_DISABLED(0), - /** An error indicating that the camera device was closed due to a fatal error. */ + /** + * An error indicating that the camera device was closed due to a fatal + * error. + */ CAMERA_FATAL_ERROR(1), /** An error indicating that the camera device is already in use. */ CAMERA_IN_USE(2), /** - * An error indicating that the camera could not be opened because "Do Not Disturb" mode is - * enabled on devices affected by a bug in Android 9 (API level 28). + * An error indicating that the camera could not be opened because "Do Not + * Disturb" mode is enabled on devices affected by a bug in Android 9 (API + * level 28). */ DO_NOT_DISTURB_MODE_ENABLED(3), /** - * An error indicating that the limit number of open cameras has been reached, and more cameras - * cannot be opened until other instances are closed. + * An error indicating that the limit number of open cameras has been + * reached, and more cameras cannot be opened until other instances are + * closed. */ MAX_CAMERAS_IN_USE(4), - /** An error indicating that the camera device has encountered a recoverable error. */ + /** + * An error indicating that the camera device has encountered a recoverable + * error. + */ OTHER_RECOVERABLE_ERROR(5), /** An error indicating that configuring the camera has failed. */ STREAM_CONFIG(6), @@ -1246,33 +1301,48 @@ enum class CameraStateErrorCode(val raw: Int) { } } } - private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 129.toByte() -> { - return (readValue(buffer) as Long?)?.let { InfoSupportedHardwareLevel.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + InfoSupportedHardwareLevel.ofRaw(it.toInt()) + } } 130.toByte() -> { - return (readValue(buffer) as Long?)?.let { AspectRatio.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + AspectRatio.ofRaw(it.toInt()) + } } 131.toByte() -> { - return (readValue(buffer) as Long?)?.let { CameraStateType.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + CameraStateType.ofRaw(it.toInt()) + } } 132.toByte() -> { - return (readValue(buffer) as Long?)?.let { LiveDataSupportedType.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + LiveDataSupportedType.ofRaw(it.toInt()) + } } 133.toByte() -> { - return (readValue(buffer) as Long?)?.let { VideoQuality.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + VideoQuality.ofRaw(it.toInt()) + } } 134.toByte() -> { - return (readValue(buffer) as Long?)?.let { MeteringMode.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + MeteringMode.ofRaw(it.toInt()) + } } 135.toByte() -> { - return (readValue(buffer) as Long?)?.let { LensFacing.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + LensFacing.ofRaw(it.toInt()) + } } 136.toByte() -> { - return (readValue(buffer) as Long?)?.let { CameraXFlashMode.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + CameraXFlashMode.ofRaw(it.toInt()) + } } 137.toByte() -> { return (readValue(buffer) as Long?)?.let { @@ -1285,13 +1355,14 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { } } 139.toByte() -> { - return (readValue(buffer) as Long?)?.let { CameraStateErrorCode.ofRaw(it.toInt()) } + return (readValue(buffer) as Long?)?.let { + CameraStateErrorCode.ofRaw(it.toInt()) + } } else -> super.readValueOfType(type, buffer) } } - - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is InfoSupportedHardwareLevel -> { stream.write(129) @@ -1348,9 +1419,7 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { * See https://developer.android.com/reference/android/util/Size.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSize( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(width: Long, height: Long): android.util.Size /** The width of the size (in pixels). */ @@ -1364,25 +1433,19 @@ abstract class PigeonApiCameraSize( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSize?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val widthArg = args[1] as Long val heightArg = args[2] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(widthArg, heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(widthArg,heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1394,16 +1457,16 @@ abstract class PigeonApiCameraSize( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) { + fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -1413,66 +1476,60 @@ abstract class PigeonApiCameraSize( channel.send(listOf(pigeon_identifierArg, widthArg, heightArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A `ResolutionInfo` allows the application to know the resolution information of a specific use - * case. + * A `ResolutionInfo` allows the application to know the resolution information + * of a specific use case. * * See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionInfo( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Returns the output resolution used for the use case. */ abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ResolutionInfo, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionArg = resolution(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, resolutionArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * Immutable class for describing the range of two integer values. @@ -1482,9 +1539,7 @@ abstract class PigeonApiResolutionInfo( * See https://developer.android.com/reference/android/util/Range.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraIntegerRange( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(lower: Long, upper: Long): android.util.Range<*> /** The lower endpoint. */ @@ -1498,25 +1553,19 @@ abstract class PigeonApiCameraIntegerRange( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraIntegerRange?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val lowerArg = args[1] as Long val upperArg = args[2] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(lowerArg, upperArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(lowerArg,upperArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1528,40 +1577,36 @@ abstract class PigeonApiCameraIntegerRange( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: android.util.Range<*>, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: android.util.Range<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val lowerArg = lower(pigeon_instanceArg) val upperArg = upper(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, lowerArg, upperArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * VideoRecordEvent is used to report video recording events and status. @@ -1569,43 +1614,37 @@ abstract class PigeonApiCameraIntegerRange( * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEvent( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * Indicates the start of recording. @@ -1613,49 +1652,44 @@ open class PigeonApiVideoRecordEvent( * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Start. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventStart( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent + { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } + } /** * Indicates the finalization of recording. @@ -1663,67 +1697,58 @@ open class PigeonApiVideoRecordEventStart( * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventFinalize( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent + { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } + } /** - * A MeteringPoint is used to specify a region which can then be converted to sensor coordinate - * system for focus and metering purpose. + * A MeteringPoint is used to specify a region which can then be converted to + * sensor coordinate system for focus and metering purpose. * * See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPoint( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** * Size of the MeteringPoint width and height (ranging from 0 to 1). * - * It is the percentage of the sensor width/height (or crop region width/height if crop region is - * set). + * It is the percentage of the sensor width/height (or crop region + * width/height if crop region is set). */ abstract fun getSize(pigeon_instance: androidx.camera.core.MeteringPoint): Double @@ -1732,21 +1757,16 @@ abstract class PigeonApiMeteringPoint( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPoint?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPoint - val wrapped: List = - try { - listOf(api.getSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1758,19 +1778,16 @@ abstract class PigeonApiMeteringPoint( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPoint and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.MeteringPoint, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPoint, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" @@ -1778,17 +1795,17 @@ abstract class PigeonApiMeteringPoint( channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * A simple callback that can receive from LiveData. @@ -1804,23 +1821,17 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiObserver?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1832,32 +1843,24 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Observer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.lifecycle.Observer<*>, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.lifecycle.Observer<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError( - "new-instance-error", - "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.", - ""))) + CameraXError("new-instance-error", "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.", ""))) } } /** Called when the data is changed to value. */ - fun onChanged( - pigeon_instanceArg: androidx.lifecycle.Observer<*>, - valueArg: Any, - callback: (Result) -> Unit - ) { + fun onChanged(pigeon_instanceArg: androidx.lifecycle.Observer<*>, valueArg: Any, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1877,9 +1880,10 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /** * An interface for retrieving camera information. @@ -1887,50 +1891,37 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP * See https://developer.android.com/reference/androidx/camera/core/CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraInfo( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Returns the sensor rotation in degrees, relative to the device's "natural" (default) - * orientation. + * Returns the sensor rotation in degrees, relative to the device's "natural" + * (default) orientation. */ abstract fun sensorRotationDegrees(pigeon_instance: androidx.camera.core.CameraInfo): Long /** Returns a ExposureState. */ - abstract fun exposureState( - pigeon_instance: androidx.camera.core.CameraInfo - ): androidx.camera.core.ExposureState + abstract fun exposureState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.camera.core.ExposureState /** A LiveData of the camera's state. */ - abstract fun getCameraState( - pigeon_instance: androidx.camera.core.CameraInfo - ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getCameraState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper /** A LiveData of ZoomState. */ - abstract fun getZoomState( - pigeon_instance: androidx.camera.core.CameraInfo - ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getZoomState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = - try { - listOf(api.getCameraState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getCameraState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1938,21 +1929,16 @@ abstract class PigeonApiCameraInfo( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = - try { - listOf(api.getZoomState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getZoomState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1964,19 +1950,16 @@ abstract class PigeonApiCameraInfo( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraInfo, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraInfo, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) val exposureStateArg = exposureState(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -1986,30 +1969,27 @@ abstract class PigeonApiCameraInfo( channel.send(listOf(pigeon_identifierArg, sensorRotationDegreesArg, exposureStateArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A set of requirements and priorities used to select a camera or return a filtered set of cameras. + * A set of requirements and priorities used to select a camera or return a + * filtered set of cameras. * * See https://developer.android.com/reference/androidx/camera/core/CameraSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSelector( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - requireLensFacing: LensFacing? - ): androidx.camera.core.CameraSelector +abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(requireLensFacing: LensFacing?): androidx.camera.core.CameraSelector /** A static `CameraSelector` that selects the default back facing camera. */ abstract fun defaultBackCamera(): androidx.camera.core.CameraSelector @@ -2017,35 +1997,29 @@ abstract class PigeonApiCameraSelector( /** A static `CameraSelector` that selects the default front facing camera. */ abstract fun defaultFrontCamera(): androidx.camera.core.CameraSelector - /** Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the selector. */ - abstract fun filter( - pigeon_instance: androidx.camera.core.CameraSelector, - cameraInfos: List - ): List + /** + * Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the + * selector. + */ + abstract fun filter(pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List): List companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val requireLensFacingArg = args[1] as LensFacing? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2053,23 +2027,17 @@ abstract class PigeonApiCameraSelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.defaultBackCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultBackCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2077,23 +2045,17 @@ abstract class PigeonApiCameraSelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.defaultFrontCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultFrontCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2101,22 +2063,17 @@ abstract class PigeonApiCameraSelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraSelector val cameraInfosArg = args[1] as List - val wrapped: List = - try { - listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2128,97 +2085,73 @@ abstract class PigeonApiCameraSelector( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraSelector, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraSelector, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A singleton which can be used to bind the lifecycle of cameras to any `LifecycleOwner` within an - * application's process. + * A singleton which can be used to bind the lifecycle of cameras to any + * `LifecycleOwner` within an application's process. * * See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiProcessCameraProvider( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Retrieves the ProcessCameraProvider associated with the current process. */ - abstract fun getInstance( - callback: (Result) -> Unit - ) + abstract fun getInstance(callback: (Result) -> Unit) /** The `CameraInfo` instances of the available cameras. */ - abstract fun getAvailableCameraInfos( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider - ): List + abstract fun getAvailableCameraInfos(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider): List /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ - abstract fun bindToLifecycle( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, - cameraSelector: androidx.camera.core.CameraSelector, - useCases: List - ): androidx.camera.core.Camera + abstract fun bindToLifecycle(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelector: androidx.camera.core.CameraSelector, useCases: List): androidx.camera.core.Camera /** Returns true if the `UseCase` is bound to a lifecycle. */ - abstract fun isBound( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, - useCase: androidx.camera.core.UseCase - ): Boolean + abstract fun isBound(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase): Boolean /** Unbinds all specified use cases from the lifecycle provider. */ - abstract fun unbind( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, - useCases: List - ) + abstract fun unbind(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCases: List) - /** Unbinds all use cases from the lifecycle provider and removes them from CameraX. */ + /** + * Unbinds all use cases from the lifecycle provider and removes them from + * CameraX. + */ abstract fun unbindAll(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiProcessCameraProvider? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiProcessCameraProvider?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", codec) if (api != null) { channel.setMessageHandler { _, reply -> - api.getInstance { result: Result -> + api.getInstance{ result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -2233,21 +2166,16 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = - try { - listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2255,23 +2183,18 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val cameraSelectorArg = args[1] as androidx.camera.core.CameraSelector val useCasesArg = args[2] as List - val wrapped: List = - try { - listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2279,22 +2202,17 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCaseArg = args[1] as androidx.camera.core.UseCase - val wrapped: List = - try { - listOf(api.isBound(pigeon_instanceArg, useCaseArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.isBound(pigeon_instanceArg, useCaseArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2302,23 +2220,18 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCasesArg = args[1] as List - val wrapped: List = - try { - api.unbind(pigeon_instanceArg, useCasesArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.unbind(pigeon_instanceArg, useCasesArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2326,22 +2239,17 @@ abstract class PigeonApiProcessCameraProvider( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = - try { - api.unbindAll(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.unbindAll(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2353,38 +2261,34 @@ abstract class PigeonApiProcessCameraProvider( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * The use case which all other use cases are built on top of. @@ -2395,19 +2299,16 @@ abstract class PigeonApiProcessCameraProvider( open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.UseCase, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" @@ -2415,56 +2316,48 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * The camera interface is used to control the flow of data to use cases, control the camera via the - * `CameraControl`, and publish the state of the camera via CameraInfo. + * The camera interface is used to control the flow of data to use cases, + * control the camera via the `CameraControl`, and publish the state of the + * camera via CameraInfo. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The `CameraControl` for the Camera. */ - abstract fun cameraControl( - pigeon_instance: androidx.camera.core.Camera - ): androidx.camera.core.CameraControl + abstract fun cameraControl(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraControl /** Returns information about this camera. */ - abstract fun getCameraInfo( - pigeon_instance: androidx.camera.core.Camera - ): androidx.camera.core.CameraInfo + abstract fun getCameraInfo(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraInfo companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Camera - val wrapped: List = - try { - listOf(api.getCameraInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getCameraInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2476,19 +2369,16 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.Camera, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Camera, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val cameraControlArg = cameraControl(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -2497,64 +2387,45 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro channel.send(listOf(pigeon_identifierArg, cameraControlArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** Convenience class for accessing system resources. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiSystemServicesManager( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(): SystemServicesManager - abstract fun requestCameraPermissions( - pigeon_instance: SystemServicesManager, - enableAudio: Boolean, - callback: (Result) -> Unit - ) + abstract fun requestCameraPermissions(pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit) - abstract fun getTempFilePath( - pigeon_instance: SystemServicesManager, - prefix: String, - suffix: String - ): String + abstract fun getTempFilePath(pigeon_instance: SystemServicesManager, prefix: String, suffix: String): String abstract fun isPreviewPreTransformed(pigeon_instance: SystemServicesManager): Boolean companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiSystemServicesManager? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiSystemServicesManager?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2562,23 +2433,19 @@ abstract class PigeonApiSystemServicesManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val enableAudioArg = args[1] as Boolean - api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result - -> + api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) } else { - reply.reply(wrapResult(null)) + val data = result.getOrNull() + reply.reply(wrapResult(data)) } } } @@ -2587,23 +2454,18 @@ abstract class PigeonApiSystemServicesManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val prefixArg = args[1] as String val suffixArg = args[2] as String - val wrapped: List = - try { - listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2611,21 +2473,16 @@ abstract class PigeonApiSystemServicesManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager - val wrapped: List = - try { - listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2637,31 +2494,23 @@ abstract class PigeonApiSystemServicesManager( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: SystemServicesManager, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: SystemServicesManager, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError( - "new-instance-error", - "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.", - ""))) + CameraXError("new-instance-error", "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.", ""))) } } - fun onCameraError( - pigeon_instanceArg: SystemServicesManager, - errorDescriptionArg: String, - callback: (Result) -> Unit - ) { + fun onCameraError(pigeon_instanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2670,8 +2519,7 @@ abstract class PigeonApiSystemServicesManager( } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" + val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, errorDescriptionArg)) { if (it is List<*>) { @@ -2682,24 +2530,60 @@ abstract class PigeonApiSystemServicesManager( } } else { callback(Result.failure(createConnectionError(channelName))) + } + } + } + +} +/** Contains data when an attempt to retrieve camera permissions fails. */ +@Suppress("UNCHECKED_CAST") +abstract class PigeonApiCameraPermissionsError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun errorCode(pigeon_instance: CameraPermissionsError): String + + abstract fun description(pigeon_instance: CameraPermissionsError): String + + @Suppress("LocalVariableName", "FunctionName") + /** Creates a Dart instance of CameraPermissionsError and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: CameraPermissionsError, callback: (Result) -> Unit) +{ + if (pigeonRegistrar.ignoreCallsToDart) { + callback( + Result.failure( + CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + callback(Result.success(Unit)) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val errorCodeArg = errorCode(pigeon_instanceArg) + val descriptionArg = description(pigeon_instanceArg) + val binaryMessenger = pigeonRegistrar.binaryMessenger + val codec = pigeonRegistrar.codec + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance" + val channel = BasicMessageChannel(binaryMessenger, channelName, codec) + channel.send(listOf(pigeon_identifierArg, errorCodeArg, descriptionArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } } } } + } /** - * Support class to help to determine the media orientation based on the orientation of the device. + * Support class to help to determine the media orientation based on the + * orientation of the device. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDeviceOrientationManager( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager - abstract fun startListeningForDeviceOrientationChange( - pigeon_instance: DeviceOrientationManager, - isFrontFacing: Boolean, - sensorOrientation: Long - ) + abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager, isFrontFacing: Boolean, sensorOrientation: Long) abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) @@ -2709,29 +2593,20 @@ abstract class PigeonApiDeviceOrientationManager( companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiDeviceOrientationManager? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDeviceOrientationManager?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2739,25 +2614,19 @@ abstract class PigeonApiDeviceOrientationManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager val isFrontFacingArg = args[1] as Boolean val sensorOrientationArg = args[2] as Long - val wrapped: List = - try { - api.startListeningForDeviceOrientationChange( - pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.startListeningForDeviceOrientationChange(pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2765,22 +2634,17 @@ abstract class PigeonApiDeviceOrientationManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = - try { - api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2788,21 +2652,16 @@ abstract class PigeonApiDeviceOrientationManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = - try { - listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2810,21 +2669,16 @@ abstract class PigeonApiDeviceOrientationManager( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = - try { - listOf(api.getUiOrientation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getUiOrientation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2835,34 +2689,24 @@ abstract class PigeonApiDeviceOrientationManager( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: DeviceOrientationManager, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: DeviceOrientationManager, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError( - "new-instance-error", - "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.", - ""))) + CameraXError("new-instance-error", "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.", ""))) } } - fun onDeviceOrientationChanged( - pigeon_instanceArg: DeviceOrientationManager, - orientationArg: String, - callback: (Result) -> Unit - ) { + fun onDeviceOrientationChanged(pigeon_instanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2871,8 +2715,7 @@ abstract class PigeonApiDeviceOrientationManager( } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" + val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, orientationArg)) { if (it is List<*>) { @@ -2883,9 +2726,10 @@ abstract class PigeonApiDeviceOrientationManager( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /** * A use case that provides a camera preview stream for displaying on-screen. @@ -2894,35 +2738,30 @@ abstract class PigeonApiDeviceOrientationManager( */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor( - resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, - targetRotation: Long? - ): androidx.camera.core.Preview + abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.Preview - abstract fun resolutionSelector( - pigeon_instance: androidx.camera.core.Preview - ): androidx.camera.core.resolutionselector.ResolutionSelector? + abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.resolutionselector.ResolutionSelector? /** * Sets a SurfaceProvider to provide a Surface for Preview. * * This is a convenience function that - * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the Flutter engine. + * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the + * Flutter engine. * 2. Sets this method with the created `SurfaceProvider`. - * 3. Returns the texture id of the `TextureEntry` that provided the `SurfaceProducer`. + * 3. Returns the texture id of the `TextureEntry` that provided the + * `SurfaceProducer`. */ - abstract fun setSurfaceProvider( - pigeon_instance: androidx.camera.core.Preview, - systemServicesManager: SystemServicesManager - ): Long + abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager): Long - /** Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was created. */ + /** + * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was + * created. + */ abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) /** Gets selected resolution information of the `Preview`. */ - abstract fun getResolutionInfo( - pigeon_instance: androidx.camera.core.Preview - ): androidx.camera.core.ResolutionInfo? + abstract fun getResolutionInfo(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.ResolutionInfo? /** Sets the target rotation. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) @@ -2932,27 +2771,19 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPreview?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = - args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(resolutionSelectorArg, targetRotationArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2960,22 +2791,17 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val systemServicesManagerArg = args[1] as SystemServicesManager - val wrapped: List = - try { - listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2983,22 +2809,17 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = - try { - api.releaseSurfaceProvider(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.releaseSurfaceProvider(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3006,21 +2827,16 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = - try { - listOf(api.getResolutionInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getResolutionInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3028,23 +2844,18 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val rotationArg = args[1] as Long - val wrapped: List = - try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3056,19 +2867,16 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Preview and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.Preview, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Preview, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -3077,23 +2885,24 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { return pigeonRegistrar.getPigeonApiUseCase() } + } /** * A use case that provides camera stream suitable for video application. @@ -3101,48 +2910,33 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoCapture( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Create a `VideoCapture` associated with the given `VideoOutput`. */ - abstract fun withOutput( - videoOutput: androidx.camera.video.VideoOutput - ): androidx.camera.video.VideoCapture<*> + abstract fun withOutput(videoOutput: androidx.camera.video.VideoOutput): androidx.camera.video.VideoCapture<*> /** Gets the VideoOutput associated with this VideoCapture. */ - abstract fun getOutput( - pigeon_instance: androidx.camera.video.VideoCapture<*> - ): androidx.camera.video.VideoOutput + abstract fun getOutput(pigeon_instance: androidx.camera.video.VideoCapture<*>): androidx.camera.video.VideoOutput /** Sets the desired rotation of the output video. */ - abstract fun setTargetRotation( - pigeon_instance: androidx.camera.video.VideoCapture<*>, - rotation: Long - ) + abstract fun setTargetRotation(pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val videoOutputArg = args[1] as androidx.camera.video.VideoOutput - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.withOutput(videoOutputArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withOutput(videoOutputArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3150,21 +2944,16 @@ abstract class PigeonApiVideoCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> - val wrapped: List = - try { - listOf(api.getOutput(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getOutput(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3172,23 +2961,18 @@ abstract class PigeonApiVideoCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> val rotationArg = args[1] as Long - val wrapped: List = - try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3200,19 +2984,16 @@ abstract class PigeonApiVideoCapture( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" @@ -3220,23 +3001,24 @@ abstract class PigeonApiVideoCapture( channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { return pigeonRegistrar.getPigeonApiUseCase() } + } /** * A class that will produce video data from a Surface. @@ -3247,19 +3029,16 @@ abstract class PigeonApiVideoCapture( open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoOutput and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoOutput, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoOutput, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" @@ -3267,31 +3046,27 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * An implementation of `VideoOutput` for starting video recordings that are saved to a File, - * ParcelFileDescriptor, or MediaStore. + * An implementation of `VideoOutput` for starting video recordings that are + * saved to a File, ParcelFileDescriptor, or MediaStore. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor( - aspectRatio: Long?, - targetVideoEncodingBitRate: Long?, - qualitySelector: androidx.camera.video.QualitySelector? - ): androidx.camera.video.Recorder + abstract fun pigeon_defaultConstructor(aspectRatio: Long?, targetVideoEncodingBitRate: Long?, qualitySelector: androidx.camera.video.QualitySelector?): androidx.camera.video.Recorder /** Gets the aspect ratio of this Recorder. */ abstract fun getAspectRatio(pigeon_instance: androidx.camera.video.Recorder): Long @@ -3300,26 +3075,17 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long /** The quality selector of this Recorder. */ - abstract fun getQualitySelector( - pigeon_instance: androidx.camera.video.Recorder - ): androidx.camera.video.QualitySelector + abstract fun getQualitySelector(pigeon_instance: androidx.camera.video.Recorder): androidx.camera.video.QualitySelector /** Prepares a recording that will be saved to a File. */ - abstract fun prepareRecording( - pigeon_instance: androidx.camera.video.Recorder, - path: String - ): androidx.camera.video.PendingRecording + abstract fun prepareRecording(pigeon_instance: androidx.camera.video.Recorder, path: String): androidx.camera.video.PendingRecording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecorder?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -3327,16 +3093,12 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP val aspectRatioArg = args[1] as Long? val targetVideoEncodingBitRateArg = args[2] as Long? val qualitySelectorArg = args[3] as androidx.camera.video.QualitySelector? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor( - aspectRatioArg, targetVideoEncodingBitRateArg, qualitySelectorArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioArg,targetVideoEncodingBitRateArg,qualitySelectorArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3344,21 +3106,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = - try { - listOf(api.getAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3366,21 +3123,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = - try { - listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3388,21 +3140,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = - try { - listOf(api.getQualitySelector(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getQualitySelector(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3410,22 +3157,17 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val pathArg = args[1] as String - val wrapped: List = - try { - listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3437,19 +3179,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recorder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.Recorder, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recorder, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" @@ -3457,56 +3196,46 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoOutput] used to access callback methods */ - fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput { + fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput + { return pigeonRegistrar.getPigeonApiVideoOutput() } + } /** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoRecordEventListener( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { abstract fun pigeon_defaultConstructor(): VideoRecordEventListener companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiVideoRecordEventListener? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoRecordEventListener?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3517,34 +3246,24 @@ abstract class PigeonApiVideoRecordEventListener( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: VideoRecordEventListener, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: VideoRecordEventListener, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError( - "new-instance-error", - "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.", - ""))) + CameraXError("new-instance-error", "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.", ""))) } } - fun onEvent( - pigeon_instanceArg: VideoRecordEventListener, - eventArg: androidx.camera.video.VideoRecordEvent, - callback: (Result) -> Unit - ) { + fun onEvent(pigeon_instanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3564,9 +3283,10 @@ abstract class PigeonApiVideoRecordEventListener( } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /** * A recording that can be started at a future time. @@ -3574,36 +3294,26 @@ abstract class PigeonApiVideoRecordEventListener( * See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPendingRecording( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Starts the recording, making it an active recording. */ - abstract fun start( - pigeon_instance: androidx.camera.video.PendingRecording, - listener: VideoRecordEventListener - ): androidx.camera.video.Recording + abstract fun start(pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener): androidx.camera.video.Recording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPendingRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording val listenerArg = args[1] as VideoRecordEventListener - val wrapped: List = - try { - listOf(api.start(pigeon_instanceArg, listenerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.start(pigeon_instanceArg, listenerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3615,38 +3325,34 @@ abstract class PigeonApiPendingRecording( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PendingRecording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.PendingRecording, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.PendingRecording, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * Provides controls for the currently active recording. @@ -3676,20 +3382,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = - try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3697,20 +3400,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = - BasicMessageChannel( - binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = - try { - api.pause(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pause(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3718,22 +3418,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Recording.resume", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.resume", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = - try { - api.resume(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.resume(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3741,20 +3436,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = - BasicMessageChannel( - binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = - try { - api.stop(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.stop(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3766,19 +3458,16 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.Recording, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recording, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" @@ -3786,17 +3475,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * A use case for taking a picture. @@ -3804,30 +3493,16 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageCapture( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, - targetRotation: Long?, - flashMode: CameraXFlashMode? - ): androidx.camera.core.ImageCapture - - abstract fun resolutionSelector( - pigeon_instance: androidx.camera.core.ImageCapture - ): androidx.camera.core.resolutionselector.ResolutionSelector? +abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?, flashMode: CameraXFlashMode?): androidx.camera.core.ImageCapture + + abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageCapture): androidx.camera.core.resolutionselector.ResolutionSelector? /** Set the flash mode. */ - abstract fun setFlashMode( - pigeon_instance: androidx.camera.core.ImageCapture, - flashMode: CameraXFlashMode - ) + abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode) /** Captures a new still image for in memory access. */ - abstract fun takePicture( - pigeon_instance: androidx.camera.core.ImageCapture, - callback: (Result) -> Unit - ) + abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) /** Sets the desired rotation of the output image. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) @@ -3837,29 +3512,20 @@ abstract class PigeonApiImageCapture( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = - args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? val flashModeArg = args[3] as CameraXFlashMode? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor( - resolutionSelectorArg, targetRotationArg, flashModeArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg,flashModeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3867,23 +3533,18 @@ abstract class PigeonApiImageCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val flashModeArg = args[1] as CameraXFlashMode - val wrapped: List = - try { - api.setFlashMode(pigeon_instanceArg, flashModeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setFlashMode(pigeon_instanceArg, flashModeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3891,11 +3552,7 @@ abstract class PigeonApiImageCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -3915,23 +3572,18 @@ abstract class PigeonApiImageCapture( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val rotationArg = args[1] as Long - val wrapped: List = - try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3943,19 +3595,16 @@ abstract class PigeonApiImageCapture( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageCapture, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -3964,80 +3613,65 @@ abstract class PigeonApiImageCapture( channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { return pigeonRegistrar.getPigeonApiUseCase() } + } /** - * The resolution strategy defines the resolution selection sequence to select the best size. + * The resolution strategy defines the resolution selection sequence to select + * the best size. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionStrategy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - boundSize: android.util.Size, - fallbackRule: ResolutionStrategyFallbackRule - ): androidx.camera.core.resolutionselector.ResolutionStrategy +abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(boundSize: android.util.Size, fallbackRule: ResolutionStrategyFallbackRule): androidx.camera.core.resolutionselector.ResolutionStrategy /** A resolution strategy chooses the highest available resolution. */ - abstract fun highestAvailableStrategy(): - androidx.camera.core.resolutionselector.ResolutionStrategy + abstract fun highestAvailableStrategy(): androidx.camera.core.resolutionselector.ResolutionStrategy /** The specified bound size. */ - abstract fun getBoundSize( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy - ): android.util.Size? + abstract fun getBoundSize(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): android.util.Size? /** - * The fallback rule for choosing an alternate size when the specified bound size is unavailable. + * The fallback rule for choosing an alternate size when the specified bound + * size is unavailable. */ - abstract fun getFallbackRule( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy - ): ResolutionStrategyFallbackRule + abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): ResolutionStrategyFallbackRule companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val boundSizeArg = args[1] as android.util.Size val fallbackRuleArg = args[2] as ResolutionStrategyFallbackRule - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(boundSizeArg, fallbackRuleArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(boundSizeArg,fallbackRuleArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4045,23 +3679,17 @@ abstract class PigeonApiResolutionStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.highestAvailableStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.highestAvailableStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4069,22 +3697,16 @@ abstract class PigeonApiResolutionStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy - val wrapped: List = - try { - listOf(api.getBoundSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = try { + listOf(api.getBoundSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4092,22 +3714,16 @@ abstract class PigeonApiResolutionStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy - val wrapped: List = - try { - listOf(api.getFallbackRule(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4119,104 +3735,77 @@ abstract class PigeonApiResolutionStrategy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A set of requirements and priorities used to select a resolution for the `UseCase`. + * A set of requirements and priorities used to select a resolution for the + * `UseCase`. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionSelector( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?, - resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, - aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy? - ): androidx.camera.core.resolutionselector.ResolutionSelector +abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?, resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?): androidx.camera.core.resolutionselector.ResolutionSelector /** The resolution filter to output the final desired sizes list. */ - abstract fun resolutionFilter( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector - ): androidx.camera.core.resolutionselector.ResolutionFilter? + abstract fun resolutionFilter(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionFilter? /** The resolution selection strategy for the `UseCase`. */ - abstract fun resolutionStrategy( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector - ): androidx.camera.core.resolutionselector.ResolutionStrategy? + abstract fun resolutionStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionStrategy? /** * Returns the specified `AspectRatioStrategy`, or - * `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified when creating the - * ResolutionSelector. + * `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified + * when creating the ResolutionSelector. */ - abstract fun getAspectRatioStrategy( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector - ): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun getAspectRatioStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.AspectRatioStrategy companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionFilterArg = - args[1] as androidx.camera.core.resolutionselector.ResolutionFilter? - val resolutionStrategyArg = - args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? - val aspectRatioStrategyArg = - args[3] as androidx.camera.core.resolutionselector.AspectRatioStrategy? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor( - resolutionFilterArg, resolutionStrategyArg, aspectRatioStrategyArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionFilterArg = args[1] as androidx.camera.core.resolutionselector.ResolutionFilter? + val resolutionStrategyArg = args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val aspectRatioStrategyArg = args[3] as androidx.camera.core.resolutionselector.AspectRatioStrategy? + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionFilterArg,resolutionStrategyArg,aspectRatioStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4224,22 +3813,16 @@ abstract class PigeonApiResolutionSelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as androidx.camera.core.resolutionselector.ResolutionSelector - val wrapped: List = - try { - listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionSelector + val wrapped: List = try { + listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4251,109 +3834,90 @@ abstract class PigeonApiResolutionSelector( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionFilterArg = resolutionFilter(pigeon_instanceArg) val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, resolutionFilterArg, resolutionStrategyArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * The aspect ratio strategy defines the sequence of aspect ratios that are used to select the best - * size for a particular image. + * The aspect ratio strategy defines the sequence of aspect ratios that are + * used to select the best size for a particular image. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiAspectRatioStrategy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Creates a new AspectRatioStrategy instance, configured with the specified preferred aspect - * ratio and fallback rule. + * Creates a new AspectRatioStrategy instance, configured with the specified + * preferred aspect ratio and fallback rule. */ - abstract fun pigeon_defaultConstructor( - preferredAspectRatio: AspectRatio, - fallbackRule: AspectRatioStrategyFallbackRule - ): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun pigeon_defaultConstructor(preferredAspectRatio: AspectRatio, fallbackRule: AspectRatioStrategyFallbackRule): androidx.camera.core.resolutionselector.AspectRatioStrategy - /** The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 in priority. */ - abstract fun ratio_16_9FallbackAutoStrategy(): - androidx.camera.core.resolutionselector.AspectRatioStrategy + /** + * The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 + * in priority. + */ + abstract fun ratio_16_9FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The pre-defined default aspect ratio strategy that selects sizes with RATIO_4_3 in priority. + * The pre-defined default aspect ratio strategy that selects sizes with + * RATIO_4_3 in priority. */ - abstract fun ratio_4_3FallbackAutoStrategy(): - androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun ratio_4_3FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The specified fallback rule for choosing the aspect ratio when the preferred aspect ratio is - * not available. + * The specified fallback rule for choosing the aspect ratio when the + * preferred aspect ratio is not available. */ - abstract fun getFallbackRule( - pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy - ): AspectRatioStrategyFallbackRule + abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatioStrategyFallbackRule /** The specified preferred aspect ratio. */ - abstract fun getPreferredAspectRatio( - pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy - ): AspectRatio + abstract fun getPreferredAspectRatio(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatio companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAspectRatioStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredAspectRatioArg = args[1] as AspectRatio val fallbackRuleArg = args[2] as AspectRatioStrategyFallbackRule - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(preferredAspectRatioArg, fallbackRuleArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(preferredAspectRatioArg,fallbackRuleArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4361,23 +3925,17 @@ abstract class PigeonApiAspectRatioStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4385,23 +3943,17 @@ abstract class PigeonApiAspectRatioStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4409,22 +3961,16 @@ abstract class PigeonApiAspectRatioStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy - val wrapped: List = - try { - listOf(api.getFallbackRule(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4432,22 +3978,16 @@ abstract class PigeonApiAspectRatioStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy - val wrapped: List = - try { - listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = try { + listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4459,38 +3999,34 @@ abstract class PigeonApiAspectRatioStrategy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * Represents the different states the camera can be in. @@ -4498,32 +4034,25 @@ abstract class PigeonApiAspectRatioStrategy( * See https://developer.android.com/reference/androidx/camera/core/CameraState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraState( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The camera's state. */ abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType /** Potentially returns an error the camera encountered. */ - abstract fun error( - pigeon_instance: androidx.camera.core.CameraState - ): androidx.camera.core.CameraState.StateError? + abstract fun error(pigeon_instance: androidx.camera.core.CameraState): androidx.camera.core.CameraState.StateError? @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraState, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val errorArg = error(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -4533,17 +4062,17 @@ abstract class PigeonApiCameraState( channel.send(listOf(pigeon_identifierArg, typeArg, errorArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * An interface which contains the camera exposure related information. @@ -4551,57 +4080,48 @@ abstract class PigeonApiCameraState( * See https://developer.android.com/reference/androidx/camera/core/ExposureState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiExposureState( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** * Get the maximum and minimum exposure compensation values for * `CameraControl.setExposureCompensationIndex`. */ - abstract fun exposureCompensationRange( - pigeon_instance: androidx.camera.core.ExposureState - ): android.util.Range<*> + abstract fun exposureCompensationRange(pigeon_instance: androidx.camera.core.ExposureState): android.util.Range<*> /** Get the smallest step by which the exposure compensation can be changed. */ abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ExposureState, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ExposureState, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send( - listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback( - Result.failure( - CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + channel.send(listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } } } + } /** * An interface which contains the zoom related information from a camera. @@ -4618,19 +4138,16 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ZoomState, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -4640,77 +4157,57 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon channel.send(listOf(pigeon_identifierArg, minZoomRatioArg, maxZoomRatioArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A use case providing CPU accessible images for an app to perform image analysis on. + * A use case providing CPU accessible images for an app to perform image + * analysis on. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageAnalysis( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, - targetRotation: Long? - ): androidx.camera.core.ImageAnalysis - - abstract fun resolutionSelector( - pigeon_instance: androidx.camera.core.ImageAnalysis - ): androidx.camera.core.resolutionselector.ResolutionSelector? +abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.ImageAnalysis + + abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageAnalysis): androidx.camera.core.resolutionselector.ResolutionSelector? /** Sets an analyzer to receive and analyze images. */ - abstract fun setAnalyzer( - pigeon_instance: androidx.camera.core.ImageAnalysis, - analyzer: androidx.camera.core.ImageAnalysis.Analyzer - ) + abstract fun setAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer) /** Removes a previously set analyzer. */ abstract fun clearAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis) /** Sets the target rotation. */ - abstract fun setTargetRotation( - pigeon_instance: androidx.camera.core.ImageAnalysis, - rotation: Long - ) + abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageAnalysis, rotation: Long) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageAnalysis?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = - args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(resolutionSelectorArg, targetRotationArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4718,23 +4215,18 @@ abstract class PigeonApiImageAnalysis( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val analyzerArg = args[1] as androidx.camera.core.ImageAnalysis.Analyzer - val wrapped: List = - try { - api.setAnalyzer(pigeon_instanceArg, analyzerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setAnalyzer(pigeon_instanceArg, analyzerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4742,22 +4234,17 @@ abstract class PigeonApiImageAnalysis( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis - val wrapped: List = - try { - api.clearAnalyzer(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.clearAnalyzer(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4765,23 +4252,18 @@ abstract class PigeonApiImageAnalysis( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val rotationArg = args[1] as Long - val wrapped: List = - try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4793,19 +4275,16 @@ abstract class PigeonApiImageAnalysis( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageAnalysis, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -4814,23 +4293,24 @@ abstract class PigeonApiImageAnalysis( channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase + { return pigeonRegistrar.getPigeonApiUseCase() } + } /** * Interface for analyzing images. @@ -4846,23 +4326,17 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAnalyzer?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4874,32 +4348,24 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Analyzer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError( - "new-instance-error", - "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.", - ""))) + CameraXError("new-instance-error", "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.", ""))) } } /** Analyzes an image to produce a result. */ - fun analyze( - pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, - imageArg: androidx.camera.core.ImageProxy, - callback: (Result) -> Unit - ) { + fun analyze(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, imageArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4919,9 +4385,10 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } + } /** * Error that the camera has encountered. @@ -4929,104 +4396,85 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP * See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraStateStateError( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The code of this error. */ - abstract fun code( - pigeon_instance: androidx.camera.core.CameraState.StateError - ): CameraStateErrorCode + abstract fun code(pigeon_instance: androidx.camera.core.CameraState.StateError): CameraStateErrorCode @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraState.StateError, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState.StateError, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val codeArg = code(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, codeArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * LiveData is a data holder class that can be observed within a given lifecycle. + * LiveData is a data holder class that can be observed within a given + * lifecycle. * - * This is a wrapper around the native class to better support the generic type. Java has type - * erasure; + * This is a wrapper around the native class to better support the generic + * type. Java has type erasure; * * See https://developer.android.com/reference/androidx/lifecycle/LiveData. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The generic type used by this instance. */ - abstract fun type( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - ): LiveDataSupportedType + abstract fun type(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): LiveDataSupportedType - /** Adds the given observer to the observers list within the lifespan of the given owner. */ - abstract fun observe( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, - observer: androidx.lifecycle.Observer<*> - ) + /** + * Adds the given observer to the observers list within the lifespan of the + * given owner. + */ + abstract fun observe(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, observer: androidx.lifecycle.Observer<*>) /** Removes all observers that are tied to the given `LifecycleOwner`. */ - abstract fun removeObservers( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - ) + abstract fun removeObservers(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) /** Returns the current value. */ - abstract fun getValue( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - ): Any? + abstract fun getValue(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiLiveData?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val observerArg = args[1] as androidx.lifecycle.Observer<*> - val wrapped: List = - try { - api.observe(pigeon_instanceArg, observerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.observe(pigeon_instanceArg, observerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5034,23 +4482,17 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = - try { - api.removeObservers(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = try { + api.removeObservers(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5058,22 +4500,16 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = - try { - listOf(api.getValue(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = try { + listOf(api.getValue(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5085,19 +4521,16 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -5106,17 +4539,17 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP channel.send(listOf(pigeon_identifierArg, typeArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * An image proxy which has a similar interface as `android.media.Image`. @@ -5124,9 +4557,7 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageProxy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The image format. */ abstract fun format(pigeon_instance: androidx.camera.core.ImageProxy): Long @@ -5137,9 +4568,7 @@ abstract class PigeonApiImageProxy( abstract fun height(pigeon_instance: androidx.camera.core.ImageProxy): Long /** Returns the array of planes. */ - abstract fun getPlanes( - pigeon_instance: androidx.camera.core.ImageProxy - ): List + abstract fun getPlanes(pigeon_instance: androidx.camera.core.ImageProxy): List /** Closes the underlying `android.media.Image`. */ abstract fun close(pigeon_instance: androidx.camera.core.ImageProxy) @@ -5149,21 +4578,16 @@ abstract class PigeonApiImageProxy( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageProxy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = - try { - listOf(api.getPlanes(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getPlanes(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5171,22 +4595,17 @@ abstract class PigeonApiImageProxy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = - try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5198,19 +4617,16 @@ abstract class PigeonApiImageProxy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageProxy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val formatArg = format(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) @@ -5221,27 +4637,26 @@ abstract class PigeonApiImageProxy( channel.send(listOf(pigeon_identifierArg, formatArg, widthArg, heightArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A plane proxy which has an analogous interface as `android.media.Image.Plane`. + * A plane proxy which has an analogous interface as + * `android.media.Image.Plane`. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPlaneProxy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The pixels buffer. */ abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray @@ -5253,19 +4668,16 @@ abstract class PigeonApiPlaneProxy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val bufferArg = buffer(pigeon_instanceArg) val pixelStrideArg = pixelStride(pigeon_instanceArg) val rowStrideArg = rowStride(pigeon_instanceArg) @@ -5276,70 +4688,53 @@ abstract class PigeonApiPlaneProxy( channel.send(listOf(pigeon_identifierArg, bufferArg, pixelStrideArg, rowStrideArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * Defines a desired quality setting that can be used to configure components with quality setting - * requirements such as creating a Recorder. + * Defines a desired quality setting that can be used to configure components + * with quality setting requirements such as creating a Recorder. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiQualitySelector( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Gets an instance of QualitySelector with a desired quality. */ - abstract fun from( - quality: VideoQuality, - fallbackStrategy: androidx.camera.video.FallbackStrategy? - ): androidx.camera.video.QualitySelector + abstract fun from(quality: VideoQuality, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector /** Gets an instance of QualitySelector with ordered desired qualities. */ - abstract fun fromOrderedList( - qualities: List, - fallbackStrategy: androidx.camera.video.FallbackStrategy? - ): androidx.camera.video.QualitySelector + abstract fun fromOrderedList(qualities: List, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector /** Gets the corresponding resolution from the input quality. */ - abstract fun getResolution( - cameraInfo: androidx.camera.core.CameraInfo, - quality: VideoQuality - ): android.util.Size? + abstract fun getResolution(cameraInfo: androidx.camera.core.CameraInfo, quality: VideoQuality): android.util.Size? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiQualitySelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.from(qualityArg, fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(qualityArg,fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5347,25 +4742,19 @@ abstract class PigeonApiQualitySelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualitiesArg = args[1] as List val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.fromOrderedList(qualitiesArg, fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.fromOrderedList(qualitiesArg,fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5373,22 +4762,17 @@ abstract class PigeonApiQualitySelector( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val cameraInfoArg = args[0] as androidx.camera.core.CameraInfo val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - listOf(api.getResolution(cameraInfoArg, qualityArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getResolution(cameraInfoArg, qualityArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5400,74 +4784,65 @@ abstract class PigeonApiQualitySelector( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of QualitySelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.QualitySelector, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.QualitySelector, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A class represents the strategy that will be adopted when the device does not support all the - * desired Quality in QualitySelector in order to select the quality as possible. + * A class represents the strategy that will be adopted when the device does + * not support all the desired Quality in QualitySelector in order to select + * the quality as possible. * * See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFallbackStrategy( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Returns a fallback strategy that will choose the quality that is closest to and higher than the - * input quality. + * Returns a fallback strategy that will choose the quality that is closest + * to and higher than the input quality. */ - abstract fun higherQualityOrLowerThan( - quality: VideoQuality - ): androidx.camera.video.FallbackStrategy + abstract fun higherQualityOrLowerThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest to and higher than the - * input quality. + * Returns a fallback strategy that will choose the quality that is closest + * to and higher than the input quality. */ abstract fun higherQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest to and lower than the - * input quality. + * Returns a fallback strategy that will choose the quality that is closest + * to and lower than the input quality. */ - abstract fun lowerQualityOrHigherThan( - quality: VideoQuality - ): androidx.camera.video.FallbackStrategy + abstract fun lowerQualityOrHigherThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest to and lower than the - * input quality. + * Returns a fallback strategy that will choose the quality that is closest + * to and lower than the input quality. */ abstract fun lowerQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy @@ -5476,24 +4851,18 @@ abstract class PigeonApiFallbackStrategy( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFallbackStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5501,24 +4870,18 @@ abstract class PigeonApiFallbackStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.higherQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5526,24 +4889,18 @@ abstract class PigeonApiFallbackStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5551,24 +4908,18 @@ abstract class PigeonApiFallbackStrategy( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.lowerQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5580,93 +4931,68 @@ abstract class PigeonApiFallbackStrategy( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.FallbackStrategy, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.FallbackStrategy, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * The CameraControl provides various asynchronous operations like zoom, focus and metering which - * affects output of all UseCases currently bound to that camera. + * The CameraControl provides various asynchronous operations like zoom, focus + * and metering which affects output of all UseCases currently bound to that + * camera. * * See https://developer.android.com/reference/androidx/camera/core/CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraControl( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Enable the torch or disable the torch. */ - abstract fun enableTorch( - pigeon_instance: androidx.camera.core.CameraControl, - torch: Boolean, - callback: (Result) -> Unit - ) + abstract fun enableTorch(pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit) /** Sets current zoom by ratio. */ - abstract fun setZoomRatio( - pigeon_instance: androidx.camera.core.CameraControl, - ratio: Double, - callback: (Result) -> Unit - ) - - /** Starts a focus and metering action configured by the `FocusMeteringAction`. */ - abstract fun startFocusAndMetering( - pigeon_instance: androidx.camera.core.CameraControl, - action: androidx.camera.core.FocusMeteringAction, - callback: (Result) -> Unit - ) + abstract fun setZoomRatio(pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit) + + /** + * Starts a focus and metering action configured by the + * `FocusMeteringAction`. + */ + abstract fun startFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ - abstract fun cancelFocusAndMetering( - pigeon_instance: androidx.camera.core.CameraControl, - callback: (Result) -> Unit - ) + abstract fun cancelFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, callback: (Result) -> Unit) /** Set the exposure compensation value for the camera. */ - abstract fun setExposureCompensationIndex( - pigeon_instance: androidx.camera.core.CameraControl, - index: Long, - callback: (Result) -> Unit - ) + abstract fun setExposureCompensationIndex(pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraControl?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5686,11 +5012,7 @@ abstract class PigeonApiCameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5710,18 +5032,13 @@ abstract class PigeonApiCameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val actionArg = args[1] as androidx.camera.core.FocusMeteringAction - api.startFocusAndMetering(pigeon_instanceArg, actionArg) { - result: Result -> + api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5736,11 +5053,7 @@ abstract class PigeonApiCameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5759,18 +5072,13 @@ abstract class PigeonApiCameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val indexArg = args[1] as Long - api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result - -> + api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5789,19 +5097,16 @@ abstract class PigeonApiCameraControl( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraControl, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraControl, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" @@ -5809,86 +5114,63 @@ abstract class PigeonApiCameraControl( channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * The builder used to create the `FocusMeteringAction`. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringActionBuilder( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - /** Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | FLAG_AE | FLAG_AWB. */ - abstract fun pigeon_defaultConstructor( - point: androidx.camera.core.MeteringPoint - ): androidx.camera.core.FocusMeteringAction.Builder +abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + /** + * Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | + * FLAG_AE | FLAG_AWB. + */ + abstract fun pigeon_defaultConstructor(point: androidx.camera.core.MeteringPoint): androidx.camera.core.FocusMeteringAction.Builder /** Creates a Builder from a `MeteringPoint` and `MeteringMode`. */ - abstract fun withMode( - point: androidx.camera.core.MeteringPoint, - mode: MeteringMode - ): androidx.camera.core.FocusMeteringAction.Builder + abstract fun withMode(point: androidx.camera.core.MeteringPoint, mode: MeteringMode): androidx.camera.core.FocusMeteringAction.Builder /** Adds another MeteringPoint with default metering mode. */ - abstract fun addPoint( - pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, - point: androidx.camera.core.MeteringPoint - ) + abstract fun addPoint(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint) /** Adds another MeteringPoint with specified meteringMode. */ - abstract fun addPointWithMode( - pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, - point: androidx.camera.core.MeteringPoint, - mode: MeteringMode - ) + abstract fun addPointWithMode(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, mode: MeteringMode) /** Disables the auto-cancel. */ abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) /** Builds the `FocusMeteringAction` instance. */ - abstract fun build( - pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder - ): androidx.camera.core.FocusMeteringAction + abstract fun build(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder): androidx.camera.core.FocusMeteringAction companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiFocusMeteringActionBuilder? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFocusMeteringActionBuilder?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5896,25 +5178,19 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.withMode(pointArg, modeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withMode(pointArg,modeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5922,23 +5198,18 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = - try { - api.addPoint(pigeon_instanceArg, pointArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.addPoint(pigeon_instanceArg, pointArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5946,24 +5217,19 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = - try { - api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5971,22 +5237,17 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = - try { - api.disableAutoCancel(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.disableAutoCancel(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5994,21 +5255,16 @@ abstract class PigeonApiFocusMeteringActionBuilder( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = - try { - listOf(api.build(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.build(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6019,41 +5275,35 @@ abstract class PigeonApiFocusMeteringActionBuilder( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * A configuration used to trigger a focus and/or metering action. @@ -6061,74 +5311,53 @@ abstract class PigeonApiFocusMeteringActionBuilder( * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringAction( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** All MeteringPoints used for AE regions. */ - abstract fun meteringPointsAe( - pigeon_instance: androidx.camera.core.FocusMeteringAction - ): List + abstract fun meteringPointsAe(pigeon_instance: androidx.camera.core.FocusMeteringAction): List /** All MeteringPoints used for AF regions. */ - abstract fun meteringPointsAf( - pigeon_instance: androidx.camera.core.FocusMeteringAction - ): List + abstract fun meteringPointsAf(pigeon_instance: androidx.camera.core.FocusMeteringAction): List /** All MeteringPoints used for AWB regions. */ - abstract fun meteringPointsAwb( - pigeon_instance: androidx.camera.core.FocusMeteringAction - ): List + abstract fun meteringPointsAwb(pigeon_instance: androidx.camera.core.FocusMeteringAction): List /** If auto-cancel is enabled or not. */ - abstract fun isAutoCancelEnabled( - pigeon_instance: androidx.camera.core.FocusMeteringAction - ): Boolean + abstract fun isAutoCancelEnabled(pigeon_instance: androidx.camera.core.FocusMeteringAction): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send( - listOf( - pigeon_identifierArg, - meteringPointsAeArg, - meteringPointsAfArg, - meteringPointsAwbArg, - isAutoCancelEnabledArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback( - Result.failure( - CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) - } - } else { - callback(Result.failure(createConnectionError(channelName))) - } + channel.send(listOf(pigeon_identifierArg, meteringPointsAeArg, meteringPointsAfArg, meteringPointsAwbArg, isAutoCancelEnabledArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) } + } else { + callback(Result.failure(createConnectionError(channelName))) + } + } } } + } /** * Result of the `CameraControl.startFocusAndMetering`. @@ -6136,60 +5365,53 @@ abstract class PigeonApiFocusMeteringAction( * See https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringResult( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** If auto focus is successful. */ abstract fun isFocusSuccessful(pigeon_instance: androidx.camera.core.FocusMeteringResult): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, isFocusSuccessfulArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * An immutable package of settings and outputs needed to capture a single image from the camera - * device. + * An immutable package of settings and outputs needed to capture a single + * image from the camera device. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequest( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Whether auto-exposure (AE) is currently locked to its latest calculated values. + * Whether auto-exposure (AE) is currently locked to its latest calculated + * values. * * Value is boolean. * @@ -6202,23 +5424,17 @@ abstract class PigeonApiCaptureRequest( fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequest?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.controlAELock(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.controlAELock(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6230,130 +5446,106 @@ abstract class PigeonApiCaptureRequest( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequest and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CaptureRequest, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A Key is used to do capture request field lookups with CaptureRequest.get or to set fields with - * `CaptureRequest.Builder.set`. + * A Key is used to do capture request field lookups with CaptureRequest.get or + * to set fields with `CaptureRequest.Builder.set`. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCaptureRequestKey( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * A bundle of Camera2 capture request options. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. + * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequestOptions( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun pigeon_defaultConstructor( - options: Map, Any?> - ): androidx.camera.camera2.interop.CaptureRequestOptions - - /** Returns a value for the given CaptureRequestKey or null if it hasn't been set. */ - abstract fun getCaptureRequestOption( - pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, - key: android.hardware.camera2.CaptureRequest.Key<*> - ): Any? +abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun pigeon_defaultConstructor(options: Map, Any?>): androidx.camera.camera2.interop.CaptureRequestOptions + + /** + * Returns a value for the given CaptureRequestKey or null if it hasn't been + * set. + */ + abstract fun getCaptureRequestOption(pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, key: android.hardware.camera2.CaptureRequest.Key<*>): Any? companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiCaptureRequestOptions? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequestOptions?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val optionsArg = args[1] as Map, Any?> - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6361,23 +5553,17 @@ abstract class PigeonApiCaptureRequestOptions( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as androidx.camera.camera2.interop.CaptureRequestOptions + val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.CaptureRequestOptions val keyArg = args[1] as android.hardware.camera2.CaptureRequest.Key<*> - val wrapped: List = - try { - listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6389,87 +5575,69 @@ abstract class PigeonApiCaptureRequestOptions( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * An class that provides ability to interoperate with the 1android.hardware.camera21 APIs. + * An class that provides ability to interoperate with the + * 1android.hardware.camera21 APIs. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. + * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraControl( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Gets the `Camera2CameraControl` from a `CameraControl`. */ - abstract fun from( - cameraControl: androidx.camera.core.CameraControl - ): androidx.camera.camera2.interop.Camera2CameraControl + abstract fun from(cameraControl: androidx.camera.core.CameraControl): androidx.camera.camera2.interop.Camera2CameraControl - /** Adds a `CaptureRequestOptions` updates the session with the options it contains. */ - abstract fun addCaptureRequestOptions( - pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, - bundle: androidx.camera.camera2.interop.CaptureRequestOptions, - callback: (Result) -> Unit - ) + /** + * Adds a `CaptureRequestOptions` updates the session with the options it + * contains. + */ + abstract fun addCaptureRequestOptions(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, bundle: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiCamera2CameraControl? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraControl?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraControlArg = args[1] as androidx.camera.core.CameraControl - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.from(cameraControlArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraControlArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6477,11 +5645,7 @@ abstract class PigeonApiCamera2CameraControl( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -6505,77 +5669,62 @@ abstract class PigeonApiCamera2CameraControl( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * Applications can filter out unsuitable sizes and sort the resolution list in the preferred order - * by implementing the resolution filter interface. + * Applications can filter out unsuitable sizes and sort the resolution list in + * the preferred order by implementing the resolution filter interface. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. + * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionFilter( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { - abstract fun createWithOnePreferredSize( - preferredSize: android.util.Size - ): androidx.camera.core.resolutionselector.ResolutionFilter +abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { + abstract fun createWithOnePreferredSize(preferredSize: android.util.Size): androidx.camera.core.resolutionselector.ResolutionFilter companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionFilter?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredSizeArg = args[1] as android.util.Size - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6587,85 +5736,73 @@ abstract class PigeonApiResolutionFilter( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A Key is used to do camera characteristics field lookups with `CameraCharacteristics.get`. + * A Key is used to do camera characteristics field lookups with + * `CameraCharacteristics.get`. * - * See - * https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. + * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCameraCharacteristicsKey( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * The properties describing a `CameraDevice`. @@ -6673,9 +5810,7 @@ open class PigeonApiCameraCharacteristicsKey( * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraCharacteristics( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** * Generally classifies the overall set of the camera device functionality. * @@ -6686,8 +5821,8 @@ abstract class PigeonApiCameraCharacteristics( abstract fun infoSupportedHardwareLevel(): android.hardware.camera2.CameraCharacteristics.Key<*> /** - * Clockwise angle through which the output image needs to be rotated to be upright on the device - * screen in its native orientation.. + * Clockwise angle through which the output image needs to be rotated to be + * upright on the device screen in its native orientation.. * * Value is int. * @@ -6697,29 +5832,20 @@ abstract class PigeonApiCameraCharacteristics( companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiCameraCharacteristics? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraCharacteristics?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.infoSupportedHardwareLevel(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.infoSupportedHardwareLevel(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6727,23 +5853,17 @@ abstract class PigeonApiCameraCharacteristics( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.sensorOrientation(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.sensorOrientation(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6755,88 +5875,68 @@ abstract class PigeonApiCameraCharacteristics( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * An interface for retrieving Camera2-related camera information. * - * See - * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. + * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraInfo( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Gets the `Camera2CameraInfo` from a `CameraInfo`. */ - abstract fun from( - cameraInfo: androidx.camera.core.CameraInfo - ): androidx.camera.camera2.interop.Camera2CameraInfo + abstract fun from(cameraInfo: androidx.camera.core.CameraInfo): androidx.camera.camera2.interop.Camera2CameraInfo /** Gets the string camera ID. */ - abstract fun getCameraId( - pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo - ): String + abstract fun getCameraId(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo): String /** Gets a camera characteristic value. */ - abstract fun getCameraCharacteristic( - pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, - key: android.hardware.camera2.CameraCharacteristics.Key<*> - ): Any? + abstract fun getCameraCharacteristic(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, key: android.hardware.camera2.CameraCharacteristics.Key<*>): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.from(cameraInfoArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraInfoArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6844,21 +5944,16 @@ abstract class PigeonApiCamera2CameraInfo( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo - val wrapped: List = - try { - listOf(api.getCameraId(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getCameraId(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6866,22 +5961,17 @@ abstract class PigeonApiCamera2CameraInfo( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val keyArg = args[1] as android.hardware.camera2.CameraCharacteristics.Key<*> - val wrapped: List = - try { - listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6893,38 +5983,34 @@ abstract class PigeonApiCamera2CameraInfo( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** * A factory to create a MeteringPoint. @@ -6932,49 +6018,30 @@ abstract class PigeonApiCamera2CameraInfo( * See https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPointFactory( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Creates a MeteringPoint by x, y. */ - abstract fun createPoint( - pigeon_instance: androidx.camera.core.MeteringPointFactory, - x: Double, - y: Double - ): androidx.camera.core.MeteringPoint + abstract fun createPoint(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double): androidx.camera.core.MeteringPoint /** Creates a MeteringPoint by x, y, size. */ - abstract fun createPointWithSize( - pigeon_instance: androidx.camera.core.MeteringPointFactory, - x: Double, - y: Double, - size: Double - ): androidx.camera.core.MeteringPoint + abstract fun createPointWithSize(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double, size: Double): androidx.camera.core.MeteringPoint companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiMeteringPointFactory? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPointFactory?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double - val wrapped: List = - try { - listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6982,11 +6049,7 @@ abstract class PigeonApiMeteringPointFactory( } } run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -6994,12 +6057,11 @@ abstract class PigeonApiMeteringPointFactory( val xArg = args[1] as Double val yArg = args[2] as Double val sizeArg = args[3] as Double - val wrapped: List = - try { - listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7011,73 +6073,57 @@ abstract class PigeonApiMeteringPointFactory( @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, - callback: (Result) -> Unit - ) { + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } + } /** - * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint which can then be used - * to construct a FocusMeteringAction to start a focus and metering action. + * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint + * which can then be used to construct a FocusMeteringAction to start a focus + * and metering action. * - * See - * https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. + * See https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDisplayOrientedMeteringPointFactory( - open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar -) { +abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** - * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) into a MeteringPoint - * based on the current display's rotation and CameraInfo. + * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) + * into a MeteringPoint based on the current display's rotation and + * CameraInfo. */ - abstract fun pigeon_defaultConstructor( - cameraInfo: androidx.camera.core.CameraInfo, - width: Double, - height: Double - ): androidx.camera.core.DisplayOrientedMeteringPointFactory + abstract fun pigeon_defaultConstructor(cameraInfo: androidx.camera.core.CameraInfo, width: Double, height: Double): androidx.camera.core.DisplayOrientedMeteringPointFactory companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers( - binaryMessenger: BinaryMessenger, - api: PigeonApiDisplayOrientedMeteringPointFactory? - ) { + fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDisplayOrientedMeteringPointFactory?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = - BasicMessageChannel( - binaryMessenger, - "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", - codec) + val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -7085,15 +6131,12 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory( val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo val widthArg = args[2] as Double val heightArg = args[3] as Double - val wrapped: List = - try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance( - api.pigeon_defaultConstructor(cameraInfoArg, widthArg, heightArg), - pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(cameraInfoArg,widthArg,heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -7104,46 +6147,40 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to - * [pigeon_instanceArg]. - */ - fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, - callback: (Result) -> Unit - ) { + /** Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, callback: (Result) -> Unit) +{ if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = - "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" + val channelName = "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback( - Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiMeteringPointFactory] used to access callback methods */ - fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory { + fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory + { return pigeonRegistrar.getPigeonApiMeteringPointFactory() } + } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index 707abb9bd06..4ff3cf244b7 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -389,4 +389,10 @@ public PigeonApiMeteringPointFactory getPigeonApiMeteringPointFactory() { getPigeonApiDisplayOrientedMeteringPointFactory() { return new DisplayOrientedMeteringPointFactoryProxyApi(this); } + + @NonNull + @Override + public PigeonApiCameraPermissionsError getPigeonApiCameraPermissionsError() { + return new CameraPermissionsErrorProxyApi(this); + } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java index 919ead7478f..f95f9501f51 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java @@ -12,7 +12,7 @@ public abstract class SystemServicesManager { @NonNull private final CameraPermissionsManager cameraPermissionsManager; public interface PermissionsResultListener { - void onResult(boolean isSuccessful); + void onResult(boolean isSuccessful, @Nullable CameraPermissionsError error); } protected SystemServicesManager(@NonNull CameraPermissionsManager cameraPermissionsManager) { @@ -37,7 +37,7 @@ public void requestCameraPermissions( (Activity) getContext(), getPermissionsRegistry(), enableAudio, - (String errorCode, String description) -> listener.onResult(errorCode == null)); + (CameraPermissionsError error) -> listener.onResult(error == null, error)); } @NonNull diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java index 0be799d97bd..88f211a7f03 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java @@ -66,12 +66,9 @@ public SystemServicesManager pigeon_defaultConstructor() { } @Override - public void requestCameraPermissions( - @NonNull SystemServicesManager pigeon_instance, - boolean enableAudio, - @NonNull Function1, Unit> callback) { + public void requestCameraPermissions(@NonNull SystemServicesManager pigeon_instance, boolean enableAudio, @NonNull Function1, Unit> callback) { pigeon_instance.requestCameraPermissions( - enableAudio, isSuccessful -> ResultCompat.success(null, callback)); + enableAudio, (isSuccessful, error) -> ResultCompat.success(error, callback)); } @NonNull diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java new file mode 100644 index 00000000000..142dc2bd343 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java @@ -0,0 +1,31 @@ +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import androidx.camera.core.CameraInfo; + +import org.junit.Test; + +public class CameraPermissionsErrorTest { + @Test + public void errorCode() { + final PigeonApiCameraPermissionsError api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsError(); + + final String errorCode = "errorCode"; + final CameraPermissionsError instance = new CameraPermissionsError(errorCode, "desc"); + + assertEquals(errorCode, api.errorCode(instance)); + } + + @Test + public void description() { + final PigeonApiCameraPermissionsError api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsError(); + + final String description = "desc"; + final CameraPermissionsError instance = new CameraPermissionsError("errorCode", description); + + assertEquals(description, api.description(instance)); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java index d90bde95330..35b92b8c953 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java @@ -19,7 +19,7 @@ public class CameraPermissionsManagerTest { public void listener_respondsOnce() { final int[] calledCounter = {0}; CameraRequestPermissionsListener permissionsListener = - new CameraRequestPermissionsListener((String code, String desc) -> calledCounter[0]++); + new CameraRequestPermissionsListener((CameraPermissionsError error) -> calledCounter[0]++); permissionsListener.onRequestPermissionsResult( 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); @@ -39,7 +39,7 @@ public void callback_respondsWithCameraAccessDenied() { 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); verify(fakeResultCallback) - .onResult("CameraAccessDenied", "Camera access permission was denied."); + .onResult(new CameraPermissionsError("CameraAccessDenied", "Camera access permission was denied.")); } @Test @@ -53,7 +53,7 @@ public void callback_respondsWithAudioAccessDenied() { null, new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_DENIED}); - verify(fakeResultCallback).onResult("AudioAccessDenied", "Audio access permission was denied."); + verify(fakeResultCallback).onResult(new CameraPermissionsError("AudioAccessDenied", "Audio access permission was denied.")); } @Test @@ -68,9 +68,9 @@ public void callback_doesNotRespond() { new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_GRANTED}); verify(fakeResultCallback, never()) - .onResult("CameraAccessDenied", "Camera access permission was denied."); + .onResult(new CameraPermissionsError("CameraAccessDenied", "Camera access permission was denied.")); verify(fakeResultCallback, never()) - .onResult("AudioAccessDenied", "Audio access permission was denied."); + .onResult(new CameraPermissionsError("AudioAccessDenied", "Audio access permission was denied.")); } @Test @@ -84,6 +84,6 @@ public void callback_respondsWithCameraAccessDeniedWhenEmptyResult() { permissionsListener.onRequestPermissionsResult(9796, null, new int[] {}); verify(fakeResultCallback) - .onResult("CameraAccessDenied", "Camera access permission was denied."); + .onResult(new CameraPermissionsError("CameraAccessDenied", "Camera access permission was denied.")); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java index 6d559fea796..d4b9eea8885 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java @@ -1,38 +1,96 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -// -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class SystemServicesManagerProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); -// -// assertTrue(api.pigeon_defaultConstructor() instanceof SystemServicesManagerProxyApi.SystemServicesManager); -// } -// +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + + +import org.junit.Test; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.mockito.ArgumentCaptor; +import org.mockito.Mockito; +import static org.mockito.Mockito.any; +import java.util.HashMap; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.app.Activity; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +public class SystemServicesManagerProxyApiTest { // @Test -// public void requestCameraPermissions() { -// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); +// public void requestCameraPermissionsTest() { +// final Activity mockActivity = mock(Activity.class); +// final CameraPermissionsManager.PermissionsRegistry mockPermissionsRegistry = mock(CameraPermissionsManager.PermissionsRegistry.class); +// final CameraPermissionsManager mockCameraPermissionsManager = +// mock(CameraPermissionsManager.class); +// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar() { +// @Nullable +// @Override +// public Activity getActivity() { +// return mockActivity; +// } +// +// @Nullable +// @Override +// CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry() { +// return mockPermissionsRegistry; +// } +// +// @NonNull +// @Override +// public CameraPermissionsManager getCameraPermissionsManager() { +// return mockCameraPermissionsManager; +// } +// }.getPigeonApiSystemServicesManager(); // // final SystemServicesManager instance = mock(SystemServicesManager.class); -// final Boolean enableAudio = true; -// api.requestCameraPermissions(instance, enableAudio); -// -// verify(instance).requestCameraPermissions(enableAudio); +// final Boolean enableAudio = false; +// +// final boolean[] isSuccess = {false}; +// api.requestCameraPermissions(instance, enableAudio, ResultCompat.asCompatCallback( +// reply -> { +// isSuccess[0] = reply.isSuccess(); +// return null; +// })); +// +// final ArgumentCaptor resultCallbackCaptor = +// ArgumentCaptor.forClass(CameraPermissionsManager.ResultCallback.class); +// +// // Test camera permissions are requested. +// verify(mockCameraPermissionsManager) +// .requestPermissions( +// eq(mockActivity), +// eq(mockPermissionsRegistry), +// eq(enableAudio), +// resultCallbackCaptor.capture()); +// +// CameraPermissionsManager.ResultCallback resultCallback = resultCallbackCaptor.getValue(); +// +// // Test no error data is sent upon permissions request success. +// resultCallback.onResult(null, null); +// assertTrue(isSuccess[0]); +// +// // Test expected error data is sent upon permissions request failure. +// final String testErrorCode = "TestErrorCode"; +// final String testErrorDescription = "Test error description."; +// +// final ArgumentCaptor cameraPermissionsErrorDataCaptor = +// ArgumentCaptor.forClass(GeneratedCameraXLibrary.CameraPermissionsErrorData.class); +// +// resultCallback.onResult(testErrorCode, testErrorDescription); +// verify(mockResult, times(2)).success(cameraPermissionsErrorDataCaptor.capture()); +// +// CameraPermissionsErrorData cameraPermissionsErrorData = +// cameraPermissionsErrorDataCaptor.getValue(); +// assertEquals(cameraPermissionsErrorData.getErrorCode(), testErrorCode); +// assertEquals(cameraPermissionsErrorData.getDescription(), testErrorDescription); // } // // @Test @@ -70,5 +128,4 @@ // // verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); // } -// -//} +} diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 24e3cd9b181..32b4d488b37 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -8,8 +8,7 @@ import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; -import 'package:flutter/foundation.dart' - show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; @@ -20,8 +19,7 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse( - {Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; } @@ -30,7 +28,6 @@ List wrapResponse( } return [error.code, error.message, error.details]; } - /// An immutable object that serves as the base class for all ProxyApis and /// can provide functional copies of itself. /// @@ -113,10 +110,9 @@ class PigeonInstanceManager { // by calling instanceManager.getIdentifier() inside of `==` while this was a // HashMap). final Expando _identifiers = Expando(); - final Map> - _weakInstances = >{}; - final Map _strongInstances = - {}; + final Map> _weakInstances = + >{}; + final Map _strongInstances = {}; late final Finalizer _finalizer; int _nextIdentifier = 0; @@ -126,8 +122,7 @@ class PigeonInstanceManager { static PigeonInstanceManager _initInstance() { WidgetsFlutterBinding.ensureInitialized(); - final _PigeonInternalInstanceManagerApi api = - _PigeonInternalInstanceManagerApi(); + final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. api.clear(); final PigeonInstanceManager instanceManager = PigeonInstanceManager( @@ -135,109 +130,59 @@ class PigeonInstanceManager { api.removeStrongReference(identifier); }, ); - _PigeonInternalInstanceManagerApi.setUpMessageHandlers( - instanceManager: instanceManager); - CameraSize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraIntegerRange.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEvent.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEventStart.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEventFinalize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - MeteringPoint.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Observer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ProcessCameraProvider.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - UseCase.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); + CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventFinalize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + MeteringPoint.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Observer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ProcessCameraProvider.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + UseCase.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - SystemServicesManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - DeviceOrientationManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Preview.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoOutput.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Recorder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - VideoRecordEventListener.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - PendingRecording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Recording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ImageCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - AspectRatioStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ExposureState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ZoomState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ImageAnalysis.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Analyzer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraStateStateError.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - LiveData.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ImageProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - PlaneProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - QualitySelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FallbackStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FocusMeteringAction.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - FocusMeteringResult.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CaptureRequest.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CaptureRequestKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CaptureRequestOptions.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Camera2CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - ResolutionFilter.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraCharacteristicsKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - CameraCharacteristics.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - Camera2CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - MeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); - DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + SystemServicesManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraPermissionsError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + DeviceOrientationManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Preview.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoOutput.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Recorder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + VideoRecordEventListener.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + PendingRecording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Recording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + AspectRatioStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ExposureState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ZoomState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageAnalysis.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Analyzer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraStateStateError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + LiveData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ImageProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + PlaneProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + QualitySelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FallbackStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringActionBuilder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringAction.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + FocusMeteringResult.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequest.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequestKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CaptureRequestOptions.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Camera2CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + ResolutionFilter.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + MeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); return instanceManager; } @@ -301,20 +246,15 @@ class PigeonInstanceManager { /// /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. - T? getInstanceWithWeakReference( - int identifier) { - final PigeonInternalProxyApiBaseClass? weakInstance = - _weakInstances[identifier]?.target; + T? getInstanceWithWeakReference(int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; if (weakInstance == null) { - final PigeonInternalProxyApiBaseClass? strongInstance = - _strongInstances[identifier]; + final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; if (strongInstance != null) { - final PigeonInternalProxyApiBaseClass copy = - strongInstance.pigeon_copy(); + final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); _identifiers[copy] = identifier; - _weakInstances[identifier] = - WeakReference(copy); + _weakInstances[identifier] = WeakReference(copy); _finalizer.attach(copy, identifier, detach: copy); return copy as T; } @@ -338,20 +278,17 @@ class PigeonInstanceManager { /// added. /// /// Returns unique identifier of the [instance] added. - void addHostCreatedInstance( - PigeonInternalProxyApiBaseClass instance, int identifier) { + void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { _addInstanceWithIdentifier(instance, identifier); } - void _addInstanceWithIdentifier( - PigeonInternalProxyApiBaseClass instance, int identifier) { + void _addInstanceWithIdentifier(PigeonInternalProxyApiBaseClass instance, int identifier) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = - WeakReference(instance); + _weakInstances[identifier] = WeakReference(instance); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -475,30 +412,30 @@ class _PigeonInternalInstanceManagerApi { } class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { - const _PigeonInternalProxyApiBaseCodec(this.instanceManager); - final PigeonInstanceManager instanceManager; - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is PigeonInternalProxyApiBaseClass) { - buffer.putUint8(128); - writeValue(buffer, instanceManager.getIdentifier(value)); - } else { - super.writeValue(buffer, value); - } - } - - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return instanceManager - .getInstanceWithWeakReference(readValue(buffer)! as int); - default: - return super.readValueOfType(type, buffer); - } - } + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } } + /// Generally classifies the overall set of the camera device functionality. /// /// See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. @@ -506,17 +443,13 @@ enum InfoSupportedHardwareLevel { /// This camera device is capable of YUV reprocessing and RAW data capture, in /// addition to FULL-level capabilities. level3, - /// This camera device is backed by an external camera connected to this /// Android device. external, - /// This camera device is capable of supporting advanced imaging applications. full, - /// This camera device is running in backward compatibility mode. legacy, - /// This camera device does not have enough capabilities to qualify as a FULL /// device or better. limited, @@ -528,13 +461,10 @@ enum InfoSupportedHardwareLevel { enum AspectRatio { /// 16:9 standard aspect ratio. ratio16To9, - /// 4:3 standard aspect ratio. ratio4To3, - /// The aspect ratio representing no preference for aspect ratio. ratioDefault, - /// The value is not recognized by the wrapper. unknown, } @@ -545,20 +475,15 @@ enum AspectRatio { enum CameraStateType { /// Represents a state where the camera device is closed. closed, - /// Represents a state where the camera device is currently closing. closing, - /// Represents a state where the camera device is open. open, - /// Represents a state where the camera device is currently opening. opening, - /// Represents a state where the camera is waiting for a signal to attempt to /// open the camera device. pendingOpen, - /// This value is not recognized by this wrapper. unknown, } @@ -578,19 +503,14 @@ enum LiveDataSupportedType { enum VideoQuality { /// Standard Definition (SD) 480p video quality. SD, - /// High Definition (HD) 720p video quality. HD, - /// Full High Definition (FHD) 1080p video quality. FHD, - /// Ultra High Definition (UHD) 2160p video quality. UHD, - /// The lowest video quality supported by the video frame producer. lowest, - /// The highest video quality supported by the video frame producer. highest, } @@ -602,11 +522,9 @@ enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. ae, - /// A flag used in metering mode indicating the AF (Auto Focus) region is /// enabled. af, - /// A flag used in metering mode indicating the AWB (Auto White Balance) /// region is enabled. awb, @@ -618,15 +536,12 @@ enum MeteringMode { enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, - /// A camera on the device facing the opposite direction as the device's /// screen. back, - /// An external camera that has no fixed facing relative to the device's /// screen. external, - /// A camera on the devices that its lens facing is resolved. unknown, } @@ -640,12 +555,10 @@ enum CameraXFlashMode { /// The flash will be used according to the camera system's determination when /// taking a picture. auto, - /// No flash. /// /// The flash will never be used when taking a picture. off, - /// Always flash. /// /// The flash will always be used when taking a picture. @@ -660,23 +573,18 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to the /// closest higher resolution size. closestHigher, - /// When the specified bound size is unavailable, CameraX falls back to select /// the closest higher resolution size. closestHigherThenLower, - /// When the specified bound size is unavailable, CameraX falls back to the /// closest lower resolution size. closestLower, - /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. closestLowerThenHigher, - /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, - /// The value is not recognized by the wrapper. unknown, } @@ -690,11 +598,9 @@ enum AspectRatioStrategyFallbackRule { /// the closest field of view (FOV) of the camera sensor, from the remaining /// options. auto, - /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, - /// The value is not recognized by the wrapper. unknown, } @@ -706,35 +612,29 @@ enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. cameraDisabled, - /// An error indicating that the camera device was closed due to a fatal /// error. cameraFatalError, - /// An error indicating that the camera device is already in use. cameraInUse, - /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API /// level 28). doNotDisturbModeEnabled, - /// An error indicating that the limit number of open cameras has been /// reached, and more cameras cannot be opened until other instances are /// closed. maxCamerasInUse, - /// An error indicating that the camera device has encountered a recoverable /// error. otherRecoverableError, - /// An error indicating that configuring the camera has failed. streamConfig, - /// The value is not recognized by this wrapper. unknown, } + class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -742,37 +642,37 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); } else { @@ -783,41 +683,37 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null - ? null - : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null ? null : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null - ? null - : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; default: @@ -825,7 +721,6 @@ class _PigeonCodec extends StandardMessageCodec { } } } - /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. @@ -2613,7 +2508,8 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { } } - Future requestCameraPermissions(bool enableAudio) async { + Future requestCameraPermissions( + bool enableAudio) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecSystemServicesManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2636,7 +2532,7 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { details: pigeonVar_replyList[2], ); } else { - return; + return (pigeonVar_replyList[0] as CameraPermissionsError?); } } @@ -2717,6 +2613,95 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { } } +/// Contains data when an attempt to retrieve camera permissions fails. +class CameraPermissionsError extends PigeonInternalProxyApiBaseClass { + /// Constructs [CameraPermissionsError] without creating the associated native object. + /// + /// This should only be used by subclasses created by this library or to + /// create copies for an [PigeonInstanceManager]. + @protected + CameraPermissionsError.pigeon_detached({ + super.pigeon_binaryMessenger, + super.pigeon_instanceManager, + required this.errorCode, + required this.description, + }); + + final String errorCode; + + final String description; + + static void pigeon_setUpMessageHandlers({ + bool pigeon_clearHandlers = false, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + CameraPermissionsError Function( + String errorCode, + String description, + )? pigeon_newInstance, + }) { + final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = + _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager ?? PigeonInstanceManager.instance); + final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; + { + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); + if (pigeon_clearHandlers) { + pigeonVar_channel.setMessageHandler(null); + } else { + pigeonVar_channel.setMessageHandler((Object? message) async { + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null.'); + final List args = (message as List?)!; + final int? arg_pigeon_instanceIdentifier = (args[0] as int?); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null int.'); + final String? arg_errorCode = (args[1] as String?); + assert(arg_errorCode != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.'); + final String? arg_description = (args[2] as String?); + assert(arg_description != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.'); + try { + (pigeon_instanceManager ?? PigeonInstanceManager.instance) + .addHostCreatedInstance( + pigeon_newInstance?.call(arg_errorCode!, arg_description!) ?? + CameraPermissionsError.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + errorCode: arg_errorCode!, + description: arg_description!, + ), + arg_pigeon_instanceIdentifier!, + ); + return wrapResponse(empty: true); + } on PlatformException catch (e) { + return wrapResponse(error: e); + } catch (e) { + return wrapResponse( + error: PlatformException(code: 'error', message: e.toString())); + } + }); + } + } + } + + @override + CameraPermissionsError pigeon_copy() { + return CameraPermissionsError.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + errorCode: errorCode, + description: description, + ); + } +} + /// Support class to help to determine the media orientation based on the /// orientation of the device. class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { @@ -8548,3 +8533,4 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { ); } } + diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 9edcfe68d0c..15b2e14c2f3 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -384,13 +384,20 @@ abstract class SystemServicesManager { late void Function(String errorDescription) onCameraError; @async - void requestCameraPermissions(bool enableAudio); + CameraPermissionsError? requestCameraPermissions(bool enableAudio); String getTempFilePath(String prefix, String suffix); bool isPreviewPreTransformed(); } +/// Contains data when an attempt to retrieve camera permissions fails. +@ProxyApi() +abstract class CameraPermissionsError { + late final String errorCode; + late final String description; +} + /// Support class to help to determine the media orientation based on the /// orientation of the device. @ProxyApi() diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 21811010c97..73b52f8c2e1 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -34,11 +34,6 @@ dev_dependencies: leak_tracker_flutter_testing: any mockito: ^5.4.4 pigeon: ^24.1.1 -# pigeon: -# git: -# url: git@github.com:bparrishMines/packages.git -# ref: pigeon_helper -# path: packages/pigeon topics: - camera From ade6c52c61660764efcb59a52c257e868220c4d6 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 22:20:57 -0500 Subject: [PATCH 109/148] system services manager test --- .../camerax/CameraPermissionsError.java | 8 +- .../CameraPermissionsErrorProxyApi.java | 9 +- .../camerax/CameraPermissionsManager.java | 12 +- .../plugins/camerax/CameraXLibrary.g.kt | 4678 ++++++++++------- .../plugins/camerax/ProxyApiRegistrar.java | 4 +- .../SystemServicesManagerProxyApi.java | 7 +- .../camerax/CameraPermissionsErrorTest.java | 10 +- .../camerax/CameraPermissionsManagerTest.java | 19 +- .../plugins/camerax/QualitySelectorTest.java | 39 +- .../flutter/plugins/camerax/RecorderTest.java | 58 +- .../plugins/camerax/RecordingTest.java | 17 +- .../plugins/camerax/ResolutionFilterTest.java | 22 +- .../plugins/camerax/ResolutionInfoTest.java | 11 +- .../camerax/ResolutionSelectorTest.java | 41 +- .../camerax/ResolutionStrategyTest.java | 41 +- .../SystemServicesManagerProxyApiTest.java | 296 +- .../lib/src/camerax_library.g.dart | 334 +- .../pigeons/camerax_library.dart | 4 +- 18 files changed, 3401 insertions(+), 2209 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsError.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsError.java index 990f3fc82dd..09b62227716 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsError.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsError.java @@ -6,12 +6,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; - import java.util.Objects; -/** - * Contains data when an attempt to retrieve camera permissions fails. - */ +/** Contains data when an attempt to retrieve camera permissions fails. */ public class CameraPermissionsError { private final String errorCode; private final String description; @@ -34,7 +31,8 @@ public String getDescription() { @Override public boolean equals(@Nullable Object obj) { if (obj instanceof CameraPermissionsError) { - return Objects.equals(((CameraPermissionsError) obj).errorCode, errorCode) && Objects.equals(((CameraPermissionsError) obj).description, description); + return Objects.equals(((CameraPermissionsError) obj).errorCode, errorCode) + && Objects.equals(((CameraPermissionsError) obj).description, description); } return false; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java index ad7b54c3598..4524c1e70a4 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java @@ -3,12 +3,13 @@ import androidx.annotation.NonNull; /** - * ProxyApi implementation for {@link CameraPermissionsError}. This class may handle instantiating native - * object instances that are attached to a Dart instance or handle method calls on the associated - * native class or an instance of that class. + * ProxyApi implementation for {@link CameraPermissionsError}. This class may handle instantiating + * native object instances that are attached to a Dart instance or handle method calls on the + * associated native class or an instance of that class. */ public class CameraPermissionsErrorProxyApi extends PigeonApiCameraPermissionsError { - public CameraPermissionsErrorProxyApi(@NonNull CameraXLibraryPigeonProxyApiRegistrar pigeonRegistrar) { + public CameraPermissionsErrorProxyApi( + @NonNull CameraXLibraryPigeonProxyApiRegistrar pigeonRegistrar) { super(pigeonRegistrar); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java index bc1f90c8adb..ed80da9ea2c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsManager.java @@ -14,8 +14,6 @@ import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; -import org.checkerframework.checker.units.qual.C; - public final class CameraPermissionsManager { interface PermissionsRegistry { @SuppressWarnings("deprecation") @@ -50,7 +48,9 @@ void requestPermissions( boolean enableAudio, ResultCallback callback) { if (ongoing) { - callback.onResult(new CameraPermissionsError(CAMERA_PERMISSIONS_REQUEST_ONGOING, CAMERA_PERMISSIONS_REQUEST_ONGOING_MESSAGE)); + callback.onResult( + new CameraPermissionsError( + CAMERA_PERMISSIONS_REQUEST_ONGOING, CAMERA_PERMISSIONS_REQUEST_ONGOING_MESSAGE)); return; } if (!hasCameraPermission(activity) || (enableAudio && !hasAudioPermission(activity))) { @@ -112,9 +112,11 @@ public boolean onRequestPermissionsResult( // grantResults could be empty if the permissions request with the user is interrupted // https://developer.android.com/reference/android/app/Activity#onRequestPermissionsResult(int,%20java.lang.String[],%20int[]) if (grantResults.length == 0 || grantResults[0] != PackageManager.PERMISSION_GRANTED) { - callback.onResult(new CameraPermissionsError(CAMERA_ACCESS_DENIED, CAMERA_ACCESS_DENIED_MESSAGE)); + callback.onResult( + new CameraPermissionsError(CAMERA_ACCESS_DENIED, CAMERA_ACCESS_DENIED_MESSAGE)); } else if (grantResults.length > 1 && grantResults[1] != PackageManager.PERMISSION_GRANTED) { - callback.onResult(new CameraPermissionsError(AUDIO_ACCESS_DENIED, AUDIO_ACCESS_DENIED_MESSAGE)); + callback.onResult( + new CameraPermissionsError(AUDIO_ACCESS_DENIED, AUDIO_ACCESS_DENIED_MESSAGE)); } else { callback.onResult(null); } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 4889c13b802..bc107335d2e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -10,9 +10,7 @@ package io.flutter.plugins.camerax import android.util.Log import io.flutter.plugin.common.BasicMessageChannel import io.flutter.plugin.common.BinaryMessenger -import io.flutter.plugin.common.EventChannel import io.flutter.plugin.common.MessageCodec -import io.flutter.plugin.common.StandardMethodCodec import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer @@ -23,52 +21,52 @@ private fun wrapResult(result: Any?): List { private fun wrapError(exception: Throwable): List { return if (exception is CameraXError) { - listOf( - exception.code, - exception.message, - exception.details - ) + listOf(exception.code, exception.message, exception.details) } else { listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)) } } private fun createConnectionError(channelName: String): CameraXError { - return CameraXError("channel-error", "Unable to establish connection on channel: '$channelName'.", "")} + return CameraXError( + "channel-error", "Unable to establish connection on channel: '$channelName'.", "") +} /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class CameraXError ( - val code: String, - override val message: String? = null, - val details: Any? = null +class CameraXError( + val code: String, + override val message: String? = null, + val details: Any? = null ) : Throwable() /** * Maintains instances used to communicate with the corresponding objects in Dart. * - * Objects stored in this container are represented by an object in Dart that is also stored in - * an InstanceManager with the same identifier. + * Objects stored in this container are represented by an object in Dart that is also stored in an + * InstanceManager with the same identifier. * * When an instance is added with an identifier, either can be used to retrieve the other. * - * Added instances are added as a weak reference and a strong reference. When the strong - * reference is removed with [remove] and the weak reference is deallocated, the - * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the strong - * reference is removed and then the identifier is retrieved with the intention to pass the identifier - * to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the instance - * is recreated. The strong reference will then need to be removed manually again. + * Added instances are added as a weak reference and a strong reference. When the strong reference + * is removed with [remove] and the weak reference is deallocated, the + * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the + * strong reference is removed and then the identifier is retrieved with the intention to pass the + * identifier to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the + * instance is recreated. The strong reference will then need to be removed manually again. */ @Suppress("UNCHECKED_CAST", "MemberVisibilityCanBePrivate") -class CameraXLibraryPigeonInstanceManager(private val finalizationListener: PigeonFinalizationListener) { - /** Interface for listening when a weak reference of an instance is removed from the manager. */ +class CameraXLibraryPigeonInstanceManager( + private val finalizationListener: PigeonFinalizationListener +) { + /** Interface for listening when a weak reference of an instance is removed from the manager. */ interface PigeonFinalizationListener { fun onFinalize(identifier: Long) } @@ -94,10 +92,7 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige } init { - handler.postDelayed( - { releaseAllFinalizedInstances() }, - clearFinalizedWeakReferencesInterval - ) + handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) } companion object { @@ -109,19 +104,20 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige private const val tag = "PigeonInstanceManager" /** - * Instantiate a new manager with a listener for garbage collected weak - * references. + * Instantiate a new manager with a listener for garbage collected weak references. * * When the manager is no longer needed, [stopFinalizationListener] must be called. */ - fun create(finalizationListener: PigeonFinalizationListener): CameraXLibraryPigeonInstanceManager { + fun create( + finalizationListener: PigeonFinalizationListener + ): CameraXLibraryPigeonInstanceManager { return CameraXLibraryPigeonInstanceManager(finalizationListener) } } /** - * Removes `identifier` and return its associated strongly referenced instance, if present, - * from the manager. + * Removes `identifier` and return its associated strongly referenced instance, if present, from + * the manager. */ fun remove(identifier: Long): T? { logWarningIfFinalizationListenerHasStopped() @@ -131,15 +127,13 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige /** * Retrieves the identifier paired with an instance, if present, otherwise `null`. * - * * If the manager contains a strong reference to `instance`, it will return the identifier * associated with `instance`. If the manager contains only a weak reference to `instance`, a new * strong reference to `instance` will be added and will need to be removed again with [remove]. * - * * If this method returns a nonnull identifier, this method also expects the Dart - * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart instance the - * identifier is associated with. + * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart + * instance the identifier is associated with. */ fun getIdentifierForStrongReference(instance: Any?): Long? { logWarningIfFinalizationListenerHasStopped() @@ -153,9 +147,9 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige /** * Adds a new instance that was instantiated from Dart. * - * The same instance can be added multiple times, but each identifier must be unique. This - * allows two objects that are equivalent (e.g. the `equals` method returns true and their - * hashcodes are equal) to both be added. + * The same instance can be added multiple times, but each identifier must be unique. This allows + * two objects that are equivalent (e.g. the `equals` method returns true and their hashcodes are + * equal) to both be added. * * [identifier] must be >= 0 and unique. */ @@ -171,7 +165,9 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige */ fun addHostCreatedInstance(instance: Any): Long { logWarningIfFinalizationListenerHasStopped() - require(!containsInstance(instance)) { "Instance of ${instance.javaClass} has already been added." } + require(!containsInstance(instance)) { + "Instance of ${instance.javaClass} has already been added." + } val identifier = nextIdentifier++ addInstance(instance, identifier) return identifier @@ -229,7 +225,8 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige return } var reference: java.lang.ref.WeakReference? - while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != null) { + while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != + null) { val identifier = weakReferencesToIdentifiers.remove(reference) if (identifier != null) { weakInstances.remove(identifier) @@ -237,10 +234,7 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige finalizationListener.onFinalize(identifier) } } - handler.postDelayed( - { releaseAllFinalizedInstances() }, - clearFinalizedWeakReferencesInterval - ) + handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) } private fun addInstance(instance: Any, identifier: Long) { @@ -258,39 +252,43 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige private fun logWarningIfFinalizationListenerHasStopped() { if (hasFinalizationListenerStopped()) { Log.w( - tag, - "The manager was used after calls to the PigeonFinalizationListener has been stopped." - ) + tag, + "The manager was used after calls to the PigeonFinalizationListener has been stopped.") } } } - /** Generated API for managing the Dart and native `InstanceManager`s. */ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: BinaryMessenger) { companion object { /** The codec used by CameraXLibraryPigeonInstanceManagerApi. */ - val codec: MessageCodec by lazy { - CameraXLibraryPigeonCodec() - } + val codec: MessageCodec by lazy { CameraXLibraryPigeonCodec() } /** * Sets up an instance of `CameraXLibraryPigeonInstanceManagerApi` to handle messages from the * `binaryMessenger`. */ - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, instanceManager: CameraXLibraryPigeonInstanceManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + instanceManager: CameraXLibraryPigeonInstanceManager? + ) { run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", + codec) if (instanceManager != null) { channel.setMessageHandler { message, reply -> val args = message as List val identifierArg = args[0] as Long - val wrapped: List = try { - instanceManager.remove(identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + instanceManager.remove(identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -298,15 +296,20 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", + codec) if (instanceManager != null) { channel.setMessageHandler { _, reply -> - val wrapped: List = try { - instanceManager.clear() - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + instanceManager.clear() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -316,9 +319,9 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } - fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) -{ - val channelName = "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" + fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) { + val channelName = + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(identifierArg)) { if (it is List<*>) { @@ -329,13 +332,13 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } /** - * Provides implementations for each ProxyApi implementation and provides access to resources - * needed by any implementation. + * Provides implementations for each ProxyApi implementation and provides access to resources needed + * by any implementation. */ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: BinaryMessenger) { /** Whether APIs should ignore calling to Dart. */ @@ -352,24 +355,23 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary init { val api = CameraXLibraryPigeonInstanceManagerApi(binaryMessenger) - instanceManager = CameraXLibraryPigeonInstanceManager.create( - object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { - override fun onFinalize(identifier: Long) { - api.removeStrongReference(identifier) { - if (it.isFailure) { - Log.e( - "PigeonProxyApiRegistrar", - "Failed to remove Dart strong reference with identifier: $identifier" - ) - } - } - } - } - ) + instanceManager = + CameraXLibraryPigeonInstanceManager.create( + object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { + override fun onFinalize(identifier: Long) { + api.removeStrongReference(identifier) { + if (it.isFailure) { + Log.e( + "PigeonProxyApiRegistrar", + "Failed to remove Dart strong reference with identifier: $identifier") + } + } + } + }) } /** - * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of - * `CameraSize` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of `CameraSize` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraSize(): PigeonApiCameraSize @@ -389,8 +391,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEvent] used to add a new Dart instance of * `VideoRecordEvent` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return PigeonApiVideoRecordEvent(this) } @@ -398,8 +399,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventStart] used to add a new Dart instance of * `VideoRecordEventStart` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart - { + open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart { return PigeonApiVideoRecordEventStart(this) } @@ -407,8 +407,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventFinalize] used to add a new Dart instance of * `VideoRecordEventFinalize` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize - { + open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize { return PigeonApiVideoRecordEventFinalize(this) } @@ -419,14 +418,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPoint(): PigeonApiMeteringPoint /** - * An implementation of [PigeonApiObserver] used to add a new Dart instance of - * `Observer` to the Dart `InstanceManager`. + * An implementation of [PigeonApiObserver] used to add a new Dart instance of `Observer` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiObserver(): PigeonApiObserver /** - * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of - * `CameraInfo` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of `CameraInfo` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraInfo(): PigeonApiCameraInfo @@ -443,17 +442,16 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiProcessCameraProvider(): PigeonApiProcessCameraProvider /** - * An implementation of [PigeonApiUseCase] used to add a new Dart instance of - * `UseCase` to the Dart `InstanceManager`. + * An implementation of [PigeonApiUseCase] used to add a new Dart instance of `UseCase` to the + * Dart `InstanceManager`. */ - open fun getPigeonApiUseCase(): PigeonApiUseCase - { + open fun getPigeonApiUseCase(): PigeonApiUseCase { return PigeonApiUseCase(this) } /** - * An implementation of [PigeonApiCamera] used to add a new Dart instance of - * `Camera` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCamera] used to add a new Dart instance of `Camera` to the Dart + * `InstanceManager`. */ abstract fun getPigeonApiCamera(): PigeonApiCamera @@ -476,29 +474,28 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiDeviceOrientationManager(): PigeonApiDeviceOrientationManager /** - * An implementation of [PigeonApiPreview] used to add a new Dart instance of - * `Preview` to the Dart `InstanceManager`. + * An implementation of [PigeonApiPreview] used to add a new Dart instance of `Preview` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiPreview(): PigeonApiPreview /** - * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of - * `VideoCapture` to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of `VideoCapture` + * to the Dart `InstanceManager`. */ abstract fun getPigeonApiVideoCapture(): PigeonApiVideoCapture /** - * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of - * `VideoOutput` to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of `VideoOutput` to + * the Dart `InstanceManager`. */ - open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput - { + open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput { return PigeonApiVideoOutput(this) } /** - * An implementation of [PigeonApiRecorder] used to add a new Dart instance of - * `Recorder` to the Dart `InstanceManager`. + * An implementation of [PigeonApiRecorder] used to add a new Dart instance of `Recorder` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiRecorder(): PigeonApiRecorder @@ -515,14 +512,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiPendingRecording(): PigeonApiPendingRecording /** - * An implementation of [PigeonApiRecording] used to add a new Dart instance of - * `Recording` to the Dart `InstanceManager`. + * An implementation of [PigeonApiRecording] used to add a new Dart instance of `Recording` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiRecording(): PigeonApiRecording /** - * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of - * `ImageCapture` to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of `ImageCapture` + * to the Dart `InstanceManager`. */ abstract fun getPigeonApiImageCapture(): PigeonApiImageCapture @@ -545,8 +542,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiAspectRatioStrategy(): PigeonApiAspectRatioStrategy /** - * An implementation of [PigeonApiCameraState] used to add a new Dart instance of - * `CameraState` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraState] used to add a new Dart instance of `CameraState` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraState(): PigeonApiCameraState @@ -557,8 +554,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiExposureState(): PigeonApiExposureState /** - * An implementation of [PigeonApiZoomState] used to add a new Dart instance of - * `ZoomState` to the Dart `InstanceManager`. + * An implementation of [PigeonApiZoomState] used to add a new Dart instance of `ZoomState` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiZoomState(): PigeonApiZoomState @@ -569,8 +566,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiImageAnalysis(): PigeonApiImageAnalysis /** - * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of - * `Analyzer` to the Dart `InstanceManager`. + * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of `Analyzer` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiAnalyzer(): PigeonApiAnalyzer @@ -581,20 +578,20 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiCameraStateStateError(): PigeonApiCameraStateStateError /** - * An implementation of [PigeonApiLiveData] used to add a new Dart instance of - * `LiveData` to the Dart `InstanceManager`. + * An implementation of [PigeonApiLiveData] used to add a new Dart instance of `LiveData` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiLiveData(): PigeonApiLiveData /** - * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of - * `ImageProxy` to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of `ImageProxy` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiImageProxy(): PigeonApiImageProxy /** - * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of - * `PlaneProxy` to the Dart `InstanceManager`. + * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of `PlaneProxy` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiPlaneProxy(): PigeonApiPlaneProxy @@ -644,8 +641,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCaptureRequestKey] used to add a new Dart instance of * `CaptureRequestKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey - { + open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey { return PigeonApiCaptureRequestKey(this) } @@ -671,8 +667,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCameraCharacteristicsKey] used to add a new Dart instance of * `CameraCharacteristicsKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey - { + open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey { return PigeonApiCameraCharacteristicsKey(this) } @@ -695,33 +690,42 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory /** - * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart instance of - * `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. + * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart + * instance of `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. */ - abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): PigeonApiDisplayOrientedMeteringPointFactory + abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): + PigeonApiDisplayOrientedMeteringPointFactory fun setUp() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, instanceManager) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSize()) - PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraIntegerRange()) + PigeonApiCameraIntegerRange.setUpMessageHandlers( + binaryMessenger, getPigeonApiCameraIntegerRange()) PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPoint()) PigeonApiObserver.setUpMessageHandlers(binaryMessenger, getPigeonApiObserver()) PigeonApiCameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraInfo()) PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSelector()) - PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, getPigeonApiProcessCameraProvider()) + PigeonApiProcessCameraProvider.setUpMessageHandlers( + binaryMessenger, getPigeonApiProcessCameraProvider()) PigeonApiCamera.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera()) - PigeonApiSystemServicesManager.setUpMessageHandlers(binaryMessenger, getPigeonApiSystemServicesManager()) - PigeonApiDeviceOrientationManager.setUpMessageHandlers(binaryMessenger, getPigeonApiDeviceOrientationManager()) + PigeonApiSystemServicesManager.setUpMessageHandlers( + binaryMessenger, getPigeonApiSystemServicesManager()) + PigeonApiDeviceOrientationManager.setUpMessageHandlers( + binaryMessenger, getPigeonApiDeviceOrientationManager()) PigeonApiPreview.setUpMessageHandlers(binaryMessenger, getPigeonApiPreview()) PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoCapture()) PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, getPigeonApiRecorder()) - PigeonApiVideoRecordEventListener.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoRecordEventListener()) + PigeonApiVideoRecordEventListener.setUpMessageHandlers( + binaryMessenger, getPigeonApiVideoRecordEventListener()) PigeonApiPendingRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiPendingRecording()) PigeonApiRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiRecording()) PigeonApiImageCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiImageCapture()) - PigeonApiResolutionStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionStrategy()) - PigeonApiResolutionSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionSelector()) - PigeonApiAspectRatioStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiAspectRatioStrategy()) + PigeonApiResolutionStrategy.setUpMessageHandlers( + binaryMessenger, getPigeonApiResolutionStrategy()) + PigeonApiResolutionSelector.setUpMessageHandlers( + binaryMessenger, getPigeonApiResolutionSelector()) + PigeonApiAspectRatioStrategy.setUpMessageHandlers( + binaryMessenger, getPigeonApiAspectRatioStrategy()) PigeonApiImageAnalysis.setUpMessageHandlers(binaryMessenger, getPigeonApiImageAnalysis()) PigeonApiAnalyzer.setUpMessageHandlers(binaryMessenger, getPigeonApiAnalyzer()) PigeonApiLiveData.setUpMessageHandlers(binaryMessenger, getPigeonApiLiveData()) @@ -729,16 +733,24 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiQualitySelector.setUpMessageHandlers(binaryMessenger, getPigeonApiQualitySelector()) PigeonApiFallbackStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiFallbackStrategy()) PigeonApiCameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraControl()) - PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers(binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) + PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers( + binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) PigeonApiCaptureRequest.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequest()) - PigeonApiCaptureRequestOptions.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequestOptions()) - PigeonApiCamera2CameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraControl()) + PigeonApiCaptureRequestOptions.setUpMessageHandlers( + binaryMessenger, getPigeonApiCaptureRequestOptions()) + PigeonApiCamera2CameraControl.setUpMessageHandlers( + binaryMessenger, getPigeonApiCamera2CameraControl()) PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionFilter()) - PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraCharacteristics()) - PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraInfo()) - PigeonApiMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPointFactory()) - PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) + PigeonApiCameraCharacteristics.setUpMessageHandlers( + binaryMessenger, getPigeonApiCameraCharacteristics()) + PigeonApiCamera2CameraInfo.setUpMessageHandlers( + binaryMessenger, getPigeonApiCamera2CameraInfo()) + PigeonApiMeteringPointFactory.setUpMessageHandlers( + binaryMessenger, getPigeonApiMeteringPointFactory()) + PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers( + binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) } + fun tearDown() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, null) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, null) @@ -779,17 +791,17 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, null) } } -private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibraryPigeonProxyApiRegistrar) : CameraXLibraryPigeonCodec() { + +private class CameraXLibraryPigeonProxyApiBaseCodec( + val registrar: CameraXLibraryPigeonProxyApiRegistrar +) : CameraXLibraryPigeonCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { val identifier: Long = readValue(buffer) as Long val instance: Any? = registrar.instanceManager.getInstance(identifier) if (instance == null) { - Log.e( - "PigeonProxyApiBaseCodec", - "Failed to find instance with identifier: $identifier" - ) + Log.e("PigeonProxyApiBaseCodec", "Failed to find instance with identifier: $identifier") } return instance } @@ -798,166 +810,138 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar } override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { - if (value is Boolean || value is ByteArray || value is Double || value is DoubleArray || value is FloatArray || value is Int || value is IntArray || value is List<*> || value is Long || value is LongArray || value is Map<*, *> || value is String || value is InfoSupportedHardwareLevel || value is AspectRatio || value is CameraStateType || value is LiveDataSupportedType || value is VideoQuality || value is MeteringMode || value is LensFacing || value is CameraXFlashMode || value is ResolutionStrategyFallbackRule || value is AspectRatioStrategyFallbackRule || value is CameraStateErrorCode || value == null) { + if (value is Boolean || + value is ByteArray || + value is Double || + value is DoubleArray || + value is FloatArray || + value is Int || + value is IntArray || + value is List<*> || + value is Long || + value is LongArray || + value is Map<*, *> || + value is String || + value is InfoSupportedHardwareLevel || + value is AspectRatio || + value is CameraStateType || + value is LiveDataSupportedType || + value is VideoQuality || + value is MeteringMode || + value is LensFacing || + value is CameraXFlashMode || + value is ResolutionStrategyFallbackRule || + value is AspectRatioStrategyFallbackRule || + value is CameraStateErrorCode || + value == null) { super.writeValue(stream, value) return } if (value is android.util.Size) { - registrar.getPigeonApiCameraSize().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ResolutionInfo) { - registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) { } - } - else if (value is android.util.Range<*>) { - registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent.Start) { - registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { - registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent) { - registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.MeteringPoint) { - registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) { } - } - else if (value is androidx.lifecycle.Observer<*>) { - registrar.getPigeonApiObserver().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraInfo) { - registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraSelector) { - registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { - registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.Camera) { - registrar.getPigeonApiCamera().pigeon_newInstance(value) { } - } - else if (value is SystemServicesManager) { - registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) { } - } - else if (value is CameraPermissionsError) { - registrar.getPigeonApiCameraPermissionsError().pigeon_newInstance(value) { } - } - else if (value is DeviceOrientationManager) { - registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.Preview) { - registrar.getPigeonApiPreview().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoCapture<*>) { - registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.Recorder) { - registrar.getPigeonApiRecorder().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoOutput) { - registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) { } - } - else if (value is VideoRecordEventListener) { - registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.PendingRecording) { - registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.Recording) { - registrar.getPigeonApiRecording().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageCapture) { - registrar.getPigeonApiImageCapture().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { - registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { - registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { - registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraState) { - registrar.getPigeonApiCameraState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ExposureState) { - registrar.getPigeonApiExposureState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ZoomState) { - registrar.getPigeonApiZoomState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageAnalysis) { - registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.UseCase) { - registrar.getPigeonApiUseCase().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { - registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraState.StateError) { - registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) { } - } - else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { - registrar.getPigeonApiLiveData().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageProxy) { - registrar.getPigeonApiImageProxy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { - registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.QualitySelector) { - registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.FallbackStrategy) { - registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraControl) { - registrar.getPigeonApiCameraControl().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringAction.Builder) { - registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringAction) { - registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringResult) { - registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CaptureRequest) { - registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { - registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { - registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { - registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { - registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { - registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CameraCharacteristics) { - registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { - registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { - registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.MeteringPointFactory) { - registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) { } + registrar.getPigeonApiCameraSize().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ResolutionInfo) { + registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) {} + } else if (value is android.util.Range<*>) { + registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent.Start) { + registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { + registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent) { + registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.MeteringPoint) { + registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) {} + } else if (value is androidx.lifecycle.Observer<*>) { + registrar.getPigeonApiObserver().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraInfo) { + registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraSelector) { + registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { + registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.Camera) { + registrar.getPigeonApiCamera().pigeon_newInstance(value) {} + } else if (value is SystemServicesManager) { + registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) {} + } else if (value is CameraPermissionsError) { + registrar.getPigeonApiCameraPermissionsError().pigeon_newInstance(value) {} + } else if (value is DeviceOrientationManager) { + registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.Preview) { + registrar.getPigeonApiPreview().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoCapture<*>) { + registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.Recorder) { + registrar.getPigeonApiRecorder().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoOutput) { + registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) {} + } else if (value is VideoRecordEventListener) { + registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.PendingRecording) { + registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.Recording) { + registrar.getPigeonApiRecording().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageCapture) { + registrar.getPigeonApiImageCapture().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { + registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { + registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { + registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraState) { + registrar.getPigeonApiCameraState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ExposureState) { + registrar.getPigeonApiExposureState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ZoomState) { + registrar.getPigeonApiZoomState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageAnalysis) { + registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.UseCase) { + registrar.getPigeonApiUseCase().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { + registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraState.StateError) { + registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) {} + } else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { + registrar.getPigeonApiLiveData().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageProxy) { + registrar.getPigeonApiImageProxy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { + registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.QualitySelector) { + registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.FallbackStrategy) { + registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraControl) { + registrar.getPigeonApiCameraControl().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringAction.Builder) { + registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringAction) { + registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringResult) { + registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CaptureRequest) { + registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { + registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { + registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { + registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { + registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { + registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CameraCharacteristics) { + registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { + registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { + registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.MeteringPointFactory) { + registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) {} } when { @@ -965,7 +949,9 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar stream.write(128) writeValue(stream, registrar.instanceManager.getIdentifierForStrongReference(value)) } - else -> throw IllegalArgumentException("Unsupported value: '$value' of type '${value.javaClass.name}'") + else -> + throw IllegalArgumentException( + "Unsupported value: '$value' of type '${value.javaClass.name}'") } } } @@ -973,27 +959,22 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar /** * Generally classifies the overall set of the camera device functionality. * - * See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. + * See + * https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. */ enum class InfoSupportedHardwareLevel(val raw: Int) { /** - * This camera device is capable of YUV reprocessing and RAW data capture, in - * addition to FULL-level capabilities. + * This camera device is capable of YUV reprocessing and RAW data capture, in addition to + * FULL-level capabilities. */ LEVEL3(0), - /** - * This camera device is backed by an external camera connected to this - * Android device. - */ + /** This camera device is backed by an external camera connected to this Android device. */ EXTERNAL(1), /** This camera device is capable of supporting advanced imaging applications. */ FULL(2), /** This camera device is running in backward compatibility mode. */ LEGACY(3), - /** - * This camera device does not have enough capabilities to qualify as a FULL - * device or better. - */ + /** This camera device does not have enough capabilities to qualify as a FULL device or better. */ LIMITED(4); companion object { @@ -1040,8 +1021,8 @@ enum class CameraStateType(val raw: Int) { /** Represents a state where the camera device is currently opening. */ OPENING(3), /** - * Represents a state where the camera is waiting for a signal to attempt to - * open the camera device. + * Represents a state where the camera is waiting for a signal to attempt to open the camera + * device. */ PENDING_OPEN(4), /** This value is not recognized by this wrapper. */ @@ -1067,8 +1048,8 @@ enum class LiveDataSupportedType(val raw: Int) { } /** - * Video quality constraints that will be used by a QualitySelector to choose - * an appropriate video resolution. + * Video quality constraints that will be used by a QualitySelector to choose an appropriate video + * resolution. * * These are pre-defined quality constants that are universally used for video. * @@ -1098,23 +1079,15 @@ enum class VideoQuality(val raw: Int) { /** * A flag used for indicating metering mode regions. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). */ enum class MeteringMode(val raw: Int) { - /** - * A flag used in metering mode indicating the AE (Auto Exposure) region is - * enabled. - */ + /** A flag used in metering mode indicating the AE (Auto Exposure) region is enabled. */ AE(0), - /** - * A flag used in metering mode indicating the AF (Auto Focus) region is - * enabled. - */ + /** A flag used in metering mode indicating the AF (Auto Focus) region is enabled. */ AF(1), - /** - * A flag used in metering mode indicating the AWB (Auto White Balance) - * region is enabled. - */ + /** A flag used in metering mode indicating the AWB (Auto White Balance) region is enabled. */ AWB(2); companion object { @@ -1127,20 +1100,15 @@ enum class MeteringMode(val raw: Int) { /** * Direction of lens of a camera. * - * See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). + * See + * https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). */ enum class LensFacing(val raw: Int) { /** A camera on the device facing the same direction as the device's screen. */ FRONT(0), - /** - * A camera on the device facing the opposite direction as the device's - * screen. - */ + /** A camera on the device facing the opposite direction as the device's screen. */ BACK(1), - /** - * An external camera that has no fixed facing relative to the device's - * screen. - */ + /** An external camera that has no fixed facing relative to the device's screen. */ EXTERNAL(2), /** A camera on the devices that its lens facing is resolved. */ UNKNOWN(3); @@ -1155,14 +1123,14 @@ enum class LensFacing(val raw: Int) { /** * FlashModes for image capture. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). */ enum class CameraXFlashMode(val raw: Int) { /** * Auto flash. * - * The flash will be used according to the camera system's determination when - * taking a picture. + * The flash will be used according to the camera system's determination when taking a picture. */ AUTO(0), /** @@ -1186,36 +1154,33 @@ enum class CameraXFlashMode(val raw: Int) { } /** - * Fallback rule for choosing an alternate size when the specified bound size - * is unavailable. + * Fallback rule for choosing an alternate size when the specified bound size is unavailable. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ enum class ResolutionStrategyFallbackRule(val raw: Int) { /** - * When the specified bound size is unavailable, CameraX falls back to the - * closest higher resolution size. + * When the specified bound size is unavailable, CameraX falls back to the closest higher + * resolution size. */ CLOSEST_HIGHER(0), /** - * When the specified bound size is unavailable, CameraX falls back to select - * the closest higher resolution size. + * When the specified bound size is unavailable, CameraX falls back to select the closest higher + * resolution size. */ CLOSEST_HIGHER_THEN_LOWER(1), /** - * When the specified bound size is unavailable, CameraX falls back to the - * closest lower resolution size. + * When the specified bound size is unavailable, CameraX falls back to the closest lower + * resolution size. */ CLOSEST_LOWER(2), /** - * When the specified bound size is unavailable, CameraX falls back to select - * the closest lower resolution size. + * When the specified bound size is unavailable, CameraX falls back to select the closest lower + * resolution size. */ CLOSEST_LOWER_THEN_HIGHER(3), - /** - * CameraX doesn't select an alternate size when the specified bound size is - * unavailable. - */ + /** CameraX doesn't select an alternate size when the specified bound size is unavailable. */ NONE(4), /** The value is not recognized by the wrapper. */ UNKNOWN(5); @@ -1228,21 +1193,20 @@ enum class ResolutionStrategyFallbackRule(val raw: Int) { } /** - * Fallback rule for choosing the aspect ratio when the preferred aspect ratio - * is not available. + * Fallback rule for choosing the aspect ratio when the preferred aspect ratio is not available. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). */ enum class AspectRatioStrategyFallbackRule(val raw: Int) { /** - * CameraX automatically chooses the next best aspect ratio which contains - * the closest field of view (FOV) of the camera sensor, from the remaining - * options. + * CameraX automatically chooses the next best aspect ratio which contains the closest field of + * view (FOV) of the camera sensor, from the remaining options. */ AUTO(0), /** - * CameraX doesn't fall back to select sizes of any other aspect ratio when - * this fallback rule is used. + * CameraX doesn't fall back to select sizes of any other aspect ratio when this fallback rule is + * used. */ NONE(1), /** The value is not recognized by the wrapper. */ @@ -1261,34 +1225,23 @@ enum class AspectRatioStrategyFallbackRule(val raw: Int) { * https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() */ enum class CameraStateErrorCode(val raw: Int) { - /** - * An error indicating that the camera device could not be opened due to a - * device policy. - */ + /** An error indicating that the camera device could not be opened due to a device policy. */ CAMERA_DISABLED(0), - /** - * An error indicating that the camera device was closed due to a fatal - * error. - */ + /** An error indicating that the camera device was closed due to a fatal error. */ CAMERA_FATAL_ERROR(1), /** An error indicating that the camera device is already in use. */ CAMERA_IN_USE(2), /** - * An error indicating that the camera could not be opened because "Do Not - * Disturb" mode is enabled on devices affected by a bug in Android 9 (API - * level 28). + * An error indicating that the camera could not be opened because "Do Not Disturb" mode is + * enabled on devices affected by a bug in Android 9 (API level 28). */ DO_NOT_DISTURB_MODE_ENABLED(3), /** - * An error indicating that the limit number of open cameras has been - * reached, and more cameras cannot be opened until other instances are - * closed. + * An error indicating that the limit number of open cameras has been reached, and more cameras + * cannot be opened until other instances are closed. */ MAX_CAMERAS_IN_USE(4), - /** - * An error indicating that the camera device has encountered a recoverable - * error. - */ + /** An error indicating that the camera device has encountered a recoverable error. */ OTHER_RECOVERABLE_ERROR(5), /** An error indicating that configuring the camera has failed. */ STREAM_CONFIG(6), @@ -1301,48 +1254,33 @@ enum class CameraStateErrorCode(val raw: Int) { } } } + private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 129.toByte() -> { - return (readValue(buffer) as Long?)?.let { - InfoSupportedHardwareLevel.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { InfoSupportedHardwareLevel.ofRaw(it.toInt()) } } 130.toByte() -> { - return (readValue(buffer) as Long?)?.let { - AspectRatio.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { AspectRatio.ofRaw(it.toInt()) } } 131.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraStateType.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraStateType.ofRaw(it.toInt()) } } 132.toByte() -> { - return (readValue(buffer) as Long?)?.let { - LiveDataSupportedType.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { LiveDataSupportedType.ofRaw(it.toInt()) } } 133.toByte() -> { - return (readValue(buffer) as Long?)?.let { - VideoQuality.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { VideoQuality.ofRaw(it.toInt()) } } 134.toByte() -> { - return (readValue(buffer) as Long?)?.let { - MeteringMode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { MeteringMode.ofRaw(it.toInt()) } } 135.toByte() -> { - return (readValue(buffer) as Long?)?.let { - LensFacing.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { LensFacing.ofRaw(it.toInt()) } } 136.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraXFlashMode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraXFlashMode.ofRaw(it.toInt()) } } 137.toByte() -> { return (readValue(buffer) as Long?)?.let { @@ -1355,14 +1293,13 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { } } 139.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraStateErrorCode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraStateErrorCode.ofRaw(it.toInt()) } } else -> super.readValueOfType(type, buffer) } } - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is InfoSupportedHardwareLevel -> { stream.write(129) @@ -1419,7 +1356,9 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { * See https://developer.android.com/reference/android/util/Size.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraSize( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(width: Long, height: Long): android.util.Size /** The width of the size (in pixels). */ @@ -1433,19 +1372,25 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSize?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val widthArg = args[1] as Long val heightArg = args[2] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(widthArg,heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(widthArg, heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1457,16 +1402,16 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) -{ + fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -1476,60 +1421,66 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, widthArg, heightArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A `ResolutionInfo` allows the application to know the resolution information - * of a specific use case. + * A `ResolutionInfo` allows the application to know the resolution information of a specific use + * case. * * See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiResolutionInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Returns the output resolution used for the use case. */ abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ResolutionInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionArg = resolution(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, resolutionArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * Immutable class for describing the range of two integer values. @@ -1539,7 +1490,9 @@ abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryP * See https://developer.android.com/reference/android/util/Range.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraIntegerRange( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(lower: Long, upper: Long): android.util.Range<*> /** The lower endpoint. */ @@ -1553,19 +1506,25 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraIntegerRange?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val lowerArg = args[1] as Long val upperArg = args[2] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(lowerArg,upperArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(lowerArg, upperArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1577,36 +1536,40 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Range<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.util.Range<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val lowerArg = lower(pigeon_instanceArg) val upperArg = upper(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, lowerArg, upperArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * VideoRecordEvent is used to report video recording events and status. @@ -1614,37 +1577,43 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEvent( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * Indicates the start of recording. @@ -1652,44 +1621,49 @@ open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPig * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Start. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEventStart( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } - } /** * Indicates the finalization of recording. @@ -1697,58 +1671,67 @@ open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibra * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEventFinalize( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } - } /** - * A MeteringPoint is used to specify a region which can then be converted to - * sensor coordinate system for focus and metering purpose. + * A MeteringPoint is used to specify a region which can then be converted to sensor coordinate + * system for focus and metering purpose. * * See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiMeteringPoint( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Size of the MeteringPoint width and height (ranging from 0 to 1). * - * It is the percentage of the sensor width/height (or crop region - * width/height if crop region is set). + * It is the percentage of the sensor width/height (or crop region width/height if crop region is + * set). */ abstract fun getSize(pigeon_instance: androidx.camera.core.MeteringPoint): Double @@ -1757,16 +1740,21 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPoint?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - listOf(api.getSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1778,16 +1766,19 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPoint and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPoint, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.MeteringPoint, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" @@ -1795,17 +1786,17 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A simple callback that can receive from LiveData. @@ -1821,17 +1812,23 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiObserver?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1843,24 +1840,32 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Observer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.lifecycle.Observer<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.lifecycle.Observer<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.", + ""))) } } /** Called when the data is changed to value. */ - fun onChanged(pigeon_instanceArg: androidx.lifecycle.Observer<*>, valueArg: Any, callback: (Result) -> Unit) -{ + fun onChanged( + pigeon_instanceArg: androidx.lifecycle.Observer<*>, + valueArg: Any, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1880,10 +1885,9 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** * An interface for retrieving camera information. @@ -1891,37 +1895,50 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP * See https://developer.android.com/reference/androidx/camera/core/CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Returns the sensor rotation in degrees, relative to the device's "natural" - * (default) orientation. + * Returns the sensor rotation in degrees, relative to the device's "natural" (default) + * orientation. */ abstract fun sensorRotationDegrees(pigeon_instance: androidx.camera.core.CameraInfo): Long /** Returns a ExposureState. */ - abstract fun exposureState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.camera.core.ExposureState + abstract fun exposureState( + pigeon_instance: androidx.camera.core.CameraInfo + ): androidx.camera.core.ExposureState /** A LiveData of the camera's state. */ - abstract fun getCameraState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getCameraState( + pigeon_instance: androidx.camera.core.CameraInfo + ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper /** A LiveData of ZoomState. */ - abstract fun getZoomState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getZoomState( + pigeon_instance: androidx.camera.core.CameraInfo + ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = try { - listOf(api.getCameraState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1929,16 +1946,21 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = try { - listOf(api.getZoomState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getZoomState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1950,16 +1972,19 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) val exposureStateArg = exposureState(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -1969,27 +1994,30 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, sensorRotationDegreesArg, exposureStateArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A set of requirements and priorities used to select a camera or return a - * filtered set of cameras. + * A set of requirements and priorities used to select a camera or return a filtered set of cameras. * * See https://developer.android.com/reference/androidx/camera/core/CameraSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(requireLensFacing: LensFacing?): androidx.camera.core.CameraSelector +abstract class PigeonApiCameraSelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + requireLensFacing: LensFacing? + ): androidx.camera.core.CameraSelector /** A static `CameraSelector` that selects the default back facing camera. */ abstract fun defaultBackCamera(): androidx.camera.core.CameraSelector @@ -1997,29 +2025,35 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP /** A static `CameraSelector` that selects the default front facing camera. */ abstract fun defaultFrontCamera(): androidx.camera.core.CameraSelector - /** - * Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the - * selector. - */ - abstract fun filter(pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List): List + /** Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the selector. */ + abstract fun filter( + pigeon_instance: androidx.camera.core.CameraSelector, + cameraInfos: List + ): List companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val requireLensFacingArg = args[1] as LensFacing? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2027,17 +2061,23 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultBackCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.defaultBackCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2045,17 +2085,23 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultFrontCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.defaultFrontCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2063,17 +2109,22 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraSelector val cameraInfosArg = args[1] as List - val wrapped: List = try { - listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2085,73 +2136,97 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraSelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraSelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A singleton which can be used to bind the lifecycle of cameras to any - * `LifecycleOwner` within an application's process. + * A singleton which can be used to bind the lifecycle of cameras to any `LifecycleOwner` within an + * application's process. * * See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiProcessCameraProvider( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Retrieves the ProcessCameraProvider associated with the current process. */ - abstract fun getInstance(callback: (Result) -> Unit) + abstract fun getInstance( + callback: (Result) -> Unit + ) /** The `CameraInfo` instances of the available cameras. */ - abstract fun getAvailableCameraInfos(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider): List + abstract fun getAvailableCameraInfos( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider + ): List /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ - abstract fun bindToLifecycle(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelector: androidx.camera.core.CameraSelector, useCases: List): androidx.camera.core.Camera + abstract fun bindToLifecycle( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + cameraSelector: androidx.camera.core.CameraSelector, + useCases: List + ): androidx.camera.core.Camera /** Returns true if the `UseCase` is bound to a lifecycle. */ - abstract fun isBound(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase): Boolean + abstract fun isBound( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + useCase: androidx.camera.core.UseCase + ): Boolean /** Unbinds all specified use cases from the lifecycle provider. */ - abstract fun unbind(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCases: List) + abstract fun unbind( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + useCases: List + ) - /** - * Unbinds all use cases from the lifecycle provider and removes them from - * CameraX. - */ + /** Unbinds all use cases from the lifecycle provider and removes them from CameraX. */ abstract fun unbindAll(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiProcessCameraProvider?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiProcessCameraProvider? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", + codec) if (api != null) { channel.setMessageHandler { _, reply -> - api.getInstance{ result: Result -> + api.getInstance { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -2166,16 +2241,21 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = try { - listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2183,18 +2263,23 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val cameraSelectorArg = args[1] as androidx.camera.core.CameraSelector val useCasesArg = args[2] as List - val wrapped: List = try { - listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2202,17 +2287,22 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCaseArg = args[1] as androidx.camera.core.UseCase - val wrapped: List = try { - listOf(api.isBound(pigeon_instanceArg, useCaseArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.isBound(pigeon_instanceArg, useCaseArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2220,18 +2310,23 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCasesArg = args[1] as List - val wrapped: List = try { - api.unbind(pigeon_instanceArg, useCasesArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.unbind(pigeon_instanceArg, useCasesArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2239,17 +2334,22 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = try { - api.unbindAll(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.unbindAll(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2261,34 +2361,38 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * The use case which all other use cases are built on top of. @@ -2299,16 +2403,19 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.UseCase, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" @@ -2316,48 +2423,56 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * The camera interface is used to control the flow of data to use cases, - * control the camera via the `CameraControl`, and publish the state of the - * camera via CameraInfo. + * The camera interface is used to control the flow of data to use cases, control the camera via the + * `CameraControl`, and publish the state of the camera via CameraInfo. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The `CameraControl` for the Camera. */ - abstract fun cameraControl(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraControl + abstract fun cameraControl( + pigeon_instance: androidx.camera.core.Camera + ): androidx.camera.core.CameraControl /** Returns information about this camera. */ - abstract fun getCameraInfo(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraInfo + abstract fun getCameraInfo( + pigeon_instance: androidx.camera.core.Camera + ): androidx.camera.core.CameraInfo companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Camera - val wrapped: List = try { - listOf(api.getCameraInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2369,16 +2484,19 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Camera, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.Camera, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val cameraControlArg = cameraControl(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -2387,45 +2505,64 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro channel.send(listOf(pigeon_identifierArg, cameraControlArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** Convenience class for accessing system resources. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiSystemServicesManager( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): SystemServicesManager - abstract fun requestCameraPermissions(pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit) + abstract fun requestCameraPermissions( + pigeon_instance: SystemServicesManager, + enableAudio: Boolean, + callback: (Result) -> Unit + ) - abstract fun getTempFilePath(pigeon_instance: SystemServicesManager, prefix: String, suffix: String): String + abstract fun getTempFilePath( + pigeon_instance: SystemServicesManager, + prefix: String, + suffix: String + ): String abstract fun isPreviewPreTransformed(pigeon_instance: SystemServicesManager): Boolean companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiSystemServicesManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiSystemServicesManager? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2433,13 +2570,18 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val enableAudioArg = args[1] as Boolean - api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> + api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { + result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -2454,18 +2596,23 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val prefixArg = args[1] as String val suffixArg = args[2] as String - val wrapped: List = try { - listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2473,16 +2620,21 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.isPreviewPreTransformed", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager - val wrapped: List = try { - listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.isPreviewPreTransformed(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2494,23 +2646,31 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: SystemServicesManager, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: SystemServicesManager, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.", + ""))) } } - fun onCameraError(pigeon_instanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit) -{ + fun onCameraError( + pigeon_instanceArg: SystemServicesManager, + errorDescriptionArg: String, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2519,7 +2679,8 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, errorDescriptionArg)) { if (it is List<*>) { @@ -2530,60 +2691,70 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** Contains data when an attempt to retrieve camera permissions fails. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraPermissionsError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraPermissionsError( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun errorCode(pigeon_instance: CameraPermissionsError): String abstract fun description(pigeon_instance: CameraPermissionsError): String @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraPermissionsError and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: CameraPermissionsError, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: CameraPermissionsError, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val errorCodeArg = errorCode(pigeon_instanceArg) val descriptionArg = description(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, errorCodeArg, descriptionArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * Support class to help to determine the media orientation based on the - * orientation of the device. + * Support class to help to determine the media orientation based on the orientation of the device. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiDeviceOrientationManager( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager - abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager, isFrontFacing: Boolean, sensorOrientation: Long) + abstract fun startListeningForDeviceOrientationChange( + pigeon_instance: DeviceOrientationManager, + isFrontFacing: Boolean, + sensorOrientation: Long + ) abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) @@ -2593,20 +2764,29 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDeviceOrientationManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiDeviceOrientationManager? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2614,19 +2794,25 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager val isFrontFacingArg = args[1] as Boolean val sensorOrientationArg = args[2] as Long - val wrapped: List = try { - api.startListeningForDeviceOrientationChange(pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.startListeningForDeviceOrientationChange( + pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2634,17 +2820,22 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2652,16 +2843,21 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2669,16 +2865,21 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - listOf(api.getUiOrientation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getUiOrientation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2689,24 +2890,34 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: DeviceOrientationManager, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: DeviceOrientationManager, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.", + ""))) } } - fun onDeviceOrientationChanged(pigeon_instanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit) -{ + fun onDeviceOrientationChanged( + pigeon_instanceArg: DeviceOrientationManager, + orientationArg: String, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2715,7 +2926,8 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, orientationArg)) { if (it is List<*>) { @@ -2726,10 +2938,9 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** * A use case that provides a camera preview stream for displaying on-screen. @@ -2738,30 +2949,35 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.Preview + abstract fun pigeon_defaultConstructor( + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, + targetRotation: Long? + ): androidx.camera.core.Preview - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.resolutionselector.ResolutionSelector? + abstract fun resolutionSelector( + pigeon_instance: androidx.camera.core.Preview + ): androidx.camera.core.resolutionselector.ResolutionSelector? /** * Sets a SurfaceProvider to provide a Surface for Preview. * * This is a convenience function that - * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the - * Flutter engine. + * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the Flutter engine. * 2. Sets this method with the created `SurfaceProvider`. - * 3. Returns the texture id of the `TextureEntry` that provided the - * `SurfaceProducer`. + * 3. Returns the texture id of the `TextureEntry` that provided the `SurfaceProducer`. */ - abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager): Long + abstract fun setSurfaceProvider( + pigeon_instance: androidx.camera.core.Preview, + systemServicesManager: SystemServicesManager + ): Long - /** - * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was - * created. - */ + /** Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was created. */ abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) /** Gets selected resolution information of the `Preview`. */ - abstract fun getResolutionInfo(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.ResolutionInfo? + abstract fun getResolutionInfo( + pigeon_instance: androidx.camera.core.Preview + ): androidx.camera.core.ResolutionInfo? /** Sets the target rotation. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) @@ -2771,19 +2987,27 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPreview?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(resolutionSelectorArg, targetRotationArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2791,17 +3015,22 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val systemServicesManagerArg = args[1] as SystemServicesManager - val wrapped: List = try { - listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2809,17 +3038,22 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = try { - api.releaseSurfaceProvider(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.releaseSurfaceProvider(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2827,16 +3061,21 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = try { - listOf(api.getResolutionInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getResolutionInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2844,18 +3083,23 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2867,16 +3111,19 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Preview and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Preview, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.Preview, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -2885,24 +3132,23 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /** * A use case that provides camera stream suitable for video application. @@ -2910,33 +3156,48 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiVideoCapture( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Create a `VideoCapture` associated with the given `VideoOutput`. */ - abstract fun withOutput(videoOutput: androidx.camera.video.VideoOutput): androidx.camera.video.VideoCapture<*> + abstract fun withOutput( + videoOutput: androidx.camera.video.VideoOutput + ): androidx.camera.video.VideoCapture<*> /** Gets the VideoOutput associated with this VideoCapture. */ - abstract fun getOutput(pigeon_instance: androidx.camera.video.VideoCapture<*>): androidx.camera.video.VideoOutput + abstract fun getOutput( + pigeon_instance: androidx.camera.video.VideoCapture<*> + ): androidx.camera.video.VideoOutput /** Sets the desired rotation of the output video. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long) + abstract fun setTargetRotation( + pigeon_instance: androidx.camera.video.VideoCapture<*>, + rotation: Long + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val videoOutputArg = args[1] as androidx.camera.video.VideoOutput - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withOutput(videoOutputArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.withOutput(videoOutputArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2944,16 +3205,21 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> - val wrapped: List = try { - listOf(api.getOutput(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getOutput(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2961,18 +3227,23 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2984,16 +3255,19 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" @@ -3001,24 +3275,23 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /** * A class that will produce video data from a Surface. @@ -3029,16 +3302,19 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoOutput and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoOutput, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoOutput, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" @@ -3046,27 +3322,31 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * An implementation of `VideoOutput` for starting video recordings that are - * saved to a File, ParcelFileDescriptor, or MediaStore. + * An implementation of `VideoOutput` for starting video recordings that are saved to a File, + * ParcelFileDescriptor, or MediaStore. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(aspectRatio: Long?, targetVideoEncodingBitRate: Long?, qualitySelector: androidx.camera.video.QualitySelector?): androidx.camera.video.Recorder + abstract fun pigeon_defaultConstructor( + aspectRatio: Long?, + targetVideoEncodingBitRate: Long?, + qualitySelector: androidx.camera.video.QualitySelector? + ): androidx.camera.video.Recorder /** Gets the aspect ratio of this Recorder. */ abstract fun getAspectRatio(pigeon_instance: androidx.camera.video.Recorder): Long @@ -3075,17 +3355,26 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long /** The quality selector of this Recorder. */ - abstract fun getQualitySelector(pigeon_instance: androidx.camera.video.Recorder): androidx.camera.video.QualitySelector + abstract fun getQualitySelector( + pigeon_instance: androidx.camera.video.Recorder + ): androidx.camera.video.QualitySelector /** Prepares a recording that will be saved to a File. */ - abstract fun prepareRecording(pigeon_instance: androidx.camera.video.Recorder, path: String): androidx.camera.video.PendingRecording + abstract fun prepareRecording( + pigeon_instance: androidx.camera.video.Recorder, + path: String + ): androidx.camera.video.PendingRecording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecorder?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -3093,12 +3382,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP val aspectRatioArg = args[1] as Long? val targetVideoEncodingBitRateArg = args[2] as Long? val qualitySelectorArg = args[3] as androidx.camera.video.QualitySelector? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioArg,targetVideoEncodingBitRateArg,qualitySelectorArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + aspectRatioArg, targetVideoEncodingBitRateArg, qualitySelectorArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3106,16 +3399,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3123,16 +3421,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3140,16 +3443,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getQualitySelector(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getQualitySelector(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3157,17 +3465,22 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val pathArg = args[1] as String - val wrapped: List = try { - listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3179,16 +3492,19 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recorder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recorder, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.Recorder, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" @@ -3196,46 +3512,56 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoOutput] used to access callback methods */ - fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput - { + fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput { return pigeonRegistrar.getPigeonApiVideoOutput() } - } /** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiVideoRecordEventListener( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): VideoRecordEventListener companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoRecordEventListener?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiVideoRecordEventListener? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3246,24 +3572,34 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: VideoRecordEventListener, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: VideoRecordEventListener, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.", + ""))) } } - fun onEvent(pigeon_instanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) -{ + fun onEvent( + pigeon_instanceArg: VideoRecordEventListener, + eventArg: androidx.camera.video.VideoRecordEvent, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3283,10 +3619,9 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** * A recording that can be started at a future time. @@ -3294,26 +3629,36 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer * See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiPendingRecording( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Starts the recording, making it an active recording. */ - abstract fun start(pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener): androidx.camera.video.Recording + abstract fun start( + pigeon_instance: androidx.camera.video.PendingRecording, + listener: VideoRecordEventListener + ): androidx.camera.video.Recording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPendingRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording val listenerArg = args[1] as VideoRecordEventListener - val wrapped: List = try { - listOf(api.start(pigeon_instanceArg, listenerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.start(pigeon_instanceArg, listenerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3325,34 +3670,38 @@ abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PendingRecording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.PendingRecording, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.PendingRecording, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * Provides controls for the currently active recording. @@ -3382,17 +3731,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3400,17 +3752,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.pause(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pause(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3418,17 +3773,22 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.resume", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recording.resume", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.resume(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.resume(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3436,17 +3796,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.stop(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.stop(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3458,16 +3821,19 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recording, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.Recording, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" @@ -3475,17 +3841,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A use case for taking a picture. @@ -3493,16 +3859,30 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?, flashMode: CameraXFlashMode?): androidx.camera.core.ImageCapture - - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageCapture): androidx.camera.core.resolutionselector.ResolutionSelector? +abstract class PigeonApiImageCapture( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, + targetRotation: Long?, + flashMode: CameraXFlashMode? + ): androidx.camera.core.ImageCapture + + abstract fun resolutionSelector( + pigeon_instance: androidx.camera.core.ImageCapture + ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Set the flash mode. */ - abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode) + abstract fun setFlashMode( + pigeon_instance: androidx.camera.core.ImageCapture, + flashMode: CameraXFlashMode + ) /** Captures a new still image for in memory access. */ - abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) + abstract fun takePicture( + pigeon_instance: androidx.camera.core.ImageCapture, + callback: (Result) -> Unit + ) /** Sets the desired rotation of the output image. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) @@ -3512,20 +3892,29 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? val flashModeArg = args[3] as CameraXFlashMode? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg,flashModeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + resolutionSelectorArg, targetRotationArg, flashModeArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3533,18 +3922,23 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val flashModeArg = args[1] as CameraXFlashMode - val wrapped: List = try { - api.setFlashMode(pigeon_instanceArg, flashModeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setFlashMode(pigeon_instanceArg, flashModeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3552,7 +3946,11 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -3572,18 +3970,23 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3595,16 +3998,19 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageCapture, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -3613,65 +4019,80 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /** - * The resolution strategy defines the resolution selection sequence to select - * the best size. + * The resolution strategy defines the resolution selection sequence to select the best size. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(boundSize: android.util.Size, fallbackRule: ResolutionStrategyFallbackRule): androidx.camera.core.resolutionselector.ResolutionStrategy +abstract class PigeonApiResolutionStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + boundSize: android.util.Size, + fallbackRule: ResolutionStrategyFallbackRule + ): androidx.camera.core.resolutionselector.ResolutionStrategy /** A resolution strategy chooses the highest available resolution. */ - abstract fun highestAvailableStrategy(): androidx.camera.core.resolutionselector.ResolutionStrategy + abstract fun highestAvailableStrategy(): + androidx.camera.core.resolutionselector.ResolutionStrategy /** The specified bound size. */ - abstract fun getBoundSize(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): android.util.Size? + abstract fun getBoundSize( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy + ): android.util.Size? /** - * The fallback rule for choosing an alternate size when the specified bound - * size is unavailable. + * The fallback rule for choosing an alternate size when the specified bound size is unavailable. */ - abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): ResolutionStrategyFallbackRule + abstract fun getFallbackRule( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy + ): ResolutionStrategyFallbackRule companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val boundSizeArg = args[1] as android.util.Size val fallbackRuleArg = args[2] as ResolutionStrategyFallbackRule - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(boundSizeArg,fallbackRuleArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(boundSizeArg, fallbackRuleArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3679,17 +4100,23 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.highestAvailableStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.highestAvailableStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3697,16 +4124,22 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy - val wrapped: List = try { - listOf(api.getBoundSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = + try { + listOf(api.getBoundSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3714,16 +4147,22 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy - val wrapped: List = try { - listOf(api.getFallbackRule(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = + try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3735,77 +4174,104 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A set of requirements and priorities used to select a resolution for the - * `UseCase`. + * A set of requirements and priorities used to select a resolution for the `UseCase`. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?, resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?): androidx.camera.core.resolutionselector.ResolutionSelector +abstract class PigeonApiResolutionSelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?, + resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, + aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy? + ): androidx.camera.core.resolutionselector.ResolutionSelector /** The resolution filter to output the final desired sizes list. */ - abstract fun resolutionFilter(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionFilter? + abstract fun resolutionFilter( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + ): androidx.camera.core.resolutionselector.ResolutionFilter? /** The resolution selection strategy for the `UseCase`. */ - abstract fun resolutionStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionStrategy? + abstract fun resolutionStrategy( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + ): androidx.camera.core.resolutionselector.ResolutionStrategy? /** * Returns the specified `AspectRatioStrategy`, or - * `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified - * when creating the ResolutionSelector. + * `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified when creating the + * ResolutionSelector. */ - abstract fun getAspectRatioStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun getAspectRatioStrategy( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + ): androidx.camera.core.resolutionselector.AspectRatioStrategy companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionFilterArg = args[1] as androidx.camera.core.resolutionselector.ResolutionFilter? - val resolutionStrategyArg = args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? - val aspectRatioStrategyArg = args[3] as androidx.camera.core.resolutionselector.AspectRatioStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionFilterArg,resolutionStrategyArg,aspectRatioStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionFilterArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionFilter? + val resolutionStrategyArg = + args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val aspectRatioStrategyArg = + args[3] as androidx.camera.core.resolutionselector.AspectRatioStrategy? + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + resolutionFilterArg, resolutionStrategyArg, aspectRatioStrategyArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3813,16 +4279,22 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionSelector - val wrapped: List = try { - listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.ResolutionSelector + val wrapped: List = + try { + listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3834,90 +4306,109 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionFilterArg = resolutionFilter(pigeon_instanceArg) val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, resolutionFilterArg, resolutionStrategyArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * The aspect ratio strategy defines the sequence of aspect ratios that are - * used to select the best size for a particular image. + * The aspect ratio strategy defines the sequence of aspect ratios that are used to select the best + * size for a particular image. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiAspectRatioStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Creates a new AspectRatioStrategy instance, configured with the specified - * preferred aspect ratio and fallback rule. + * Creates a new AspectRatioStrategy instance, configured with the specified preferred aspect + * ratio and fallback rule. */ - abstract fun pigeon_defaultConstructor(preferredAspectRatio: AspectRatio, fallbackRule: AspectRatioStrategyFallbackRule): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun pigeon_defaultConstructor( + preferredAspectRatio: AspectRatio, + fallbackRule: AspectRatioStrategyFallbackRule + ): androidx.camera.core.resolutionselector.AspectRatioStrategy - /** - * The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 - * in priority. - */ - abstract fun ratio_16_9FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + /** The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 in priority. */ + abstract fun ratio_16_9FallbackAutoStrategy(): + androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The pre-defined default aspect ratio strategy that selects sizes with - * RATIO_4_3 in priority. + * The pre-defined default aspect ratio strategy that selects sizes with RATIO_4_3 in priority. */ - abstract fun ratio_4_3FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun ratio_4_3FallbackAutoStrategy(): + androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The specified fallback rule for choosing the aspect ratio when the - * preferred aspect ratio is not available. + * The specified fallback rule for choosing the aspect ratio when the preferred aspect ratio is + * not available. */ - abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatioStrategyFallbackRule + abstract fun getFallbackRule( + pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy + ): AspectRatioStrategyFallbackRule /** The specified preferred aspect ratio. */ - abstract fun getPreferredAspectRatio(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatio + abstract fun getPreferredAspectRatio( + pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy + ): AspectRatio companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAspectRatioStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredAspectRatioArg = args[1] as AspectRatio val fallbackRuleArg = args[2] as AspectRatioStrategyFallbackRule - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(preferredAspectRatioArg,fallbackRuleArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(preferredAspectRatioArg, fallbackRuleArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3925,17 +4416,23 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3943,17 +4440,23 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3961,16 +4464,22 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy - val wrapped: List = try { - listOf(api.getFallbackRule(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = + try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3978,16 +4487,22 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy - val wrapped: List = try { - listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = + try { + listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3999,34 +4514,38 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * Represents the different states the camera can be in. @@ -4034,25 +4553,32 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib * See https://developer.android.com/reference/androidx/camera/core/CameraState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraState( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The camera's state. */ abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType /** Potentially returns an error the camera encountered. */ - abstract fun error(pigeon_instance: androidx.camera.core.CameraState): androidx.camera.core.CameraState.StateError? + abstract fun error( + pigeon_instance: androidx.camera.core.CameraState + ): androidx.camera.core.CameraState.StateError? @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val errorArg = error(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -4062,17 +4588,17 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige channel.send(listOf(pigeon_identifierArg, typeArg, errorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * An interface which contains the camera exposure related information. @@ -4080,48 +4606,57 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige * See https://developer.android.com/reference/androidx/camera/core/ExposureState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiExposureState( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Get the maximum and minimum exposure compensation values for * `CameraControl.setExposureCompensationIndex`. */ - abstract fun exposureCompensationRange(pigeon_instance: androidx.camera.core.ExposureState): android.util.Range<*> + abstract fun exposureCompensationRange( + pigeon_instance: androidx.camera.core.ExposureState + ): android.util.Range<*> /** Get the smallest step by which the exposure compensation can be changed. */ abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ExposureState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ExposureState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) + channel.send( + listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure( + CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } } } - } /** * An interface which contains the zoom related information from a camera. @@ -4138,16 +4673,19 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ZoomState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -4157,57 +4695,77 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon channel.send(listOf(pigeon_identifierArg, minZoomRatioArg, maxZoomRatioArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A use case providing CPU accessible images for an app to perform image - * analysis on. + * A use case providing CPU accessible images for an app to perform image analysis on. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.ImageAnalysis - - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageAnalysis): androidx.camera.core.resolutionselector.ResolutionSelector? +abstract class PigeonApiImageAnalysis( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, + targetRotation: Long? + ): androidx.camera.core.ImageAnalysis + + abstract fun resolutionSelector( + pigeon_instance: androidx.camera.core.ImageAnalysis + ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Sets an analyzer to receive and analyze images. */ - abstract fun setAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer) + abstract fun setAnalyzer( + pigeon_instance: androidx.camera.core.ImageAnalysis, + analyzer: androidx.camera.core.ImageAnalysis.Analyzer + ) /** Removes a previously set analyzer. */ abstract fun clearAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis) /** Sets the target rotation. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageAnalysis, rotation: Long) + abstract fun setTargetRotation( + pigeon_instance: androidx.camera.core.ImageAnalysis, + rotation: Long + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageAnalysis?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(resolutionSelectorArg, targetRotationArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4215,18 +4773,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val analyzerArg = args[1] as androidx.camera.core.ImageAnalysis.Analyzer - val wrapped: List = try { - api.setAnalyzer(pigeon_instanceArg, analyzerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setAnalyzer(pigeon_instanceArg, analyzerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4234,17 +4797,22 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis - val wrapped: List = try { - api.clearAnalyzer(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.clearAnalyzer(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4252,18 +4820,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4275,16 +4848,19 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -4293,24 +4869,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /** * Interface for analyzing images. @@ -4326,17 +4901,23 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAnalyzer?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4348,24 +4929,32 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Analyzer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.", + ""))) } } /** Analyzes an image to produce a result. */ - fun analyze(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, imageArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) -{ + fun analyze( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + imageArg: androidx.camera.core.ImageProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4385,10 +4974,9 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** * Error that the camera has encountered. @@ -4396,85 +4984,104 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP * See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraStateStateError( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The code of this error. */ - abstract fun code(pigeon_instance: androidx.camera.core.CameraState.StateError): CameraStateErrorCode + abstract fun code( + pigeon_instance: androidx.camera.core.CameraState.StateError + ): CameraStateErrorCode @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState.StateError, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraState.StateError, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val codeArg = code(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, codeArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * LiveData is a data holder class that can be observed within a given - * lifecycle. + * LiveData is a data holder class that can be observed within a given lifecycle. * - * This is a wrapper around the native class to better support the generic - * type. Java has type erasure; + * This is a wrapper around the native class to better support the generic type. Java has type + * erasure; * * See https://developer.android.com/reference/androidx/lifecycle/LiveData. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The generic type used by this instance. */ - abstract fun type(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): LiveDataSupportedType + abstract fun type( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ): LiveDataSupportedType - /** - * Adds the given observer to the observers list within the lifespan of the - * given owner. - */ - abstract fun observe(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, observer: androidx.lifecycle.Observer<*>) + /** Adds the given observer to the observers list within the lifespan of the given owner. */ + abstract fun observe( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + observer: androidx.lifecycle.Observer<*> + ) /** Removes all observers that are tied to the given `LifecycleOwner`. */ - abstract fun removeObservers(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) + abstract fun removeObservers( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ) /** Returns the current value. */ - abstract fun getValue(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): Any? + abstract fun getValue( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiLiveData?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val observerArg = args[1] as androidx.lifecycle.Observer<*> - val wrapped: List = try { - api.observe(pigeon_instanceArg, observerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.observe(pigeon_instanceArg, observerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4482,17 +5089,23 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = try { - api.removeObservers(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = + try { + api.removeObservers(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4500,16 +5113,22 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = try { - listOf(api.getValue(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = + try { + listOf(api.getValue(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4521,16 +5140,19 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -4539,17 +5161,17 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP channel.send(listOf(pigeon_identifierArg, typeArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * An image proxy which has a similar interface as `android.media.Image`. @@ -4557,7 +5179,9 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiImageProxy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The image format. */ abstract fun format(pigeon_instance: androidx.camera.core.ImageProxy): Long @@ -4568,7 +5192,9 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo abstract fun height(pigeon_instance: androidx.camera.core.ImageProxy): Long /** Returns the array of planes. */ - abstract fun getPlanes(pigeon_instance: androidx.camera.core.ImageProxy): List + abstract fun getPlanes( + pigeon_instance: androidx.camera.core.ImageProxy + ): List /** Closes the underlying `android.media.Image`. */ abstract fun close(pigeon_instance: androidx.camera.core.ImageProxy) @@ -4578,16 +5204,21 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageProxy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = try { - listOf(api.getPlanes(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getPlanes(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4595,17 +5226,22 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4617,16 +5253,19 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val formatArg = format(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) @@ -4637,26 +5276,27 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, formatArg, widthArg, heightArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A plane proxy which has an analogous interface as - * `android.media.Image.Plane`. + * A plane proxy which has an analogous interface as `android.media.Image.Plane`. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiPlaneProxy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The pixels buffer. */ abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray @@ -4668,16 +5308,19 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val bufferArg = buffer(pigeon_instanceArg) val pixelStrideArg = pixelStride(pigeon_instanceArg) val rowStrideArg = rowStride(pigeon_instanceArg) @@ -4688,53 +5331,70 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, bufferArg, pixelStrideArg, rowStrideArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * Defines a desired quality setting that can be used to configure components - * with quality setting requirements such as creating a Recorder. + * Defines a desired quality setting that can be used to configure components with quality setting + * requirements such as creating a Recorder. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiQualitySelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets an instance of QualitySelector with a desired quality. */ - abstract fun from(quality: VideoQuality, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + abstract fun from( + quality: VideoQuality, + fallbackStrategy: androidx.camera.video.FallbackStrategy? + ): androidx.camera.video.QualitySelector /** Gets an instance of QualitySelector with ordered desired qualities. */ - abstract fun fromOrderedList(qualities: List, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + abstract fun fromOrderedList( + qualities: List, + fallbackStrategy: androidx.camera.video.FallbackStrategy? + ): androidx.camera.video.QualitySelector /** Gets the corresponding resolution from the input quality. */ - abstract fun getResolution(cameraInfo: androidx.camera.core.CameraInfo, quality: VideoQuality): android.util.Size? + abstract fun getResolution( + cameraInfo: androidx.camera.core.CameraInfo, + quality: VideoQuality + ): android.util.Size? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiQualitySelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(qualityArg,fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(qualityArg, fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4742,19 +5402,25 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualitiesArg = args[1] as List val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.fromOrderedList(qualitiesArg,fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.fromOrderedList(qualitiesArg, fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4762,17 +5428,22 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val cameraInfoArg = args[0] as androidx.camera.core.CameraInfo val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - listOf(api.getResolution(cameraInfoArg, qualityArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getResolution(cameraInfoArg, qualityArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4784,65 +5455,74 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of QualitySelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.QualitySelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.QualitySelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A class represents the strategy that will be adopted when the device does - * not support all the desired Quality in QualitySelector in order to select - * the quality as possible. + * A class represents the strategy that will be adopted when the device does not support all the + * desired Quality in QualitySelector in order to select the quality as possible. * * See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFallbackStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Returns a fallback strategy that will choose the quality that is closest - * to and higher than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and higher than the + * input quality. */ - abstract fun higherQualityOrLowerThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + abstract fun higherQualityOrLowerThan( + quality: VideoQuality + ): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and higher than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and higher than the + * input quality. */ abstract fun higherQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and lower than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and lower than the + * input quality. */ - abstract fun lowerQualityOrHigherThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + abstract fun lowerQualityOrHigherThan( + quality: VideoQuality + ): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and lower than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and lower than the + * input quality. */ abstract fun lowerQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy @@ -4851,18 +5531,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFallbackStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4870,18 +5556,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.higherQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4889,18 +5581,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4908,18 +5606,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.lowerQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4931,68 +5635,93 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.FallbackStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.FallbackStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * The CameraControl provides various asynchronous operations like zoom, focus - * and metering which affects output of all UseCases currently bound to that - * camera. + * The CameraControl provides various asynchronous operations like zoom, focus and metering which + * affects output of all UseCases currently bound to that camera. * * See https://developer.android.com/reference/androidx/camera/core/CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraControl( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Enable the torch or disable the torch. */ - abstract fun enableTorch(pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit) + abstract fun enableTorch( + pigeon_instance: androidx.camera.core.CameraControl, + torch: Boolean, + callback: (Result) -> Unit + ) /** Sets current zoom by ratio. */ - abstract fun setZoomRatio(pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit) - - /** - * Starts a focus and metering action configured by the - * `FocusMeteringAction`. - */ - abstract fun startFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) + abstract fun setZoomRatio( + pigeon_instance: androidx.camera.core.CameraControl, + ratio: Double, + callback: (Result) -> Unit + ) + + /** Starts a focus and metering action configured by the `FocusMeteringAction`. */ + abstract fun startFocusAndMetering( + pigeon_instance: androidx.camera.core.CameraControl, + action: androidx.camera.core.FocusMeteringAction, + callback: (Result) -> Unit + ) /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ - abstract fun cancelFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, callback: (Result) -> Unit) + abstract fun cancelFocusAndMetering( + pigeon_instance: androidx.camera.core.CameraControl, + callback: (Result) -> Unit + ) /** Set the exposure compensation value for the camera. */ - abstract fun setExposureCompensationIndex(pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit) + abstract fun setExposureCompensationIndex( + pigeon_instance: androidx.camera.core.CameraControl, + index: Long, + callback: (Result) -> Unit + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraControl?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5012,7 +5741,11 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5032,13 +5765,18 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val actionArg = args[1] as androidx.camera.core.FocusMeteringAction - api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> + api.startFocusAndMetering(pigeon_instanceArg, actionArg) { + result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5053,7 +5791,11 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5072,13 +5814,18 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val indexArg = args[1] as Long - api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result -> + api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result + -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5097,16 +5844,19 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraControl, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraControl, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" @@ -5114,63 +5864,86 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * The builder used to create the `FocusMeteringAction`. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** - * Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | - * FLAG_AE | FLAG_AWB. - */ - abstract fun pigeon_defaultConstructor(point: androidx.camera.core.MeteringPoint): androidx.camera.core.FocusMeteringAction.Builder +abstract class PigeonApiFocusMeteringActionBuilder( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + /** Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | FLAG_AE | FLAG_AWB. */ + abstract fun pigeon_defaultConstructor( + point: androidx.camera.core.MeteringPoint + ): androidx.camera.core.FocusMeteringAction.Builder /** Creates a Builder from a `MeteringPoint` and `MeteringMode`. */ - abstract fun withMode(point: androidx.camera.core.MeteringPoint, mode: MeteringMode): androidx.camera.core.FocusMeteringAction.Builder + abstract fun withMode( + point: androidx.camera.core.MeteringPoint, + mode: MeteringMode + ): androidx.camera.core.FocusMeteringAction.Builder /** Adds another MeteringPoint with default metering mode. */ - abstract fun addPoint(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint) + abstract fun addPoint( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + point: androidx.camera.core.MeteringPoint + ) /** Adds another MeteringPoint with specified meteringMode. */ - abstract fun addPointWithMode(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, mode: MeteringMode) + abstract fun addPointWithMode( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + point: androidx.camera.core.MeteringPoint, + mode: MeteringMode + ) /** Disables the auto-cancel. */ abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) /** Builds the `FocusMeteringAction` instance. */ - abstract fun build(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder): androidx.camera.core.FocusMeteringAction + abstract fun build( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder + ): androidx.camera.core.FocusMeteringAction companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFocusMeteringActionBuilder?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiFocusMeteringActionBuilder? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5178,19 +5951,25 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withMode(pointArg,modeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.withMode(pointArg, modeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5198,18 +5977,23 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - api.addPoint(pigeon_instanceArg, pointArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.addPoint(pigeon_instanceArg, pointArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5217,19 +6001,24 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = try { - api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5237,17 +6026,22 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = try { - api.disableAutoCancel(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.disableAutoCancel(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5255,16 +6049,21 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = try { - listOf(api.build(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.build(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5275,35 +6074,41 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A configuration used to trigger a focus and/or metering action. @@ -5311,53 +6116,74 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFocusMeteringAction( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** All MeteringPoints used for AE regions. */ - abstract fun meteringPointsAe(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAe( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** All MeteringPoints used for AF regions. */ - abstract fun meteringPointsAf(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAf( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** All MeteringPoints used for AWB regions. */ - abstract fun meteringPointsAwb(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAwb( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** If auto-cancel is enabled or not. */ - abstract fun isAutoCancelEnabled(pigeon_instance: androidx.camera.core.FocusMeteringAction): Boolean + abstract fun isAutoCancelEnabled( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, meteringPointsAeArg, meteringPointsAfArg, meteringPointsAwbArg, isAutoCancelEnabledArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) + channel.send( + listOf( + pigeon_identifierArg, + meteringPointsAeArg, + meteringPointsAfArg, + meteringPointsAwbArg, + isAutoCancelEnabledArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure( + CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } } } - } /** * Result of the `CameraControl.startFocusAndMetering`. @@ -5365,53 +6191,60 @@ abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLib * See https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFocusMeteringResult( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** If auto focus is successful. */ abstract fun isFocusSuccessful(pigeon_instance: androidx.camera.core.FocusMeteringResult): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, isFocusSuccessfulArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * An immutable package of settings and outputs needed to capture a single - * image from the camera device. + * An immutable package of settings and outputs needed to capture a single image from the camera + * device. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCaptureRequest( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Whether auto-exposure (AE) is currently locked to its latest calculated - * values. + * Whether auto-exposure (AE) is currently locked to its latest calculated values. * * Value is boolean. * @@ -5424,17 +6257,23 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequest?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.controlAELock(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.controlAELock(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5446,106 +6285,130 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequest and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CaptureRequest, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A Key is used to do capture request field lookups with CaptureRequest.get or - * to set fields with `CaptureRequest.Builder.set`. + * A Key is used to do capture request field lookups with CaptureRequest.get or to set fields with + * `CaptureRequest.Builder.set`. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiCaptureRequestKey( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A bundle of Camera2 capture request options. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(options: Map, Any?>): androidx.camera.camera2.interop.CaptureRequestOptions - - /** - * Returns a value for the given CaptureRequestKey or null if it hasn't been - * set. - */ - abstract fun getCaptureRequestOption(pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, key: android.hardware.camera2.CaptureRequest.Key<*>): Any? +abstract class PigeonApiCaptureRequestOptions( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + options: Map, Any?> + ): androidx.camera.camera2.interop.CaptureRequestOptions + + /** Returns a value for the given CaptureRequestKey or null if it hasn't been set. */ + abstract fun getCaptureRequestOption( + pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, + key: android.hardware.camera2.CaptureRequest.Key<*> + ): Any? companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequestOptions?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCaptureRequestOptions? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val optionsArg = args[1] as Map, Any?> - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5553,17 +6416,23 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.CaptureRequestOptions + val pigeon_instanceArg = + args[0] as androidx.camera.camera2.interop.CaptureRequestOptions val keyArg = args[1] as android.hardware.camera2.CaptureRequest.Key<*> - val wrapped: List = try { - listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5575,69 +6444,87 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * An class that provides ability to interoperate with the - * 1android.hardware.camera21 APIs. + * An class that provides ability to interoperate with the 1android.hardware.camera21 APIs. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCamera2CameraControl( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets the `Camera2CameraControl` from a `CameraControl`. */ - abstract fun from(cameraControl: androidx.camera.core.CameraControl): androidx.camera.camera2.interop.Camera2CameraControl + abstract fun from( + cameraControl: androidx.camera.core.CameraControl + ): androidx.camera.camera2.interop.Camera2CameraControl - /** - * Adds a `CaptureRequestOptions` updates the session with the options it - * contains. - */ - abstract fun addCaptureRequestOptions(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, bundle: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) + /** Adds a `CaptureRequestOptions` updates the session with the options it contains. */ + abstract fun addCaptureRequestOptions( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, + bundle: androidx.camera.camera2.interop.CaptureRequestOptions, + callback: (Result) -> Unit + ) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraControl?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCamera2CameraControl? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraControlArg = args[1] as androidx.camera.core.CameraControl - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraControlArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(cameraControlArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5645,7 +6532,11 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5669,62 +6560,77 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * Applications can filter out unsuitable sizes and sort the resolution list in - * the preferred order by implementing the resolution filter interface. + * Applications can filter out unsuitable sizes and sort the resolution list in the preferred order + * by implementing the resolution filter interface. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun createWithOnePreferredSize(preferredSize: android.util.Size): androidx.camera.core.resolutionselector.ResolutionFilter +abstract class PigeonApiResolutionFilter( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun createWithOnePreferredSize( + preferredSize: android.util.Size + ): androidx.camera.core.resolutionselector.ResolutionFilter companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionFilter?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredSizeArg = args[1] as android.util.Size - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5736,73 +6642,85 @@ abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A Key is used to do camera characteristics field lookups with - * `CameraCharacteristics.get`. + * A Key is used to do camera characteristics field lookups with `CameraCharacteristics.get`. * - * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. + * See + * https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiCameraCharacteristicsKey( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * The properties describing a `CameraDevice`. @@ -5810,7 +6728,9 @@ open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLi * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraCharacteristics( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Generally classifies the overall set of the camera device functionality. * @@ -5821,8 +6741,8 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL abstract fun infoSupportedHardwareLevel(): android.hardware.camera2.CameraCharacteristics.Key<*> /** - * Clockwise angle through which the output image needs to be rotated to be - * upright on the device screen in its native orientation.. + * Clockwise angle through which the output image needs to be rotated to be upright on the device + * screen in its native orientation.. * * Value is int. * @@ -5832,20 +6752,29 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraCharacteristics?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCameraCharacteristics? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.infoSupportedHardwareLevel(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.infoSupportedHardwareLevel(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5853,17 +6782,23 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.sensorOrientation(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.sensorOrientation(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5875,68 +6810,88 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * An interface for retrieving Camera2-related camera information. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCamera2CameraInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets the `Camera2CameraInfo` from a `CameraInfo`. */ - abstract fun from(cameraInfo: androidx.camera.core.CameraInfo): androidx.camera.camera2.interop.Camera2CameraInfo + abstract fun from( + cameraInfo: androidx.camera.core.CameraInfo + ): androidx.camera.camera2.interop.Camera2CameraInfo /** Gets the string camera ID. */ - abstract fun getCameraId(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo): String + abstract fun getCameraId( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo + ): String /** Gets a camera characteristic value. */ - abstract fun getCameraCharacteristic(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, key: android.hardware.camera2.CameraCharacteristics.Key<*>): Any? + abstract fun getCameraCharacteristic( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, + key: android.hardware.camera2.CameraCharacteristics.Key<*> + ): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraInfoArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(cameraInfoArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5944,16 +6899,21 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo - val wrapped: List = try { - listOf(api.getCameraId(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraId(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5961,17 +6921,22 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val keyArg = args[1] as android.hardware.camera2.CameraCharacteristics.Key<*> - val wrapped: List = try { - listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5983,34 +6948,38 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A factory to create a MeteringPoint. @@ -6018,30 +6987,49 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra * See https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiMeteringPointFactory( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Creates a MeteringPoint by x, y. */ - abstract fun createPoint(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double): androidx.camera.core.MeteringPoint + abstract fun createPoint( + pigeon_instance: androidx.camera.core.MeteringPointFactory, + x: Double, + y: Double + ): androidx.camera.core.MeteringPoint /** Creates a MeteringPoint by x, y, size. */ - abstract fun createPointWithSize(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double, size: Double): androidx.camera.core.MeteringPoint + abstract fun createPointWithSize( + pigeon_instance: androidx.camera.core.MeteringPointFactory, + x: Double, + y: Double, + size: Double + ): androidx.camera.core.MeteringPoint companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPointFactory?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiMeteringPointFactory? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double - val wrapped: List = try { - listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6049,7 +7037,11 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -6057,11 +7049,12 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi val xArg = args[1] as Double val yArg = args[2] as Double val sizeArg = args[3] as Double - val wrapped: List = try { - listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6073,57 +7066,73 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint - * which can then be used to construct a FocusMeteringAction to start a focus - * and metering action. + * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint which can then be used + * to construct a FocusMeteringAction to start a focus and metering action. * - * See https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. + * See + * https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiDisplayOrientedMeteringPointFactory( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) - * into a MeteringPoint based on the current display's rotation and - * CameraInfo. + * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) into a MeteringPoint + * based on the current display's rotation and CameraInfo. */ - abstract fun pigeon_defaultConstructor(cameraInfo: androidx.camera.core.CameraInfo, width: Double, height: Double): androidx.camera.core.DisplayOrientedMeteringPointFactory + abstract fun pigeon_defaultConstructor( + cameraInfo: androidx.camera.core.CameraInfo, + width: Double, + height: Double + ): androidx.camera.core.DisplayOrientedMeteringPointFactory companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDisplayOrientedMeteringPointFactory?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiDisplayOrientedMeteringPointFactory? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -6131,12 +7140,15 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo val widthArg = args[2] as Double val heightArg = args[3] as Double - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(cameraInfoArg,widthArg,heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(cameraInfoArg, widthArg, heightArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6147,40 +7159,46 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to + * [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiMeteringPointFactory] used to access callback methods */ - fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory - { + fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory { return pigeonRegistrar.getPigeonApiMeteringPointFactory() } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index 4ff3cf244b7..243f34ff836 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -181,7 +181,7 @@ public PigeonApiCamera getPigeonApiCamera() { @NonNull @Override - public PigeonApiSystemServicesManager getPigeonApiSystemServicesManager() { + public SystemServicesManagerProxyApi getPigeonApiSystemServicesManager() { return new SystemServicesManagerProxyApi(this); } @@ -392,7 +392,7 @@ public PigeonApiMeteringPointFactory getPigeonApiMeteringPointFactory() { @NonNull @Override - public PigeonApiCameraPermissionsError getPigeonApiCameraPermissionsError() { + public CameraPermissionsErrorProxyApi getPigeonApiCameraPermissionsError() { return new CameraPermissionsErrorProxyApi(this); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java index 88f211a7f03..1b75261e7fe 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java @@ -17,7 +17,7 @@ * native object instances that are attached to a Dart instance or handle method calls on the * associated native class or an instance of that class. */ -class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManager { +public class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManager { /** * Implementation of {@link SystemServicesManager} that passes arguments of callback methods to * Dart. @@ -66,7 +66,10 @@ public SystemServicesManager pigeon_defaultConstructor() { } @Override - public void requestCameraPermissions(@NonNull SystemServicesManager pigeon_instance, boolean enableAudio, @NonNull Function1, Unit> callback) { + public void requestCameraPermissions( + @NonNull SystemServicesManager pigeon_instance, + boolean enableAudio, + @NonNull Function1, Unit> callback) { pigeon_instance.requestCameraPermissions( enableAudio, (isSuccessful, error) -> ResultCompat.success(error, callback)); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java index 142dc2bd343..9cb26fa1ba2 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java @@ -1,17 +1,14 @@ package io.flutter.plugins.camerax; import static org.junit.Assert.assertEquals; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import androidx.camera.core.CameraInfo; import org.junit.Test; public class CameraPermissionsErrorTest { @Test public void errorCode() { - final PigeonApiCameraPermissionsError api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsError(); + final PigeonApiCameraPermissionsError api = + new TestProxyApiRegistrar().getPigeonApiCameraPermissionsError(); final String errorCode = "errorCode"; final CameraPermissionsError instance = new CameraPermissionsError(errorCode, "desc"); @@ -21,7 +18,8 @@ public void errorCode() { @Test public void description() { - final PigeonApiCameraPermissionsError api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsError(); + final PigeonApiCameraPermissionsError api = + new TestProxyApiRegistrar().getPigeonApiCameraPermissionsError(); final String description = "desc"; final CameraPermissionsError instance = new CameraPermissionsError("errorCode", description); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java index 35b92b8c953..3e606a3378e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsManagerTest.java @@ -39,7 +39,9 @@ public void callback_respondsWithCameraAccessDenied() { 9796, null, new int[] {PackageManager.PERMISSION_DENIED}); verify(fakeResultCallback) - .onResult(new CameraPermissionsError("CameraAccessDenied", "Camera access permission was denied.")); + .onResult( + new CameraPermissionsError( + "CameraAccessDenied", "Camera access permission was denied.")); } @Test @@ -53,7 +55,9 @@ public void callback_respondsWithAudioAccessDenied() { null, new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_DENIED}); - verify(fakeResultCallback).onResult(new CameraPermissionsError("AudioAccessDenied", "Audio access permission was denied.")); + verify(fakeResultCallback) + .onResult( + new CameraPermissionsError("AudioAccessDenied", "Audio access permission was denied.")); } @Test @@ -68,9 +72,12 @@ public void callback_doesNotRespond() { new int[] {PackageManager.PERMISSION_GRANTED, PackageManager.PERMISSION_GRANTED}); verify(fakeResultCallback, never()) - .onResult(new CameraPermissionsError("CameraAccessDenied", "Camera access permission was denied.")); + .onResult( + new CameraPermissionsError( + "CameraAccessDenied", "Camera access permission was denied.")); verify(fakeResultCallback, never()) - .onResult(new CameraPermissionsError("AudioAccessDenied", "Audio access permission was denied.")); + .onResult( + new CameraPermissionsError("AudioAccessDenied", "Audio access permission was denied.")); } @Test @@ -84,6 +91,8 @@ public void callback_respondsWithCameraAccessDeniedWhenEmptyResult() { permissionsListener.onRequestPermissionsResult(9796, null, new int[] {}); verify(fakeResultCallback) - .onResult(new CameraPermissionsError("CameraAccessDenied", "Camera access permission was denied.")); + .onResult( + new CameraPermissionsError( + "CameraAccessDenied", "Camera access permission was denied.")); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java index aa95badc57b..42f9c5cf733 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java @@ -5,36 +5,30 @@ package io.flutter.plugins.camerax; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; import android.util.Size; - import androidx.camera.core.CameraInfo; import androidx.camera.video.FallbackStrategy; import androidx.camera.video.Quality; import androidx.camera.video.QualitySelector; - +import java.util.Collections; import org.junit.Test; import org.mockito.MockedStatic; import org.mockito.Mockito; import org.mockito.stubbing.Answer; -import java.util.Collections; - public class QualitySelectorTest { @Test public void from() { - final PigeonApiQualitySelector api = - new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); final QualitySelector mockQualitySelector = mock(QualitySelector.class); - final FallbackStrategy fallbackStrategy = mock(FallbackStrategy.class); + final FallbackStrategy fallbackStrategy = mock(FallbackStrategy.class); try (MockedStatic mockedQualitySelector = Mockito.mockStatic(QualitySelector.class)) { - mockedQualitySelector + mockedQualitySelector .when(() -> QualitySelector.from(Quality.HD, fallbackStrategy)) .thenAnswer((Answer) invocation -> mockQualitySelector); @@ -44,35 +38,38 @@ public void from() { @Test public void fromOrderedList() { - final PigeonApiQualitySelector api = - new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); final QualitySelector mockQualitySelector = mock(QualitySelector.class); final FallbackStrategy fallbackStrategy = mock(FallbackStrategy.class); try (MockedStatic mockedQualitySelector = - Mockito.mockStatic(QualitySelector.class)) { + Mockito.mockStatic(QualitySelector.class)) { mockedQualitySelector - .when(() -> QualitySelector.fromOrderedList(Collections.singletonList(Quality.SD), fallbackStrategy)) - .thenAnswer((Answer) invocation -> mockQualitySelector); + .when( + () -> + QualitySelector.fromOrderedList( + Collections.singletonList(Quality.SD), fallbackStrategy)) + .thenAnswer((Answer) invocation -> mockQualitySelector); - assertEquals(api.fromOrderedList(Collections.singletonList(VideoQuality.SD), fallbackStrategy), mockQualitySelector); + assertEquals( + api.fromOrderedList(Collections.singletonList(VideoQuality.SD), fallbackStrategy), + mockQualitySelector); } } @Test public void getResolution_returnsExpectedResolutionInfo() { - final PigeonApiQualitySelector api = - new TestProxyApiRegistrar().getPigeonApiQualitySelector(); + final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); final CameraInfo cameraInfo = mock(CameraInfo.class); try (MockedStatic mockedQualitySelector = - Mockito.mockStatic(QualitySelector.class)) { + Mockito.mockStatic(QualitySelector.class)) { final Size value = new Size(1, 2); mockedQualitySelector - .when(() -> QualitySelector.getResolution(cameraInfo, Quality.UHD)) - .thenAnswer((Answer) invocation -> value); + .when(() -> QualitySelector.getResolution(cameraInfo, Quality.UHD)) + .thenAnswer((Answer) invocation -> value); assertEquals(api.getResolution(cameraInfo, VideoQuality.UHD), value); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java index 1da0e1e9743..211bfaff4f7 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java @@ -4,45 +4,37 @@ package io.flutter.plugins.camerax; -import androidx.camera.video.FileOutputOptions; -import androidx.camera.video.Quality; -import androidx.camera.video.Recorder; -import androidx.camera.video.QualitySelector; -import androidx.camera.video.PendingRecording; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.runner.RunWith; -import org.robolectric.RobolectricTestRunner; - import static org.mockito.Mockito.any; - -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; +import androidx.camera.video.FileOutputOptions; +import androidx.camera.video.PendingRecording; +import androidx.camera.video.Quality; +import androidx.camera.video.QualitySelector; +import androidx.camera.video.Recorder; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; @RunWith(RobolectricTestRunner.class) public class RecorderTest { - @Test - public void pigeon_defaultConstructor() { - final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); - - final long aspectRatio = 5; - final long targetVideoEncodingBitRate = 7; - final QualitySelector qualitySelector = QualitySelector.from(Quality.HD); - final Recorder recorder = - api.pigeon_defaultConstructor( - aspectRatio, targetVideoEncodingBitRate, qualitySelector); - - assertEquals(recorder.getAspectRatio(), aspectRatio); - assertEquals(recorder.getTargetVideoEncodingBitRate(), targetVideoEncodingBitRate); - assertEquals(recorder.getQualitySelector(), qualitySelector); - } + @Test + public void pigeon_defaultConstructor() { + final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); + + final long aspectRatio = 5; + final long targetVideoEncodingBitRate = 7; + final QualitySelector qualitySelector = QualitySelector.from(Quality.HD); + final Recorder recorder = + api.pigeon_defaultConstructor(aspectRatio, targetVideoEncodingBitRate, qualitySelector); + + assertEquals(recorder.getAspectRatio(), aspectRatio); + assertEquals(recorder.getTargetVideoEncodingBitRate(), targetVideoEncodingBitRate); + assertEquals(recorder.getQualitySelector(), qualitySelector); + } @Test public void getAspectRatioTest() { @@ -52,7 +44,7 @@ public void getAspectRatioTest() { final long value = 0; when(instance.getAspectRatio()).thenReturn((int) value); - assertEquals(value, api.getAspectRatio(instance )); + assertEquals(value, api.getAspectRatio(instance)); } @Test @@ -63,7 +55,7 @@ public void getTargetVideoEncodingBitRateTest() { final long value = 0; when(instance.getTargetVideoEncodingBitRate()).thenReturn((int) value); - assertEquals(value, api.getTargetVideoEncodingBitRate(instance )); + assertEquals(value, api.getTargetVideoEncodingBitRate(instance)); } @Test @@ -74,7 +66,7 @@ public void getQualitySelector() { final androidx.camera.video.QualitySelector value = mock(QualitySelector.class); when(instance.getQualitySelector()).thenReturn(value); - assertEquals(value, api.getQualitySelector(instance )); + assertEquals(value, api.getQualitySelector(instance)); } @Test diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java index 295acc884be..52876299187 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java @@ -4,22 +4,19 @@ package io.flutter.plugins.camerax; -import androidx.camera.video.Recording; -import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; +import androidx.camera.video.Recording; +import org.junit.Test; + public class RecordingTest { @Test public void close() { final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); final Recording instance = mock(Recording.class); - api.close(instance ); + api.close(instance); verify(instance).close(); } @@ -29,7 +26,7 @@ public void pause() { final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); final Recording instance = mock(Recording.class); - api.pause(instance ); + api.pause(instance); verify(instance).pause(); } @@ -39,7 +36,7 @@ public void resume() { final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); final Recording instance = mock(Recording.class); - api.resume(instance ); + api.resume(instance); verify(instance).resume(); } @@ -49,7 +46,7 @@ public void stop() { final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); final Recording instance = mock(Recording.class); - api.stop(instance ); + api.stop(instance); verify(instance).stop(); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java index c4bf7a70e46..f604bfa30fb 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java @@ -4,35 +4,31 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.resolutionselector.ResolutionFilter; -import android.util.Size; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; +import android.util.Size; +import androidx.camera.core.resolutionselector.ResolutionFilter; import java.util.ArrayList; import java.util.List; - -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; +import org.junit.Test; public class ResolutionFilterTest { @Test public void createWithOnePreferredSize() { - final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); + final PigeonApiResolutionFilter api = + new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); final int preferredResolutionWidth = 20; final int preferredResolutionHeight = 80; - final ResolutionFilter resolutionFilter = api.createWithOnePreferredSize(new Size( preferredResolutionWidth, preferredResolutionHeight)); + final ResolutionFilter resolutionFilter = + api.createWithOnePreferredSize( + new Size(preferredResolutionWidth, preferredResolutionHeight)); // Test that instance filters supported resolutions as expected. final Size fakeSupportedSize1 = new Size(720, 480); final Size fakeSupportedSize2 = new Size(20, 80); final Size fakeSupportedSize3 = new Size(2, 8); - final Size preferredSize = - new Size( preferredResolutionWidth, preferredResolutionHeight); + final Size preferredSize = new Size(preferredResolutionWidth, preferredResolutionHeight); final ArrayList fakeSupportedSizes = new ArrayList<>(); fakeSupportedSizes.add(fakeSupportedSize1); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java index b49a761891e..71c95c3a286 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java @@ -4,17 +4,14 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.ResolutionInfo; -import android.util.Size; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import android.util.Size; +import androidx.camera.core.ResolutionInfo; +import org.junit.Test; + public class ResolutionInfoTest { @Test public void resolution() { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java index fbd9e7bfac1..176b06ccd7e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java @@ -4,34 +4,31 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.resolutionselector.ResolutionSelector; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import androidx.camera.core.resolutionselector.AspectRatioStrategy; import androidx.camera.core.resolutionselector.ResolutionFilter; +import androidx.camera.core.resolutionselector.ResolutionSelector; import androidx.camera.core.resolutionselector.ResolutionStrategy; import org.junit.Test; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - @RunWith(RobolectricTestRunner.class) public class ResolutionSelectorTest { @Test public void pigeon_defaultConstructor() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + final PigeonApiResolutionSelector api = + new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); final ResolutionFilter resolutionFilter = mock(ResolutionFilter.class); final ResolutionStrategy resolutionStrategy = mock(ResolutionStrategy.class); final AspectRatioStrategy aspectRatioStrategy = mock(AspectRatioStrategy.class); - final ResolutionSelector instance = api.pigeon_defaultConstructor(resolutionFilter, resolutionStrategy, aspectRatioStrategy); + final ResolutionSelector instance = + api.pigeon_defaultConstructor(resolutionFilter, resolutionStrategy, aspectRatioStrategy); assertEquals(instance.getResolutionFilter(), resolutionFilter); assertEquals(instance.getResolutionStrategy(), resolutionStrategy); @@ -40,10 +37,12 @@ public void pigeon_defaultConstructor() { @Test public void resolutionFilter() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + final PigeonApiResolutionSelector api = + new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); final ResolutionSelector instance = mock(ResolutionSelector.class); - final androidx.camera.core.resolutionselector.ResolutionFilter value = mock(ResolutionFilter.class); + final androidx.camera.core.resolutionselector.ResolutionFilter value = + mock(ResolutionFilter.class); when(instance.getResolutionFilter()).thenReturn(value); assertEquals(value, api.resolutionFilter(instance)); @@ -51,10 +50,12 @@ public void resolutionFilter() { @Test public void resolutionStrategy() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + final PigeonApiResolutionSelector api = + new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); final ResolutionSelector instance = mock(ResolutionSelector.class); - final androidx.camera.core.resolutionselector.ResolutionStrategy value = mock(ResolutionStrategy.class); + final androidx.camera.core.resolutionselector.ResolutionStrategy value = + mock(ResolutionStrategy.class); when(instance.getResolutionStrategy()).thenReturn(value); assertEquals(value, api.resolutionStrategy(instance)); @@ -62,12 +63,14 @@ public void resolutionStrategy() { @Test public void getAspectRatioStrategy() { - final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); + final PigeonApiResolutionSelector api = + new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); final ResolutionSelector instance = mock(ResolutionSelector.class); - final androidx.camera.core.resolutionselector.AspectRatioStrategy value = mock(AspectRatioStrategy.class); + final androidx.camera.core.resolutionselector.AspectRatioStrategy value = + mock(AspectRatioStrategy.class); when(instance.getAspectRatioStrategy()).thenReturn(value); - assertEquals(value, api.getAspectRatioStrategy(instance )); + assertEquals(value, api.getAspectRatioStrategy(instance)); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java index 6e081c74dce..984d9a50065 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java @@ -4,52 +4,55 @@ package io.flutter.plugins.camerax; -import androidx.camera.core.resolutionselector.ResolutionStrategy; -import android.util.Size; -import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; +import android.util.Size; +import androidx.camera.core.resolutionselector.ResolutionStrategy; +import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - @RunWith(RobolectricTestRunner.class) public class ResolutionStrategyTest { @Test public void pigeon_defaultConstructor() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + final PigeonApiResolutionStrategy api = + new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); final Size size = new Size(1, 2); - final ResolutionStrategy resolutionStrategy = api.pigeon_defaultConstructor(size, ResolutionStrategyFallbackRule.CLOSEST_HIGHER); + final ResolutionStrategy resolutionStrategy = + api.pigeon_defaultConstructor(size, ResolutionStrategyFallbackRule.CLOSEST_HIGHER); assertEquals(resolutionStrategy.getBoundSize(), size); - assertEquals(resolutionStrategy.getFallbackRule(), ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER); + assertEquals( + resolutionStrategy.getFallbackRule(), ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER); } @Test public void getBoundSize() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + final PigeonApiResolutionStrategy api = + new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); final ResolutionStrategy instance = mock(ResolutionStrategy.class); final Size value = mock(Size.class); when(instance.getBoundSize()).thenReturn(value); - assertEquals(value, api.getBoundSize(instance )); + assertEquals(value, api.getBoundSize(instance)); } @Test public void getFallbackRule() { - final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); + final PigeonApiResolutionStrategy api = + new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); - final ResolutionStrategy instance = mock(ResolutionStrategy.class);; - when(instance.getFallbackRule()).thenReturn(ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER); + final ResolutionStrategy instance = mock(ResolutionStrategy.class); + ; + when(instance.getFallbackRule()) + .thenReturn(ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER); - assertEquals(ResolutionStrategyFallbackRule.CLOSEST_HIGHER_THEN_LOWER, api.getFallbackRule(instance )); + assertEquals( + ResolutionStrategyFallbackRule.CLOSEST_HIGHER_THEN_LOWER, api.getFallbackRule(instance)); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java index d4b9eea8885..f4d1d80337e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java @@ -4,128 +4,200 @@ package io.flutter.plugins.camerax; - -import org.junit.Test; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; - -import org.mockito.ArgumentCaptor; -import org.mockito.Mockito; -import static org.mockito.Mockito.any; -import java.util.HashMap; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.app.Activity; - +import android.content.Context; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import java.io.File; +import java.io.IOException; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.MockedStatic; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; +@RunWith(RobolectricTestRunner.class) public class SystemServicesManagerProxyApiTest { -// @Test -// public void requestCameraPermissionsTest() { -// final Activity mockActivity = mock(Activity.class); -// final CameraPermissionsManager.PermissionsRegistry mockPermissionsRegistry = mock(CameraPermissionsManager.PermissionsRegistry.class); -// final CameraPermissionsManager mockCameraPermissionsManager = -// mock(CameraPermissionsManager.class); -// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar() { -// @Nullable -// @Override -// public Activity getActivity() { -// return mockActivity; -// } -// -// @Nullable -// @Override -// CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry() { -// return mockPermissionsRegistry; -// } -// -// @NonNull -// @Override -// public CameraPermissionsManager getCameraPermissionsManager() { -// return mockCameraPermissionsManager; -// } -// }.getPigeonApiSystemServicesManager(); -// -// final SystemServicesManager instance = mock(SystemServicesManager.class); -// final Boolean enableAudio = false; -// -// final boolean[] isSuccess = {false}; -// api.requestCameraPermissions(instance, enableAudio, ResultCompat.asCompatCallback( -// reply -> { -// isSuccess[0] = reply.isSuccess(); -// return null; -// })); -// -// final ArgumentCaptor resultCallbackCaptor = -// ArgumentCaptor.forClass(CameraPermissionsManager.ResultCallback.class); -// -// // Test camera permissions are requested. -// verify(mockCameraPermissionsManager) -// .requestPermissions( -// eq(mockActivity), -// eq(mockPermissionsRegistry), -// eq(enableAudio), -// resultCallbackCaptor.capture()); -// -// CameraPermissionsManager.ResultCallback resultCallback = resultCallbackCaptor.getValue(); -// -// // Test no error data is sent upon permissions request success. -// resultCallback.onResult(null, null); -// assertTrue(isSuccess[0]); -// -// // Test expected error data is sent upon permissions request failure. -// final String testErrorCode = "TestErrorCode"; -// final String testErrorDescription = "Test error description."; -// -// final ArgumentCaptor cameraPermissionsErrorDataCaptor = -// ArgumentCaptor.forClass(GeneratedCameraXLibrary.CameraPermissionsErrorData.class); -// -// resultCallback.onResult(testErrorCode, testErrorDescription); -// verify(mockResult, times(2)).success(cameraPermissionsErrorDataCaptor.capture()); -// -// CameraPermissionsErrorData cameraPermissionsErrorData = -// cameraPermissionsErrorDataCaptor.getValue(); -// assertEquals(cameraPermissionsErrorData.getErrorCode(), testErrorCode); -// assertEquals(cameraPermissionsErrorData.getDescription(), testErrorDescription); -// } -// -// @Test -// public void getTempFilePath() { -// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); -// -// final SystemServicesManager instance = mock(SystemServicesManager.class); -// final String prefix = "myString"; -// final String suffix = "myString"; -// final String value = "myString"; -// when(instance.getTempFilePath(prefix, suffix)).thenReturn(value); -// -// assertEquals(value, api.getTempFilePath(instance, prefix, suffix)); -// } -// -// @Test -// public void isPreviewPreTransformed() { -// final PigeonApiSystemServicesManager api = new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); -// -// final SystemServicesManager instance = mock(SystemServicesManager.class); -// final Boolean value = true; -// when(instance.isPreviewPreTransformed()).thenReturn(value); -// -// assertEquals(value, api.isPreviewPreTransformed(instance )); -// } -// -// @Test -// public void onCameraError() { -// final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); -// when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); -// -// final SystemServicesManagerImpl instance = new SystemServicesManagerImpl(mockApi); -// final String errorDescription = "myString"; -// instance.onCameraError(errorDescription); -// -// verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); -// } + @Test + public void requestCameraPermissionsTest() { + final Activity mockActivity = mock(Activity.class); + final CameraPermissionsManager.PermissionsRegistry mockPermissionsRegistry = + mock(CameraPermissionsManager.PermissionsRegistry.class); + final CameraPermissionsManager mockCameraPermissionsManager = + mock(CameraPermissionsManager.class); + final TestProxyApiRegistrar proxyApiRegistrar = + new TestProxyApiRegistrar() { + @NonNull + @Override + public Context getContext() { + return mockActivity; + } + + @Nullable + @Override + CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry() { + return mockPermissionsRegistry; + } + + @NonNull + @Override + public CameraPermissionsManager getCameraPermissionsManager() { + return mockCameraPermissionsManager; + } + }; + final SystemServicesManagerProxyApi api = proxyApiRegistrar.getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl( + proxyApiRegistrar.getPigeonApiSystemServicesManager()); + final Boolean enableAudio = false; + + final CameraPermissionsError[] result = {null}; + api.requestCameraPermissions( + instance, + enableAudio, + ResultCompat.asCompatCallback( + reply -> { + result[0] = reply.getOrNull(); + return null; + })); + + final ArgumentCaptor resultCallbackCaptor = + ArgumentCaptor.forClass(CameraPermissionsManager.ResultCallback.class); + + // Test camera permissions are requested. + verify(mockCameraPermissionsManager) + .requestPermissions( + eq(mockActivity), + eq(mockPermissionsRegistry), + eq(enableAudio), + resultCallbackCaptor.capture()); + + CameraPermissionsManager.ResultCallback resultCallback = resultCallbackCaptor.getValue(); + + // Test no error data is sent upon permissions request success. + resultCallback.onResult(null); + assertNull(result[0]); + + // Test expected error data is sent upon permissions request failure. + final String testErrorCode = "TestErrorCode"; + final String testErrorDescription = "Test error description."; + + final ArgumentCaptor + cameraPermissionsErrorDataCaptor = + ArgumentCaptor.forClass(GeneratedCameraXLibrary.CameraPermissionsErrorData.class); + + resultCallback.onResult(new CameraPermissionsError(testErrorCode, testErrorDescription)); + assertEquals(result[0], new CameraPermissionsError(testErrorCode, testErrorDescription)); + } + + @Test + public void getTempFilePath_returnsCorrectPath() { + final Context mockContext = mock(Context.class); + final TestProxyApiRegistrar proxyApiRegistrar = + new TestProxyApiRegistrar() { + @NonNull + @Override + public Context getContext() { + return mockContext; + } + }; + final SystemServicesManagerProxyApi api = proxyApiRegistrar.getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); + final String prefix = "prefix"; + final String suffix = ".suffix"; + final MockedStatic mockedStaticFile = mockStatic(File.class); + final File mockOutputDir = mock(File.class); + final File mockFile = mock(File.class); + when(mockContext.getCacheDir()).thenReturn(mockOutputDir); + mockedStaticFile + .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) + .thenReturn(mockFile); + + when(mockFile.toString()).thenReturn(prefix + suffix); + assertEquals(api.getTempFilePath(instance, prefix, suffix), prefix + suffix); + + mockedStaticFile.close(); + } + + @Test + public void getTempFilePath_throwsRuntimeExceptionOnIOException() { + final Context mockContext = mock(Context.class); + final TestProxyApiRegistrar proxyApiRegistrar = + new TestProxyApiRegistrar() { + @NonNull + @Override + public Context getContext() { + return mockContext; + } + }; + final SystemServicesManagerProxyApi api = proxyApiRegistrar.getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); + + final String prefix = "prefix"; + final String suffix = ".suffix"; + final MockedStatic mockedStaticFile = mockStatic(File.class); + final File mockOutputDir = mock(File.class); + when(mockContext.getCacheDir()).thenReturn(mockOutputDir); + mockedStaticFile + .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) + .thenThrow(IOException.class); + assertThrows(RuntimeException.class, () -> api.getTempFilePath(instance, prefix, suffix)); + + mockedStaticFile.close(); + } + + @Test + @Config(sdk = 28) + public void isPreviewPreTransformed_returnsTrueWhenRunningBelowSdk29() { + final SystemServicesManagerProxyApi api = + new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); + + assertTrue(api.isPreviewPreTransformed(instance)); + } + + @Test + @Config(sdk = 29) + public void isPreviewPreTransformed_returnsTrueWhenRunningSdk28() { + final SystemServicesManagerProxyApi api = + new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); + + assertFalse(api.isPreviewPreTransformed(instance)); + } + + @Test + public void onCameraError() { + final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); + when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(mockApi); + final String errorDescription = "myString"; + instance.onCameraError(errorDescription); + + verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); + } } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 32b4d488b37..656362e946c 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -8,7 +8,8 @@ import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/foundation.dart' + show ReadBuffer, WriteBuffer, immutable, protected; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; @@ -19,7 +20,8 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse( + {Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; } @@ -28,6 +30,7 @@ List wrapResponse({Object? result, PlatformException? error, bool empty } return [error.code, error.message, error.details]; } + /// An immutable object that serves as the base class for all ProxyApis and /// can provide functional copies of itself. /// @@ -110,9 +113,10 @@ class PigeonInstanceManager { // by calling instanceManager.getIdentifier() inside of `==` while this was a // HashMap). final Expando _identifiers = Expando(); - final Map> _weakInstances = - >{}; - final Map _strongInstances = {}; + final Map> + _weakInstances = >{}; + final Map _strongInstances = + {}; late final Finalizer _finalizer; int _nextIdentifier = 0; @@ -122,7 +126,8 @@ class PigeonInstanceManager { static PigeonInstanceManager _initInstance() { WidgetsFlutterBinding.ensureInitialized(); - final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); + final _PigeonInternalInstanceManagerApi api = + _PigeonInternalInstanceManagerApi(); // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. api.clear(); final PigeonInstanceManager instanceManager = PigeonInstanceManager( @@ -130,59 +135,111 @@ class PigeonInstanceManager { api.removeStrongReference(identifier); }, ); - _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); - CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventFinalize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPoint.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Observer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ProcessCameraProvider.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - UseCase.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers( + instanceManager: instanceManager); + CameraSize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraIntegerRange.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEvent.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventStart.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventFinalize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPoint.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Observer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ProcessCameraProvider.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + UseCase.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - SystemServicesManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraPermissionsError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - DeviceOrientationManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Preview.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoOutput.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recorder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventListener.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PendingRecording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - AspectRatioStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ExposureState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ZoomState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageAnalysis.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Analyzer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraStateStateError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - LiveData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PlaneProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - QualitySelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FallbackStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringActionBuilder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringAction.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringResult.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequest.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestOptions.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionFilter.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + SystemServicesManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraPermissionsError.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DeviceOrientationManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Preview.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoOutput.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recorder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventListener.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PendingRecording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + AspectRatioStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ExposureState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ZoomState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageAnalysis.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Analyzer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraStateStateError.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + LiveData.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PlaneProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + QualitySelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FallbackStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringAction.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringResult.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequest.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestOptions.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionFilter.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristicsKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristics.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); return instanceManager; } @@ -246,15 +303,20 @@ class PigeonInstanceManager { /// /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. - T? getInstanceWithWeakReference(int identifier) { - final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; + T? getInstanceWithWeakReference( + int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = + _weakInstances[identifier]?.target; if (weakInstance == null) { - final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; + final PigeonInternalProxyApiBaseClass? strongInstance = + _strongInstances[identifier]; if (strongInstance != null) { - final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); + final PigeonInternalProxyApiBaseClass copy = + strongInstance.pigeon_copy(); _identifiers[copy] = identifier; - _weakInstances[identifier] = WeakReference(copy); + _weakInstances[identifier] = + WeakReference(copy); _finalizer.attach(copy, identifier, detach: copy); return copy as T; } @@ -278,17 +340,20 @@ class PigeonInstanceManager { /// added. /// /// Returns unique identifier of the [instance] added. - void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { + void addHostCreatedInstance( + PigeonInternalProxyApiBaseClass instance, int identifier) { _addInstanceWithIdentifier(instance, identifier); } - void _addInstanceWithIdentifier(PigeonInternalProxyApiBaseClass instance, int identifier) { + void _addInstanceWithIdentifier( + PigeonInternalProxyApiBaseClass instance, int identifier) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = WeakReference(instance); + _weakInstances[identifier] = + WeakReference(instance); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -412,29 +477,29 @@ class _PigeonInternalInstanceManagerApi { } class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { - const _PigeonInternalProxyApiBaseCodec(this.instanceManager); - final PigeonInstanceManager instanceManager; - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is PigeonInternalProxyApiBaseClass) { - buffer.putUint8(128); - writeValue(buffer, instanceManager.getIdentifier(value)); - } else { - super.writeValue(buffer, value); - } - } - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return instanceManager - .getInstanceWithWeakReference(readValue(buffer)! as int); - default: - return super.readValueOfType(type, buffer); - } - } -} + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } +} /// Generally classifies the overall set of the camera device functionality. /// @@ -443,13 +508,17 @@ enum InfoSupportedHardwareLevel { /// This camera device is capable of YUV reprocessing and RAW data capture, in /// addition to FULL-level capabilities. level3, + /// This camera device is backed by an external camera connected to this /// Android device. external, + /// This camera device is capable of supporting advanced imaging applications. full, + /// This camera device is running in backward compatibility mode. legacy, + /// This camera device does not have enough capabilities to qualify as a FULL /// device or better. limited, @@ -461,10 +530,13 @@ enum InfoSupportedHardwareLevel { enum AspectRatio { /// 16:9 standard aspect ratio. ratio16To9, + /// 4:3 standard aspect ratio. ratio4To3, + /// The aspect ratio representing no preference for aspect ratio. ratioDefault, + /// The value is not recognized by the wrapper. unknown, } @@ -475,15 +547,20 @@ enum AspectRatio { enum CameraStateType { /// Represents a state where the camera device is closed. closed, + /// Represents a state where the camera device is currently closing. closing, + /// Represents a state where the camera device is open. open, + /// Represents a state where the camera device is currently opening. opening, + /// Represents a state where the camera is waiting for a signal to attempt to /// open the camera device. pendingOpen, + /// This value is not recognized by this wrapper. unknown, } @@ -503,14 +580,19 @@ enum LiveDataSupportedType { enum VideoQuality { /// Standard Definition (SD) 480p video quality. SD, + /// High Definition (HD) 720p video quality. HD, + /// Full High Definition (FHD) 1080p video quality. FHD, + /// Ultra High Definition (UHD) 2160p video quality. UHD, + /// The lowest video quality supported by the video frame producer. lowest, + /// The highest video quality supported by the video frame producer. highest, } @@ -522,9 +604,11 @@ enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. ae, + /// A flag used in metering mode indicating the AF (Auto Focus) region is /// enabled. af, + /// A flag used in metering mode indicating the AWB (Auto White Balance) /// region is enabled. awb, @@ -536,12 +620,15 @@ enum MeteringMode { enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, + /// A camera on the device facing the opposite direction as the device's /// screen. back, + /// An external camera that has no fixed facing relative to the device's /// screen. external, + /// A camera on the devices that its lens facing is resolved. unknown, } @@ -555,10 +642,12 @@ enum CameraXFlashMode { /// The flash will be used according to the camera system's determination when /// taking a picture. auto, + /// No flash. /// /// The flash will never be used when taking a picture. off, + /// Always flash. /// /// The flash will always be used when taking a picture. @@ -573,18 +662,23 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to the /// closest higher resolution size. closestHigher, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest higher resolution size. closestHigherThenLower, + /// When the specified bound size is unavailable, CameraX falls back to the /// closest lower resolution size. closestLower, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. closestLowerThenHigher, + /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, + /// The value is not recognized by the wrapper. unknown, } @@ -598,9 +692,11 @@ enum AspectRatioStrategyFallbackRule { /// the closest field of view (FOV) of the camera sensor, from the remaining /// options. auto, + /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, + /// The value is not recognized by the wrapper. unknown, } @@ -612,29 +708,35 @@ enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. cameraDisabled, + /// An error indicating that the camera device was closed due to a fatal /// error. cameraFatalError, + /// An error indicating that the camera device is already in use. cameraInUse, + /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API /// level 28). doNotDisturbModeEnabled, + /// An error indicating that the limit number of open cameras has been /// reached, and more cameras cannot be opened until other instances are /// closed. maxCamerasInUse, + /// An error indicating that the camera device has encountered a recoverable /// error. otherRecoverableError, + /// An error indicating that configuring the camera has failed. streamConfig, + /// The value is not recognized by this wrapper. unknown, } - class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -642,37 +744,37 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); } else { @@ -683,37 +785,41 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null ? null : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null + ? null + : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null + ? null + : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; default: @@ -721,6 +827,7 @@ class _PigeonCodec extends StandardMessageCodec { } } } + /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. @@ -8533,4 +8640,3 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { ); } } - diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 15b2e14c2f3..ed6cc9e1264 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -394,8 +394,8 @@ abstract class SystemServicesManager { /// Contains data when an attempt to retrieve camera permissions fails. @ProxyApi() abstract class CameraPermissionsError { - late final String errorCode; - late final String description; + late final String errorCode; + late final String description; } /// Support class to help to determine the media orientation based on the From 515db6d63d38cb4f0189892d3138f35098f83f9f Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 22:34:18 -0500 Subject: [PATCH 110/148] rest of java tests --- .../SystemServicesManagerProxyApiTest.java | 203 ---------- .../plugins/camerax/SystemServicesTest.java | 366 ++++++++++-------- .../camerax/VideoCaptureProxyApiTest.java | 50 --- .../plugins/camerax/VideoCaptureTest.java | 171 +++----- .../camerax/VideoOutputProxyApiTest.java | 20 - .../VideoRecordEventListenerProxyApiTest.java | 39 -- .../camerax/VideoRecordEventListenerTest.java | 40 ++ .../camerax/ZoomStateProxyApiTest.java | 42 -- .../plugins/camerax/ZoomStateTest.java | 99 ++--- 9 files changed, 343 insertions(+), 687 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java create mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerTest.java delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java deleted file mode 100644 index f4d1d80337e..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApiTest.java +++ /dev/null @@ -1,203 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.camerax; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.mockStatic; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.app.Activity; -import android.content.Context; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import java.io.File; -import java.io.IOException; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; -import org.mockito.MockedStatic; -import org.robolectric.RobolectricTestRunner; -import org.robolectric.annotation.Config; - -@RunWith(RobolectricTestRunner.class) -public class SystemServicesManagerProxyApiTest { - @Test - public void requestCameraPermissionsTest() { - final Activity mockActivity = mock(Activity.class); - final CameraPermissionsManager.PermissionsRegistry mockPermissionsRegistry = - mock(CameraPermissionsManager.PermissionsRegistry.class); - final CameraPermissionsManager mockCameraPermissionsManager = - mock(CameraPermissionsManager.class); - final TestProxyApiRegistrar proxyApiRegistrar = - new TestProxyApiRegistrar() { - @NonNull - @Override - public Context getContext() { - return mockActivity; - } - - @Nullable - @Override - CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry() { - return mockPermissionsRegistry; - } - - @NonNull - @Override - public CameraPermissionsManager getCameraPermissionsManager() { - return mockCameraPermissionsManager; - } - }; - final SystemServicesManagerProxyApi api = proxyApiRegistrar.getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = - new SystemServicesManagerProxyApi.SystemServicesManagerImpl( - proxyApiRegistrar.getPigeonApiSystemServicesManager()); - final Boolean enableAudio = false; - - final CameraPermissionsError[] result = {null}; - api.requestCameraPermissions( - instance, - enableAudio, - ResultCompat.asCompatCallback( - reply -> { - result[0] = reply.getOrNull(); - return null; - })); - - final ArgumentCaptor resultCallbackCaptor = - ArgumentCaptor.forClass(CameraPermissionsManager.ResultCallback.class); - - // Test camera permissions are requested. - verify(mockCameraPermissionsManager) - .requestPermissions( - eq(mockActivity), - eq(mockPermissionsRegistry), - eq(enableAudio), - resultCallbackCaptor.capture()); - - CameraPermissionsManager.ResultCallback resultCallback = resultCallbackCaptor.getValue(); - - // Test no error data is sent upon permissions request success. - resultCallback.onResult(null); - assertNull(result[0]); - - // Test expected error data is sent upon permissions request failure. - final String testErrorCode = "TestErrorCode"; - final String testErrorDescription = "Test error description."; - - final ArgumentCaptor - cameraPermissionsErrorDataCaptor = - ArgumentCaptor.forClass(GeneratedCameraXLibrary.CameraPermissionsErrorData.class); - - resultCallback.onResult(new CameraPermissionsError(testErrorCode, testErrorDescription)); - assertEquals(result[0], new CameraPermissionsError(testErrorCode, testErrorDescription)); - } - - @Test - public void getTempFilePath_returnsCorrectPath() { - final Context mockContext = mock(Context.class); - final TestProxyApiRegistrar proxyApiRegistrar = - new TestProxyApiRegistrar() { - @NonNull - @Override - public Context getContext() { - return mockContext; - } - }; - final SystemServicesManagerProxyApi api = proxyApiRegistrar.getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = - new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); - final String prefix = "prefix"; - final String suffix = ".suffix"; - final MockedStatic mockedStaticFile = mockStatic(File.class); - final File mockOutputDir = mock(File.class); - final File mockFile = mock(File.class); - when(mockContext.getCacheDir()).thenReturn(mockOutputDir); - mockedStaticFile - .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) - .thenReturn(mockFile); - - when(mockFile.toString()).thenReturn(prefix + suffix); - assertEquals(api.getTempFilePath(instance, prefix, suffix), prefix + suffix); - - mockedStaticFile.close(); - } - - @Test - public void getTempFilePath_throwsRuntimeExceptionOnIOException() { - final Context mockContext = mock(Context.class); - final TestProxyApiRegistrar proxyApiRegistrar = - new TestProxyApiRegistrar() { - @NonNull - @Override - public Context getContext() { - return mockContext; - } - }; - final SystemServicesManagerProxyApi api = proxyApiRegistrar.getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = - new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); - - final String prefix = "prefix"; - final String suffix = ".suffix"; - final MockedStatic mockedStaticFile = mockStatic(File.class); - final File mockOutputDir = mock(File.class); - when(mockContext.getCacheDir()).thenReturn(mockOutputDir); - mockedStaticFile - .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) - .thenThrow(IOException.class); - assertThrows(RuntimeException.class, () -> api.getTempFilePath(instance, prefix, suffix)); - - mockedStaticFile.close(); - } - - @Test - @Config(sdk = 28) - public void isPreviewPreTransformed_returnsTrueWhenRunningBelowSdk29() { - final SystemServicesManagerProxyApi api = - new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = - new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); - - assertTrue(api.isPreviewPreTransformed(instance)); - } - - @Test - @Config(sdk = 29) - public void isPreviewPreTransformed_returnsTrueWhenRunningSdk28() { - final SystemServicesManagerProxyApi api = - new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); - - final SystemServicesManager instance = - new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); - - assertFalse(api.isPreviewPreTransformed(instance)); - } - - @Test - public void onCameraError() { - final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); - when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); - - final SystemServicesManager instance = - new SystemServicesManagerProxyApi.SystemServicesManagerImpl(mockApi); - final String errorDescription = "myString"; - instance.onCameraError(errorDescription); - - verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); - } -} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java index d72ba14b2cd..457b5cb9dea 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/SystemServicesTest.java @@ -1,163 +1,203 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertFalse; -//import static org.junit.Assert.assertThrows; -//import static org.junit.Assert.assertTrue; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.mockStatic; -//import static org.mockito.Mockito.times; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.app.Activity; -//import android.content.Context; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.CameraPermissionsManager.PermissionsRegistry; -//import io.flutter.plugins.camerax.CameraPermissionsManager.ResultCallback; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.CameraPermissionsErrorData; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.Result; -//import java.io.File; -//import java.io.IOException; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.ArgumentCaptor; -//import org.mockito.Mock; -//import org.mockito.MockedStatic; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -//import org.robolectric.annotation.Config; -// -//@RunWith(RobolectricTestRunner.class) -//public class SystemServicesTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public InstanceManager mockInstanceManager; -// @Mock public Context mockContext; -// -// @Test -// public void requestCameraPermissionsTest() { -// final SystemServicesHostApiImpl systemServicesHostApi = -// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); -// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); -// final CameraPermissionsManager mockCameraPermissionsManager = -// mock(CameraPermissionsManager.class); -// final Activity mockActivity = mock(Activity.class); -// final PermissionsRegistry mockPermissionsRegistry = mock(PermissionsRegistry.class); -// @SuppressWarnings("unchecked") -// final Result mockResult = mock(Result.class); -// final Boolean enableAudio = false; -// -// systemServicesHostApi.cameraXProxy = mockCameraXProxy; -// systemServicesHostApi.setActivity(mockActivity); -// systemServicesHostApi.setPermissionsRegistry(mockPermissionsRegistry); -// when(mockCameraXProxy.createCameraPermissionsManager()) -// .thenReturn(mockCameraPermissionsManager); -// -// final ArgumentCaptor resultCallbackCaptor = -// ArgumentCaptor.forClass(ResultCallback.class); -// -// systemServicesHostApi.requestCameraPermissions(enableAudio, mockResult); -// -// // Test camera permissions are requested. -// verify(mockCameraPermissionsManager) -// .requestPermissions( -// eq(mockActivity), -// eq(mockPermissionsRegistry), -// eq(enableAudio), -// resultCallbackCaptor.capture()); -// -// ResultCallback resultCallback = resultCallbackCaptor.getValue(); -// -// // Test no error data is sent upon permissions request success. -// resultCallback.onResult(null, null); -// verify(mockResult).success(null); -// -// // Test expected error data is sent upon permissions request failure. -// final String testErrorCode = "TestErrorCode"; -// final String testErrorDescription = "Test error description."; -// -// final ArgumentCaptor cameraPermissionsErrorDataCaptor = -// ArgumentCaptor.forClass(CameraPermissionsErrorData.class); -// -// resultCallback.onResult(testErrorCode, testErrorDescription); -// verify(mockResult, times(2)).success(cameraPermissionsErrorDataCaptor.capture()); -// -// CameraPermissionsErrorData cameraPermissionsErrorData = -// cameraPermissionsErrorDataCaptor.getValue(); -// assertEquals(cameraPermissionsErrorData.getErrorCode(), testErrorCode); -// assertEquals(cameraPermissionsErrorData.getDescription(), testErrorDescription); -// } -// -// @Test -// public void getTempFilePath_returnsCorrectPath() { -// final SystemServicesHostApiImpl systemServicesHostApi = -// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); -// -// final String prefix = "prefix"; -// final String suffix = ".suffix"; -// final MockedStatic mockedStaticFile = mockStatic(File.class); -// final File mockOutputDir = mock(File.class); -// final File mockFile = mock(File.class); -// when(mockContext.getCacheDir()).thenReturn(mockOutputDir); -// mockedStaticFile -// .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) -// .thenReturn(mockFile); -// when(mockFile.toString()).thenReturn(prefix + suffix); -// assertEquals(systemServicesHostApi.getTempFilePath(prefix, suffix), prefix + suffix); -// -// mockedStaticFile.close(); -// } -// -// @Test -// public void getTempFilePath_throwsRuntimeExceptionOnIOException() { -// final SystemServicesHostApiImpl systemServicesHostApi = -// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); -// -// final String prefix = "prefix"; -// final String suffix = ".suffix"; -// final MockedStatic mockedStaticFile = mockStatic(File.class); -// final File mockOutputDir = mock(File.class); -// when(mockContext.getCacheDir()).thenReturn(mockOutputDir); -// mockedStaticFile -// .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) -// .thenThrow(IOException.class); -// assertThrows( -// GeneratedCameraXLibrary.FlutterError.class, -// () -> systemServicesHostApi.getTempFilePath(prefix, suffix)); -// -// mockedStaticFile.close(); -// } -// -// @Test -// @Config(sdk = 28) -// public void isPreviewPreTransformed_returnsTrueWhenRunningBelowSdk29() { -// final SystemServicesHostApiImpl systemServicesHostApi = -// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); -// assertTrue(systemServicesHostApi.isPreviewPreTransformed()); -// } -// -// @Test -// @Config(sdk = 28) -// public void isPreviewPreTransformed_returnsTrueWhenRunningSdk28() { -// final SystemServicesHostApiImpl systemServicesHostApi = -// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); -// assertTrue(systemServicesHostApi.isPreviewPreTransformed()); -// } -// -// @Test -// @Config(sdk = 29) -// public void isPreviewPreTransformed_returnsFalseWhenRunningAboveSdk28() { -// final SystemServicesHostApiImpl systemServicesHostApi = -// new SystemServicesHostApiImpl(mockBinaryMessenger, mockInstanceManager, mockContext); -// assertFalse(systemServicesHostApi.isPreviewPreTransformed()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.app.Activity; +import android.content.Context; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import java.io.File; +import java.io.IOException; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.MockedStatic; +import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; + +@RunWith(RobolectricTestRunner.class) +public class SystemServicesTest { + @Test + public void requestCameraPermissionsTest() { + final Activity mockActivity = mock(Activity.class); + final CameraPermissionsManager.PermissionsRegistry mockPermissionsRegistry = + mock(CameraPermissionsManager.PermissionsRegistry.class); + final CameraPermissionsManager mockCameraPermissionsManager = + mock(CameraPermissionsManager.class); + final TestProxyApiRegistrar proxyApiRegistrar = + new TestProxyApiRegistrar() { + @NonNull + @Override + public Context getContext() { + return mockActivity; + } + + @Nullable + @Override + CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry() { + return mockPermissionsRegistry; + } + + @NonNull + @Override + public CameraPermissionsManager getCameraPermissionsManager() { + return mockCameraPermissionsManager; + } + }; + final SystemServicesManagerProxyApi api = proxyApiRegistrar.getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl( + proxyApiRegistrar.getPigeonApiSystemServicesManager()); + final Boolean enableAudio = false; + + final CameraPermissionsError[] result = {null}; + api.requestCameraPermissions( + instance, + enableAudio, + ResultCompat.asCompatCallback( + reply -> { + result[0] = reply.getOrNull(); + return null; + })); + + final ArgumentCaptor resultCallbackCaptor = + ArgumentCaptor.forClass(CameraPermissionsManager.ResultCallback.class); + + // Test camera permissions are requested. + verify(mockCameraPermissionsManager) + .requestPermissions( + eq(mockActivity), + eq(mockPermissionsRegistry), + eq(enableAudio), + resultCallbackCaptor.capture()); + + CameraPermissionsManager.ResultCallback resultCallback = resultCallbackCaptor.getValue(); + + // Test no error data is sent upon permissions request success. + resultCallback.onResult(null); + assertNull(result[0]); + + // Test expected error data is sent upon permissions request failure. + final String testErrorCode = "TestErrorCode"; + final String testErrorDescription = "Test error description."; + + final ArgumentCaptor + cameraPermissionsErrorDataCaptor = + ArgumentCaptor.forClass(GeneratedCameraXLibrary.CameraPermissionsErrorData.class); + + resultCallback.onResult(new CameraPermissionsError(testErrorCode, testErrorDescription)); + assertEquals(result[0], new CameraPermissionsError(testErrorCode, testErrorDescription)); + } + + @Test + public void getTempFilePath_returnsCorrectPath() { + final Context mockContext = mock(Context.class); + final TestProxyApiRegistrar proxyApiRegistrar = + new TestProxyApiRegistrar() { + @NonNull + @Override + public Context getContext() { + return mockContext; + } + }; + final SystemServicesManagerProxyApi api = proxyApiRegistrar.getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); + final String prefix = "prefix"; + final String suffix = ".suffix"; + final MockedStatic mockedStaticFile = mockStatic(File.class); + final File mockOutputDir = mock(File.class); + final File mockFile = mock(File.class); + when(mockContext.getCacheDir()).thenReturn(mockOutputDir); + mockedStaticFile + .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) + .thenReturn(mockFile); + + when(mockFile.toString()).thenReturn(prefix + suffix); + assertEquals(api.getTempFilePath(instance, prefix, suffix), prefix + suffix); + + mockedStaticFile.close(); + } + + @Test + public void getTempFilePath_throwsRuntimeExceptionOnIOException() { + final Context mockContext = mock(Context.class); + final TestProxyApiRegistrar proxyApiRegistrar = + new TestProxyApiRegistrar() { + @NonNull + @Override + public Context getContext() { + return mockContext; + } + }; + final SystemServicesManagerProxyApi api = proxyApiRegistrar.getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); + + final String prefix = "prefix"; + final String suffix = ".suffix"; + final MockedStatic mockedStaticFile = mockStatic(File.class); + final File mockOutputDir = mock(File.class); + when(mockContext.getCacheDir()).thenReturn(mockOutputDir); + mockedStaticFile + .when(() -> File.createTempFile(prefix, suffix, mockOutputDir)) + .thenThrow(IOException.class); + assertThrows(RuntimeException.class, () -> api.getTempFilePath(instance, prefix, suffix)); + + mockedStaticFile.close(); + } + + @Test + @Config(sdk = 28) + public void isPreviewPreTransformed_returnsTrueWhenRunningBelowSdk29() { + final SystemServicesManagerProxyApi api = + new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); + + assertTrue(api.isPreviewPreTransformed(instance)); + } + + @Test + @Config(sdk = 29) + public void isPreviewPreTransformed_returnsTrueWhenRunningSdk28() { + final SystemServicesManagerProxyApi api = + new TestProxyApiRegistrar().getPigeonApiSystemServicesManager(); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(api); + + assertFalse(api.isPreviewPreTransformed(instance)); + } + + @Test + public void onCameraError() { + final SystemServicesManagerProxyApi mockApi = mock(SystemServicesManagerProxyApi.class); + when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); + + final SystemServicesManager instance = + new SystemServicesManagerProxyApi.SystemServicesManagerImpl(mockApi); + final String errorDescription = "myString"; + instance.onCameraError(errorDescription); + + verify(mockApi).onCameraError(eq(instance), eq(errorDescription), any()); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java deleted file mode 100644 index 2e085d34fde..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureProxyApiTest.java +++ /dev/null @@ -1,50 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.VideoCapture<*> -//import androidx.camera.video.VideoOutput -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class VideoCaptureProxyApiTest { -// @Test -// public void withOutput() { -// final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); -// -// assertTrue(api.withOutput(mock(VideoOutput.class)) instanceof VideoCaptureProxyApi.VideoCapture); -// } -// -// @Test -// public void getOutput() { -// final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); -// -// final VideoCapture instance = mock(VideoCapture.class); -// final androidx.camera.video.VideoOutput value = mock(VideoOutput.class); -// when(instance.getOutput()).thenReturn(value); -// -// assertEquals(value, api.getOutput(instance )); -// } -// -// @Test -// public void setTargetRotation() { -// final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); -// -// final VideoCapture instance = mock(VideoCapture.class); -// final Long rotation = 0; -// api.setTargetRotation(instance, rotation); -// -// verify(instance).setTargetRotation(rotation); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java index 19034845926..00db5cfa51c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java @@ -1,107 +1,64 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -// -//import android.view.Surface; -//import androidx.camera.video.Recorder; -//import androidx.camera.video.VideoCapture; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.junit.runner.RunWith; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -//import org.robolectric.RobolectricTestRunner; -// -//@RunWith(RobolectricTestRunner.class) -//public class VideoCaptureTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public Recorder mockRecorder; -// @Mock public VideoCaptureFlutterApiImpl mockVideoCaptureFlutterApi; -// @Mock public VideoCapture mockVideoCapture; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = spy(InstanceManager.create(identifier -> {})); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void getOutput_returnsAssociatedRecorder() { -// final Long recorderId = 5L; -// final Long videoCaptureId = 6L; -// VideoCapture videoCapture = VideoCapture.withOutput(mockRecorder); -// -// testInstanceManager.addDartCreatedInstance(mockRecorder, recorderId); -// testInstanceManager.addDartCreatedInstance(videoCapture, videoCaptureId); -// -// VideoCaptureHostApiImpl videoCaptureHostApi = -// new VideoCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager); -// assertEquals(videoCaptureHostApi.getOutput(videoCaptureId), recorderId); -// testInstanceManager.remove(recorderId); -// testInstanceManager.remove(videoCaptureId); -// } -// -// @Test -// @SuppressWarnings("unchecked") -// public void withOutput_returnsNewVideoCaptureWithAssociatedRecorder() { -// final Long recorderId = 5L; -// testInstanceManager.addDartCreatedInstance(mockRecorder, recorderId); -// -// VideoCaptureHostApiImpl videoCaptureHostApi = -// new VideoCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager); -// VideoCaptureHostApiImpl spyVideoCaptureApi = spy(videoCaptureHostApi); -// final Long videoCaptureId = videoCaptureHostApi.withOutput(recorderId); -// VideoCapture videoCapture = testInstanceManager.getInstance(videoCaptureId); -// assertEquals(videoCapture.getOutput(), mockRecorder); -// -// testInstanceManager.remove(recorderId); -// testInstanceManager.remove(videoCaptureId); -// } -// -// @Test -// public void setTargetRotation_makesCallToSetTargetRotation() { -// final VideoCaptureHostApiImpl hostApi = -// new VideoCaptureHostApiImpl(mockBinaryMessenger, testInstanceManager); -// final long instanceIdentifier = 62; -// final int targetRotation = Surface.ROTATION_270; -// -// testInstanceManager.addDartCreatedInstance(mockVideoCapture, instanceIdentifier); -// -// hostApi.setTargetRotation(instanceIdentifier, Long.valueOf(targetRotation)); -// -// verify(mockVideoCapture).setTargetRotation(targetRotation); -// } -// -// @Test -// public void flutterApiCreateTest() { -// final VideoCaptureFlutterApiImpl spyVideoCaptureFlutterApi = -// spy(new VideoCaptureFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// spyVideoCaptureFlutterApi.create(mockVideoCapture, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull( -// testInstanceManager.getIdentifierForStrongReference(mockVideoCapture)); -// verify(spyVideoCaptureFlutterApi).create(eq(identifier), any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import androidx.camera.video.VideoCapture; +import androidx.camera.video.VideoOutput; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.stubbing.Answer; +import org.robolectric.RobolectricTestRunner; + +@RunWith(RobolectricTestRunner.class) +public class VideoCaptureTest { + @SuppressWarnings({"unchecked", "rawtypes"}) + @Test + public void withOutput() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + final VideoCapture instance = mock(VideoCapture.class); + final VideoOutput videoOutput = mock(VideoOutput.class); + + try (MockedStatic mockedCamera2CameraInfo = + Mockito.mockStatic(VideoCapture.class)) { + mockedCamera2CameraInfo + .when(() -> VideoCapture.withOutput(videoOutput)) + .thenAnswer((Answer) invocation -> instance); + + assertEquals(api.withOutput(videoOutput), instance); + } + } + + @SuppressWarnings("unchecked") + @Test + public void getOutput() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + final VideoCapture instance = mock(VideoCapture.class); + final VideoOutput value = mock(VideoOutput.class); + when(instance.getOutput()).thenReturn(value); + + assertEquals(value, api.getOutput(instance)); + } + + @SuppressWarnings("unchecked") + @Test + public void setTargetRotation_makesCallToSetTargetRotation() { + final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); + + final VideoCapture instance = mock(VideoCapture.class); + final long rotation = 0; + api.setTargetRotation(instance, rotation); + + verify(instance).setTargetRotation((int) rotation); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java deleted file mode 100644 index 34bc37086c0..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoOutputProxyApiTest.java +++ /dev/null @@ -1,20 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.VideoOutput -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class VideoOutputProxyApiTest { -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java deleted file mode 100644 index c2c2f6d7312..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApiTest.java +++ /dev/null @@ -1,39 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.video.VideoRecordEvent -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class VideoRecordEventListenerProxyApiTest { -// @Test -// public void pigeon_defaultConstructor() { -// final PigeonApiVideoRecordEventListener api = new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); -// -// assertTrue(api.pigeon_defaultConstructor() instanceof VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl); -// } -// -// @Test -// public void onEvent() { -// final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); -// when(mockApi.pigeonRegistrar).thenReturn(new TestProxyApiRegistrar()); -// -// final VideoRecordEventListenerImpl instance = new VideoRecordEventListenerImpl(mockApi); -// final androidx.camera.video.VideoRecordEvent event = mock(VideoRecordEvent.class); -// instance.onEvent(event); -// -// verify(mockApi).onEvent(eq(instance), eq(event), any()); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerTest.java new file mode 100644 index 00000000000..0a62b256008 --- /dev/null +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerTest.java @@ -0,0 +1,40 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import androidx.camera.video.VideoRecordEvent; +import org.junit.Test; + +public class VideoRecordEventListenerTest { + @Test + public void pigeon_defaultConstructor() { + final PigeonApiVideoRecordEventListener api = + new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); + + assertTrue( + api.pigeon_defaultConstructor() + instanceof VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl); + } + + @Test + public void onEvent() { + final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); + when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); + + final VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl instance = + new VideoRecordEventListenerProxyApi.VideoRecordEventListenerImpl(mockApi); + final androidx.camera.video.VideoRecordEvent event = mock(VideoRecordEvent.class); + instance.onEvent(event); + + verify(mockApi).onEvent(eq(instance), eq(event), any()); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java deleted file mode 100644 index 692d5cc1103..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateProxyApiTest.java +++ /dev/null @@ -1,42 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax -// -//import androidx.camera.core.ZoomState -//import org.junit.Test; -//import static org.junit.Assert.assertEquals; -//import static org.junit.Assert.assertTrue; -//import org.mockito.Mockito; -//import org.mockito.Mockito.any; -//import java.util.HashMap; -//import static org.mockito.Mockito.eq; -//import static org.mockito.Mockito.mock; -//import org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//public class ZoomStateProxyApiTest { -// @Test -// public void minZoomRatio() { -// final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); -// -// final ZoomState instance = mock(ZoomState.class); -// final Double value = 1.0; -// when(instance.getMinZoomRatio()).thenReturn(value); -// -// assertEquals(value, api.minZoomRatio(instance)); -// } -// -// @Test -// public void maxZoomRatio() { -// final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); -// -// final ZoomState instance = mock(ZoomState.class); -// final Double value = 1.0; -// when(instance.getMaxZoomRatio()).thenReturn(value); -// -// assertEquals(value, api.maxZoomRatio(instance)); -// } -// -//} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java index 0de9f746efc..3d4673eb8c9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java @@ -1,63 +1,36 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.spy; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import androidx.camera.core.ZoomState; -//import io.flutter.plugin.common.BinaryMessenger; -//import java.util.Objects; -//import org.junit.After; -//import org.junit.Before; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class ZoomStateTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public ZoomState mockZoomState; -// -// InstanceManager testInstanceManager; -// -// @Before -// public void setUp() { -// testInstanceManager = InstanceManager.create(identifier -> {}); -// } -// -// @After -// public void tearDown() { -// testInstanceManager.stopFinalizationListener(); -// } -// -// @Test -// public void create_makesExpectedCallToCreateInstanceOnDartSide() { -// ZoomStateFlutterApiImpl zoomStateFlutterApiImpl = -// spy(new ZoomStateFlutterApiImpl(mockBinaryMessenger, testInstanceManager)); -// final Float testMinZoomRatio = 0F; -// final Float testMaxZoomRatio = 1F; -// -// when(mockZoomState.getMinZoomRatio()).thenReturn(testMinZoomRatio); -// when(mockZoomState.getMaxZoomRatio()).thenReturn(testMaxZoomRatio); -// -// zoomStateFlutterApiImpl.create(mockZoomState, reply -> {}); -// -// final long identifier = -// Objects.requireNonNull(testInstanceManager.getIdentifierForStrongReference(mockZoomState)); -// verify(zoomStateFlutterApiImpl) -// .create( -// eq(identifier), -// eq(testMinZoomRatio.doubleValue()), -// eq(testMaxZoomRatio.doubleValue()), -// any()); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import androidx.camera.core.ZoomState; +import org.junit.Test; + +public class ZoomStateTest { + @Test + public void minZoomRatio() { + final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); + + final ZoomState instance = mock(ZoomState.class); + final double value = 1.0; + when(instance.getMinZoomRatio()).thenReturn((float) value); + + assertEquals(value, api.minZoomRatio(instance), 0.1); + } + + @Test + public void maxZoomRatio() { + final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); + + final ZoomState instance = mock(ZoomState.class); + final double value = 1.0; + when(instance.getMaxZoomRatio()).thenReturn((float) value); + + assertEquals(value, api.maxZoomRatio(instance), 0.1); + } +} From 160514672ca93e7f86d0bbd63de6aff48322c352 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 22:35:08 -0500 Subject: [PATCH 111/148] version bump --- packages/camera/camera_android_camerax/CHANGELOG.md | 4 ++++ packages/camera/camera_android_camerax/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/CHANGELOG.md b/packages/camera/camera_android_camerax/CHANGELOG.md index 7e190cb5ce3..2ddb4708e61 100644 --- a/packages/camera/camera_android_camerax/CHANGELOG.md +++ b/packages/camera/camera_android_camerax/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.14 + +* Updates internal API wrapper to use ProxyApis. + ## 0.6.13 * Adds API support query for image streaming. diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 73b52f8c2e1..cce08896bd9 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -2,7 +2,7 @@ name: camera_android_camerax description: Android implementation of the camera plugin using the CameraX library. repository: https://github.com/flutter/packages/tree/main/packages/camera/camera_android_camerax issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22 -version: 0.6.13 +version: 0.6.14 environment: sdk: ^3.6.0 From b675d18b479977c4a0b2364a40775c0d8dd5c141 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 23:11:26 -0500 Subject: [PATCH 112/148] fix tests --- .../test/android_camera_camerax_test.dart | 9 +++++++-- .../test/android_camera_camerax_test.mocks.dart | 11 +++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index dbb445b3b12..be1bb57026f 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -885,9 +885,14 @@ void main() { }) { when(mockSystemServicesManager.requestCameraPermissions(any)) .thenAnswer( - (_) { + (_) async { cameraPermissionsRequested = true; - return Future.value(); + return CameraPermissionsError.pigeon_detached( + errorCode: '', + description: '', + pigeon_instanceManager: + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), + ); }, ); return mockSystemServicesManager; diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index 71baa145a43..35b6d04fa79 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -3280,12 +3280,15 @@ class MockSystemServicesManager extends _i1.Mock ) as _i2.PigeonInstanceManager); @override - _i5.Future requestCameraPermissions(bool? enableAudio) => + _i5.Future<_i2.CameraPermissionsError?> requestCameraPermissions( + bool? enableAudio, + ) => (super.noSuchMethod( Invocation.method(#requestCameraPermissions, [enableAudio]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + returnValue: _i5.Future<_i2.CameraPermissionsError?>.value(), + returnValueForMissingStub: + _i5.Future<_i2.CameraPermissionsError?>.value(), + ) as _i5.Future<_i2.CameraPermissionsError?>); @override _i5.Future getTempFilePath(String? prefix, String? suffix) => From 712225f7b6abf72997b501f5dc829dbadaf6157c Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 23:20:24 -0500 Subject: [PATCH 113/148] add licenses --- .../plugins/camerax/CameraPermissionsErrorProxyApi.java | 4 ++++ .../java/io/flutter/plugins/camerax/ProxyApiRegistrar.java | 4 ++++ .../io/flutter/plugins/camerax/SystemServicesManager.java | 4 ++++ .../flutter/plugins/camerax/CameraPermissionsErrorTest.java | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java index 4524c1e70a4..cf3277a7cea 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java @@ -1,3 +1,7 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + package io.flutter.plugins.camerax; import androidx.annotation.NonNull; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index 243f34ff836..b02e78ce519 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -1,3 +1,7 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + package io.flutter.plugins.camerax; import android.app.Activity; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java index f95f9501f51..be8131bd5a7 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java @@ -1,3 +1,7 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + package io.flutter.plugins.camerax; import android.app.Activity; diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java index 9cb26fa1ba2..f50377f7d53 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java @@ -1,3 +1,7 @@ +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + package io.flutter.plugins.camerax; import static org.junit.Assert.assertEquals; From 637fc602c13a4fff6d9735223ac9e879516148b2 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 23 Feb 2025 23:54:04 -0500 Subject: [PATCH 114/148] fixup java tests --- .../camerax/DeviceOrientationManager.java | 34 +- .../DeviceOrientationManagerProxyApi.java | 58 +-- .../plugins/camerax/ProxyApiRegistrar.java | 2 +- .../DeviceOrientationManagerApiTest.java | 4 +- .../camerax/DeviceOrientationManagerTest.java | 349 +++++++++--------- .../DeviceOrientationManagerWrapperTest.java | 108 ------ .../cameraxexample/InstanceManagerTest.java | 42 --- 7 files changed, 232 insertions(+), 365 deletions(-) delete mode 100644 packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerWrapperTest.java delete mode 100644 packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java index 27c88895a15..943156a595b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java @@ -11,7 +11,6 @@ import android.content.res.Configuration; import android.view.Display; import android.view.Surface; -import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import io.flutter.embedding.engine.systemchannels.PlatformChannel; @@ -20,31 +19,28 @@ /** * Support class to help to determine the media orientation based on the orientation of the device. */ -public abstract class DeviceOrientationManager { - interface DeviceOrientationChangeCallback { - void onChange( - @NonNull DeviceOrientationManager manager, @NonNull DeviceOrientation newOrientation); - } - +public class DeviceOrientationManager { private static final IntentFilter orientationIntentFilter = new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED); - private final DeviceOrientationChangeCallback deviceOrientationChangeCallback; + private final DeviceOrientationManagerProxyApi api; private PlatformChannel.DeviceOrientation lastOrientation; private BroadcastReceiver broadcastReceiver; - DeviceOrientationManager(DeviceOrientationChangeCallback callback) { - this.deviceOrientationChangeCallback = callback; + DeviceOrientationManager(DeviceOrientationManagerProxyApi api) { + this.api = api; } @NonNull - abstract Context getContext(); + Context getContext() { + return api.getPigeonRegistrar().getContext(); + } /** * Starts listening to the device's sensors or UI for orientation updates. * *

When orientation information is updated, the callback method of the {@link - * DeviceOrientationChangeCallback} is called with the new orientation. + * DeviceOrientationManagerProxyApi} is called with the new orientation. * *

If the device's ACCELEROMETER_ROTATION setting is enabled the {@link * DeviceOrientationManager} will report orientation updates based on the sensor information. If @@ -84,7 +80,7 @@ public void stop() { @VisibleForTesting void handleUIOrientationChange() { PlatformChannel.DeviceOrientation orientation = getUIOrientation(); - handleOrientationChange(this, orientation, lastOrientation, deviceOrientationChangeCallback); + handleOrientationChange(this, orientation, lastOrientation, api); lastOrientation = orientation; } @@ -100,9 +96,13 @@ static void handleOrientationChange( DeviceOrientationManager manager, DeviceOrientation newOrientation, DeviceOrientation previousOrientation, - DeviceOrientationChangeCallback callback) { + DeviceOrientationManagerProxyApi api) { if (!newOrientation.equals(previousOrientation)) { - callback.onChange(manager, newOrientation); + api.getPigeonRegistrar() + .runOnMainThread( + () -> + api.onDeviceOrientationChanged( + manager, newOrientation.toString(), reply -> null)); } } @@ -164,10 +164,8 @@ int getDefaultRotation() { * * @return An instance of the Android {@link android.view.Display}. */ - @SuppressWarnings("deprecation") @VisibleForTesting Display getDisplay() { - return ((WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE)) - .getDefaultDisplay(); + return api.getPigeonRegistrar().getDisplay(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java index 50cc96f0d58..c484a777d3c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java @@ -4,7 +4,6 @@ package io.flutter.plugins.camerax; -import android.content.Context; import androidx.annotation.NonNull; /** @@ -12,35 +11,40 @@ * native object instances that are attached to a Dart instance or handle method calls on the * associated native class or an instance of that class. */ -class DeviceOrientationManagerProxyApi extends PigeonApiDeviceOrientationManager { +public class DeviceOrientationManagerProxyApi extends PigeonApiDeviceOrientationManager { DeviceOrientationManagerProxyApi(@NonNull ProxyApiRegistrar pigeonRegistrar) { super(pigeonRegistrar); } - /** - * Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to - * Dart. - */ - static class DeviceOrientationManagerImpl extends DeviceOrientationManager { - private final DeviceOrientationManagerProxyApi api; - - DeviceOrientationManagerImpl(@NonNull DeviceOrientationManagerProxyApi api) { - super( - (manager, newOrientation) -> - api.getPigeonRegistrar() - .runOnMainThread( - () -> - api.onDeviceOrientationChanged( - manager, newOrientation.toString(), reply -> null))); - this.api = api; - } - - @NonNull - @Override - Context getContext() { - return api.getPigeonRegistrar().getContext(); - } - } + // /** + // * Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to + // * Dart. + // */ + // static class DeviceOrientationManagerImpl extends DeviceOrientationManager { + // private final DeviceOrientationManagerProxyApi api; + // + // DeviceOrientationManagerImpl(@NonNull DeviceOrientationManagerProxyApi api) { + // super( + // (manager, newOrientation) -> + // api.getPigeonRegistrar() + // .runOnMainThread( + // () -> + // api.onDeviceOrientationChanged( + // manager, newOrientation.toString(), reply -> null))); + // this.api = api; + // } + // + // @NonNull + // @Override + // Context getContext() { + // return api.getPigeonRegistrar().getContext(); + // } + // + // @Override + // Display getDisplay() { + // return api.getPigeonRegistrar().getDisplay(); + // } + // } @NonNull @Override @@ -51,7 +55,7 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override public DeviceOrientationManager pigeon_defaultConstructor() { - return new DeviceOrientationManagerImpl(this); + return new DeviceOrientationManager(this); } @Override diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index b02e78ce519..c60d2ed41d1 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -191,7 +191,7 @@ public SystemServicesManagerProxyApi getPigeonApiSystemServicesManager() { @NonNull @Override - public PigeonApiDeviceOrientationManager getPigeonApiDeviceOrientationManager() { + public DeviceOrientationManagerProxyApi getPigeonApiDeviceOrientationManager() { return new DeviceOrientationManagerProxyApi(this); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java index f6cbdaf1b56..c4b343f8aa9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java @@ -70,8 +70,8 @@ public void onDeviceOrientationChanged() { final PlatformChannel.DeviceOrientation orientation = PlatformChannel.DeviceOrientation.PORTRAIT_UP; - final DeviceOrientationManagerProxyApi.DeviceOrientationManagerImpl instance = - new DeviceOrientationManagerProxyApi.DeviceOrientationManagerImpl(mockApi) { + final DeviceOrientationManager instance = + new DeviceOrientationManager(mockApi) { @NonNull @Override PlatformChannel.DeviceOrientation getUIOrientation() { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerTest.java index 0619e90f1b6..b75774f5e21 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerTest.java @@ -1,167 +1,182 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.mockStatic; -//import static org.mockito.Mockito.never; -//import static org.mockito.Mockito.times; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.app.Activity; -//import android.content.Context; -//import android.content.res.Configuration; -//import android.content.res.Resources; -//import android.provider.Settings; -//import android.view.Display; -//import android.view.Surface; -//import android.view.WindowManager; -//import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; -//import io.flutter.plugins.camerax.DeviceOrientationManager.DeviceOrientationChangeCallback; -//import org.junit.Before; -//import org.junit.Test; -//import org.mockito.MockedStatic; -// -//public class DeviceOrientationManagerTest { -// private Activity mockActivity; -// private DeviceOrientationChangeCallback mockDeviceOrientationChangeCallback; -// private WindowManager mockWindowManager; -// private Display mockDisplay; -// private DeviceOrientationManager deviceOrientationManager; -// -// @Before -// @SuppressWarnings("deprecation") -// public void before() { -// mockActivity = mock(Activity.class); -// mockDisplay = mock(Display.class); -// mockWindowManager = mock(WindowManager.class); -// mockDeviceOrientationChangeCallback = mock(DeviceOrientationChangeCallback.class); -// -// when(mockActivity.getSystemService(Context.WINDOW_SERVICE)).thenReturn(mockWindowManager); -// when(mockWindowManager.getDefaultDisplay()).thenReturn(mockDisplay); -// -// deviceOrientationManager = -// new DeviceOrientationManager(mockActivity, false, 0, mockDeviceOrientationChangeCallback); -// } -// -// @Test -// public void handleUIOrientationChange_shouldSendMessageWhenSensorAccessIsAllowed() { -// try (MockedStatic mockedSystem = mockStatic(Settings.System.class)) { -// mockedSystem -// .when( -// () -> -// Settings.System.getInt(any(), eq(Settings.System.ACCELEROMETER_ROTATION), eq(0))) -// .thenReturn(0); -// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_0); -// -// deviceOrientationManager.handleUIOrientationChange(); -// } -// -// verify(mockDeviceOrientationChangeCallback, times(1)) -// .onChange(DeviceOrientation.LANDSCAPE_LEFT); -// } -// -// @Test -// public void handleOrientationChange_shouldSendMessageWhenOrientationIsUpdated() { -// DeviceOrientation previousOrientation = DeviceOrientation.PORTRAIT_UP; -// DeviceOrientation newOrientation = DeviceOrientation.LANDSCAPE_LEFT; -// -// DeviceOrientationManager.handleOrientationChange( -// newOrientation, previousOrientation, mockDeviceOrientationChangeCallback); -// -// verify(mockDeviceOrientationChangeCallback, times(1)).onChange(newOrientation); -// } -// -// @Test -// public void handleOrientationChange_shouldNotSendMessageWhenOrientationIsNotUpdated() { -// DeviceOrientation previousOrientation = DeviceOrientation.PORTRAIT_UP; -// DeviceOrientation newOrientation = DeviceOrientation.PORTRAIT_UP; -// -// DeviceOrientationManager.handleOrientationChange( -// newOrientation, previousOrientation, mockDeviceOrientationChangeCallback); -// -// verify(mockDeviceOrientationChangeCallback, never()).onChange(any()); -// } -// -// @Test -// public void getUIOrientation() { -// // Orientation portrait and rotation of 0 should translate to "PORTRAIT_UP". -// setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_0); -// DeviceOrientation uiOrientation = deviceOrientationManager.getUIOrientation(); -// assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); -// -// // Orientation portrait and rotation of 90 should translate to "PORTRAIT_UP". -// setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_90); -// uiOrientation = deviceOrientationManager.getUIOrientation(); -// assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); -// -// // Orientation portrait and rotation of 180 should translate to "PORTRAIT_DOWN". -// setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_180); -// uiOrientation = deviceOrientationManager.getUIOrientation(); -// assertEquals(DeviceOrientation.PORTRAIT_DOWN, uiOrientation); -// -// // Orientation portrait and rotation of 270 should translate to "PORTRAIT_DOWN". -// setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_270); -// uiOrientation = deviceOrientationManager.getUIOrientation(); -// assertEquals(DeviceOrientation.PORTRAIT_DOWN, uiOrientation); -// -// // Orientation landscape and rotation of 0 should translate to "LANDSCAPE_LEFT". -// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_0); -// uiOrientation = deviceOrientationManager.getUIOrientation(); -// assertEquals(DeviceOrientation.LANDSCAPE_LEFT, uiOrientation); -// -// // Orientation landscape and rotation of 90 should translate to "LANDSCAPE_LEFT". -// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_90); -// uiOrientation = deviceOrientationManager.getUIOrientation(); -// assertEquals(DeviceOrientation.LANDSCAPE_LEFT, uiOrientation); -// -// // Orientation landscape and rotation of 180 should translate to "LANDSCAPE_RIGHT". -// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_180); -// uiOrientation = deviceOrientationManager.getUIOrientation(); -// assertEquals(DeviceOrientation.LANDSCAPE_RIGHT, uiOrientation); -// -// // Orientation landscape and rotation of 270 should translate to "LANDSCAPE_RIGHT". -// setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_270); -// uiOrientation = deviceOrientationManager.getUIOrientation(); -// assertEquals(DeviceOrientation.LANDSCAPE_RIGHT, uiOrientation); -// -// // Orientation undefined should default to "PORTRAIT_UP". -// setUpUIOrientationMocks(Configuration.ORIENTATION_UNDEFINED, Surface.ROTATION_0); -// uiOrientation = deviceOrientationManager.getUIOrientation(); -// assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); -// } -// -// private void setUpUIOrientationMocks(int orientation, int rotation) { -// Resources mockResources = mock(Resources.class); -// Configuration mockConfiguration = mock(Configuration.class); -// -// when(mockDisplay.getRotation()).thenReturn(rotation); -// -// mockConfiguration.orientation = orientation; -// when(mockActivity.getResources()).thenReturn(mockResources); -// when(mockResources.getConfiguration()).thenReturn(mockConfiguration); -// } -// -// @Test -// public void getDefaultRotation_returnsExpectedValue() { -// final int expectedRotation = 90; -// when(mockDisplay.getRotation()).thenReturn(expectedRotation); -// -// final int defaultRotation = deviceOrientationManager.getDefaultRotation(); -// -// assertEquals(defaultRotation, expectedRotation); -// } -// -// @Test -// public void getDisplayTest() { -// Display display = deviceOrientationManager.getDisplay(); -// -// assertEquals(mockDisplay, display); -// } -//} +// Copyright 2013 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package io.flutter.plugins.camerax; + +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import android.app.Activity; +import android.content.Context; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.provider.Settings; +import android.view.Display; +import android.view.Surface; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; +import org.junit.Before; +import org.junit.Test; +import org.mockito.MockedStatic; + +public class DeviceOrientationManagerTest { + private Activity mockActivity; + private Display mockDisplay; + + private DeviceOrientationManagerProxyApi mockApi; + private DeviceOrientationManager deviceOrientationManager; + + @Before + public void before() { + mockActivity = mock(Activity.class); + mockDisplay = mock(Display.class); + + mockApi = mock(DeviceOrientationManagerProxyApi.class); + + final TestProxyApiRegistrar proxyApiRegistrar = + new TestProxyApiRegistrar() { + @NonNull + @Override + public Context getContext() { + return mockActivity; + } + + @Nullable + @Override + Display getDisplay() { + return mockDisplay; + } + }; + + when(mockApi.getPigeonRegistrar()).thenReturn(proxyApiRegistrar); + + deviceOrientationManager = new DeviceOrientationManager(mockApi); + } + + @Test + public void handleUIOrientationChange_shouldSendMessageWhenSensorAccessIsAllowed() { + try (MockedStatic mockedSystem = mockStatic(Settings.System.class)) { + mockedSystem + .when( + () -> + Settings.System.getInt(any(), eq(Settings.System.ACCELEROMETER_ROTATION), eq(0))) + .thenReturn(0); + setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_0); + + deviceOrientationManager.handleUIOrientationChange(); + } + + verify(mockApi, times(1)) + .onDeviceOrientationChanged( + eq(deviceOrientationManager), eq(DeviceOrientation.LANDSCAPE_LEFT.toString()), any()); + } + + @Test + public void handleOrientationChange_shouldSendMessageWhenOrientationIsUpdated() { + DeviceOrientation previousOrientation = DeviceOrientation.PORTRAIT_UP; + DeviceOrientation newOrientation = DeviceOrientation.LANDSCAPE_LEFT; + + DeviceOrientationManager.handleOrientationChange( + deviceOrientationManager, newOrientation, previousOrientation, mockApi); + + verify(mockApi, times(1)) + .onDeviceOrientationChanged( + eq(deviceOrientationManager), eq(newOrientation.toString()), any()); + } + + @Test + public void handleOrientationChange_shouldNotSendMessageWhenOrientationIsNotUpdated() { + DeviceOrientation previousOrientation = DeviceOrientation.PORTRAIT_UP; + DeviceOrientation newOrientation = DeviceOrientation.PORTRAIT_UP; + + DeviceOrientationManager.handleOrientationChange( + deviceOrientationManager, newOrientation, previousOrientation, mockApi); + + verify(mockApi, never()).onDeviceOrientationChanged(any(), any(), any()); + } + + @Test + public void getUIOrientation() { + // Orientation portrait and rotation of 0 should translate to "PORTRAIT_UP". + setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_0); + DeviceOrientation uiOrientation = deviceOrientationManager.getUIOrientation(); + assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); + + // Orientation portrait and rotation of 90 should translate to "PORTRAIT_UP". + setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_90); + uiOrientation = deviceOrientationManager.getUIOrientation(); + assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); + + // Orientation portrait and rotation of 180 should translate to "PORTRAIT_DOWN". + setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_180); + uiOrientation = deviceOrientationManager.getUIOrientation(); + assertEquals(DeviceOrientation.PORTRAIT_DOWN, uiOrientation); + + // Orientation portrait and rotation of 270 should translate to "PORTRAIT_DOWN". + setUpUIOrientationMocks(Configuration.ORIENTATION_PORTRAIT, Surface.ROTATION_270); + uiOrientation = deviceOrientationManager.getUIOrientation(); + assertEquals(DeviceOrientation.PORTRAIT_DOWN, uiOrientation); + + // Orientation landscape and rotation of 0 should translate to "LANDSCAPE_LEFT". + setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_0); + uiOrientation = deviceOrientationManager.getUIOrientation(); + assertEquals(DeviceOrientation.LANDSCAPE_LEFT, uiOrientation); + + // Orientation landscape and rotation of 90 should translate to "LANDSCAPE_LEFT". + setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_90); + uiOrientation = deviceOrientationManager.getUIOrientation(); + assertEquals(DeviceOrientation.LANDSCAPE_LEFT, uiOrientation); + + // Orientation landscape and rotation of 180 should translate to "LANDSCAPE_RIGHT". + setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_180); + uiOrientation = deviceOrientationManager.getUIOrientation(); + assertEquals(DeviceOrientation.LANDSCAPE_RIGHT, uiOrientation); + + // Orientation landscape and rotation of 270 should translate to "LANDSCAPE_RIGHT". + setUpUIOrientationMocks(Configuration.ORIENTATION_LANDSCAPE, Surface.ROTATION_270); + uiOrientation = deviceOrientationManager.getUIOrientation(); + assertEquals(DeviceOrientation.LANDSCAPE_RIGHT, uiOrientation); + + // Orientation undefined should default to "PORTRAIT_UP". + setUpUIOrientationMocks(Configuration.ORIENTATION_UNDEFINED, Surface.ROTATION_0); + uiOrientation = deviceOrientationManager.getUIOrientation(); + assertEquals(DeviceOrientation.PORTRAIT_UP, uiOrientation); + } + + private void setUpUIOrientationMocks(int orientation, int rotation) { + Resources mockResources = mock(Resources.class); + Configuration mockConfiguration = mock(Configuration.class); + + when(mockDisplay.getRotation()).thenReturn(rotation); + + mockConfiguration.orientation = orientation; + when(mockActivity.getResources()).thenReturn(mockResources); + when(mockResources.getConfiguration()).thenReturn(mockConfiguration); + } + + @Test + public void getDefaultRotation_returnsExpectedValue() { + final int expectedRotation = 90; + when(mockDisplay.getRotation()).thenReturn(expectedRotation); + + final int defaultRotation = deviceOrientationManager.getDefaultRotation(); + + assertEquals(defaultRotation, expectedRotation); + } + + @Test + public void getDisplayTest() { + Display display = deviceOrientationManager.getDisplay(); + + assertEquals(mockDisplay, display); + } +} diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerWrapperTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerWrapperTest.java deleted file mode 100644 index 6283db3f711..00000000000 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerWrapperTest.java +++ /dev/null @@ -1,108 +0,0 @@ -//// Copyright 2013 The Flutter Authors. All rights reserved. -//// Use of this source code is governed by a BSD-style license that can be -//// found in the LICENSE file. -// -//package io.flutter.plugins.camerax; -// -//import static org.junit.Assert.assertEquals; -//import static org.mockito.ArgumentMatchers.any; -//import static org.mockito.ArgumentMatchers.eq; -//import static org.mockito.Mockito.mock; -//import static org.mockito.Mockito.verify; -//import static org.mockito.Mockito.when; -// -//import android.app.Activity; -//import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; -//import io.flutter.plugin.common.BinaryMessenger; -//import io.flutter.plugins.camerax.DeviceOrientationManager.DeviceOrientationChangeCallback; -//import io.flutter.plugins.camerax.GeneratedCameraXLibrary.DeviceOrientationManagerFlutterApi.Reply; -//import org.junit.Rule; -//import org.junit.Test; -//import org.mockito.ArgumentCaptor; -//import org.mockito.ArgumentMatchers; -//import org.mockito.Mock; -//import org.mockito.junit.MockitoJUnit; -//import org.mockito.junit.MockitoRule; -// -//public class DeviceOrientationManagerWrapperTest { -// @Rule public MockitoRule mockitoRule = MockitoJUnit.rule(); -// -// @Mock DeviceOrientationManager mockDeviceOrientationManager; -// @Mock public BinaryMessenger mockBinaryMessenger; -// @Mock public InstanceManager mockInstanceManager; -// -// @Test -// public void deviceOrientationManagerWrapper_handlesDeviceOrientationChangesAsExpected() { -// final DeviceOrientationManagerHostApiImpl hostApi = -// new DeviceOrientationManagerHostApiImpl(mockBinaryMessenger, mockInstanceManager); -// final CameraXProxy mockCameraXProxy = mock(CameraXProxy.class); -// final Activity mockActivity = mock(Activity.class); -// final Boolean isFrontFacing = true; -// final int sensorOrientation = 90; -// -// DeviceOrientationManagerFlutterApiImpl flutterApi = -// mock(DeviceOrientationManagerFlutterApiImpl.class); -// hostApi.deviceOrientationManagerFlutterApiImpl = flutterApi; -// -// hostApi.cameraXProxy = mockCameraXProxy; -// hostApi.setActivity(mockActivity); -// when(mockCameraXProxy.createDeviceOrientationManager( -// eq(mockActivity), -// eq(isFrontFacing), -// eq(sensorOrientation), -// any(DeviceOrientationChangeCallback.class))) -// .thenReturn(mockDeviceOrientationManager); -// -// final ArgumentCaptor deviceOrientationChangeCallbackCaptor = -// ArgumentCaptor.forClass(DeviceOrientationChangeCallback.class); -// -// hostApi.startListeningForDeviceOrientationChange( -// isFrontFacing, Long.valueOf(sensorOrientation)); -// -// // Test callback method defined in Flutter API is called when device orientation changes. -// verify(mockCameraXProxy) -// .createDeviceOrientationManager( -// eq(mockActivity), -// eq(isFrontFacing), -// eq(sensorOrientation), -// deviceOrientationChangeCallbackCaptor.capture()); -// DeviceOrientationChangeCallback deviceOrientationChangeCallback = -// deviceOrientationChangeCallbackCaptor.getValue(); -// -// deviceOrientationChangeCallback.onChange(DeviceOrientation.PORTRAIT_DOWN); -// verify(flutterApi) -// .sendDeviceOrientationChangedEvent( -// eq(DeviceOrientation.PORTRAIT_DOWN.toString()), ArgumentMatchers.>any()); -// -// // Test that the DeviceOrientationManager starts listening for device orientation changes. -// verify(mockDeviceOrientationManager).start(); -// -// // Test that the DeviceOrientationManager can stop listening for device orientation changes. -// hostApi.stopListeningForDeviceOrientationChange(); -// verify(mockDeviceOrientationManager).stop(); -// } -// -// @Test -// public void getDefaultDisplayRotation_returnsExpectedRotation() { -// final DeviceOrientationManagerHostApiImpl hostApi = -// new DeviceOrientationManagerHostApiImpl(mockBinaryMessenger, mockInstanceManager); -// final int defaultRotation = 180; -// -// hostApi.deviceOrientationManager = mockDeviceOrientationManager; -// when(mockDeviceOrientationManager.getDefaultRotation()).thenReturn(defaultRotation); -// -// assertEquals(hostApi.getDefaultDisplayRotation(), Long.valueOf(defaultRotation)); -// } -// -// @Test -// public void getUiOrientation_returnsExpectedOrientation() { -// final DeviceOrientationManagerHostApiImpl hostApi = -// new DeviceOrientationManagerHostApiImpl(mockBinaryMessenger, mockInstanceManager); -// final DeviceOrientation uiOrientation = DeviceOrientation.LANDSCAPE_LEFT; -// -// hostApi.deviceOrientationManager = mockDeviceOrientationManager; -// when(mockDeviceOrientationManager.getUIOrientation()).thenReturn(uiOrientation); -// -// assertEquals(hostApi.getUiOrientation(), uiOrientation.toString()); -// } -//} diff --git a/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java b/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java deleted file mode 100644 index cc8823d1a75..00000000000 --- a/packages/camera/camera_android_camerax/example/android/app/src/androidTest/java/io/flutter/plugins/cameraxexample/InstanceManagerTest.java +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -package io.flutter.plugins.cameraxexample; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; - -import androidx.test.ext.junit.runners.AndroidJUnit4; -import org.junit.Test; -import org.junit.runner.RunWith; - -@RunWith(AndroidJUnit4.class) -public class InstanceManagerTest { - @Test - public void managerDoesNotTriggerFinalizationListenerWhenStopped() throws InterruptedException { - final boolean[] callbackTriggered = {false}; - final InstanceManager instanceManager = - InstanceManager.create(identifier -> callbackTriggered[0] = true); - instanceManager.stopFinalizationListener(); - - Object object = new Object(); - instanceManager.addDartCreatedInstance(object, 0); - - assertEquals(object, instanceManager.remove(0)); - - // To allow for object to be garbage collected. - //noinspection UnusedAssignment - object = null; - - Runtime.getRuntime().gc(); - - // Wait for the interval after finalized callbacks are made for garbage collected objects. - // See InstanceManager.CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL. - Thread.sleep(30000); - - assertNull(instanceManager.getInstance(0)); - assertFalse(callbackTriggered[0]); - } -} From c544f320c5d2ee77311eb859aa04a365cd1d8c36 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 24 Feb 2025 00:00:21 -0500 Subject: [PATCH 115/148] remove unused code --- .../DeviceOrientationManagerProxyApi.java | 30 ------------------- 1 file changed, 30 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java index c484a777d3c..284fad3f2b1 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java @@ -16,36 +16,6 @@ public class DeviceOrientationManagerProxyApi extends PigeonApiDeviceOrientation super(pigeonRegistrar); } - // /** - // * Implementation of {@link DeviceOrientationManager} that passes arguments of callback methods to - // * Dart. - // */ - // static class DeviceOrientationManagerImpl extends DeviceOrientationManager { - // private final DeviceOrientationManagerProxyApi api; - // - // DeviceOrientationManagerImpl(@NonNull DeviceOrientationManagerProxyApi api) { - // super( - // (manager, newOrientation) -> - // api.getPigeonRegistrar() - // .runOnMainThread( - // () -> - // api.onDeviceOrientationChanged( - // manager, newOrientation.toString(), reply -> null))); - // this.api = api; - // } - // - // @NonNull - // @Override - // Context getContext() { - // return api.getPigeonRegistrar().getContext(); - // } - // - // @Override - // Display getDisplay() { - // return api.getPigeonRegistrar().getDisplay(); - // } - // } - @NonNull @Override public ProxyApiRegistrar getPigeonRegistrar() { From ae792fa96a10efa8203853b7c6fa64ebe3400753 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 24 Feb 2025 00:15:05 -0500 Subject: [PATCH 116/148] add UnsafeOptInUsageError suppress --- .../main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index bc107335d2e..5df72b57e72 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -3,7 +3,7 @@ // found in the LICENSE file. // Autogenerated from Pigeon (v24.1.1), do not edit directly. // See also: https://pub.dev/packages/pigeon -@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass", "UnsafeOptInUsageError") package io.flutter.plugins.camerax From 2c5548464e6aec9c1ff3d7015daa722ed998762e Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 24 Feb 2025 00:57:01 -0500 Subject: [PATCH 117/148] synthetic accessor lint --- .../main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 5df72b57e72..089ba8a987e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -3,7 +3,7 @@ // found in the LICENSE file. // Autogenerated from Pigeon (v24.1.1), do not edit directly. // See also: https://pub.dev/packages/pigeon -@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass", "UnsafeOptInUsageError") +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass", "UnsafeOptInUsageError", "SyntheticAccessor") package io.flutter.plugins.camerax From fd23cfef51335fafddcbce4dfb483ba072992c76 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 24 Feb 2025 01:18:44 -0500 Subject: [PATCH 118/148] nonnull --- .../camerax/DeviceOrientationManagerProxyApi.java | 11 +++++++---- .../camerax/SystemServicesManagerProxyApi.java | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java index 284fad3f2b1..c2420d90fe3 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java @@ -30,23 +30,26 @@ public DeviceOrientationManager pigeon_defaultConstructor() { @Override public void startListeningForDeviceOrientationChange( - DeviceOrientationManager pigeon_instance, boolean isFrontFacing, long sensorOrientation) { + @NonNull DeviceOrientationManager pigeon_instance, + boolean isFrontFacing, + long sensorOrientation) { pigeon_instance.start(); } @Override - public void stopListeningForDeviceOrientationChange(DeviceOrientationManager pigeon_instance) { + public void stopListeningForDeviceOrientationChange( + @NonNull DeviceOrientationManager pigeon_instance) { pigeon_instance.stop(); } @Override - public long getDefaultDisplayRotation(DeviceOrientationManager pigeon_instance) { + public long getDefaultDisplayRotation(@NonNull DeviceOrientationManager pigeon_instance) { return pigeon_instance.getDefaultRotation(); } @NonNull @Override - public String getUiOrientation(DeviceOrientationManager pigeon_instance) { + public String getUiOrientation(@NonNull DeviceOrientationManager pigeon_instance) { return pigeon_instance.getUIOrientation().toString(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java index 1b75261e7fe..b3141633226 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java @@ -91,7 +91,7 @@ public String getTempFilePath( } @Override - public boolean isPreviewPreTransformed(SystemServicesManager pigeon_instance) { + public boolean isPreviewPreTransformed(@NonNull SystemServicesManager pigeon_instance) { return pigeon_instance.isPreviewPreTransformed(); } } From 7ce2e64d4a91e6c70395240452d73058ee63e59a Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 24 Feb 2025 01:43:25 -0500 Subject: [PATCH 119/148] more nonnull --- .../java/io/flutter/plugins/camerax/LiveDataProxyApi.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java index b120a7b399f..28a563efec2 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java @@ -20,15 +20,17 @@ public static class LiveDataWrapper { private final LiveData liveData; private final LiveDataSupportedType genericType; - LiveDataWrapper(LiveData liveData, LiveDataSupportedType genericType) { + LiveDataWrapper(@NonNull LiveData liveData, @NonNull LiveDataSupportedType genericType) { this.liveData = liveData; this.genericType = genericType; } + @NonNull public LiveData getLiveData() { return liveData; } + @NonNull public LiveDataSupportedType getGenericType() { return genericType; } From 5dc41af3638964447e0a6a25ab4cc8d0e3046aa6 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 24 Feb 2025 02:05:36 -0500 Subject: [PATCH 120/148] last one --- .../io/flutter/plugins/camerax/VideoRecordEventListener.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java index 6fd3455754d..61fef6f8057 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListener.java @@ -4,8 +4,9 @@ package io.flutter.plugins.camerax; +import androidx.annotation.NonNull; import androidx.camera.video.VideoRecordEvent; public interface VideoRecordEventListener { - void onEvent(VideoRecordEvent event); + void onEvent(@NonNull VideoRecordEvent event); } From 77688e439f2e3892934b9415fa40f7e0cd559cc9 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 19 Mar 2025 10:22:47 -0400 Subject: [PATCH 121/148] fix imports and device orientation controller --- .../test/preview_rotation_test.dart | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart index e06d16cbc0f..3ac6a702d23 100644 --- a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart +++ b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart @@ -3,11 +3,8 @@ // found in the LICENSE file. import 'package:camera_android_camerax/camera_android_camerax.dart'; -import 'package:camera_android_camerax/src/camera_selector.dart'; -import 'package:camera_android_camerax/src/camerax_library.g.dart'; +import 'package:camera_android_camerax/src/camerax_library.dart'; import 'package:camera_android_camerax/src/camerax_proxy.dart'; -import 'package:camera_android_camerax/src/device_orientation_manager.dart'; -import 'package:camera_android_camerax/src/fallback_strategy.dart'; import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart'; @@ -45,8 +42,8 @@ void main() { .thenAnswer((_) async => [mockCameraInfo]); when(mockCameraSelector.filter([mockCameraInfo])) .thenAnswer((_) async => [mockCameraInfo]); - when(mockCameraInfo.getSensorRotationDegrees()) - .thenAnswer((_) async => sensorRotationDegrees); + when(mockCameraInfo.sensorRotationDegrees) + .thenReturn(sensorRotationDegrees); // Mock additional ProcessCameraProvider operation that is irrelevant // for the tests in this file. @@ -390,7 +387,7 @@ void main() { in expectedRotationPerDeviceOrientation.keys) { final DeviceOrientationChangedEvent testEvent = DeviceOrientationChangedEvent(currentDeviceOrientation); - DeviceOrientationManager.deviceOrientationChangedStreamController + AndroidCameraCameraX.deviceOrientationChangedStreamController .add(testEvent); await tester.pumpAndSettle(); @@ -410,7 +407,7 @@ void main() { 'When the device orientation is $currentDeviceOrientation, expected the preview to be rotated by $expectedQuarterTurns quarter turns (which is ${expectedQuarterTurns * 90} degrees clockwise) but instead was rotated ${rotatedBox.quarterTurns} quarter turns.'); } - await DeviceOrientationManager.deviceOrientationChangedStreamController + await AndroidCameraCameraX.deviceOrientationChangedStreamController .close(); }); From 986718e62b291d63ee13d3b4d23b3e18c08b82df Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 19 Mar 2025 10:51:05 -0400 Subject: [PATCH 122/148] fix rotation tests --- .../test/preview_rotation_test.dart | 389 ++++++++++++++---- 1 file changed, 309 insertions(+), 80 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart index 3ac6a702d23..4761b295c39 100644 --- a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart +++ b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart @@ -7,7 +7,7 @@ import 'package:camera_android_camerax/src/camerax_library.dart'; import 'package:camera_android_camerax/src/camerax_proxy.dart'; import 'package:camera_platform_interface/camera_platform_interface.dart'; import 'package:flutter/services.dart'; -import 'package:flutter/widgets.dart'; +import 'package:flutter/widgets.dart' show RotatedBox, Texture; import 'package:flutter_test/flutter_test.dart'; import 'package:mockito/mockito.dart'; @@ -57,67 +57,251 @@ void main() { /// the `availableCameras` and `createCameraWithSettings` methods. CameraXProxy getProxyForCreatingTestCamera( {required MockProcessCameraProvider mockProcessCameraProvider, - required CameraSelector Function(int) createCameraSelector, + required CameraSelector Function({ + LensFacing? requireLensFacing, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) createCameraSelector, required bool handlesCropAndRotation, - required Future Function() getUiOrientation}) => + required Future Function() getUiOrientation}) => CameraXProxy( - getProcessCameraProvider: () async => mockProcessCameraProvider, - createCameraSelector: createCameraSelector, - previewSurfaceProducerHandlesCropAndRotation: (_) => - Future.value(handlesCropAndRotation), - getUiOrientation: getUiOrientation, - createPreview: (_, __) => MockPreview(), - createImageCapture: (_, __) => MockImageCapture(), - createRecorder: (_) => MockRecorder(), - createVideoCapture: (_) async => MockVideoCapture(), - createImageAnalysis: (_, __) => MockImageAnalysis(), - createResolutionStrategy: ( - {bool highestAvailable = false, - Size? boundSize, - int? fallbackRule}) => - MockResolutionStrategy(), - createResolutionSelector: (_, __, ___) => MockResolutionSelector(), - createFallbackStrategy: ( - {required VideoQuality quality, - required VideoResolutionFallbackRule fallbackRule}) => - MockFallbackStrategy(), - createQualitySelector: ( - {required VideoQuality videoQuality, - required FallbackStrategy fallbackStrategy}) => - MockQualitySelector(), - createCameraStateObserver: (_) => MockObserver(), - requestCameraPermissions: (_) => Future.value(), - startListeningForDeviceOrientationChange: (_, __) {}, - setPreviewSurfaceProvider: (_) => Future.value( - 3), // 3 is a random Flutter SurfaceTexture ID for testing - createAspectRatioStrategy: (int aspectRatio, int fallbackRule) => - MockAspectRatioStrategy(), - createResolutionFilterWithOnePreferredSize: - (Size preferredResolution) => MockResolutionFilter(), + getInstanceProcessCameraProvider: ({ + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) async => + mockProcessCameraProvider, + newCameraSelector: createCameraSelector, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockPreview preview = MockPreview(); + when(preview.surfaceProducerHandlesCropAndRotation()).thenAnswer( + (_) async => handlesCropAndRotation, + ); + return preview; + }, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockImageCapture(), + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + BinaryMessenger? pigeon_binaryMessenger, + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockRecorder(), + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockVideoCapture(); + }, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockImageAnalysis(); + }, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + lowerQualityThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockCamera2CameraInfo camera2cameraInfo = + MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => 90); + return camera2cameraInfo; + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: ({ + required void Function( + SystemServicesManager, + String, + ) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); + }, + newDeviceOrientationManager: ({ + required void Function( + DeviceOrientationManager, + String, + ) onDeviceOrientationChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer( + (_) => getUiOrientation(), + ); + return manager; + }, // 3 is a random Flutter SurfaceTexture ID for testing + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockAspectRatioStrategy mockAspectRatioStrategy = + MockAspectRatioStrategy(); + when(mockAspectRatioStrategy.getFallbackRule()).thenAnswer( + (_) async => fallbackRule, + ); + when(mockAspectRatioStrategy.getPreferredAspectRatio()).thenAnswer( + (_) async => preferredAspectRatio, + ); + return mockAspectRatioStrategy; + }, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, ); /// Returns function that a CameraXProxy can use to select the front camera. - MockCameraSelector Function(int cameraSelectorLensDirection) - createCameraSelectorForFrontCamera( - MockCameraSelector mockCameraSelector) { - return (int cameraSelectorLensDirection) { - switch (cameraSelectorLensDirection) { - case CameraSelector.lensFacingFront: + MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) createCameraSelectorForFrontCamera(MockCameraSelector mockCameraSelector) { + return ({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: return mockCameraSelector; - default: + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: return MockCameraSelector(); } }; } /// Returns function that a CameraXProxy can use to select the back camera. - MockCameraSelector Function(int cameraSelectorLensDirection) - createCameraSelectorForBackCamera(MockCameraSelector mockCameraSelector) { - return (int cameraSelectorLensDirection) { - switch (cameraSelectorLensDirection) { - case CameraSelector.lensFacingBack: + MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) createCameraSelectorForBackCamera(MockCameraSelector mockCameraSelector) { + return ({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.back: return mockCameraSelector; - default: + case LensFacing.front: + case LensFacing.external: + case LensFacing.unknown: + case null: return MockCameraSelector(); } }; @@ -145,10 +329,17 @@ void main() { sensorRotationDegrees: /* irrelevant for test */ 90); camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, - createCameraSelector: (_) => mockCameraSelector, + createCameraSelector: ({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCameraSelector, handlesCropAndRotation: true, - /* irrelevant for test */ getUiOrientation: () => - Future.value(DeviceOrientation.landscapeLeft)); + /* irrelevant for test */ getUiOrientation: () async => + _serializeDeviceOrientation(DeviceOrientation.landscapeLeft)); // Get and create test camera. final List availableCameras = @@ -175,8 +366,13 @@ void main() { late AndroidCameraCameraX camera; late int cameraId; late MockCameraSelector mockFrontCameraSelector; - late MockCameraSelector Function(int cameraSelectorLensDirection) - proxyCreateCameraSelectorForFrontCamera; + late MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) proxyCreateCameraSelectorForFrontCamera; late MockProcessCameraProvider mockProcessCameraProviderForFrontCamera; late MediaSettings testMediaSettings; @@ -207,8 +403,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () => - Future.value(DeviceOrientation.portraitUp)); + getUiOrientation: () async => + _serializeDeviceOrientation(DeviceOrientation.portraitUp)); // Get and create test front camera. final List availableCameras = @@ -240,8 +436,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () => Future.value( - DeviceOrientation.landscapeRight)); + getUiOrientation: () async => + _serializeDeviceOrientation(DeviceOrientation.landscapeRight)); // Get and create test front camera. final List availableCameras = @@ -273,8 +469,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () => Future.value( - DeviceOrientation.portraitDown)); + getUiOrientation: () async => + _serializeDeviceOrientation(DeviceOrientation.portraitDown)); // Get and create test front camera. final List availableCameras = @@ -307,8 +503,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () => Future.value( - DeviceOrientation.landscapeLeft)); + getUiOrientation: () async => + _serializeDeviceOrientation(DeviceOrientation.landscapeLeft)); // Get and create test front camera. final List availableCameras = @@ -342,8 +538,13 @@ void main() { // Create and set up mock CameraSelector and mock ProcessCameraProvider for test front camera // with sensor orientation degrees 90. final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); - final MockCameraSelector Function(int cameraSelectorLensDirection) - proxyCreateCameraSelectorForFrontCamera = + final MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForFrontCamera(mockFrontCameraSelector); final MockProcessCameraProvider mockProcessCameraProviderForFrontCamera = setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( @@ -360,8 +561,8 @@ void main() { createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, getUiOrientation: /* initial device orientation irrelevant for test */ - () => Future.value( - DeviceOrientation.landscapeLeft)); + () async => + _serializeDeviceOrientation(DeviceOrientation.landscapeLeft)); // Get and create test front camera. final List availableCameras = @@ -419,8 +620,13 @@ void main() { late AndroidCameraCameraX camera; late int cameraId; late MockCameraSelector mockBackCameraSelector; - late MockCameraSelector Function(int cameraSelectorLensDirection) - proxyCreateCameraSelectorForBackCamera; + late MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) proxyCreateCameraSelectorForBackCamera; late MediaSettings testMediaSettings; late DeviceOrientation testInitialDeviceOrientation; @@ -456,8 +662,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, createCameraSelector: proxyCreateCameraSelectorForBackCamera, handlesCropAndRotation: false, - getUiOrientation: () => - Future.value(testInitialDeviceOrientation)); + getUiOrientation: () async => + _serializeDeviceOrientation(testInitialDeviceOrientation)); // Get and create test back camera. final List availableCameras = @@ -497,8 +703,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, createCameraSelector: proxyCreateCameraSelectorForBackCamera, handlesCropAndRotation: false, - getUiOrientation: () => - Future.value(testInitialDeviceOrientation)); + getUiOrientation: () async => + _serializeDeviceOrientation(testInitialDeviceOrientation)); // Get and create test back camera. final List availableCameras = @@ -556,15 +762,20 @@ void main() { sensorRotationDegrees: testSensorOrientation); // Set up front camera selection and initial device orientation as landscape right. - final MockCameraSelector Function(int cameraSelectorLensDirection) - proxyCreateCameraSelectorForFrontCamera = + final MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForFrontCamera(mockFrontCameraSelector); camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () => - Future.value(testInitialDeviceOrientation)); + getUiOrientation: () async => + _serializeDeviceOrientation(testInitialDeviceOrientation)); // Get and create test camera. final List availableCameras = @@ -599,15 +810,20 @@ void main() { sensorRotationDegrees: testSensorOrientation); // Set up front camera selection and initial device orientation as landscape right. - final MockCameraSelector Function(int cameraSelectorLensDirection) - proxyCreateCameraSelectorForFrontCamera = + final MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForBackCamera(mockBackCameraSelector); camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () => - Future.value(testInitialDeviceOrientation)); + getUiOrientation: () async => + _serializeDeviceOrientation(testInitialDeviceOrientation)); // Get and create test camera. final List availableCameras = @@ -632,3 +848,16 @@ void main() { }); }); } + +String _serializeDeviceOrientation(DeviceOrientation orientation) { + switch (orientation) { + case DeviceOrientation.portraitUp: + return 'PORTRAIT_UP'; + case DeviceOrientation.landscapeLeft: + return 'LANDSCAPE_LEFT'; + case DeviceOrientation.portraitDown: + return 'PORTRAIT_DOWN'; + case DeviceOrientation.landscapeRight: + return 'LANDSCAPE_RIGHT'; + } +} From d5ac8a5798ed7a4541e2248628c03ae4dab7a842 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 19 Mar 2025 10:52:04 -0400 Subject: [PATCH 123/148] lints --- .../test/preview_rotation_test.dart | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart index 4761b295c39..4ec364fcd5b 100644 --- a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart +++ b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart @@ -59,14 +59,18 @@ void main() { {required MockProcessCameraProvider mockProcessCameraProvider, required CameraSelector Function({ LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) createCameraSelector, required bool handlesCropAndRotation, required Future Function() getUiOrientation}) => CameraXProxy( getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) async => mockProcessCameraProvider, @@ -74,7 +78,9 @@ void main() { newPreview: ({ int? targetRotation, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) { final MockPreview preview = MockPreview(); @@ -87,7 +93,9 @@ void main() { int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockImageCapture(), @@ -95,7 +103,9 @@ void main() { int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, + // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, }) => MockRecorder(), From 163f41f245fba23a5159bbd75706d5b2d6038941 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 19 Mar 2025 11:17:53 -0400 Subject: [PATCH 124/148] formatting --- .../plugins/camerax/CameraXLibrary.g.kt | 4687 ++++++++------ .../plugins/camerax/PreviewProxyApi.java | 8 +- .../flutter/plugins/camerax/PreviewTest.java | 16 +- .../lib/src/camerax_library.g.dart | 334 +- .../android_camera_camerax_test.mocks.dart | 5450 ++++++++--------- 5 files changed, 5590 insertions(+), 4905 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 1e9a375096a..286b6be7e00 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -10,9 +10,7 @@ package io.flutter.plugins.camerax import android.util.Log import io.flutter.plugin.common.BasicMessageChannel import io.flutter.plugin.common.BinaryMessenger -import io.flutter.plugin.common.EventChannel import io.flutter.plugin.common.MessageCodec -import io.flutter.plugin.common.StandardMethodCodec import io.flutter.plugin.common.StandardMessageCodec import java.io.ByteArrayOutputStream import java.nio.ByteBuffer @@ -23,52 +21,52 @@ private fun wrapResult(result: Any?): List { private fun wrapError(exception: Throwable): List { return if (exception is CameraXError) { - listOf( - exception.code, - exception.message, - exception.details - ) + listOf(exception.code, exception.message, exception.details) } else { listOf( - exception.javaClass.simpleName, - exception.toString(), - "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception) - ) + exception.javaClass.simpleName, + exception.toString(), + "Cause: " + exception.cause + ", Stacktrace: " + Log.getStackTraceString(exception)) } } private fun createConnectionError(channelName: String): CameraXError { - return CameraXError("channel-error", "Unable to establish connection on channel: '$channelName'.", "")} + return CameraXError( + "channel-error", "Unable to establish connection on channel: '$channelName'.", "") +} /** * Error class for passing custom error details to Flutter via a thrown PlatformException. + * * @property code The error code. * @property message The error message. * @property details The error details. Must be a datatype supported by the api codec. */ -class CameraXError ( - val code: String, - override val message: String? = null, - val details: Any? = null +class CameraXError( + val code: String, + override val message: String? = null, + val details: Any? = null ) : Throwable() /** * Maintains instances used to communicate with the corresponding objects in Dart. * - * Objects stored in this container are represented by an object in Dart that is also stored in - * an InstanceManager with the same identifier. + * Objects stored in this container are represented by an object in Dart that is also stored in an + * InstanceManager with the same identifier. * * When an instance is added with an identifier, either can be used to retrieve the other. * - * Added instances are added as a weak reference and a strong reference. When the strong - * reference is removed with [remove] and the weak reference is deallocated, the - * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the strong - * reference is removed and then the identifier is retrieved with the intention to pass the identifier - * to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the instance - * is recreated. The strong reference will then need to be removed manually again. + * Added instances are added as a weak reference and a strong reference. When the strong reference + * is removed with [remove] and the weak reference is deallocated, the + * `finalizationListener.onFinalize` is called with the instance's identifier. However, if the + * strong reference is removed and then the identifier is retrieved with the intention to pass the + * identifier to Dart (e.g. calling [getIdentifierForStrongReference]), the strong reference to the + * instance is recreated. The strong reference will then need to be removed manually again. */ @Suppress("UNCHECKED_CAST", "MemberVisibilityCanBePrivate") -class CameraXLibraryPigeonInstanceManager(private val finalizationListener: PigeonFinalizationListener) { - /** Interface for listening when a weak reference of an instance is removed from the manager. */ +class CameraXLibraryPigeonInstanceManager( + private val finalizationListener: PigeonFinalizationListener +) { + /** Interface for listening when a weak reference of an instance is removed from the manager. */ interface PigeonFinalizationListener { fun onFinalize(identifier: Long) } @@ -94,10 +92,7 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige } init { - handler.postDelayed( - { releaseAllFinalizedInstances() }, - clearFinalizedWeakReferencesInterval - ) + handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) } companion object { @@ -109,19 +104,20 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige private const val tag = "PigeonInstanceManager" /** - * Instantiate a new manager with a listener for garbage collected weak - * references. + * Instantiate a new manager with a listener for garbage collected weak references. * * When the manager is no longer needed, [stopFinalizationListener] must be called. */ - fun create(finalizationListener: PigeonFinalizationListener): CameraXLibraryPigeonInstanceManager { + fun create( + finalizationListener: PigeonFinalizationListener + ): CameraXLibraryPigeonInstanceManager { return CameraXLibraryPigeonInstanceManager(finalizationListener) } } /** - * Removes `identifier` and return its associated strongly referenced instance, if present, - * from the manager. + * Removes `identifier` and return its associated strongly referenced instance, if present, from + * the manager. */ fun remove(identifier: Long): T? { logWarningIfFinalizationListenerHasStopped() @@ -131,15 +127,13 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige /** * Retrieves the identifier paired with an instance, if present, otherwise `null`. * - * * If the manager contains a strong reference to `instance`, it will return the identifier * associated with `instance`. If the manager contains only a weak reference to `instance`, a new * strong reference to `instance` will be added and will need to be removed again with [remove]. * - * * If this method returns a nonnull identifier, this method also expects the Dart - * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart instance the - * identifier is associated with. + * `CameraXLibraryPigeonInstanceManager` to have, or recreate, a weak reference to the Dart + * instance the identifier is associated with. */ fun getIdentifierForStrongReference(instance: Any?): Long? { logWarningIfFinalizationListenerHasStopped() @@ -153,9 +147,9 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige /** * Adds a new instance that was instantiated from Dart. * - * The same instance can be added multiple times, but each identifier must be unique. This - * allows two objects that are equivalent (e.g. the `equals` method returns true and their - * hashcodes are equal) to both be added. + * The same instance can be added multiple times, but each identifier must be unique. This allows + * two objects that are equivalent (e.g. the `equals` method returns true and their hashcodes are + * equal) to both be added. * * [identifier] must be >= 0 and unique. */ @@ -171,7 +165,9 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige */ fun addHostCreatedInstance(instance: Any): Long { logWarningIfFinalizationListenerHasStopped() - require(!containsInstance(instance)) { "Instance of ${instance.javaClass} has already been added." } + require(!containsInstance(instance)) { + "Instance of ${instance.javaClass} has already been added." + } val identifier = nextIdentifier++ addInstance(instance, identifier) return identifier @@ -229,7 +225,8 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige return } var reference: java.lang.ref.WeakReference? - while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != null) { + while ((referenceQueue.poll() as java.lang.ref.WeakReference?).also { reference = it } != + null) { val identifier = weakReferencesToIdentifiers.remove(reference) if (identifier != null) { weakInstances.remove(identifier) @@ -237,10 +234,7 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige finalizationListener.onFinalize(identifier) } } - handler.postDelayed( - { releaseAllFinalizedInstances() }, - clearFinalizedWeakReferencesInterval - ) + handler.postDelayed({ releaseAllFinalizedInstances() }, clearFinalizedWeakReferencesInterval) } private fun addInstance(instance: Any, identifier: Long) { @@ -258,39 +252,43 @@ class CameraXLibraryPigeonInstanceManager(private val finalizationListener: Pige private fun logWarningIfFinalizationListenerHasStopped() { if (hasFinalizationListenerStopped()) { Log.w( - tag, - "The manager was used after calls to the PigeonFinalizationListener has been stopped." - ) + tag, + "The manager was used after calls to the PigeonFinalizationListener has been stopped.") } } } - /** Generated API for managing the Dart and native `InstanceManager`s. */ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: BinaryMessenger) { companion object { /** The codec used by CameraXLibraryPigeonInstanceManagerApi. */ - val codec: MessageCodec by lazy { - CameraXLibraryPigeonCodec() - } + val codec: MessageCodec by lazy { CameraXLibraryPigeonCodec() } /** * Sets up an instance of `CameraXLibraryPigeonInstanceManagerApi` to handle messages from the * `binaryMessenger`. */ - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, instanceManager: CameraXLibraryPigeonInstanceManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + instanceManager: CameraXLibraryPigeonInstanceManager? + ) { run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference", + codec) if (instanceManager != null) { channel.setMessageHandler { message, reply -> val args = message as List val identifierArg = args[0] as Long - val wrapped: List = try { - instanceManager.remove(identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + instanceManager.remove(identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -298,15 +296,20 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear", + codec) if (instanceManager != null) { channel.setMessageHandler { _, reply -> - val wrapped: List = try { - instanceManager.clear() - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + instanceManager.clear() + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -316,9 +319,9 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } - fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) -{ - val channelName = "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" + fun removeStrongReference(identifierArg: Long, callback: (Result) -> Unit) { + val channelName = + "dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(identifierArg)) { if (it is List<*>) { @@ -329,13 +332,13 @@ private class CameraXLibraryPigeonInstanceManagerApi(val binaryMessenger: Binary } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } /** - * Provides implementations for each ProxyApi implementation and provides access to resources - * needed by any implementation. + * Provides implementations for each ProxyApi implementation and provides access to resources needed + * by any implementation. */ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: BinaryMessenger) { /** Whether APIs should ignore calling to Dart. */ @@ -352,24 +355,23 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary init { val api = CameraXLibraryPigeonInstanceManagerApi(binaryMessenger) - instanceManager = CameraXLibraryPigeonInstanceManager.create( - object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { - override fun onFinalize(identifier: Long) { - api.removeStrongReference(identifier) { - if (it.isFailure) { - Log.e( - "PigeonProxyApiRegistrar", - "Failed to remove Dart strong reference with identifier: $identifier" - ) - } - } - } - } - ) + instanceManager = + CameraXLibraryPigeonInstanceManager.create( + object : CameraXLibraryPigeonInstanceManager.PigeonFinalizationListener { + override fun onFinalize(identifier: Long) { + api.removeStrongReference(identifier) { + if (it.isFailure) { + Log.e( + "PigeonProxyApiRegistrar", + "Failed to remove Dart strong reference with identifier: $identifier") + } + } + } + }) } /** - * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of - * `CameraSize` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraSize] used to add a new Dart instance of `CameraSize` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraSize(): PigeonApiCameraSize @@ -389,8 +391,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEvent] used to add a new Dart instance of * `VideoRecordEvent` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + open fun getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return PigeonApiVideoRecordEvent(this) } @@ -398,8 +399,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventStart] used to add a new Dart instance of * `VideoRecordEventStart` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart - { + open fun getPigeonApiVideoRecordEventStart(): PigeonApiVideoRecordEventStart { return PigeonApiVideoRecordEventStart(this) } @@ -407,8 +407,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiVideoRecordEventFinalize] used to add a new Dart instance of * `VideoRecordEventFinalize` to the Dart `InstanceManager`. */ - open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize - { + open fun getPigeonApiVideoRecordEventFinalize(): PigeonApiVideoRecordEventFinalize { return PigeonApiVideoRecordEventFinalize(this) } @@ -419,14 +418,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPoint(): PigeonApiMeteringPoint /** - * An implementation of [PigeonApiObserver] used to add a new Dart instance of - * `Observer` to the Dart `InstanceManager`. + * An implementation of [PigeonApiObserver] used to add a new Dart instance of `Observer` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiObserver(): PigeonApiObserver /** - * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of - * `CameraInfo` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraInfo] used to add a new Dart instance of `CameraInfo` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraInfo(): PigeonApiCameraInfo @@ -443,17 +442,16 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiProcessCameraProvider(): PigeonApiProcessCameraProvider /** - * An implementation of [PigeonApiUseCase] used to add a new Dart instance of - * `UseCase` to the Dart `InstanceManager`. + * An implementation of [PigeonApiUseCase] used to add a new Dart instance of `UseCase` to the + * Dart `InstanceManager`. */ - open fun getPigeonApiUseCase(): PigeonApiUseCase - { + open fun getPigeonApiUseCase(): PigeonApiUseCase { return PigeonApiUseCase(this) } /** - * An implementation of [PigeonApiCamera] used to add a new Dart instance of - * `Camera` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCamera] used to add a new Dart instance of `Camera` to the Dart + * `InstanceManager`. */ abstract fun getPigeonApiCamera(): PigeonApiCamera @@ -476,29 +474,28 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiDeviceOrientationManager(): PigeonApiDeviceOrientationManager /** - * An implementation of [PigeonApiPreview] used to add a new Dart instance of - * `Preview` to the Dart `InstanceManager`. + * An implementation of [PigeonApiPreview] used to add a new Dart instance of `Preview` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiPreview(): PigeonApiPreview /** - * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of - * `VideoCapture` to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoCapture] used to add a new Dart instance of `VideoCapture` + * to the Dart `InstanceManager`. */ abstract fun getPigeonApiVideoCapture(): PigeonApiVideoCapture /** - * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of - * `VideoOutput` to the Dart `InstanceManager`. + * An implementation of [PigeonApiVideoOutput] used to add a new Dart instance of `VideoOutput` to + * the Dart `InstanceManager`. */ - open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput - { + open fun getPigeonApiVideoOutput(): PigeonApiVideoOutput { return PigeonApiVideoOutput(this) } /** - * An implementation of [PigeonApiRecorder] used to add a new Dart instance of - * `Recorder` to the Dart `InstanceManager`. + * An implementation of [PigeonApiRecorder] used to add a new Dart instance of `Recorder` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiRecorder(): PigeonApiRecorder @@ -515,14 +512,14 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiPendingRecording(): PigeonApiPendingRecording /** - * An implementation of [PigeonApiRecording] used to add a new Dart instance of - * `Recording` to the Dart `InstanceManager`. + * An implementation of [PigeonApiRecording] used to add a new Dart instance of `Recording` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiRecording(): PigeonApiRecording /** - * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of - * `ImageCapture` to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageCapture] used to add a new Dart instance of `ImageCapture` + * to the Dart `InstanceManager`. */ abstract fun getPigeonApiImageCapture(): PigeonApiImageCapture @@ -545,8 +542,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiAspectRatioStrategy(): PigeonApiAspectRatioStrategy /** - * An implementation of [PigeonApiCameraState] used to add a new Dart instance of - * `CameraState` to the Dart `InstanceManager`. + * An implementation of [PigeonApiCameraState] used to add a new Dart instance of `CameraState` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiCameraState(): PigeonApiCameraState @@ -557,8 +554,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiExposureState(): PigeonApiExposureState /** - * An implementation of [PigeonApiZoomState] used to add a new Dart instance of - * `ZoomState` to the Dart `InstanceManager`. + * An implementation of [PigeonApiZoomState] used to add a new Dart instance of `ZoomState` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiZoomState(): PigeonApiZoomState @@ -569,8 +566,8 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiImageAnalysis(): PigeonApiImageAnalysis /** - * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of - * `Analyzer` to the Dart `InstanceManager`. + * An implementation of [PigeonApiAnalyzer] used to add a new Dart instance of `Analyzer` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiAnalyzer(): PigeonApiAnalyzer @@ -581,20 +578,20 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiCameraStateStateError(): PigeonApiCameraStateStateError /** - * An implementation of [PigeonApiLiveData] used to add a new Dart instance of - * `LiveData` to the Dart `InstanceManager`. + * An implementation of [PigeonApiLiveData] used to add a new Dart instance of `LiveData` to the + * Dart `InstanceManager`. */ abstract fun getPigeonApiLiveData(): PigeonApiLiveData /** - * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of - * `ImageProxy` to the Dart `InstanceManager`. + * An implementation of [PigeonApiImageProxy] used to add a new Dart instance of `ImageProxy` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiImageProxy(): PigeonApiImageProxy /** - * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of - * `PlaneProxy` to the Dart `InstanceManager`. + * An implementation of [PigeonApiPlaneProxy] used to add a new Dart instance of `PlaneProxy` to + * the Dart `InstanceManager`. */ abstract fun getPigeonApiPlaneProxy(): PigeonApiPlaneProxy @@ -644,8 +641,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCaptureRequestKey] used to add a new Dart instance of * `CaptureRequestKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey - { + open fun getPigeonApiCaptureRequestKey(): PigeonApiCaptureRequestKey { return PigeonApiCaptureRequestKey(this) } @@ -671,8 +667,7 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary * An implementation of [PigeonApiCameraCharacteristicsKey] used to add a new Dart instance of * `CameraCharacteristicsKey` to the Dart `InstanceManager`. */ - open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey - { + open fun getPigeonApiCameraCharacteristicsKey(): PigeonApiCameraCharacteristicsKey { return PigeonApiCameraCharacteristicsKey(this) } @@ -695,33 +690,42 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary abstract fun getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory /** - * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart instance of - * `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. + * An implementation of [PigeonApiDisplayOrientedMeteringPointFactory] used to add a new Dart + * instance of `DisplayOrientedMeteringPointFactory` to the Dart `InstanceManager`. */ - abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): PigeonApiDisplayOrientedMeteringPointFactory + abstract fun getPigeonApiDisplayOrientedMeteringPointFactory(): + PigeonApiDisplayOrientedMeteringPointFactory fun setUp() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, instanceManager) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSize()) - PigeonApiCameraIntegerRange.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraIntegerRange()) + PigeonApiCameraIntegerRange.setUpMessageHandlers( + binaryMessenger, getPigeonApiCameraIntegerRange()) PigeonApiMeteringPoint.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPoint()) PigeonApiObserver.setUpMessageHandlers(binaryMessenger, getPigeonApiObserver()) PigeonApiCameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraInfo()) PigeonApiCameraSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraSelector()) - PigeonApiProcessCameraProvider.setUpMessageHandlers(binaryMessenger, getPigeonApiProcessCameraProvider()) + PigeonApiProcessCameraProvider.setUpMessageHandlers( + binaryMessenger, getPigeonApiProcessCameraProvider()) PigeonApiCamera.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera()) - PigeonApiSystemServicesManager.setUpMessageHandlers(binaryMessenger, getPigeonApiSystemServicesManager()) - PigeonApiDeviceOrientationManager.setUpMessageHandlers(binaryMessenger, getPigeonApiDeviceOrientationManager()) + PigeonApiSystemServicesManager.setUpMessageHandlers( + binaryMessenger, getPigeonApiSystemServicesManager()) + PigeonApiDeviceOrientationManager.setUpMessageHandlers( + binaryMessenger, getPigeonApiDeviceOrientationManager()) PigeonApiPreview.setUpMessageHandlers(binaryMessenger, getPigeonApiPreview()) PigeonApiVideoCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoCapture()) PigeonApiRecorder.setUpMessageHandlers(binaryMessenger, getPigeonApiRecorder()) - PigeonApiVideoRecordEventListener.setUpMessageHandlers(binaryMessenger, getPigeonApiVideoRecordEventListener()) + PigeonApiVideoRecordEventListener.setUpMessageHandlers( + binaryMessenger, getPigeonApiVideoRecordEventListener()) PigeonApiPendingRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiPendingRecording()) PigeonApiRecording.setUpMessageHandlers(binaryMessenger, getPigeonApiRecording()) PigeonApiImageCapture.setUpMessageHandlers(binaryMessenger, getPigeonApiImageCapture()) - PigeonApiResolutionStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionStrategy()) - PigeonApiResolutionSelector.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionSelector()) - PigeonApiAspectRatioStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiAspectRatioStrategy()) + PigeonApiResolutionStrategy.setUpMessageHandlers( + binaryMessenger, getPigeonApiResolutionStrategy()) + PigeonApiResolutionSelector.setUpMessageHandlers( + binaryMessenger, getPigeonApiResolutionSelector()) + PigeonApiAspectRatioStrategy.setUpMessageHandlers( + binaryMessenger, getPigeonApiAspectRatioStrategy()) PigeonApiImageAnalysis.setUpMessageHandlers(binaryMessenger, getPigeonApiImageAnalysis()) PigeonApiAnalyzer.setUpMessageHandlers(binaryMessenger, getPigeonApiAnalyzer()) PigeonApiLiveData.setUpMessageHandlers(binaryMessenger, getPigeonApiLiveData()) @@ -729,16 +733,24 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiQualitySelector.setUpMessageHandlers(binaryMessenger, getPigeonApiQualitySelector()) PigeonApiFallbackStrategy.setUpMessageHandlers(binaryMessenger, getPigeonApiFallbackStrategy()) PigeonApiCameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraControl()) - PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers(binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) + PigeonApiFocusMeteringActionBuilder.setUpMessageHandlers( + binaryMessenger, getPigeonApiFocusMeteringActionBuilder()) PigeonApiCaptureRequest.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequest()) - PigeonApiCaptureRequestOptions.setUpMessageHandlers(binaryMessenger, getPigeonApiCaptureRequestOptions()) - PigeonApiCamera2CameraControl.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraControl()) + PigeonApiCaptureRequestOptions.setUpMessageHandlers( + binaryMessenger, getPigeonApiCaptureRequestOptions()) + PigeonApiCamera2CameraControl.setUpMessageHandlers( + binaryMessenger, getPigeonApiCamera2CameraControl()) PigeonApiResolutionFilter.setUpMessageHandlers(binaryMessenger, getPigeonApiResolutionFilter()) - PigeonApiCameraCharacteristics.setUpMessageHandlers(binaryMessenger, getPigeonApiCameraCharacteristics()) - PigeonApiCamera2CameraInfo.setUpMessageHandlers(binaryMessenger, getPigeonApiCamera2CameraInfo()) - PigeonApiMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiMeteringPointFactory()) - PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) + PigeonApiCameraCharacteristics.setUpMessageHandlers( + binaryMessenger, getPigeonApiCameraCharacteristics()) + PigeonApiCamera2CameraInfo.setUpMessageHandlers( + binaryMessenger, getPigeonApiCamera2CameraInfo()) + PigeonApiMeteringPointFactory.setUpMessageHandlers( + binaryMessenger, getPigeonApiMeteringPointFactory()) + PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers( + binaryMessenger, getPigeonApiDisplayOrientedMeteringPointFactory()) } + fun tearDown() { CameraXLibraryPigeonInstanceManagerApi.setUpMessageHandlers(binaryMessenger, null) PigeonApiCameraSize.setUpMessageHandlers(binaryMessenger, null) @@ -779,17 +791,17 @@ abstract class CameraXLibraryPigeonProxyApiRegistrar(val binaryMessenger: Binary PigeonApiDisplayOrientedMeteringPointFactory.setUpMessageHandlers(binaryMessenger, null) } } -private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibraryPigeonProxyApiRegistrar) : CameraXLibraryPigeonCodec() { + +private class CameraXLibraryPigeonProxyApiBaseCodec( + val registrar: CameraXLibraryPigeonProxyApiRegistrar +) : CameraXLibraryPigeonCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 128.toByte() -> { val identifier: Long = readValue(buffer) as Long val instance: Any? = registrar.instanceManager.getInstance(identifier) if (instance == null) { - Log.e( - "PigeonProxyApiBaseCodec", - "Failed to find instance with identifier: $identifier" - ) + Log.e("PigeonProxyApiBaseCodec", "Failed to find instance with identifier: $identifier") } return instance } @@ -798,166 +810,138 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar } override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { - if (value is Boolean || value is ByteArray || value is Double || value is DoubleArray || value is FloatArray || value is Int || value is IntArray || value is List<*> || value is Long || value is LongArray || value is Map<*, *> || value is String || value is InfoSupportedHardwareLevel || value is AspectRatio || value is CameraStateType || value is LiveDataSupportedType || value is VideoQuality || value is MeteringMode || value is LensFacing || value is CameraXFlashMode || value is ResolutionStrategyFallbackRule || value is AspectRatioStrategyFallbackRule || value is CameraStateErrorCode || value == null) { + if (value is Boolean || + value is ByteArray || + value is Double || + value is DoubleArray || + value is FloatArray || + value is Int || + value is IntArray || + value is List<*> || + value is Long || + value is LongArray || + value is Map<*, *> || + value is String || + value is InfoSupportedHardwareLevel || + value is AspectRatio || + value is CameraStateType || + value is LiveDataSupportedType || + value is VideoQuality || + value is MeteringMode || + value is LensFacing || + value is CameraXFlashMode || + value is ResolutionStrategyFallbackRule || + value is AspectRatioStrategyFallbackRule || + value is CameraStateErrorCode || + value == null) { super.writeValue(stream, value) return } if (value is android.util.Size) { - registrar.getPigeonApiCameraSize().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ResolutionInfo) { - registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) { } - } - else if (value is android.util.Range<*>) { - registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent.Start) { - registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { - registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoRecordEvent) { - registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.MeteringPoint) { - registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) { } - } - else if (value is androidx.lifecycle.Observer<*>) { - registrar.getPigeonApiObserver().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraInfo) { - registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraSelector) { - registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { - registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.Camera) { - registrar.getPigeonApiCamera().pigeon_newInstance(value) { } - } - else if (value is SystemServicesManager) { - registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) { } - } - else if (value is CameraPermissionsError) { - registrar.getPigeonApiCameraPermissionsError().pigeon_newInstance(value) { } - } - else if (value is DeviceOrientationManager) { - registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.Preview) { - registrar.getPigeonApiPreview().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoCapture<*>) { - registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.Recorder) { - registrar.getPigeonApiRecorder().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.VideoOutput) { - registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) { } - } - else if (value is VideoRecordEventListener) { - registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.PendingRecording) { - registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.Recording) { - registrar.getPigeonApiRecording().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageCapture) { - registrar.getPigeonApiImageCapture().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { - registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { - registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { - registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraState) { - registrar.getPigeonApiCameraState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ExposureState) { - registrar.getPigeonApiExposureState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ZoomState) { - registrar.getPigeonApiZoomState().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageAnalysis) { - registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.UseCase) { - registrar.getPigeonApiUseCase().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { - registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraState.StateError) { - registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) { } - } - else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { - registrar.getPigeonApiLiveData().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageProxy) { - registrar.getPigeonApiImageProxy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { - registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.QualitySelector) { - registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.video.FallbackStrategy) { - registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.CameraControl) { - registrar.getPigeonApiCameraControl().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringAction.Builder) { - registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringAction) { - registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.FocusMeteringResult) { - registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CaptureRequest) { - registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { - registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { - registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { - registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { - registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { - registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) { } - } - else if (value is android.hardware.camera2.CameraCharacteristics) { - registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { - registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { - registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) { } - } - else if (value is androidx.camera.core.MeteringPointFactory) { - registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) { } + registrar.getPigeonApiCameraSize().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ResolutionInfo) { + registrar.getPigeonApiResolutionInfo().pigeon_newInstance(value) {} + } else if (value is android.util.Range<*>) { + registrar.getPigeonApiCameraIntegerRange().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent.Start) { + registrar.getPigeonApiVideoRecordEventStart().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent.Finalize) { + registrar.getPigeonApiVideoRecordEventFinalize().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoRecordEvent) { + registrar.getPigeonApiVideoRecordEvent().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.MeteringPoint) { + registrar.getPigeonApiMeteringPoint().pigeon_newInstance(value) {} + } else if (value is androidx.lifecycle.Observer<*>) { + registrar.getPigeonApiObserver().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraInfo) { + registrar.getPigeonApiCameraInfo().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraSelector) { + registrar.getPigeonApiCameraSelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.lifecycle.ProcessCameraProvider) { + registrar.getPigeonApiProcessCameraProvider().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.Camera) { + registrar.getPigeonApiCamera().pigeon_newInstance(value) {} + } else if (value is SystemServicesManager) { + registrar.getPigeonApiSystemServicesManager().pigeon_newInstance(value) {} + } else if (value is CameraPermissionsError) { + registrar.getPigeonApiCameraPermissionsError().pigeon_newInstance(value) {} + } else if (value is DeviceOrientationManager) { + registrar.getPigeonApiDeviceOrientationManager().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.Preview) { + registrar.getPigeonApiPreview().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoCapture<*>) { + registrar.getPigeonApiVideoCapture().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.Recorder) { + registrar.getPigeonApiRecorder().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.VideoOutput) { + registrar.getPigeonApiVideoOutput().pigeon_newInstance(value) {} + } else if (value is VideoRecordEventListener) { + registrar.getPigeonApiVideoRecordEventListener().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.PendingRecording) { + registrar.getPigeonApiPendingRecording().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.Recording) { + registrar.getPigeonApiRecording().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageCapture) { + registrar.getPigeonApiImageCapture().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionStrategy) { + registrar.getPigeonApiResolutionStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionSelector) { + registrar.getPigeonApiResolutionSelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.AspectRatioStrategy) { + registrar.getPigeonApiAspectRatioStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraState) { + registrar.getPigeonApiCameraState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ExposureState) { + registrar.getPigeonApiExposureState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ZoomState) { + registrar.getPigeonApiZoomState().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageAnalysis) { + registrar.getPigeonApiImageAnalysis().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.UseCase) { + registrar.getPigeonApiUseCase().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageAnalysis.Analyzer) { + registrar.getPigeonApiAnalyzer().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraState.StateError) { + registrar.getPigeonApiCameraStateStateError().pigeon_newInstance(value) {} + } else if (value is io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) { + registrar.getPigeonApiLiveData().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageProxy) { + registrar.getPigeonApiImageProxy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.ImageProxy.PlaneProxy) { + registrar.getPigeonApiPlaneProxy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.QualitySelector) { + registrar.getPigeonApiQualitySelector().pigeon_newInstance(value) {} + } else if (value is androidx.camera.video.FallbackStrategy) { + registrar.getPigeonApiFallbackStrategy().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.CameraControl) { + registrar.getPigeonApiCameraControl().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringAction.Builder) { + registrar.getPigeonApiFocusMeteringActionBuilder().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringAction) { + registrar.getPigeonApiFocusMeteringAction().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.FocusMeteringResult) { + registrar.getPigeonApiFocusMeteringResult().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CaptureRequest) { + registrar.getPigeonApiCaptureRequest().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CaptureRequest.Key<*>) { + registrar.getPigeonApiCaptureRequestKey().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.CaptureRequestOptions) { + registrar.getPigeonApiCaptureRequestOptions().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.Camera2CameraControl) { + registrar.getPigeonApiCamera2CameraControl().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.resolutionselector.ResolutionFilter) { + registrar.getPigeonApiResolutionFilter().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CameraCharacteristics.Key<*>) { + registrar.getPigeonApiCameraCharacteristicsKey().pigeon_newInstance(value) {} + } else if (value is android.hardware.camera2.CameraCharacteristics) { + registrar.getPigeonApiCameraCharacteristics().pigeon_newInstance(value) {} + } else if (value is androidx.camera.camera2.interop.Camera2CameraInfo) { + registrar.getPigeonApiCamera2CameraInfo().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.DisplayOrientedMeteringPointFactory) { + registrar.getPigeonApiDisplayOrientedMeteringPointFactory().pigeon_newInstance(value) {} + } else if (value is androidx.camera.core.MeteringPointFactory) { + registrar.getPigeonApiMeteringPointFactory().pigeon_newInstance(value) {} } when { @@ -965,7 +949,9 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar stream.write(128) writeValue(stream, registrar.instanceManager.getIdentifierForStrongReference(value)) } - else -> throw IllegalArgumentException("Unsupported value: '$value' of type '${value.javaClass.name}'") + else -> + throw IllegalArgumentException( + "Unsupported value: '$value' of type '${value.javaClass.name}'") } } } @@ -973,27 +959,22 @@ private class CameraXLibraryPigeonProxyApiBaseCodec(val registrar: CameraXLibrar /** * Generally classifies the overall set of the camera device functionality. * - * See https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. + * See + * https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#INFO_SUPPORTED_HARDWARE_LEVEL_3. */ enum class InfoSupportedHardwareLevel(val raw: Int) { /** - * This camera device is capable of YUV reprocessing and RAW data capture, in - * addition to FULL-level capabilities. + * This camera device is capable of YUV reprocessing and RAW data capture, in addition to + * FULL-level capabilities. */ LEVEL3(0), - /** - * This camera device is backed by an external camera connected to this - * Android device. - */ + /** This camera device is backed by an external camera connected to this Android device. */ EXTERNAL(1), /** This camera device is capable of supporting advanced imaging applications. */ FULL(2), /** This camera device is running in backward compatibility mode. */ LEGACY(3), - /** - * This camera device does not have enough capabilities to qualify as a FULL - * device or better. - */ + /** This camera device does not have enough capabilities to qualify as a FULL device or better. */ LIMITED(4); companion object { @@ -1040,8 +1021,8 @@ enum class CameraStateType(val raw: Int) { /** Represents a state where the camera device is currently opening. */ OPENING(3), /** - * Represents a state where the camera is waiting for a signal to attempt to - * open the camera device. + * Represents a state where the camera is waiting for a signal to attempt to open the camera + * device. */ PENDING_OPEN(4), /** This value is not recognized by this wrapper. */ @@ -1067,8 +1048,8 @@ enum class LiveDataSupportedType(val raw: Int) { } /** - * Video quality constraints that will be used by a QualitySelector to choose - * an appropriate video resolution. + * Video quality constraints that will be used by a QualitySelector to choose an appropriate video + * resolution. * * These are pre-defined quality constants that are universally used for video. * @@ -1098,23 +1079,15 @@ enum class VideoQuality(val raw: Int) { /** * A flag used for indicating metering mode regions. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction#FLAG_AF(). */ enum class MeteringMode(val raw: Int) { - /** - * A flag used in metering mode indicating the AE (Auto Exposure) region is - * enabled. - */ + /** A flag used in metering mode indicating the AE (Auto Exposure) region is enabled. */ AE(0), - /** - * A flag used in metering mode indicating the AF (Auto Focus) region is - * enabled. - */ + /** A flag used in metering mode indicating the AF (Auto Focus) region is enabled. */ AF(1), - /** - * A flag used in metering mode indicating the AWB (Auto White Balance) - * region is enabled. - */ + /** A flag used in metering mode indicating the AWB (Auto White Balance) region is enabled. */ AWB(2); companion object { @@ -1127,20 +1100,15 @@ enum class MeteringMode(val raw: Int) { /** * Direction of lens of a camera. * - * See https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). + * See + * https://developer.android.com/reference/androidx/camera/core/CameraSelector#LENS_FACING_BACK(). */ enum class LensFacing(val raw: Int) { /** A camera on the device facing the same direction as the device's screen. */ FRONT(0), - /** - * A camera on the device facing the opposite direction as the device's - * screen. - */ + /** A camera on the device facing the opposite direction as the device's screen. */ BACK(1), - /** - * An external camera that has no fixed facing relative to the device's - * screen. - */ + /** An external camera that has no fixed facing relative to the device's screen. */ EXTERNAL(2), /** A camera on the devices that its lens facing is resolved. */ UNKNOWN(3); @@ -1155,14 +1123,14 @@ enum class LensFacing(val raw: Int) { /** * FlashModes for image capture. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture#FLASH_MODE_AUTO(). */ enum class CameraXFlashMode(val raw: Int) { /** * Auto flash. * - * The flash will be used according to the camera system's determination when - * taking a picture. + * The flash will be used according to the camera system's determination when taking a picture. */ AUTO(0), /** @@ -1186,36 +1154,33 @@ enum class CameraXFlashMode(val raw: Int) { } /** - * Fallback rule for choosing an alternate size when the specified bound size - * is unavailable. + * Fallback rule for choosing an alternate size when the specified bound size is unavailable. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ enum class ResolutionStrategyFallbackRule(val raw: Int) { /** - * When the specified bound size is unavailable, CameraX falls back to the - * closest higher resolution size. + * When the specified bound size is unavailable, CameraX falls back to the closest higher + * resolution size. */ CLOSEST_HIGHER(0), /** - * When the specified bound size is unavailable, CameraX falls back to select - * the closest higher resolution size. + * When the specified bound size is unavailable, CameraX falls back to select the closest higher + * resolution size. */ CLOSEST_HIGHER_THEN_LOWER(1), /** - * When the specified bound size is unavailable, CameraX falls back to the - * closest lower resolution size. + * When the specified bound size is unavailable, CameraX falls back to the closest lower + * resolution size. */ CLOSEST_LOWER(2), /** - * When the specified bound size is unavailable, CameraX falls back to select - * the closest lower resolution size. + * When the specified bound size is unavailable, CameraX falls back to select the closest lower + * resolution size. */ CLOSEST_LOWER_THEN_HIGHER(3), - /** - * CameraX doesn't select an alternate size when the specified bound size is - * unavailable. - */ + /** CameraX doesn't select an alternate size when the specified bound size is unavailable. */ NONE(4), /** The value is not recognized by the wrapper. */ UNKNOWN(5); @@ -1228,21 +1193,20 @@ enum class ResolutionStrategyFallbackRule(val raw: Int) { } /** - * Fallback rule for choosing the aspect ratio when the preferred aspect ratio - * is not available. + * Fallback rule for choosing the aspect ratio when the preferred aspect ratio is not available. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy#FALLBACK_RULE_AUTO(). */ enum class AspectRatioStrategyFallbackRule(val raw: Int) { /** - * CameraX automatically chooses the next best aspect ratio which contains - * the closest field of view (FOV) of the camera sensor, from the remaining - * options. + * CameraX automatically chooses the next best aspect ratio which contains the closest field of + * view (FOV) of the camera sensor, from the remaining options. */ AUTO(0), /** - * CameraX doesn't fall back to select sizes of any other aspect ratio when - * this fallback rule is used. + * CameraX doesn't fall back to select sizes of any other aspect ratio when this fallback rule is + * used. */ NONE(1), /** The value is not recognized by the wrapper. */ @@ -1261,34 +1225,23 @@ enum class AspectRatioStrategyFallbackRule(val raw: Int) { * https://developer.android.com/reference/androidx/camera/core/CameraState#ERROR_CAMERA_DISABLED() */ enum class CameraStateErrorCode(val raw: Int) { - /** - * An error indicating that the camera device could not be opened due to a - * device policy. - */ + /** An error indicating that the camera device could not be opened due to a device policy. */ CAMERA_DISABLED(0), - /** - * An error indicating that the camera device was closed due to a fatal - * error. - */ + /** An error indicating that the camera device was closed due to a fatal error. */ CAMERA_FATAL_ERROR(1), /** An error indicating that the camera device is already in use. */ CAMERA_IN_USE(2), /** - * An error indicating that the camera could not be opened because "Do Not - * Disturb" mode is enabled on devices affected by a bug in Android 9 (API - * level 28). + * An error indicating that the camera could not be opened because "Do Not Disturb" mode is + * enabled on devices affected by a bug in Android 9 (API level 28). */ DO_NOT_DISTURB_MODE_ENABLED(3), /** - * An error indicating that the limit number of open cameras has been - * reached, and more cameras cannot be opened until other instances are - * closed. + * An error indicating that the limit number of open cameras has been reached, and more cameras + * cannot be opened until other instances are closed. */ MAX_CAMERAS_IN_USE(4), - /** - * An error indicating that the camera device has encountered a recoverable - * error. - */ + /** An error indicating that the camera device has encountered a recoverable error. */ OTHER_RECOVERABLE_ERROR(5), /** An error indicating that configuring the camera has failed. */ STREAM_CONFIG(6), @@ -1301,48 +1254,33 @@ enum class CameraStateErrorCode(val raw: Int) { } } } + private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { override fun readValueOfType(type: Byte, buffer: ByteBuffer): Any? { return when (type) { 129.toByte() -> { - return (readValue(buffer) as Long?)?.let { - InfoSupportedHardwareLevel.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { InfoSupportedHardwareLevel.ofRaw(it.toInt()) } } 130.toByte() -> { - return (readValue(buffer) as Long?)?.let { - AspectRatio.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { AspectRatio.ofRaw(it.toInt()) } } 131.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraStateType.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraStateType.ofRaw(it.toInt()) } } 132.toByte() -> { - return (readValue(buffer) as Long?)?.let { - LiveDataSupportedType.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { LiveDataSupportedType.ofRaw(it.toInt()) } } 133.toByte() -> { - return (readValue(buffer) as Long?)?.let { - VideoQuality.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { VideoQuality.ofRaw(it.toInt()) } } 134.toByte() -> { - return (readValue(buffer) as Long?)?.let { - MeteringMode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { MeteringMode.ofRaw(it.toInt()) } } 135.toByte() -> { - return (readValue(buffer) as Long?)?.let { - LensFacing.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { LensFacing.ofRaw(it.toInt()) } } 136.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraXFlashMode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraXFlashMode.ofRaw(it.toInt()) } } 137.toByte() -> { return (readValue(buffer) as Long?)?.let { @@ -1355,14 +1293,13 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { } } 139.toByte() -> { - return (readValue(buffer) as Long?)?.let { - CameraStateErrorCode.ofRaw(it.toInt()) - } + return (readValue(buffer) as Long?)?.let { CameraStateErrorCode.ofRaw(it.toInt()) } } else -> super.readValueOfType(type, buffer) } } - override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { + + override fun writeValue(stream: ByteArrayOutputStream, value: Any?) { when (value) { is InfoSupportedHardwareLevel -> { stream.write(129) @@ -1419,7 +1356,9 @@ private open class CameraXLibraryPigeonCodec : StandardMessageCodec() { * See https://developer.android.com/reference/android/util/Size.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraSize( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(width: Long, height: Long): android.util.Size /** The width of the size (in pixels). */ @@ -1433,19 +1372,25 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSize?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val widthArg = args[1] as Long val heightArg = args[2] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(widthArg,heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(widthArg, heightArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1457,16 +1402,16 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) -{ + fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -1476,60 +1421,66 @@ abstract class PigeonApiCameraSize(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, widthArg, heightArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A `ResolutionInfo` allows the application to know the resolution information - * of a specific use case. + * A `ResolutionInfo` allows the application to know the resolution information of a specific use + * case. * * See https://developer.android.com/reference/androidx/camera/core/ResolutionInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiResolutionInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Returns the output resolution used for the use case. */ abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ResolutionInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionArg = resolution(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, resolutionArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * Immutable class for describing the range of two integer values. @@ -1539,7 +1490,9 @@ abstract class PigeonApiResolutionInfo(open val pigeonRegistrar: CameraXLibraryP * See https://developer.android.com/reference/android/util/Range.html. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraIntegerRange( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(lower: Long, upper: Long): android.util.Range<*> /** The lower endpoint. */ @@ -1553,19 +1506,25 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraIntegerRange?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val lowerArg = args[1] as Long val upperArg = args[2] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(lowerArg,upperArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(lowerArg, upperArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1577,36 +1536,40 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Range<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.util.Range<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val lowerArg = lower(pigeon_instanceArg) val upperArg = upper(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, lowerArg, upperArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * VideoRecordEvent is used to report video recording events and status. @@ -1614,37 +1577,43 @@ abstract class PigeonApiCameraIntegerRange(open val pigeonRegistrar: CameraXLibr * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEvent( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * Indicates the start of recording. @@ -1652,44 +1621,49 @@ open class PigeonApiVideoRecordEvent(open val pigeonRegistrar: CameraXLibraryPig * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Start. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEventStart( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } - } /** * Indicates the finalization of recording. @@ -1697,58 +1671,67 @@ open class PigeonApiVideoRecordEventStart(open val pigeonRegistrar: CameraXLibra * See https://developer.android.com/reference/androidx/camera/video/VideoRecordEvent.Finalize. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiVideoRecordEventFinalize(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiVideoRecordEventFinalize( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoRecordEvent] used to access callback methods */ - fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent - { + fun pigeon_getPigeonApiVideoRecordEvent(): PigeonApiVideoRecordEvent { return pigeonRegistrar.getPigeonApiVideoRecordEvent() } - } /** - * A MeteringPoint is used to specify a region which can then be converted to - * sensor coordinate system for focus and metering purpose. + * A MeteringPoint is used to specify a region which can then be converted to sensor coordinate + * system for focus and metering purpose. * * See https://developer.android.com/reference/androidx/camera/core/MeteringPoint. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiMeteringPoint( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Size of the MeteringPoint width and height (ranging from 0 to 1). * - * It is the percentage of the sensor width/height (or crop region - * width/height if crop region is set). + * It is the percentage of the sensor width/height (or crop region width/height if crop region is + * set). */ abstract fun getSize(pigeon_instance: androidx.camera.core.MeteringPoint): Double @@ -1757,16 +1740,21 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPoint?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - listOf(api.getSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1778,16 +1766,19 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPoint and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPoint, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.MeteringPoint, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" @@ -1795,17 +1786,17 @@ abstract class PigeonApiMeteringPoint(open val pigeonRegistrar: CameraXLibraryPi channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A simple callback that can receive from LiveData. @@ -1821,17 +1812,23 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiObserver?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1843,24 +1840,32 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Observer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.lifecycle.Observer<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.lifecycle.Observer<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of Observer, but the class has a nonnull callback method.", + ""))) } } /** Called when the data is changed to value. */ - fun onChanged(pigeon_instanceArg: androidx.lifecycle.Observer<*>, valueArg: Any, callback: (Result) -> Unit) -{ + fun onChanged( + pigeon_instanceArg: androidx.lifecycle.Observer<*>, + valueArg: Any, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -1880,10 +1885,9 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** * An interface for retrieving camera information. @@ -1891,37 +1895,50 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP * See https://developer.android.com/reference/androidx/camera/core/CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Returns the sensor rotation in degrees, relative to the device's "natural" - * (default) orientation. + * Returns the sensor rotation in degrees, relative to the device's "natural" (default) + * orientation. */ abstract fun sensorRotationDegrees(pigeon_instance: androidx.camera.core.CameraInfo): Long /** Returns a ExposureState. */ - abstract fun exposureState(pigeon_instance: androidx.camera.core.CameraInfo): androidx.camera.core.ExposureState + abstract fun exposureState( + pigeon_instance: androidx.camera.core.CameraInfo + ): androidx.camera.core.ExposureState /** A LiveData of the camera's state. */ - abstract fun getCameraState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getCameraState( + pigeon_instance: androidx.camera.core.CameraInfo + ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper /** A LiveData of ZoomState. */ - abstract fun getZoomState(pigeon_instance: androidx.camera.core.CameraInfo): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + abstract fun getZoomState( + pigeon_instance: androidx.camera.core.CameraInfo + ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = try { - listOf(api.getCameraState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1929,16 +1946,21 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo - val wrapped: List = try { - listOf(api.getZoomState(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getZoomState(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -1950,16 +1972,19 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) val exposureStateArg = exposureState(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -1969,27 +1994,30 @@ abstract class PigeonApiCameraInfo(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, sensorRotationDegreesArg, exposureStateArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A set of requirements and priorities used to select a camera or return a - * filtered set of cameras. + * A set of requirements and priorities used to select a camera or return a filtered set of cameras. * * See https://developer.android.com/reference/androidx/camera/core/CameraSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(requireLensFacing: LensFacing?): androidx.camera.core.CameraSelector +abstract class PigeonApiCameraSelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + requireLensFacing: LensFacing? + ): androidx.camera.core.CameraSelector /** A static `CameraSelector` that selects the default back facing camera. */ abstract fun defaultBackCamera(): androidx.camera.core.CameraSelector @@ -1997,29 +2025,35 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP /** A static `CameraSelector` that selects the default front facing camera. */ abstract fun defaultFrontCamera(): androidx.camera.core.CameraSelector - /** - * Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the - * selector. - */ - abstract fun filter(pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List): List + /** Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the selector. */ + abstract fun filter( + pigeon_instance: androidx.camera.core.CameraSelector, + cameraInfos: List + ): List companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val requireLensFacingArg = args[1] as LensFacing? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(requireLensFacingArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2027,17 +2061,23 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultBackCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.defaultBackCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2045,17 +2085,23 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.defaultFrontCamera(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.defaultFrontCamera(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2063,17 +2109,22 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraSelector val cameraInfosArg = args[1] as List - val wrapped: List = try { - listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2085,73 +2136,97 @@ abstract class PigeonApiCameraSelector(open val pigeonRegistrar: CameraXLibraryP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraSelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraSelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A singleton which can be used to bind the lifecycle of cameras to any - * `LifecycleOwner` within an application's process. + * A singleton which can be used to bind the lifecycle of cameras to any `LifecycleOwner` within an + * application's process. * * See https://developer.android.com/reference/androidx/camera/lifecycle/ProcessCameraProvider. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiProcessCameraProvider( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Retrieves the ProcessCameraProvider associated with the current process. */ - abstract fun getInstance(callback: (Result) -> Unit) + abstract fun getInstance( + callback: (Result) -> Unit + ) /** The `CameraInfo` instances of the available cameras. */ - abstract fun getAvailableCameraInfos(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider): List + abstract fun getAvailableCameraInfos( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider + ): List /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ - abstract fun bindToLifecycle(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelector: androidx.camera.core.CameraSelector, useCases: List): androidx.camera.core.Camera + abstract fun bindToLifecycle( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + cameraSelector: androidx.camera.core.CameraSelector, + useCases: List + ): androidx.camera.core.Camera /** Returns true if the `UseCase` is bound to a lifecycle. */ - abstract fun isBound(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase): Boolean + abstract fun isBound( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + useCase: androidx.camera.core.UseCase + ): Boolean /** Unbinds all specified use cases from the lifecycle provider. */ - abstract fun unbind(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCases: List) + abstract fun unbind( + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + useCases: List + ) - /** - * Unbinds all use cases from the lifecycle provider and removes them from - * CameraX. - */ + /** Unbinds all use cases from the lifecycle provider and removes them from CameraX. */ abstract fun unbindAll(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiProcessCameraProvider?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiProcessCameraProvider? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance", + codec) if (api != null) { channel.setMessageHandler { _, reply -> - api.getInstance{ result: Result -> + api.getInstance { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -2166,16 +2241,21 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = try { - listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2183,18 +2263,23 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val cameraSelectorArg = args[1] as androidx.camera.core.CameraSelector val useCasesArg = args[2] as List - val wrapped: List = try { - listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2202,17 +2287,22 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCaseArg = args[1] as androidx.camera.core.UseCase - val wrapped: List = try { - listOf(api.isBound(pigeon_instanceArg, useCaseArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.isBound(pigeon_instanceArg, useCaseArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2220,18 +2310,23 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCasesArg = args[1] as List - val wrapped: List = try { - api.unbind(pigeon_instanceArg, useCasesArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.unbind(pigeon_instanceArg, useCasesArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2239,17 +2334,22 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider - val wrapped: List = try { - api.unbindAll(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.unbindAll(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2261,34 +2361,38 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * The use case which all other use cases are built on top of. @@ -2299,16 +2403,19 @@ abstract class PigeonApiProcessCameraProvider(open val pigeonRegistrar: CameraXL open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.UseCase, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" @@ -2316,48 +2423,56 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * The camera interface is used to control the flow of data to use cases, - * control the camera via the `CameraControl`, and publish the state of the - * camera via CameraInfo. + * The camera interface is used to control the flow of data to use cases, control the camera via the + * `CameraControl`, and publish the state of the camera via CameraInfo. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/Camera. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The `CameraControl` for the Camera. */ - abstract fun cameraControl(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraControl + abstract fun cameraControl( + pigeon_instance: androidx.camera.core.Camera + ): androidx.camera.core.CameraControl /** Returns information about this camera. */ - abstract fun getCameraInfo(pigeon_instance: androidx.camera.core.Camera): androidx.camera.core.CameraInfo + abstract fun getCameraInfo( + pigeon_instance: androidx.camera.core.Camera + ): androidx.camera.core.CameraInfo companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Camera - val wrapped: List = try { - listOf(api.getCameraInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2369,16 +2484,19 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Camera, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.Camera, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val cameraControlArg = cameraControl(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -2387,47 +2505,63 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro channel.send(listOf(pigeon_identifierArg, cameraControlArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** Convenience class for accessing system resources. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiSystemServicesManager( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): SystemServicesManager - abstract fun requestCameraPermissions(pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit) + abstract fun requestCameraPermissions( + pigeon_instance: SystemServicesManager, + enableAudio: Boolean, + callback: (Result) -> Unit + ) - /** - * Returns a path to be used to create a temp file in the current cache - * directory. - */ - abstract fun getTempFilePath(pigeon_instance: SystemServicesManager, prefix: String, suffix: String): String + /** Returns a path to be used to create a temp file in the current cache directory. */ + abstract fun getTempFilePath( + pigeon_instance: SystemServicesManager, + prefix: String, + suffix: String + ): String companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiSystemServicesManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiSystemServicesManager? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2435,13 +2569,18 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val enableAudioArg = args[1] as Boolean - api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> + api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { + result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -2456,18 +2595,23 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as SystemServicesManager val prefixArg = args[1] as String val suffixArg = args[2] as String - val wrapped: List = try { - listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2479,23 +2623,31 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: SystemServicesManager, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: SystemServicesManager, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of SystemServicesManager, but the class has a nonnull callback method.", + ""))) } } - fun onCameraError(pigeon_instanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit) -{ + fun onCameraError( + pigeon_instanceArg: SystemServicesManager, + errorDescriptionArg: String, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2504,7 +2656,8 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, errorDescriptionArg)) { if (it is List<*>) { @@ -2515,60 +2668,70 @@ abstract class PigeonApiSystemServicesManager(open val pigeonRegistrar: CameraXL } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** Contains data when an attempt to retrieve camera permissions fails. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraPermissionsError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraPermissionsError( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun errorCode(pigeon_instance: CameraPermissionsError): String abstract fun description(pigeon_instance: CameraPermissionsError): String @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraPermissionsError and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: CameraPermissionsError, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: CameraPermissionsError, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val errorCodeArg = errorCode(pigeon_instanceArg) val descriptionArg = description(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, errorCodeArg, descriptionArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * Support class to help to determine the media orientation based on the - * orientation of the device. + * Support class to help to determine the media orientation based on the orientation of the device. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiDeviceOrientationManager( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager - abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager, isFrontFacing: Boolean, sensorOrientation: Long) + abstract fun startListeningForDeviceOrientationChange( + pigeon_instance: DeviceOrientationManager, + isFrontFacing: Boolean, + sensorOrientation: Long + ) abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) @@ -2578,20 +2741,29 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDeviceOrientationManager?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiDeviceOrientationManager? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2599,19 +2771,25 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager val isFrontFacingArg = args[1] as Boolean val sensorOrientationArg = args[2] as Long - val wrapped: List = try { - api.startListeningForDeviceOrientationChange(pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.startListeningForDeviceOrientationChange( + pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2619,17 +2797,22 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2637,16 +2820,21 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2654,16 +2842,21 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val wrapped: List = try { - listOf(api.getUiOrientation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getUiOrientation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2674,24 +2867,34 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: DeviceOrientationManager, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: DeviceOrientationManager, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of DeviceOrientationManager, but the class has a nonnull callback method.", + ""))) } } - fun onDeviceOrientationChanged(pigeon_instanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit) -{ + fun onDeviceOrientationChanged( + pigeon_instanceArg: DeviceOrientationManager, + orientationArg: String, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -2700,7 +2903,8 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_instanceArg, orientationArg)) { if (it is List<*>) { @@ -2711,10 +2915,9 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** * A use case that provides a camera preview stream for displaying on-screen. @@ -2723,54 +2926,69 @@ abstract class PigeonApiDeviceOrientationManager(open val pigeonRegistrar: Camer */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.Preview + abstract fun pigeon_defaultConstructor( + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, + targetRotation: Long? + ): androidx.camera.core.Preview - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.resolutionselector.ResolutionSelector? + abstract fun resolutionSelector( + pigeon_instance: androidx.camera.core.Preview + ): androidx.camera.core.resolutionselector.ResolutionSelector? /** * Sets a SurfaceProvider to provide a Surface for Preview. * * This is a convenience function that - * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the - * Flutter engine. + * 1. Creates a `SurfaceProvider` using the `SurfaceProducer` provided by the Flutter engine. * 2. Sets this method with the created `SurfaceProvider`. - * 3. Returns the texture id of the `TextureEntry` that provided the - * `SurfaceProducer`. + * 3. Returns the texture id of the `TextureEntry` that provided the `SurfaceProducer`. */ - abstract fun setSurfaceProvider(pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager): Long + abstract fun setSurfaceProvider( + pigeon_instance: androidx.camera.core.Preview, + systemServicesManager: SystemServicesManager + ): Long - /** - * Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was - * created. - */ + /** Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was created. */ abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) /** Gets selected resolution information of the `Preview`. */ - abstract fun getResolutionInfo(pigeon_instance: androidx.camera.core.Preview): androidx.camera.core.ResolutionInfo? + abstract fun getResolutionInfo( + pigeon_instance: androidx.camera.core.Preview + ): androidx.camera.core.ResolutionInfo? /** Sets the target rotation. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) - abstract fun surfaceProducerHandlesCropAndRotation(pigeon_instance: androidx.camera.core.Preview): Boolean + abstract fun surfaceProducerHandlesCropAndRotation( + pigeon_instance: androidx.camera.core.Preview + ): Boolean companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPreview?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(resolutionSelectorArg, targetRotationArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2778,17 +2996,22 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val systemServicesManagerArg = args[1] as SystemServicesManager - val wrapped: List = try { - listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2796,17 +3019,22 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = try { - api.releaseSurfaceProvider(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.releaseSurfaceProvider(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2814,16 +3042,21 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = try { - listOf(api.getResolutionInfo(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getResolutionInfo(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2831,18 +3064,23 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2850,16 +3088,21 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Preview.surfaceProducerHandlesCropAndRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Preview.surfaceProducerHandlesCropAndRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.Preview - val wrapped: List = try { - listOf(api.surfaceProducerHandlesCropAndRotation(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.surfaceProducerHandlesCropAndRotation(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2871,16 +3114,19 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Preview and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.Preview, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.Preview, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -2889,24 +3135,23 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /** * A use case that provides camera stream suitable for video application. @@ -2914,33 +3159,48 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr * See https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiVideoCapture( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Create a `VideoCapture` associated with the given `VideoOutput`. */ - abstract fun withOutput(videoOutput: androidx.camera.video.VideoOutput): androidx.camera.video.VideoCapture<*> + abstract fun withOutput( + videoOutput: androidx.camera.video.VideoOutput + ): androidx.camera.video.VideoCapture<*> /** Gets the VideoOutput associated with this VideoCapture. */ - abstract fun getOutput(pigeon_instance: androidx.camera.video.VideoCapture<*>): androidx.camera.video.VideoOutput + abstract fun getOutput( + pigeon_instance: androidx.camera.video.VideoCapture<*> + ): androidx.camera.video.VideoOutput /** Sets the desired rotation of the output video. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long) + abstract fun setTargetRotation( + pigeon_instance: androidx.camera.video.VideoCapture<*>, + rotation: Long + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val videoOutputArg = args[1] as androidx.camera.video.VideoOutput - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withOutput(videoOutputArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.withOutput(videoOutputArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2948,16 +3208,21 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> - val wrapped: List = try { - listOf(api.getOutput(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getOutput(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2965,18 +3230,23 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -2988,16 +3258,19 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" @@ -3005,24 +3278,23 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /** * A class that will produce video data from a Surface. @@ -3033,16 +3305,19 @@ abstract class PigeonApiVideoCapture(open val pigeonRegistrar: CameraXLibraryPig open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of VideoOutput and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.VideoOutput, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.VideoOutput, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" @@ -3050,27 +3325,31 @@ open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonPr channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * An implementation of `VideoOutput` for starting video recordings that are - * saved to a File, ParcelFileDescriptor, or MediaStore. + * An implementation of `VideoOutput` for starting video recordings that are saved to a File, + * ParcelFileDescriptor, or MediaStore. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(aspectRatio: Long?, targetVideoEncodingBitRate: Long?, qualitySelector: androidx.camera.video.QualitySelector?): androidx.camera.video.Recorder + abstract fun pigeon_defaultConstructor( + aspectRatio: Long?, + targetVideoEncodingBitRate: Long?, + qualitySelector: androidx.camera.video.QualitySelector? + ): androidx.camera.video.Recorder /** Gets the aspect ratio of this Recorder. */ abstract fun getAspectRatio(pigeon_instance: androidx.camera.video.Recorder): Long @@ -3079,17 +3358,26 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long /** The quality selector of this Recorder. */ - abstract fun getQualitySelector(pigeon_instance: androidx.camera.video.Recorder): androidx.camera.video.QualitySelector + abstract fun getQualitySelector( + pigeon_instance: androidx.camera.video.Recorder + ): androidx.camera.video.QualitySelector /** Prepares a recording that will be saved to a File. */ - abstract fun prepareRecording(pigeon_instance: androidx.camera.video.Recorder, path: String): androidx.camera.video.PendingRecording + abstract fun prepareRecording( + pigeon_instance: androidx.camera.video.Recorder, + path: String + ): androidx.camera.video.PendingRecording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecorder?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -3097,12 +3385,16 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP val aspectRatioArg = args[1] as Long? val targetVideoEncodingBitRateArg = args[2] as Long? val qualitySelectorArg = args[3] as androidx.camera.video.QualitySelector? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(aspectRatioArg,targetVideoEncodingBitRateArg,qualitySelectorArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + aspectRatioArg, targetVideoEncodingBitRateArg, qualitySelectorArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3110,16 +3402,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3127,16 +3424,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3144,16 +3446,21 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder - val wrapped: List = try { - listOf(api.getQualitySelector(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getQualitySelector(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3161,17 +3468,22 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val pathArg = args[1] as String - val wrapped: List = try { - listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3183,16 +3495,19 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recorder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recorder, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.Recorder, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" @@ -3200,46 +3515,56 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiVideoOutput] used to access callback methods */ - fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput - { + fun pigeon_getPigeonApiVideoOutput(): PigeonApiVideoOutput { return pigeonRegistrar.getPigeonApiVideoOutput() } - } /** Listens for `VideoRecordEvent`s from a `PendingRecording`. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiVideoRecordEventListener( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { abstract fun pigeon_defaultConstructor(): VideoRecordEventListener companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiVideoRecordEventListener?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiVideoRecordEventListener? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3250,24 +3575,34 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: VideoRecordEventListener, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: VideoRecordEventListener, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of VideoRecordEventListener, but the class has a nonnull callback method.", + ""))) } } - fun onEvent(pigeon_instanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit) -{ + fun onEvent( + pigeon_instanceArg: VideoRecordEventListener, + eventArg: androidx.camera.video.VideoRecordEvent, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -3287,10 +3622,9 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** * A recording that can be started at a future time. @@ -3298,26 +3632,36 @@ abstract class PigeonApiVideoRecordEventListener(open val pigeonRegistrar: Camer * See https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiPendingRecording( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Starts the recording, making it an active recording. */ - abstract fun start(pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener): androidx.camera.video.Recording + abstract fun start( + pigeon_instance: androidx.camera.video.PendingRecording, + listener: VideoRecordEventListener + ): androidx.camera.video.Recording companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiPendingRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.PendingRecording.start", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording val listenerArg = args[1] as VideoRecordEventListener - val wrapped: List = try { - listOf(api.start(pigeon_instanceArg, listenerArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.start(pigeon_instanceArg, listenerArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3329,34 +3673,38 @@ abstract class PigeonApiPendingRecording(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PendingRecording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.PendingRecording, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.PendingRecording, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * Provides controls for the currently active recording. @@ -3386,17 +3734,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiRecording?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.close", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3404,17 +3755,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.pause", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.pause(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pause(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3422,17 +3776,22 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.resume", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Recording.resume", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.resume(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.resume(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3440,17 +3799,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) + val channel = + BasicMessageChannel( + binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Recording.stop", codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.video.Recording - val wrapped: List = try { - api.stop(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.stop(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3462,16 +3824,19 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Recording and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.Recording, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.Recording, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" @@ -3479,17 +3844,17 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A use case for taking a picture. @@ -3497,16 +3862,30 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageCapture. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?, flashMode: CameraXFlashMode?): androidx.camera.core.ImageCapture - - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageCapture): androidx.camera.core.resolutionselector.ResolutionSelector? +abstract class PigeonApiImageCapture( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, + targetRotation: Long?, + flashMode: CameraXFlashMode? + ): androidx.camera.core.ImageCapture + + abstract fun resolutionSelector( + pigeon_instance: androidx.camera.core.ImageCapture + ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Set the flash mode. */ - abstract fun setFlashMode(pigeon_instance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode) + abstract fun setFlashMode( + pigeon_instance: androidx.camera.core.ImageCapture, + flashMode: CameraXFlashMode + ) /** Captures a new still image for in memory access. */ - abstract fun takePicture(pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) + abstract fun takePicture( + pigeon_instance: androidx.camera.core.ImageCapture, + callback: (Result) -> Unit + ) /** Sets the desired rotation of the output image. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) @@ -3516,20 +3895,29 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageCapture?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? val flashModeArg = args[3] as CameraXFlashMode? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg,flashModeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + resolutionSelectorArg, targetRotationArg, flashModeArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3537,18 +3925,23 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val flashModeArg = args[1] as CameraXFlashMode - val wrapped: List = try { - api.setFlashMode(pigeon_instanceArg, flashModeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setFlashMode(pigeon_instanceArg, flashModeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3556,7 +3949,11 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -3576,18 +3973,23 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3599,16 +4001,19 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageCapture and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageCapture, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageCapture, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -3617,65 +4022,80 @@ abstract class PigeonApiImageCapture(open val pigeonRegistrar: CameraXLibraryPig channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /** - * The resolution strategy defines the resolution selection sequence to select - * the best size. + * The resolution strategy defines the resolution selection sequence to select the best size. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(boundSize: android.util.Size, fallbackRule: ResolutionStrategyFallbackRule): androidx.camera.core.resolutionselector.ResolutionStrategy +abstract class PigeonApiResolutionStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + boundSize: android.util.Size, + fallbackRule: ResolutionStrategyFallbackRule + ): androidx.camera.core.resolutionselector.ResolutionStrategy /** A resolution strategy chooses the highest available resolution. */ - abstract fun highestAvailableStrategy(): androidx.camera.core.resolutionselector.ResolutionStrategy + abstract fun highestAvailableStrategy(): + androidx.camera.core.resolutionselector.ResolutionStrategy /** The specified bound size. */ - abstract fun getBoundSize(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): android.util.Size? + abstract fun getBoundSize( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy + ): android.util.Size? /** - * The fallback rule for choosing an alternate size when the specified bound - * size is unavailable. + * The fallback rule for choosing an alternate size when the specified bound size is unavailable. */ - abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy): ResolutionStrategyFallbackRule + abstract fun getFallbackRule( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy + ): ResolutionStrategyFallbackRule companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val boundSizeArg = args[1] as android.util.Size val fallbackRuleArg = args[2] as ResolutionStrategyFallbackRule - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(boundSizeArg,fallbackRuleArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(boundSizeArg, fallbackRuleArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3683,17 +4103,23 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.highestAvailableStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.highestAvailableStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3701,16 +4127,22 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy - val wrapped: List = try { - listOf(api.getBoundSize(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = + try { + listOf(api.getBoundSize(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3718,16 +4150,22 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy - val wrapped: List = try { - listOf(api.getFallbackRule(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy + val wrapped: List = + try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3739,77 +4177,104 @@ abstract class PigeonApiResolutionStrategy(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A set of requirements and priorities used to select a resolution for the - * `UseCase`. + * A set of requirements and priorities used to select a resolution for the `UseCase`. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionSelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?, resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy?): androidx.camera.core.resolutionselector.ResolutionSelector +abstract class PigeonApiResolutionSelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + resolutionFilter: androidx.camera.core.resolutionselector.ResolutionFilter?, + resolutionStrategy: androidx.camera.core.resolutionselector.ResolutionStrategy?, + aspectRatioStrategy: androidx.camera.core.resolutionselector.AspectRatioStrategy? + ): androidx.camera.core.resolutionselector.ResolutionSelector /** The resolution filter to output the final desired sizes list. */ - abstract fun resolutionFilter(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionFilter? + abstract fun resolutionFilter( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + ): androidx.camera.core.resolutionselector.ResolutionFilter? /** The resolution selection strategy for the `UseCase`. */ - abstract fun resolutionStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.ResolutionStrategy? + abstract fun resolutionStrategy( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + ): androidx.camera.core.resolutionselector.ResolutionStrategy? /** * Returns the specified `AspectRatioStrategy`, or - * `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified - * when creating the ResolutionSelector. + * `AspectRatioStrategy.ratio_4_3FallbackAutoStrategy` if none is specified when creating the + * ResolutionSelector. */ - abstract fun getAspectRatioStrategy(pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun getAspectRatioStrategy( + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + ): androidx.camera.core.resolutionselector.AspectRatioStrategy companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionSelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionFilterArg = args[1] as androidx.camera.core.resolutionselector.ResolutionFilter? - val resolutionStrategyArg = args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? - val aspectRatioStrategyArg = args[3] as androidx.camera.core.resolutionselector.AspectRatioStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionFilterArg,resolutionStrategyArg,aspectRatioStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val resolutionFilterArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionFilter? + val resolutionStrategyArg = + args[2] as androidx.camera.core.resolutionselector.ResolutionStrategy? + val aspectRatioStrategyArg = + args[3] as androidx.camera.core.resolutionselector.AspectRatioStrategy? + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor( + resolutionFilterArg, resolutionStrategyArg, aspectRatioStrategyArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3817,16 +4282,22 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionSelector - val wrapped: List = try { - listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.ResolutionSelector + val wrapped: List = + try { + listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3838,90 +4309,109 @@ abstract class PigeonApiResolutionSelector(open val pigeonRegistrar: CameraXLibr @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionFilterArg = resolutionFilter(pigeon_instanceArg) val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, resolutionFilterArg, resolutionStrategyArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * The aspect ratio strategy defines the sequence of aspect ratios that are - * used to select the best size for a particular image. + * The aspect ratio strategy defines the sequence of aspect ratios that are used to select the best + * size for a particular image. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/AspectRatioStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiAspectRatioStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Creates a new AspectRatioStrategy instance, configured with the specified - * preferred aspect ratio and fallback rule. + * Creates a new AspectRatioStrategy instance, configured with the specified preferred aspect + * ratio and fallback rule. */ - abstract fun pigeon_defaultConstructor(preferredAspectRatio: AspectRatio, fallbackRule: AspectRatioStrategyFallbackRule): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun pigeon_defaultConstructor( + preferredAspectRatio: AspectRatio, + fallbackRule: AspectRatioStrategyFallbackRule + ): androidx.camera.core.resolutionselector.AspectRatioStrategy - /** - * The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 - * in priority. - */ - abstract fun ratio_16_9FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + /** The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 in priority. */ + abstract fun ratio_16_9FallbackAutoStrategy(): + androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The pre-defined default aspect ratio strategy that selects sizes with - * RATIO_4_3 in priority. + * The pre-defined default aspect ratio strategy that selects sizes with RATIO_4_3 in priority. */ - abstract fun ratio_4_3FallbackAutoStrategy(): androidx.camera.core.resolutionselector.AspectRatioStrategy + abstract fun ratio_4_3FallbackAutoStrategy(): + androidx.camera.core.resolutionselector.AspectRatioStrategy /** - * The specified fallback rule for choosing the aspect ratio when the - * preferred aspect ratio is not available. + * The specified fallback rule for choosing the aspect ratio when the preferred aspect ratio is + * not available. */ - abstract fun getFallbackRule(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatioStrategyFallbackRule + abstract fun getFallbackRule( + pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy + ): AspectRatioStrategyFallbackRule /** The specified preferred aspect ratio. */ - abstract fun getPreferredAspectRatio(pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy): AspectRatio + abstract fun getPreferredAspectRatio( + pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy + ): AspectRatio companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAspectRatioStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredAspectRatioArg = args[1] as AspectRatio val fallbackRuleArg = args[2] as AspectRatioStrategyFallbackRule - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(preferredAspectRatioArg,fallbackRuleArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(preferredAspectRatioArg, fallbackRuleArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3929,17 +4419,23 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.ratio_16_9FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3947,17 +4443,23 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.ratio_4_3FallbackAutoStrategy(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3965,16 +4467,22 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy - val wrapped: List = try { - listOf(api.getFallbackRule(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = + try { + listOf(api.getFallbackRule(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -3982,16 +4490,22 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy - val wrapped: List = try { - listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy + val wrapped: List = + try { + listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4003,34 +4517,38 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * Represents the different states the camera can be in. @@ -4038,25 +4556,32 @@ abstract class PigeonApiAspectRatioStrategy(open val pigeonRegistrar: CameraXLib * See https://developer.android.com/reference/androidx/camera/core/CameraState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraState( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The camera's state. */ abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType /** Potentially returns an error the camera encountered. */ - abstract fun error(pigeon_instance: androidx.camera.core.CameraState): androidx.camera.core.CameraState.StateError? + abstract fun error( + pigeon_instance: androidx.camera.core.CameraState + ): androidx.camera.core.CameraState.StateError? @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val errorArg = error(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -4066,17 +4591,17 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige channel.send(listOf(pigeon_identifierArg, typeArg, errorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * An interface which contains the camera exposure related information. @@ -4084,48 +4609,57 @@ abstract class PigeonApiCameraState(open val pigeonRegistrar: CameraXLibraryPige * See https://developer.android.com/reference/androidx/camera/core/ExposureState. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiExposureState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiExposureState( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Get the maximum and minimum exposure compensation values for * `CameraControl.setExposureCompensationIndex`. */ - abstract fun exposureCompensationRange(pigeon_instance: androidx.camera.core.ExposureState): android.util.Range<*> + abstract fun exposureCompensationRange( + pigeon_instance: androidx.camera.core.ExposureState + ): android.util.Range<*> /** Get the smallest step by which the exposure compensation can be changed. */ abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ExposureState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ExposureState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) + channel.send( + listOf(pigeon_identifierArg, exposureCompensationRangeArg, exposureCompensationStepArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure( + CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } } } - } /** * An interface which contains the zoom related information from a camera. @@ -4142,16 +4676,19 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ZoomState, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger @@ -4161,57 +4698,77 @@ abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeon channel.send(listOf(pigeon_identifierArg, minZoomRatioArg, maxZoomRatioArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A use case providing CPU accessible images for an app to perform image - * analysis on. + * A use case providing CPU accessible images for an app to perform image analysis on. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageAnalysis. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, targetRotation: Long?): androidx.camera.core.ImageAnalysis - - abstract fun resolutionSelector(pigeon_instance: androidx.camera.core.ImageAnalysis): androidx.camera.core.resolutionselector.ResolutionSelector? +abstract class PigeonApiImageAnalysis( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + resolutionSelector: androidx.camera.core.resolutionselector.ResolutionSelector?, + targetRotation: Long? + ): androidx.camera.core.ImageAnalysis + + abstract fun resolutionSelector( + pigeon_instance: androidx.camera.core.ImageAnalysis + ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Sets an analyzer to receive and analyze images. */ - abstract fun setAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer) + abstract fun setAnalyzer( + pigeon_instance: androidx.camera.core.ImageAnalysis, + analyzer: androidx.camera.core.ImageAnalysis.Analyzer + ) /** Removes a previously set analyzer. */ abstract fun clearAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis) /** Sets the target rotation. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageAnalysis, rotation: Long) + abstract fun setTargetRotation( + pigeon_instance: androidx.camera.core.ImageAnalysis, + rotation: Long + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageAnalysis?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val resolutionSelectorArg = args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? + val resolutionSelectorArg = + args[1] as androidx.camera.core.resolutionselector.ResolutionSelector? val targetRotationArg = args[2] as Long? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(resolutionSelectorArg,targetRotationArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(resolutionSelectorArg, targetRotationArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4219,18 +4776,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val analyzerArg = args[1] as androidx.camera.core.ImageAnalysis.Analyzer - val wrapped: List = try { - api.setAnalyzer(pigeon_instanceArg, analyzerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setAnalyzer(pigeon_instanceArg, analyzerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4238,17 +4800,22 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis - val wrapped: List = try { - api.clearAnalyzer(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.clearAnalyzer(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4256,18 +4823,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val rotationArg = args[1] as Long - val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.setTargetRotation(pigeon_instanceArg, rotationArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4279,16 +4851,19 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -4297,24 +4872,23 @@ abstract class PigeonApiImageAnalysis(open val pigeonRegistrar: CameraXLibraryPi channel.send(listOf(pigeon_identifierArg, resolutionSelectorArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiUseCase] used to access callback methods */ - fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase - { + fun pigeon_getPigeonApiUseCase(): PigeonApiUseCase { return pigeonRegistrar.getPigeonApiUseCase() } - } /** * Interface for analyzing images. @@ -4330,17 +4904,23 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiAnalyzer?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4352,24 +4932,32 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Analyzer and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { + } else { callback( Result.failure( - CameraXError("new-instance-error", "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.", ""))) + CameraXError( + "new-instance-error", + "Attempting to create a new Dart instance of Analyzer, but the class has a nonnull callback method.", + ""))) } } /** Analyzes an image to produce a result. */ - fun analyze(pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, imageArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) -{ + fun analyze( + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + imageArg: androidx.camera.core.ImageProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( @@ -4389,10 +4977,9 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } - } /** * Error that the camera has encountered. @@ -4400,85 +4987,104 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP * See https://developer.android.com/reference/androidx/camera/core/CameraState.StateError. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraStateStateError(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraStateStateError( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The code of this error. */ - abstract fun code(pigeon_instance: androidx.camera.core.CameraState.StateError): CameraStateErrorCode + abstract fun code( + pigeon_instance: androidx.camera.core.CameraState.StateError + ): CameraStateErrorCode @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraState.StateError, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraState.StateError, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val codeArg = code(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, codeArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * LiveData is a data holder class that can be observed within a given - * lifecycle. + * LiveData is a data holder class that can be observed within a given lifecycle. * - * This is a wrapper around the native class to better support the generic - * type. Java has type erasure; + * This is a wrapper around the native class to better support the generic type. Java has type + * erasure; * * See https://developer.android.com/reference/androidx/lifecycle/LiveData. */ @Suppress("UNCHECKED_CAST") abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The generic type used by this instance. */ - abstract fun type(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): LiveDataSupportedType + abstract fun type( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ): LiveDataSupportedType - /** - * Adds the given observer to the observers list within the lifespan of the - * given owner. - */ - abstract fun observe(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, observer: androidx.lifecycle.Observer<*>) + /** Adds the given observer to the observers list within the lifespan of the given owner. */ + abstract fun observe( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + observer: androidx.lifecycle.Observer<*> + ) /** Removes all observers that are tied to the given `LifecycleOwner`. */ - abstract fun removeObservers(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper) + abstract fun removeObservers( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ) /** Returns the current value. */ - abstract fun getValue(pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper): Any? + abstract fun getValue( + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + ): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiLiveData?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.observe", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val observerArg = args[1] as androidx.lifecycle.Observer<*> - val wrapped: List = try { - api.observe(pigeon_instanceArg, observerArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.observe(pigeon_instanceArg, observerArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4486,17 +5092,23 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = try { - api.removeObservers(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = + try { + api.removeObservers(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4504,16 +5116,22 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.LiveData.getValue", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper - val wrapped: List = try { - listOf(api.getValue(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val pigeon_instanceArg = + args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + val wrapped: List = + try { + listOf(api.getValue(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4525,16 +5143,19 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val typeArg = type(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec @@ -4543,17 +5164,17 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP channel.send(listOf(pigeon_identifierArg, typeArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * An image proxy which has a similar interface as `android.media.Image`. @@ -4561,7 +5182,9 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiImageProxy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The image format. */ abstract fun format(pigeon_instance: androidx.camera.core.ImageProxy): Long @@ -4572,7 +5195,9 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo abstract fun height(pigeon_instance: androidx.camera.core.ImageProxy): Long /** Returns the array of planes. */ - abstract fun getPlanes(pigeon_instance: androidx.camera.core.ImageProxy): List + abstract fun getPlanes( + pigeon_instance: androidx.camera.core.ImageProxy + ): List /** Closes the underlying `android.media.Image`. */ abstract fun close(pigeon_instance: androidx.camera.core.ImageProxy) @@ -4582,16 +5207,21 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiImageProxy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = try { - listOf(api.getPlanes(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getPlanes(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4599,17 +5229,22 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ImageProxy.close", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy - val wrapped: List = try { - api.close(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.close(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4621,16 +5256,19 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ImageProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val formatArg = format(pigeon_instanceArg) val widthArg = width(pigeon_instanceArg) val heightArg = height(pigeon_instanceArg) @@ -4641,26 +5279,27 @@ abstract class PigeonApiImageProxy(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, formatArg, widthArg, heightArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A plane proxy which has an analogous interface as - * `android.media.Image.Plane`. + * A plane proxy which has an analogous interface as `android.media.Image.Plane`. * * See https://developer.android.com/reference/kotlin/androidx/camera/core/ImageProxy.PlaneProxy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiPlaneProxy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** The pixels buffer. */ abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray @@ -4672,16 +5311,19 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val bufferArg = buffer(pigeon_instanceArg) val pixelStrideArg = pixelStride(pigeon_instanceArg) val rowStrideArg = rowStride(pigeon_instanceArg) @@ -4692,53 +5334,70 @@ abstract class PigeonApiPlaneProxy(open val pigeonRegistrar: CameraXLibraryPigeo channel.send(listOf(pigeon_identifierArg, bufferArg, pixelStrideArg, rowStrideArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * Defines a desired quality setting that can be used to configure components - * with quality setting requirements such as creating a Recorder. + * Defines a desired quality setting that can be used to configure components with quality setting + * requirements such as creating a Recorder. * * See https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiQualitySelector( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets an instance of QualitySelector with a desired quality. */ - abstract fun from(quality: VideoQuality, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + abstract fun from( + quality: VideoQuality, + fallbackStrategy: androidx.camera.video.FallbackStrategy? + ): androidx.camera.video.QualitySelector /** Gets an instance of QualitySelector with ordered desired qualities. */ - abstract fun fromOrderedList(qualities: List, fallbackStrategy: androidx.camera.video.FallbackStrategy?): androidx.camera.video.QualitySelector + abstract fun fromOrderedList( + qualities: List, + fallbackStrategy: androidx.camera.video.FallbackStrategy? + ): androidx.camera.video.QualitySelector /** Gets the corresponding resolution from the input quality. */ - abstract fun getResolution(cameraInfo: androidx.camera.core.CameraInfo, quality: VideoQuality): android.util.Size? + abstract fun getResolution( + cameraInfo: androidx.camera.core.CameraInfo, + quality: VideoQuality + ): android.util.Size? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiQualitySelector?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(qualityArg,fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(qualityArg, fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4746,19 +5405,25 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualitiesArg = args[1] as List val fallbackStrategyArg = args[2] as androidx.camera.video.FallbackStrategy? - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.fromOrderedList(qualitiesArg,fallbackStrategyArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.fromOrderedList(qualitiesArg, fallbackStrategyArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4766,17 +5431,22 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val cameraInfoArg = args[0] as androidx.camera.core.CameraInfo val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - listOf(api.getResolution(cameraInfoArg, qualityArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getResolution(cameraInfoArg, qualityArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4788,65 +5458,74 @@ abstract class PigeonApiQualitySelector(open val pigeonRegistrar: CameraXLibrary @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of QualitySelector and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.QualitySelector, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.QualitySelector, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A class represents the strategy that will be adopted when the device does - * not support all the desired Quality in QualitySelector in order to select - * the quality as possible. + * A class represents the strategy that will be adopted when the device does not support all the + * desired Quality in QualitySelector in order to select the quality as possible. * * See https://developer.android.com/reference/androidx/camera/video/FallbackStrategy. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFallbackStrategy( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Returns a fallback strategy that will choose the quality that is closest - * to and higher than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and higher than the + * input quality. */ - abstract fun higherQualityOrLowerThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + abstract fun higherQualityOrLowerThan( + quality: VideoQuality + ): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and higher than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and higher than the + * input quality. */ abstract fun higherQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and lower than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and lower than the + * input quality. */ - abstract fun lowerQualityOrHigherThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy + abstract fun lowerQualityOrHigherThan( + quality: VideoQuality + ): androidx.camera.video.FallbackStrategy /** - * Returns a fallback strategy that will choose the quality that is closest - * to and lower than the input quality. + * Returns a fallback strategy that will choose the quality that is closest to and lower than the + * input quality. */ abstract fun lowerQualityThan(quality: VideoQuality): androidx.camera.video.FallbackStrategy @@ -4855,18 +5534,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFallbackStrategy?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.higherQualityOrLowerThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4874,18 +5559,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.higherQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.higherQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4893,18 +5584,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.lowerQualityOrHigherThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4912,18 +5609,24 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val qualityArg = args[1] as VideoQuality - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.lowerQualityThan(qualityArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.lowerQualityThan(qualityArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -4935,68 +5638,93 @@ abstract class PigeonApiFallbackStrategy(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.video.FallbackStrategy, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.video.FallbackStrategy, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * The CameraControl provides various asynchronous operations like zoom, focus - * and metering which affects output of all UseCases currently bound to that - * camera. + * The CameraControl provides various asynchronous operations like zoom, focus and metering which + * affects output of all UseCases currently bound to that camera. * * See https://developer.android.com/reference/androidx/camera/core/CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraControl( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Enable the torch or disable the torch. */ - abstract fun enableTorch(pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit) + abstract fun enableTorch( + pigeon_instance: androidx.camera.core.CameraControl, + torch: Boolean, + callback: (Result) -> Unit + ) /** Sets current zoom by ratio. */ - abstract fun setZoomRatio(pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit) - - /** - * Starts a focus and metering action configured by the - * `FocusMeteringAction`. - */ - abstract fun startFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) + abstract fun setZoomRatio( + pigeon_instance: androidx.camera.core.CameraControl, + ratio: Double, + callback: (Result) -> Unit + ) + + /** Starts a focus and metering action configured by the `FocusMeteringAction`. */ + abstract fun startFocusAndMetering( + pigeon_instance: androidx.camera.core.CameraControl, + action: androidx.camera.core.FocusMeteringAction, + callback: (Result) -> Unit + ) /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ - abstract fun cancelFocusAndMetering(pigeon_instance: androidx.camera.core.CameraControl, callback: (Result) -> Unit) + abstract fun cancelFocusAndMetering( + pigeon_instance: androidx.camera.core.CameraControl, + callback: (Result) -> Unit + ) /** Set the exposure compensation value for the camera. */ - abstract fun setExposureCompensationIndex(pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit) + abstract fun setExposureCompensationIndex( + pigeon_instance: androidx.camera.core.CameraControl, + index: Long, + callback: (Result) -> Unit + ) companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraControl?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5016,7 +5744,11 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5036,13 +5768,18 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val actionArg = args[1] as androidx.camera.core.FocusMeteringAction - api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> + api.startFocusAndMetering(pigeon_instanceArg, actionArg) { + result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5057,7 +5794,11 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5076,13 +5817,18 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val indexArg = args[1] as Long - api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result -> + api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result + -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5101,16 +5847,19 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.CameraControl, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.CameraControl, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" @@ -5118,63 +5867,86 @@ abstract class PigeonApiCameraControl(open val pigeonRegistrar: CameraXLibraryPi channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * The builder used to create the `FocusMeteringAction`. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction.Builder. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - /** - * Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | - * FLAG_AE | FLAG_AWB. - */ - abstract fun pigeon_defaultConstructor(point: androidx.camera.core.MeteringPoint): androidx.camera.core.FocusMeteringAction.Builder +abstract class PigeonApiFocusMeteringActionBuilder( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + /** Creates a Builder from a `MeteringPoint` with default mode FLAG_AF | FLAG_AE | FLAG_AWB. */ + abstract fun pigeon_defaultConstructor( + point: androidx.camera.core.MeteringPoint + ): androidx.camera.core.FocusMeteringAction.Builder /** Creates a Builder from a `MeteringPoint` and `MeteringMode`. */ - abstract fun withMode(point: androidx.camera.core.MeteringPoint, mode: MeteringMode): androidx.camera.core.FocusMeteringAction.Builder + abstract fun withMode( + point: androidx.camera.core.MeteringPoint, + mode: MeteringMode + ): androidx.camera.core.FocusMeteringAction.Builder /** Adds another MeteringPoint with default metering mode. */ - abstract fun addPoint(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint) + abstract fun addPoint( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + point: androidx.camera.core.MeteringPoint + ) /** Adds another MeteringPoint with specified meteringMode. */ - abstract fun addPointWithMode(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, mode: MeteringMode) + abstract fun addPointWithMode( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + point: androidx.camera.core.MeteringPoint, + mode: MeteringMode + ) /** Disables the auto-cancel. */ abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) /** Builds the `FocusMeteringAction` instance. */ - abstract fun build(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder): androidx.camera.core.FocusMeteringAction + abstract fun build( + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder + ): androidx.camera.core.FocusMeteringAction companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiFocusMeteringActionBuilder?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiFocusMeteringActionBuilder? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(pointArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5182,19 +5954,25 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.withMode(pointArg,modeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.withMode(pointArg, modeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5202,18 +5980,23 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint - val wrapped: List = try { - api.addPoint(pigeon_instanceArg, pointArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.addPoint(pigeon_instanceArg, pointArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5221,19 +6004,24 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode - val wrapped: List = try { - api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5241,17 +6029,22 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = try { - api.disableAutoCancel(pigeon_instanceArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.disableAutoCancel(pigeon_instanceArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5259,16 +6052,21 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder - val wrapped: List = try { - listOf(api.build(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.build(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5279,35 +6077,41 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A configuration used to trigger a focus and/or metering action. @@ -5315,53 +6119,74 @@ abstract class PigeonApiFocusMeteringActionBuilder(open val pigeonRegistrar: Cam * See https://developer.android.com/reference/kotlin/androidx/camera/core/FocusMeteringAction. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFocusMeteringAction( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** All MeteringPoints used for AE regions. */ - abstract fun meteringPointsAe(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAe( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** All MeteringPoints used for AF regions. */ - abstract fun meteringPointsAf(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAf( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** All MeteringPoints used for AWB regions. */ - abstract fun meteringPointsAwb(pigeon_instance: androidx.camera.core.FocusMeteringAction): List + abstract fun meteringPointsAwb( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): List /** If auto-cancel is enabled or not. */ - abstract fun isAutoCancelEnabled(pigeon_instance: androidx.camera.core.FocusMeteringAction): Boolean + abstract fun isAutoCancelEnabled( + pigeon_instance: androidx.camera.core.FocusMeteringAction + ): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_identifierArg, meteringPointsAeArg, meteringPointsAfArg, meteringPointsAwbArg, isAutoCancelEnabledArg)) { - if (it is List<*>) { - if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) - } else { - callback(Result.success(Unit)) + channel.send( + listOf( + pigeon_identifierArg, + meteringPointsAeArg, + meteringPointsAfArg, + meteringPointsAwbArg, + isAutoCancelEnabledArg)) { + if (it is List<*>) { + if (it.size > 1) { + callback( + Result.failure( + CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + } else { + callback(Result.success(Unit)) + } + } else { + callback(Result.failure(createConnectionError(channelName))) + } } - } else { - callback(Result.failure(createConnectionError(channelName))) - } - } } } - } /** * Result of the `CameraControl.startFocusAndMetering`. @@ -5369,53 +6194,60 @@ abstract class PigeonApiFocusMeteringAction(open val pigeonRegistrar: CameraXLib * See https://developer.android.com/reference/androidx/camera/core/FocusMeteringResult. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiFocusMeteringResult(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiFocusMeteringResult( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** If auto focus is successful. */ abstract fun isFocusSuccessful(pigeon_instance: androidx.camera.core.FocusMeteringResult): Boolean @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg, isFocusSuccessfulArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * An immutable package of settings and outputs needed to capture a single - * image from the camera device. + * An immutable package of settings and outputs needed to capture a single image from the camera + * device. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCaptureRequest( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Whether auto-exposure (AE) is currently locked to its latest calculated - * values. + * Whether auto-exposure (AE) is currently locked to its latest calculated values. * * Value is boolean. * @@ -5428,17 +6260,23 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequest?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.controlAELock(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.controlAELock(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5450,106 +6288,130 @@ abstract class PigeonApiCaptureRequest(open val pigeonRegistrar: CameraXLibraryP @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequest and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CaptureRequest, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A Key is used to do capture request field lookups with CaptureRequest.get or - * to set fields with `CaptureRequest.Builder.set`. + * A Key is used to do capture request field lookups with CaptureRequest.get or to set fields with + * `CaptureRequest.Builder.set`. * * See https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCaptureRequestKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiCaptureRequestKey( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A bundle of Camera2 capture request options. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptions. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun pigeon_defaultConstructor(options: Map, Any?>): androidx.camera.camera2.interop.CaptureRequestOptions - - /** - * Returns a value for the given CaptureRequestKey or null if it hasn't been - * set. - */ - abstract fun getCaptureRequestOption(pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, key: android.hardware.camera2.CaptureRequest.Key<*>): Any? +abstract class PigeonApiCaptureRequestOptions( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun pigeon_defaultConstructor( + options: Map, Any?> + ): androidx.camera.camera2.interop.CaptureRequestOptions + + /** Returns a value for the given CaptureRequestKey or null if it hasn't been set. */ + abstract fun getCaptureRequestOption( + pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, + key: android.hardware.camera2.CaptureRequest.Key<*> + ): Any? companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCaptureRequestOptions?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCaptureRequestOptions? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val optionsArg = args[1] as Map, Any?> - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(optionsArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5557,17 +6419,23 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.CaptureRequestOptions + val pigeon_instanceArg = + args[0] as androidx.camera.camera2.interop.CaptureRequestOptions val keyArg = args[1] as android.hardware.camera2.CaptureRequest.Key<*> - val wrapped: List = try { - listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5579,69 +6447,87 @@ abstract class PigeonApiCaptureRequestOptions(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * An class that provides ability to interoperate with the - * 1android.hardware.camera21 APIs. + * An class that provides ability to interoperate with the 1android.hardware.camera21 APIs. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraControl. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCamera2CameraControl( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets the `Camera2CameraControl` from a `CameraControl`. */ - abstract fun from(cameraControl: androidx.camera.core.CameraControl): androidx.camera.camera2.interop.Camera2CameraControl + abstract fun from( + cameraControl: androidx.camera.core.CameraControl + ): androidx.camera.camera2.interop.Camera2CameraControl - /** - * Adds a `CaptureRequestOptions` updates the session with the options it - * contains. - */ - abstract fun addCaptureRequestOptions(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, bundle: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit) + /** Adds a `CaptureRequestOptions` updates the session with the options it contains. */ + abstract fun addCaptureRequestOptions( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, + bundle: androidx.camera.camera2.interop.CaptureRequestOptions, + callback: (Result) -> Unit + ) companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraControl?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCamera2CameraControl? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraControlArg = args[1] as androidx.camera.core.CameraControl - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraControlArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(cameraControlArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5649,7 +6535,11 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -5673,62 +6563,77 @@ abstract class PigeonApiCamera2CameraControl(open val pigeonRegistrar: CameraXLi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * Applications can filter out unsuitable sizes and sort the resolution list in - * the preferred order by implementing the resolution filter interface. + * Applications can filter out unsuitable sizes and sort the resolution list in the preferred order + * by implementing the resolution filter interface. * - * See https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/core/resolutionselector/ResolutionFilter. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { - abstract fun createWithOnePreferredSize(preferredSize: android.util.Size): androidx.camera.core.resolutionselector.ResolutionFilter +abstract class PigeonApiResolutionFilter( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { + abstract fun createWithOnePreferredSize( + preferredSize: android.util.Size + ): androidx.camera.core.resolutionselector.ResolutionFilter companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiResolutionFilter?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val preferredSizeArg = args[1] as android.util.Size - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.createWithOnePreferredSize(preferredSizeArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5740,73 +6645,85 @@ abstract class PigeonApiResolutionFilter(open val pigeonRegistrar: CameraXLibrar @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A Key is used to do camera characteristics field lookups with - * `CameraCharacteristics.get`. + * A Key is used to do camera characteristics field lookups with `CameraCharacteristics.get`. * - * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. + * See + * https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics.Key.html. */ @Suppress("UNCHECKED_CAST") -open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +open class PigeonApiCameraCharacteristicsKey( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * The properties describing a `CameraDevice`. @@ -5814,7 +6731,9 @@ open class PigeonApiCameraCharacteristicsKey(open val pigeonRegistrar: CameraXLi * See https://developer.android.com/reference/android/hardware/camera2/CameraCharacteristics. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCameraCharacteristics( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** * Generally classifies the overall set of the camera device functionality. * @@ -5825,8 +6744,8 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL abstract fun infoSupportedHardwareLevel(): android.hardware.camera2.CameraCharacteristics.Key<*> /** - * Clockwise angle through which the output image needs to be rotated to be - * upright on the device screen in its native orientation.. + * Clockwise angle through which the output image needs to be rotated to be upright on the device + * screen in its native orientation.. * * Value is int. * @@ -5836,20 +6755,29 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCameraCharacteristics?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiCameraCharacteristics? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.infoSupportedHardwareLevel(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.infoSupportedHardwareLevel(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5857,17 +6785,23 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.sensorOrientation(), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.sensorOrientation(), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5879,68 +6813,88 @@ abstract class PigeonApiCameraCharacteristics(open val pigeonRegistrar: CameraXL @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * An interface for retrieving Camera2-related camera information. * - * See https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. + * See + * https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/Camera2CameraInfo. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiCamera2CameraInfo( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Gets the `Camera2CameraInfo` from a `CameraInfo`. */ - abstract fun from(cameraInfo: androidx.camera.core.CameraInfo): androidx.camera.camera2.interop.Camera2CameraInfo + abstract fun from( + cameraInfo: androidx.camera.core.CameraInfo + ): androidx.camera.camera2.interop.Camera2CameraInfo /** Gets the string camera ID. */ - abstract fun getCameraId(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo): String + abstract fun getCameraId( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo + ): String /** Gets a camera characteristic value. */ - abstract fun getCameraCharacteristic(pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, key: android.hardware.camera2.CameraCharacteristics.Key<*>): Any? + abstract fun getCameraCharacteristic( + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, + key: android.hardware.camera2.CameraCharacteristics.Key<*> + ): Any? companion object { @Suppress("LocalVariableName") fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiCamera2CameraInfo?) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_identifierArg = args[0] as Long val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.from(cameraInfoArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.from(cameraInfoArg), pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5948,16 +6902,21 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo - val wrapped: List = try { - listOf(api.getCameraId(pigeon_instanceArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraId(pigeon_instanceArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5965,17 +6924,22 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val keyArg = args[1] as android.hardware.camera2.CameraCharacteristics.Key<*> - val wrapped: List = try { - listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -5987,34 +6951,38 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** * A factory to create a MeteringPoint. @@ -6022,30 +6990,49 @@ abstract class PigeonApiCamera2CameraInfo(open val pigeonRegistrar: CameraXLibra * See https://developer.android.com/reference/androidx/camera/core/MeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiMeteringPointFactory( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** Creates a MeteringPoint by x, y. */ - abstract fun createPoint(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double): androidx.camera.core.MeteringPoint + abstract fun createPoint( + pigeon_instance: androidx.camera.core.MeteringPointFactory, + x: Double, + y: Double + ): androidx.camera.core.MeteringPoint /** Creates a MeteringPoint by x, y, size. */ - abstract fun createPointWithSize(pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double, size: Double): androidx.camera.core.MeteringPoint + abstract fun createPointWithSize( + pigeon_instance: androidx.camera.core.MeteringPointFactory, + x: Double, + y: Double, + size: Double + ): androidx.camera.core.MeteringPoint companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiMeteringPointFactory?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiMeteringPointFactory? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double - val wrapped: List = try { - listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6053,7 +7040,11 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi } } run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -6061,11 +7052,12 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi val xArg = args[1] as Double val yArg = args[2] as Double val sizeArg = args[3] as Double - val wrapped: List = try { - listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6077,57 +7069,73 @@ abstract class PigeonApiMeteringPointFactory(open val pigeonRegistrar: CameraXLi @Suppress("LocalVariableName", "FunctionName") /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, callback: (Result) -> Unit) -{ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } - } /** - * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint - * which can then be used to construct a FocusMeteringAction to start a focus - * and metering action. + * A MeteringPointFactory that can convert a View (x, y) into a MeteringPoint which can then be used + * to construct a FocusMeteringAction to start a focus and metering action. * - * See https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. + * See + * https://developer.android.com/reference/androidx/camera/core/DisplayOrientedMeteringPointFactory. */ @Suppress("UNCHECKED_CAST") -abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { +abstract class PigeonApiDisplayOrientedMeteringPointFactory( + open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar +) { /** - * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) - * into a MeteringPoint based on the current display's rotation and - * CameraInfo. + * Creates a DisplayOrientedMeteringPointFactory for converting View (x, y) into a MeteringPoint + * based on the current display's rotation and CameraInfo. */ - abstract fun pigeon_defaultConstructor(cameraInfo: androidx.camera.core.CameraInfo, width: Double, height: Double): androidx.camera.core.DisplayOrientedMeteringPointFactory + abstract fun pigeon_defaultConstructor( + cameraInfo: androidx.camera.core.CameraInfo, + width: Double, + height: Double + ): androidx.camera.core.DisplayOrientedMeteringPointFactory companion object { @Suppress("LocalVariableName") - fun setUpMessageHandlers(binaryMessenger: BinaryMessenger, api: PigeonApiDisplayOrientedMeteringPointFactory?) { + fun setUpMessageHandlers( + binaryMessenger: BinaryMessenger, + api: PigeonApiDisplayOrientedMeteringPointFactory? + ) { val codec = api?.pigeonRegistrar?.codec ?: CameraXLibraryPigeonCodec() run { - val channel = BasicMessageChannel(binaryMessenger, "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", codec) + val channel = + BasicMessageChannel( + binaryMessenger, + "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor", + codec) if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List @@ -6135,12 +7143,15 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis val cameraInfoArg = args[1] as androidx.camera.core.CameraInfo val widthArg = args[2] as Double val heightArg = args[3] as Double - val wrapped: List = try { - api.pigeonRegistrar.instanceManager.addDartCreatedInstance(api.pigeon_defaultConstructor(cameraInfoArg,widthArg,heightArg), pigeon_identifierArg) - listOf(null) - } catch (exception: Throwable) { - wrapError(exception) - } + val wrapped: List = + try { + api.pigeonRegistrar.instanceManager.addDartCreatedInstance( + api.pigeon_defaultConstructor(cameraInfoArg, widthArg, heightArg), + pigeon_identifierArg) + listOf(null) + } catch (exception: Throwable) { + wrapError(exception) + } reply.reply(wrapped) } } else { @@ -6151,40 +7162,46 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory(open val pigeonRegis } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, callback: (Result) -> Unit) -{ + /** + * Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to + * [pigeon_instanceArg]. + */ + fun pigeon_newInstance( + pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, + callback: (Result) -> Unit + ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) - } else { - val pigeon_identifierArg = pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + } else { + val pigeon_identifierArg = + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec - val channelName = "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" + val channelName = + "dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) channel.send(listOf(pigeon_identifierArg)) { if (it is List<*>) { if (it.size > 1) { - callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) + callback( + Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) } else { callback(Result.success(Unit)) } } else { callback(Result.failure(createConnectionError(channelName))) - } + } } } } @Suppress("FunctionName") /** An implementation of [PigeonApiMeteringPointFactory] used to access callback methods */ - fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory - { + fun pigeon_getPigeonApiMeteringPointFactory(): PigeonApiMeteringPointFactory { return pigeonRegistrar.getPigeonApiMeteringPointFactory() } - } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index 0c7afa967ea..0d520ff1dbf 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -70,19 +70,21 @@ public void releaseSurfaceProvider(@NonNull Preview pigeon_instance) { surfaceProducer.release(); return; } - throw new IllegalStateException("releaseFlutterSurfaceTexture() cannot be called if the flutterSurfaceProducer for the camera preview has not yet been initialized."); + throw new IllegalStateException( + "releaseFlutterSurfaceTexture() cannot be called if the flutterSurfaceProducer for the camera preview has not yet been initialized."); } @Override public boolean surfaceProducerHandlesCropAndRotation(@NonNull Preview pigeon_instance) { final TextureRegistry.SurfaceProducer surfaceProducer = - surfaceProducers.remove(pigeon_instance); + surfaceProducers.remove(pigeon_instance); if (surfaceProducer != null) { return surfaceProducer.handlesCropAndRotation(); } throw new IllegalStateException( - "surfaceProducerHandlesCropAndRotation() cannot be called if the flutterSurfaceProducer for the camera preview has not yet been initialized."); + "surfaceProducerHandlesCropAndRotation() cannot be called if the flutterSurfaceProducer for the camera preview has not yet been initialized."); } + @Nullable @Override public androidx.camera.core.ResolutionInfo getResolutionInfo(Preview pigeon_instance) { diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java index 93b4b645512..5e2f279b17f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java @@ -262,17 +262,17 @@ public void setTargetRotation() { surfaceProducerHandlesCropAndRotation_returnsIfSurfaceProducerHandlesCropAndRotation() { final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); final TextureRegistry.SurfaceProducer mockSurfaceProducer = - mock(TextureRegistry.SurfaceProducer.class); + mock(TextureRegistry.SurfaceProducer.class); when(mockSurfaceProducer.id()).thenReturn(0L); when(mockTextureRegistry.createSurfaceProducer()).thenReturn(mockSurfaceProducer); final PigeonApiPreview api = - new TestProxyApiRegistrar() { - @NonNull - @Override - TextureRegistry getTextureRegistry() { - return mockTextureRegistry; - } - }.getPigeonApiPreview(); + new TestProxyApiRegistrar() { + @NonNull + @Override + TextureRegistry getTextureRegistry() { + return mockTextureRegistry; + } + }.getPigeonApiPreview(); final Preview instance = mock(Preview.class); final SystemServicesManager systemServicesManager = mock(SystemServicesManager.class); diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index e784904b749..1e42e383194 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -8,7 +8,8 @@ import 'dart:async'; import 'dart:typed_data' show Float64List, Int32List, Int64List, Uint8List; -import 'package:flutter/foundation.dart' show ReadBuffer, WriteBuffer, immutable, protected; +import 'package:flutter/foundation.dart' + show ReadBuffer, WriteBuffer, immutable, protected; import 'package:flutter/services.dart'; import 'package:flutter/widgets.dart' show WidgetsFlutterBinding; @@ -19,7 +20,8 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse({Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse( + {Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; } @@ -28,6 +30,7 @@ List wrapResponse({Object? result, PlatformException? error, bool empty } return [error.code, error.message, error.details]; } + /// An immutable object that serves as the base class for all ProxyApis and /// can provide functional copies of itself. /// @@ -110,9 +113,10 @@ class PigeonInstanceManager { // by calling instanceManager.getIdentifier() inside of `==` while this was a // HashMap). final Expando _identifiers = Expando(); - final Map> _weakInstances = - >{}; - final Map _strongInstances = {}; + final Map> + _weakInstances = >{}; + final Map _strongInstances = + {}; late final Finalizer _finalizer; int _nextIdentifier = 0; @@ -122,7 +126,8 @@ class PigeonInstanceManager { static PigeonInstanceManager _initInstance() { WidgetsFlutterBinding.ensureInitialized(); - final _PigeonInternalInstanceManagerApi api = _PigeonInternalInstanceManagerApi(); + final _PigeonInternalInstanceManagerApi api = + _PigeonInternalInstanceManagerApi(); // Clears the native `PigeonInstanceManager` on the initial use of the Dart one. api.clear(); final PigeonInstanceManager instanceManager = PigeonInstanceManager( @@ -130,59 +135,111 @@ class PigeonInstanceManager { api.removeStrongReference(identifier); }, ); - _PigeonInternalInstanceManagerApi.setUpMessageHandlers(instanceManager: instanceManager); - CameraSize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraIntegerRange.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEvent.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventStart.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventFinalize.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPoint.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Observer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ProcessCameraProvider.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - UseCase.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + _PigeonInternalInstanceManagerApi.setUpMessageHandlers( + instanceManager: instanceManager); + CameraSize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraIntegerRange.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEvent.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventStart.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventFinalize.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPoint.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Observer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ProcessCameraProvider.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + UseCase.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - SystemServicesManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraPermissionsError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - DeviceOrientationManager.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Preview.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoOutput.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recorder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - VideoRecordEventListener.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PendingRecording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Recording.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageCapture.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionSelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - AspectRatioStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ExposureState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ZoomState.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageAnalysis.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Analyzer.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraStateStateError.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - LiveData.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ImageProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - PlaneProxy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - QualitySelector.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FallbackStrategy.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringActionBuilder.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringAction.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - FocusMeteringResult.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequest.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CaptureRequestOptions.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraControl.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - ResolutionFilter.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristicsKey.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - CameraCharacteristics.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - Camera2CameraInfo.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - MeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); - DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); + SystemServicesManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraPermissionsError.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DeviceOrientationManager.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Preview.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoOutput.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recorder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + VideoRecordEventListener.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PendingRecording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Recording.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageCapture.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionSelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + AspectRatioStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ExposureState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ZoomState.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageAnalysis.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Analyzer.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraStateStateError.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + LiveData.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ImageProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + PlaneProxy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + QualitySelector.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FallbackStrategy.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringAction.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + FocusMeteringResult.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequest.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CaptureRequestOptions.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraControl.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + ResolutionFilter.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristicsKey.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + CameraCharacteristics.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + Camera2CameraInfo.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + MeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); + DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( + pigeon_instanceManager: instanceManager); return instanceManager; } @@ -246,15 +303,20 @@ class PigeonInstanceManager { /// /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. - T? getInstanceWithWeakReference(int identifier) { - final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; + T? getInstanceWithWeakReference( + int identifier) { + final PigeonInternalProxyApiBaseClass? weakInstance = + _weakInstances[identifier]?.target; if (weakInstance == null) { - final PigeonInternalProxyApiBaseClass? strongInstance = _strongInstances[identifier]; + final PigeonInternalProxyApiBaseClass? strongInstance = + _strongInstances[identifier]; if (strongInstance != null) { - final PigeonInternalProxyApiBaseClass copy = strongInstance.pigeon_copy(); + final PigeonInternalProxyApiBaseClass copy = + strongInstance.pigeon_copy(); _identifiers[copy] = identifier; - _weakInstances[identifier] = WeakReference(copy); + _weakInstances[identifier] = + WeakReference(copy); _finalizer.attach(copy, identifier, detach: copy); return copy as T; } @@ -278,17 +340,20 @@ class PigeonInstanceManager { /// added. /// /// Returns unique identifier of the [instance] added. - void addHostCreatedInstance(PigeonInternalProxyApiBaseClass instance, int identifier) { + void addHostCreatedInstance( + PigeonInternalProxyApiBaseClass instance, int identifier) { _addInstanceWithIdentifier(instance, identifier); } - void _addInstanceWithIdentifier(PigeonInternalProxyApiBaseClass instance, int identifier) { + void _addInstanceWithIdentifier( + PigeonInternalProxyApiBaseClass instance, int identifier) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = WeakReference(instance); + _weakInstances[identifier] = + WeakReference(instance); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -415,29 +480,29 @@ class _PigeonInternalInstanceManagerApi { } class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { - const _PigeonInternalProxyApiBaseCodec(this.instanceManager); - final PigeonInstanceManager instanceManager; - @override - void writeValue(WriteBuffer buffer, Object? value) { - if (value is PigeonInternalProxyApiBaseClass) { - buffer.putUint8(128); - writeValue(buffer, instanceManager.getIdentifier(value)); - } else { - super.writeValue(buffer, value); - } - } - @override - Object? readValueOfType(int type, ReadBuffer buffer) { - switch (type) { - case 128: - return instanceManager - .getInstanceWithWeakReference(readValue(buffer)! as int); - default: - return super.readValueOfType(type, buffer); - } - } -} + const _PigeonInternalProxyApiBaseCodec(this.instanceManager); + final PigeonInstanceManager instanceManager; + @override + void writeValue(WriteBuffer buffer, Object? value) { + if (value is PigeonInternalProxyApiBaseClass) { + buffer.putUint8(128); + writeValue(buffer, instanceManager.getIdentifier(value)); + } else { + super.writeValue(buffer, value); + } + } + @override + Object? readValueOfType(int type, ReadBuffer buffer) { + switch (type) { + case 128: + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); + default: + return super.readValueOfType(type, buffer); + } + } +} /// Generally classifies the overall set of the camera device functionality. /// @@ -446,13 +511,17 @@ enum InfoSupportedHardwareLevel { /// This camera device is capable of YUV reprocessing and RAW data capture, in /// addition to FULL-level capabilities. level3, + /// This camera device is backed by an external camera connected to this /// Android device. external, + /// This camera device is capable of supporting advanced imaging applications. full, + /// This camera device is running in backward compatibility mode. legacy, + /// This camera device does not have enough capabilities to qualify as a FULL /// device or better. limited, @@ -464,10 +533,13 @@ enum InfoSupportedHardwareLevel { enum AspectRatio { /// 16:9 standard aspect ratio. ratio16To9, + /// 4:3 standard aspect ratio. ratio4To3, + /// The aspect ratio representing no preference for aspect ratio. ratioDefault, + /// The value is not recognized by the wrapper. unknown, } @@ -478,15 +550,20 @@ enum AspectRatio { enum CameraStateType { /// Represents a state where the camera device is closed. closed, + /// Represents a state where the camera device is currently closing. closing, + /// Represents a state where the camera device is open. open, + /// Represents a state where the camera device is currently opening. opening, + /// Represents a state where the camera is waiting for a signal to attempt to /// open the camera device. pendingOpen, + /// This value is not recognized by this wrapper. unknown, } @@ -506,14 +583,19 @@ enum LiveDataSupportedType { enum VideoQuality { /// Standard Definition (SD) 480p video quality. SD, + /// High Definition (HD) 720p video quality. HD, + /// Full High Definition (FHD) 1080p video quality. FHD, + /// Ultra High Definition (UHD) 2160p video quality. UHD, + /// The lowest video quality supported by the video frame producer. lowest, + /// The highest video quality supported by the video frame producer. highest, } @@ -525,9 +607,11 @@ enum MeteringMode { /// A flag used in metering mode indicating the AE (Auto Exposure) region is /// enabled. ae, + /// A flag used in metering mode indicating the AF (Auto Focus) region is /// enabled. af, + /// A flag used in metering mode indicating the AWB (Auto White Balance) /// region is enabled. awb, @@ -539,12 +623,15 @@ enum MeteringMode { enum LensFacing { /// A camera on the device facing the same direction as the device's screen. front, + /// A camera on the device facing the opposite direction as the device's /// screen. back, + /// An external camera that has no fixed facing relative to the device's /// screen. external, + /// A camera on the devices that its lens facing is resolved. unknown, } @@ -558,10 +645,12 @@ enum CameraXFlashMode { /// The flash will be used according to the camera system's determination when /// taking a picture. auto, + /// No flash. /// /// The flash will never be used when taking a picture. off, + /// Always flash. /// /// The flash will always be used when taking a picture. @@ -576,18 +665,23 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to the /// closest higher resolution size. closestHigher, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest higher resolution size. closestHigherThenLower, + /// When the specified bound size is unavailable, CameraX falls back to the /// closest lower resolution size. closestLower, + /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. closestLowerThenHigher, + /// CameraX doesn't select an alternate size when the specified bound size is /// unavailable. none, + /// The value is not recognized by the wrapper. unknown, } @@ -601,9 +695,11 @@ enum AspectRatioStrategyFallbackRule { /// the closest field of view (FOV) of the camera sensor, from the remaining /// options. auto, + /// CameraX doesn't fall back to select sizes of any other aspect ratio when /// this fallback rule is used. none, + /// The value is not recognized by the wrapper. unknown, } @@ -615,29 +711,35 @@ enum CameraStateErrorCode { /// An error indicating that the camera device could not be opened due to a /// device policy. cameraDisabled, + /// An error indicating that the camera device was closed due to a fatal /// error. cameraFatalError, + /// An error indicating that the camera device is already in use. cameraInUse, + /// An error indicating that the camera could not be opened because "Do Not /// Disturb" mode is enabled on devices affected by a bug in Android 9 (API /// level 28). doNotDisturbModeEnabled, + /// An error indicating that the limit number of open cameras has been /// reached, and more cameras cannot be opened until other instances are /// closed. maxCamerasInUse, + /// An error indicating that the camera device has encountered a recoverable /// error. otherRecoverableError, + /// An error indicating that configuring the camera has failed. streamConfig, + /// The value is not recognized by this wrapper. unknown, } - class _PigeonCodec extends StandardMessageCodec { const _PigeonCodec(); @override @@ -645,37 +747,37 @@ class _PigeonCodec extends StandardMessageCodec { if (value is int) { buffer.putUint8(4); buffer.putInt64(value); - } else if (value is InfoSupportedHardwareLevel) { + } else if (value is InfoSupportedHardwareLevel) { buffer.putUint8(129); writeValue(buffer, value.index); - } else if (value is AspectRatio) { + } else if (value is AspectRatio) { buffer.putUint8(130); writeValue(buffer, value.index); - } else if (value is CameraStateType) { + } else if (value is CameraStateType) { buffer.putUint8(131); writeValue(buffer, value.index); - } else if (value is LiveDataSupportedType) { + } else if (value is LiveDataSupportedType) { buffer.putUint8(132); writeValue(buffer, value.index); - } else if (value is VideoQuality) { + } else if (value is VideoQuality) { buffer.putUint8(133); writeValue(buffer, value.index); - } else if (value is MeteringMode) { + } else if (value is MeteringMode) { buffer.putUint8(134); writeValue(buffer, value.index); - } else if (value is LensFacing) { + } else if (value is LensFacing) { buffer.putUint8(135); writeValue(buffer, value.index); - } else if (value is CameraXFlashMode) { + } else if (value is CameraXFlashMode) { buffer.putUint8(136); writeValue(buffer, value.index); - } else if (value is ResolutionStrategyFallbackRule) { + } else if (value is ResolutionStrategyFallbackRule) { buffer.putUint8(137); writeValue(buffer, value.index); - } else if (value is AspectRatioStrategyFallbackRule) { + } else if (value is AspectRatioStrategyFallbackRule) { buffer.putUint8(138); writeValue(buffer, value.index); - } else if (value is CameraStateErrorCode) { + } else if (value is CameraStateErrorCode) { buffer.putUint8(139); writeValue(buffer, value.index); } else { @@ -686,37 +788,41 @@ class _PigeonCodec extends StandardMessageCodec { @override Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { - case 129: + case 129: final int? value = readValue(buffer) as int?; return value == null ? null : InfoSupportedHardwareLevel.values[value]; - case 130: + case 130: final int? value = readValue(buffer) as int?; return value == null ? null : AspectRatio.values[value]; - case 131: + case 131: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateType.values[value]; - case 132: + case 132: final int? value = readValue(buffer) as int?; return value == null ? null : LiveDataSupportedType.values[value]; - case 133: + case 133: final int? value = readValue(buffer) as int?; return value == null ? null : VideoQuality.values[value]; - case 134: + case 134: final int? value = readValue(buffer) as int?; return value == null ? null : MeteringMode.values[value]; - case 135: + case 135: final int? value = readValue(buffer) as int?; return value == null ? null : LensFacing.values[value]; - case 136: + case 136: final int? value = readValue(buffer) as int?; return value == null ? null : CameraXFlashMode.values[value]; - case 137: + case 137: final int? value = readValue(buffer) as int?; - return value == null ? null : ResolutionStrategyFallbackRule.values[value]; - case 138: + return value == null + ? null + : ResolutionStrategyFallbackRule.values[value]; + case 138: final int? value = readValue(buffer) as int?; - return value == null ? null : AspectRatioStrategyFallbackRule.values[value]; - case 139: + return value == null + ? null + : AspectRatioStrategyFallbackRule.values[value]; + case 139: final int? value = readValue(buffer) as int?; return value == null ? null : CameraStateErrorCode.values[value]; default: @@ -724,6 +830,7 @@ class _PigeonCodec extends StandardMessageCodec { } } } + /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. @@ -8712,4 +8819,3 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { ); } } - diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index 2deaf32a639..75962ae8c2e 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -32,179 +32,179 @@ import 'package:mockito/src/dummies.dart' as _i6; class _FakePigeonInstanceManager_0 extends _i1.SmartFake implements _i2.PigeonInstanceManager { _FakePigeonInstanceManager_0(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeAnalyzer_1 extends _i1.SmartFake implements _i2.Analyzer { _FakeAnalyzer_1(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeAspectRatioStrategy_2 extends _i1.SmartFake implements _i2.AspectRatioStrategy { _FakeAspectRatioStrategy_2(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraControl_3 extends _i1.SmartFake implements _i2.CameraControl { _FakeCameraControl_3(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraInfo_4 extends _i1.SmartFake implements _i2.CameraInfo { _FakeCameraInfo_4(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera_5 extends _i1.SmartFake implements _i2.Camera { _FakeCamera_5(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeExposureState_6 extends _i1.SmartFake implements _i2.ExposureState { _FakeExposureState_6(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeLiveData_7 extends _i1.SmartFake implements _i3.LiveData { _FakeLiveData_7(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraInfo_8 extends _i1.SmartFake implements _i3.CameraInfo { _FakeCameraInfo_8(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraCharacteristicsKey_9 extends _i1.SmartFake implements _i2.CameraCharacteristicsKey { _FakeCameraCharacteristicsKey_9(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraSize_10 extends _i1.SmartFake implements _i2.CameraSize { _FakeCameraSize_10(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera2CameraControl_11 extends _i1.SmartFake implements _i2.Camera2CameraControl { _FakeCamera2CameraControl_11(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera2CameraInfo_12 extends _i1.SmartFake implements _i2.Camera2CameraInfo { _FakeCamera2CameraInfo_12(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraImageFormat_13 extends _i1.SmartFake implements _i4.CameraImageFormat { _FakeCameraImageFormat_13(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraSelector_14 extends _i1.SmartFake implements _i2.CameraSelector { _FakeCameraSelector_14(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraIntegerRange_15 extends _i1.SmartFake implements _i2.CameraIntegerRange { _FakeCameraIntegerRange_15(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeObserver_16 extends _i1.SmartFake implements _i3.Observer { _FakeObserver_16(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeSystemServicesManager_17 extends _i1.SmartFake implements _i2.SystemServicesManager { _FakeSystemServicesManager_17(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeDeviceOrientationManager_18 extends _i1.SmartFake implements _i2.DeviceOrientationManager { _FakeDeviceOrientationManager_18(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePreview_19 extends _i1.SmartFake implements _i2.Preview { _FakePreview_19(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoCapture_20 extends _i1.SmartFake implements _i2.VideoCapture { _FakeVideoCapture_20(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeRecorder_21 extends _i1.SmartFake implements _i2.Recorder { _FakeRecorder_21(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoRecordEventListener_22 extends _i1.SmartFake implements _i2.VideoRecordEventListener { _FakeVideoRecordEventListener_22(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageCapture_23 extends _i1.SmartFake implements _i2.ImageCapture { _FakeImageCapture_23(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionStrategy_24 extends _i1.SmartFake implements _i2.ResolutionStrategy { _FakeResolutionStrategy_24(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionSelector_25 extends _i1.SmartFake implements _i2.ResolutionSelector { _FakeResolutionSelector_25(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageAnalysis_26 extends _i1.SmartFake implements _i2.ImageAnalysis { _FakeImageAnalysis_26(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeQualitySelector_27 extends _i1.SmartFake implements _i2.QualitySelector { _FakeQualitySelector_27(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFallbackStrategy_28 extends _i1.SmartFake implements _i2.FallbackStrategy { _FakeFallbackStrategy_28(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringActionBuilder_29 extends _i1.SmartFake implements _i2.FocusMeteringActionBuilder { _FakeFocusMeteringActionBuilder_29(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCaptureRequestOptions_30 extends _i1.SmartFake implements _i2.CaptureRequestOptions { _FakeCaptureRequestOptions_30(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionFilter_31 extends _i1.SmartFake implements _i2.ResolutionFilter { _FakeResolutionFilter_31(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake @@ -218,61 +218,61 @@ class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake class _FakeProcessCameraProvider_33 extends _i1.SmartFake implements _i2.ProcessCameraProvider { _FakeProcessCameraProvider_33(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCaptureRequestKey_34 extends _i1.SmartFake implements _i2.CaptureRequestKey { _FakeCaptureRequestKey_34(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeMeteringPoint_35 extends _i1.SmartFake implements _i2.MeteringPoint { _FakeMeteringPoint_35(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringAction_36 extends _i1.SmartFake implements _i2.FocusMeteringAction { _FakeFocusMeteringAction_36(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringResult_37 extends _i1.SmartFake implements _i2.FocusMeteringResult { _FakeFocusMeteringResult_37(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageProxy_38 extends _i1.SmartFake implements _i2.ImageProxy { _FakeImageProxy_38(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeRecording_39 extends _i1.SmartFake implements _i2.Recording { _FakeRecording_39(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePendingRecording_40 extends _i1.SmartFake implements _i2.PendingRecording { _FakePendingRecording_40(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePlaneProxy_41 extends _i1.SmartFake implements _i2.PlaneProxy { _FakePlaneProxy_41(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoOutput_42 extends _i1.SmartFake implements _i2.VideoOutput { _FakeVideoOutput_42(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeZoomState_43 extends _i1.SmartFake implements _i2.ZoomState { _FakeZoomState_43(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } /// A class which mocks [Analyzer]. @@ -282,43 +282,37 @@ class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { @override void Function(_i2.Analyzer, _i2.ImageProxy) get analyze => (super.noSuchMethod( - Invocation.getter(#analyze), - returnValue: - (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, - returnValueForMissingStub: - (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, - ) - as void Function(_i2.Analyzer, _i2.ImageProxy)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.Analyzer pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeAnalyzer_1( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeAnalyzer_1( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Analyzer); + Invocation.getter(#analyze), + returnValue: (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + returnValueForMissingStub: + (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + ) as void Function(_i2.Analyzer, _i2.ImageProxy)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.Analyzer pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Analyzer); } /// A class which mocks [AspectRatioStrategy]. @@ -327,61 +321,54 @@ class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { class MockAspectRatioStrategy extends _i1.Mock implements _i2.AspectRatioStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method(#getFallbackRule, []), - returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto, - ), - returnValueForMissingStub: - _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto, - ), - ) - as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); - - @override - _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => - (super.noSuchMethod( - Invocation.method(#getPreferredAspectRatio, []), - returnValue: _i5.Future<_i2.AspectRatio>.value( - _i2.AspectRatio.ratio16To9, - ), - returnValueForMissingStub: _i5.Future<_i2.AspectRatio>.value( - _i2.AspectRatio.ratio16To9, - ), - ) - as _i5.Future<_i2.AspectRatio>); - - @override - _i2.AspectRatioStrategy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeAspectRatioStrategy_2( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeAspectRatioStrategy_2( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.AspectRatioStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + returnValueForMissingStub: + _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + ) as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); + + @override + _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => (super.noSuchMethod( + Invocation.method(#getPreferredAspectRatio, []), + returnValue: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + returnValueForMissingStub: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + ) as _i5.Future<_i2.AspectRatio>); + + @override + _i2.AspectRatioStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.AspectRatioStrategy); } /// A class which mocks [Camera]. @@ -389,62 +376,54 @@ class MockAspectRatioStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera extends _i1.Mock implements _i2.Camera { @override - _i2.CameraControl get cameraControl => - (super.noSuchMethod( - Invocation.getter(#cameraControl), - returnValue: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - ) - as _i2.CameraControl); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.CameraInfo> getCameraInfo() => - (super.noSuchMethod( - Invocation.method(#getCameraInfo, []), - returnValue: _i5.Future<_i2.CameraInfo>.value( - _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), - ), - returnValueForMissingStub: _i5.Future<_i2.CameraInfo>.value( - _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), - ), - ) - as _i5.Future<_i2.CameraInfo>); - - @override - _i2.Camera pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera_5( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera_5( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Camera); + _i2.CameraControl get cameraControl => (super.noSuchMethod( + Invocation.getter(#cameraControl), + returnValue: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + ) as _i2.CameraControl); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.CameraInfo> getCameraInfo() => (super.noSuchMethod( + Invocation.method(#getCameraInfo, []), + returnValue: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + ) as _i5.Future<_i2.CameraInfo>); + + @override + _i2.Camera pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Camera); } /// A class which mocks [CameraInfo]. @@ -452,98 +431,87 @@ class MockCamera extends _i1.Mock implements _i2.Camera { /// See the documentation for Mockito's code generation for more information. class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { @override - int get sensorRotationDegrees => - (super.noSuchMethod( - Invocation.getter(#sensorRotationDegrees), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); + int get sensorRotationDegrees => (super.noSuchMethod( + Invocation.getter(#sensorRotationDegrees), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.ExposureState get exposureState => (super.noSuchMethod( + Invocation.getter(#exposureState), + returnValue: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + ) as _i2.ExposureState); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i2.ExposureState get exposureState => + _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => (super.noSuchMethod( - Invocation.getter(#exposureState), - returnValue: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - ) - as _i2.ExposureState); + Invocation.method(#getCameraState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + ) as _i5.Future<_i3.LiveData<_i2.CameraState>>); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => (super.noSuchMethod( + Invocation.method(#getZoomState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + ) as _i5.Future<_i3.LiveData<_i2.ZoomState>>); @override - _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => - (super.noSuchMethod( - Invocation.method(#getCameraState, []), - returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#getCameraState, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#getCameraState, []), - ), - ), - ) - as _i5.Future<_i3.LiveData<_i2.CameraState>>); - - @override - _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => - (super.noSuchMethod( - Invocation.method(#getZoomState, []), - returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#getZoomState, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#getZoomState, []), - ), - ), - ) - as _i5.Future<_i3.LiveData<_i2.ZoomState>>); - - @override - _i3.CameraInfo pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraInfo_8( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraInfo_8( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.CameraInfo); + _i3.CameraInfo pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.CameraInfo); } /// A class which mocks [CameraCharacteristicsKey]. @@ -552,34 +520,30 @@ class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { class MockCameraCharacteristicsKey extends _i1.Mock implements _i2.CameraCharacteristicsKey { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.CameraCharacteristicsKey pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraCharacteristicsKey); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.CameraCharacteristicsKey pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraCharacteristicsKey); } /// A class which mocks [CameraControl]. @@ -587,82 +551,69 @@ class MockCameraCharacteristicsKey extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCameraControl extends _i1.Mock implements _i2.CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future enableTorch(bool? torch) => - (super.noSuchMethod( - Invocation.method(#enableTorch, [torch]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future enableTorch(bool? torch) => (super.noSuchMethod( + Invocation.method(#enableTorch, [torch]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future setZoomRatio(double? ratio) => - (super.noSuchMethod( - Invocation.method(#setZoomRatio, [ratio]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future setZoomRatio(double? ratio) => (super.noSuchMethod( + Invocation.method(#setZoomRatio, [ratio]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future<_i2.FocusMeteringResult?> startFocusAndMetering( _i2.FocusMeteringAction? action, ) => (super.noSuchMethod( - Invocation.method(#startFocusAndMetering, [action]), - returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), - returnValueForMissingStub: - _i5.Future<_i2.FocusMeteringResult?>.value(), - ) - as _i5.Future<_i2.FocusMeteringResult?>); + Invocation.method(#startFocusAndMetering, [action]), + returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), + returnValueForMissingStub: _i5.Future<_i2.FocusMeteringResult?>.value(), + ) as _i5.Future<_i2.FocusMeteringResult?>); @override - _i5.Future cancelFocusAndMetering() => - (super.noSuchMethod( - Invocation.method(#cancelFocusAndMetering, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future cancelFocusAndMetering() => (super.noSuchMethod( + Invocation.method(#cancelFocusAndMetering, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future setExposureCompensationIndex(int? index) => (super.noSuchMethod( - Invocation.method(#setExposureCompensationIndex, [index]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#setExposureCompensationIndex, [index]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.CameraControl pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraControl_3( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraControl); + _i2.CameraControl pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraControl); } /// A class which mocks [CameraSize]. @@ -670,52 +621,44 @@ class MockCameraControl extends _i1.Mock implements _i2.CameraControl { /// See the documentation for Mockito's code generation for more information. class MockCameraSize extends _i1.Mock implements _i2.CameraSize { @override - int get width => - (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get height => - (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.CameraSize pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraSize_10( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraSize_10( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraSize); + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.CameraSize pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraSize); } /// A class which mocks [Camera2CameraControl]. @@ -724,45 +667,40 @@ class MockCameraSize extends _i1.Mock implements _i2.CameraSize { class MockCamera2CameraControl extends _i1.Mock implements _i2.Camera2CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future addCaptureRequestOptions( _i2.CaptureRequestOptions? bundle, ) => (super.noSuchMethod( - Invocation.method(#addCaptureRequestOptions, [bundle]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#addCaptureRequestOptions, [bundle]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Camera2CameraControl pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera2CameraControl_11( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera2CameraControl_11( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Camera2CameraControl); + _i2.Camera2CameraControl pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Camera2CameraControl); } /// A class which mocks [Camera2CameraInfo]. @@ -770,58 +708,51 @@ class MockCamera2CameraControl extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future getCameraId() => - (super.noSuchMethod( - Invocation.method(#getCameraId, []), - returnValue: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#getCameraId, [])), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#getCameraId, [])), - ), - ) - as _i5.Future); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future getCameraId() => (super.noSuchMethod( + Invocation.method(#getCameraId, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + ) as _i5.Future); @override _i5.Future getCameraCharacteristic( _i2.CameraCharacteristicsKey? key, ) => (super.noSuchMethod( - Invocation.method(#getCameraCharacteristic, [key]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#getCameraCharacteristic, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Camera2CameraInfo pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera2CameraInfo_12( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera2CameraInfo_12( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Camera2CameraInfo); + _i2.Camera2CameraInfo pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Camera2CameraInfo); } /// A class which mocks [CameraImageData]. @@ -830,46 +761,38 @@ class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { // ignore: must_be_immutable class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { @override - _i4.CameraImageFormat get format => - (super.noSuchMethod( - Invocation.getter(#format), - returnValue: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - returnValueForMissingStub: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - ) - as _i4.CameraImageFormat); + _i4.CameraImageFormat get format => (super.noSuchMethod( + Invocation.getter(#format), + returnValue: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + returnValueForMissingStub: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + ) as _i4.CameraImageFormat); @override - int get height => - (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); @override - int get width => - (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); @override - List<_i4.CameraImagePlane> get planes => - (super.noSuchMethod( - Invocation.getter(#planes), - returnValue: <_i4.CameraImagePlane>[], - returnValueForMissingStub: <_i4.CameraImagePlane>[], - ) - as List<_i4.CameraImagePlane>); + List<_i4.CameraImagePlane> get planes => (super.noSuchMethod( + Invocation.getter(#planes), + returnValue: <_i4.CameraImagePlane>[], + returnValueForMissingStub: <_i4.CameraImagePlane>[], + ) as List<_i4.CameraImagePlane>); } /// A class which mocks [CameraSelector]. @@ -877,47 +800,42 @@ class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { /// See the documentation for Mockito's code generation for more information. class MockCameraSelector extends _i1.Mock implements _i2.CameraSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future> filter(List<_i2.CameraInfo>? cameraInfos) => (super.noSuchMethod( - Invocation.method(#filter, [cameraInfos]), - returnValue: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - ) - as _i5.Future>); - - @override - _i2.CameraSelector pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraSelector_14( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraSelector_14( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraSelector); + Invocation.method(#filter, [cameraInfos]), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) as _i5.Future>); + + @override + _i2.CameraSelector pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraSelector); } /// A class which mocks [CameraXProxy]. @@ -928,25 +846,20 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { void Function({ _i8.BinaryMessenger? pigeonBinaryMessenger, _i2.PigeonInstanceManager? pigeonInstanceManager, - }) - get setUpGenericsProxy => - (super.noSuchMethod( - Invocation.getter(#setUpGenericsProxy), - returnValue: - ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - ) - as void Function({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - })); + }) get setUpGenericsProxy => (super.noSuchMethod( + Invocation.getter(#setUpGenericsProxy), + returnValue: ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + ) as void Function({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + })); @override _i2.CameraSize Function({ @@ -954,33 +867,28 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newCameraSize => - (super.noSuchMethod( - Invocation.getter(#newCameraSize), - returnValue: - ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), - returnValueForMissingStub: - ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), - ) - as _i2.CameraSize Function({ - required int height, - required int width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newCameraSize => (super.noSuchMethod( + Invocation.getter(#newCameraSize), + returnValue: ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + returnValueForMissingStub: ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + ) as _i2.CameraSize Function({ + required int height, + required int width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraIntegerRange Function({ @@ -988,176 +896,158 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int upper, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newCameraIntegerRange => - (super.noSuchMethod( - Invocation.getter(#newCameraIntegerRange), - returnValue: - ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - returnValueForMissingStub: - ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - ) - as _i2.CameraIntegerRange Function({ - required int lower, - required int upper, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newCameraIntegerRange => (super.noSuchMethod( + Invocation.getter(#newCameraIntegerRange), + returnValue: ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => + _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + returnValueForMissingStub: ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => + _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + ) as _i2.CameraIntegerRange Function({ + required int lower, + required int upper, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i3.Observer Function({ required void Function(_i3.Observer, T) onChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newObserver => - (super.noSuchMethod( - Invocation.getter(#newObserver), - returnValue: - ({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16(this, Invocation.getter(#newObserver)), - returnValueForMissingStub: - ({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16(this, Invocation.getter(#newObserver)), - ) - as _i3.Observer Function({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newObserver => (super.noSuchMethod( + Invocation.getter(#newObserver), + returnValue: ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + returnValueForMissingStub: ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + ) as _i3.Observer Function({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.LensFacing? requireLensFacing, - }) - get newCameraSelector => - (super.noSuchMethod( - Invocation.getter(#newCameraSelector), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - ) - as _i2.CameraSelector Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - })); + }) get newCameraSelector => (super.noSuchMethod( + Invocation.getter(#newCameraSelector), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => + _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => + _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + ) as _i2.CameraSelector Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + })); @override _i2.SystemServicesManager Function({ required void Function(_i2.SystemServicesManager, String) onCameraError, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newSystemServicesManager => - (super.noSuchMethod( - Invocation.getter(#newSystemServicesManager), - returnValue: - ({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - returnValueForMissingStub: - ({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - ) - as _i2.SystemServicesManager Function({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newSystemServicesManager => (super.noSuchMethod( + Invocation.getter(#newSystemServicesManager), + returnValue: ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + returnValueForMissingStub: ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + ) as _i2.SystemServicesManager Function({ + required void Function(_i2.SystemServicesManager, String) onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DeviceOrientationManager Function({ required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newDeviceOrientationManager => - (super.noSuchMethod( - Invocation.getter(#newDeviceOrientationManager), - returnValue: - ({ - required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - returnValueForMissingStub: - ({ - required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - ) - as _i2.DeviceOrientationManager Function({ - required void Function(_i2.DeviceOrientationManager, String) + }) get newDeviceOrientationManager => (super.noSuchMethod( + Invocation.getter(#newDeviceOrientationManager), + returnValue: ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + returnValueForMissingStub: ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + ) as _i2.DeviceOrientationManager Function({ + required void Function(_i2.DeviceOrientationManager, String) onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Preview Function({ @@ -1165,65 +1055,59 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) - get newPreview => - (super.noSuchMethod( - Invocation.getter(#newPreview), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakePreview_19(this, Invocation.getter(#newPreview)), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakePreview_19(this, Invocation.getter(#newPreview)), - ) - as _i2.Preview Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) get newPreview => (super.noSuchMethod( + Invocation.getter(#newPreview), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakePreview_19(this, Invocation.getter(#newPreview)), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakePreview_19(this, Invocation.getter(#newPreview)), + ) as _i2.Preview Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.VideoCapture Function({ required _i2.VideoOutput videoOutput, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get withOutputVideoCapture => - (super.noSuchMethod( - Invocation.getter(#withOutputVideoCapture), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - ) - as _i2.VideoCapture Function({ - required _i2.VideoOutput videoOutput, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get withOutputVideoCapture => (super.noSuchMethod( + Invocation.getter(#withOutputVideoCapture), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => + _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => + _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + ) as _i2.VideoCapture Function({ + required _i2.VideoOutput videoOutput, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Recorder Function({ @@ -1232,81 +1116,72 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.QualitySelector? qualitySelector, int? targetVideoEncodingBitRate, - }) - get newRecorder => - (super.noSuchMethod( - Invocation.getter(#newRecorder), - returnValue: - ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), - returnValueForMissingStub: - ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), - ) - as _i2.Recorder Function({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - })); + }) get newRecorder => (super.noSuchMethod( + Invocation.getter(#newRecorder), + returnValue: ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => + _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + returnValueForMissingStub: ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => + _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + ) as _i2.Recorder Function({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + })); @override _i2.VideoRecordEventListener Function({ required void Function(_i2.VideoRecordEventListener, _i2.VideoRecordEvent) - onEvent, + onEvent, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newVideoRecordEventListener => - (super.noSuchMethod( - Invocation.getter(#newVideoRecordEventListener), - returnValue: - ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) - onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - returnValueForMissingStub: - ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) - onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - ) - as _i2.VideoRecordEventListener Function({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) - onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newVideoRecordEventListener => (super.noSuchMethod( + Invocation.getter(#newVideoRecordEventListener), + returnValue: ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + returnValueForMissingStub: ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + ) as _i2.VideoRecordEventListener Function({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageCapture Function({ @@ -1315,40 +1190,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) - get newImageCapture => - (super.noSuchMethod( - Invocation.getter(#newImageCapture), - returnValue: - ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - returnValueForMissingStub: - ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - ) - as _i2.ImageCapture Function({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) get newImageCapture => (super.noSuchMethod( + Invocation.getter(#newImageCapture), + returnValue: ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + returnValueForMissingStub: ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + ) as _i2.ImageCapture Function({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.ResolutionStrategy Function({ @@ -1356,37 +1228,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.ResolutionStrategyFallbackRule fallbackRule, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newResolutionStrategy => - (super.noSuchMethod( - Invocation.getter(#newResolutionStrategy), - returnValue: - ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - returnValueForMissingStub: - ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - ) - as _i2.ResolutionStrategy Function({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newResolutionStrategy => (super.noSuchMethod( + Invocation.getter(#newResolutionStrategy), + returnValue: ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + returnValueForMissingStub: ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + ) as _i2.ResolutionStrategy Function({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ResolutionSelector Function({ @@ -1395,40 +1264,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionFilter? resolutionFilter, _i2.ResolutionStrategy? resolutionStrategy, - }) - get newResolutionSelector => - (super.noSuchMethod( - Invocation.getter(#newResolutionSelector), - returnValue: - ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - returnValueForMissingStub: - ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - ) - as _i2.ResolutionSelector Function({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - })); + }) get newResolutionSelector => (super.noSuchMethod( + Invocation.getter(#newResolutionSelector), + returnValue: ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => + _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + returnValueForMissingStub: ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => + _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + ) as _i2.ResolutionSelector Function({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + })); @override _i2.AspectRatioStrategy Function({ @@ -1436,37 +1302,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.AspectRatio preferredAspectRatio, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newAspectRatioStrategy => - (super.noSuchMethod( - Invocation.getter(#newAspectRatioStrategy), - returnValue: - ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - returnValueForMissingStub: - ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - ) - as _i2.AspectRatioStrategy Function({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - required _i2.AspectRatio preferredAspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newAspectRatioStrategy => (super.noSuchMethod( + Invocation.getter(#newAspectRatioStrategy), + returnValue: ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => + _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + returnValueForMissingStub: ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => + _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + ) as _i2.AspectRatioStrategy Function({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + required _i2.AspectRatio preferredAspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageAnalysis Function({ @@ -1474,65 +1337,59 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) - get newImageAnalysis => - (super.noSuchMethod( - Invocation.getter(#newImageAnalysis), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - ) - as _i2.ImageAnalysis Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) get newImageAnalysis => (super.noSuchMethod( + Invocation.getter(#newImageAnalysis), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + ) as _i2.ImageAnalysis Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.Analyzer Function({ required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newAnalyzer => - (super.noSuchMethod( - Invocation.getter(#newAnalyzer), - returnValue: - ({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), - returnValueForMissingStub: - ({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), - ) - as _i2.Analyzer Function({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newAnalyzer => (super.noSuchMethod( + Invocation.getter(#newAnalyzer), + returnValue: ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + returnValueForMissingStub: ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + ) as _i2.Analyzer Function({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1540,37 +1397,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromQualitySelector => - (super.noSuchMethod( - Invocation.getter(#fromQualitySelector), - returnValue: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - returnValueForMissingStub: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - ) - as _i2.QualitySelector Function({ - required _i2.VideoQuality quality, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromQualitySelector => (super.noSuchMethod( + Invocation.getter(#fromQualitySelector), + returnValue: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + returnValueForMissingStub: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + ) as _i2.QualitySelector Function({ + required _i2.VideoQuality quality, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1578,207 +1432,189 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromOrderedListQualitySelector => - (super.noSuchMethod( - Invocation.getter(#fromOrderedListQualitySelector), - returnValue: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - returnValueForMissingStub: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - ) - as _i2.QualitySelector Function({ - required List<_i2.VideoQuality> qualities, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromOrderedListQualitySelector => (super.noSuchMethod( + Invocation.getter(#fromOrderedListQualitySelector), + returnValue: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + returnValueForMissingStub: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + ) as _i2.QualitySelector Function({ + required List<_i2.VideoQuality> qualities, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get higherQualityOrLowerThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get higherQualityOrLowerThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get higherQualityThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#higherQualityThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get higherQualityThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#higherQualityThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get lowerQualityOrHigherThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get lowerQualityOrHigherThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get lowerQualityThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#lowerQualityThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get lowerQualityThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#lowerQualityThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newFocusMeteringActionBuilder => - (super.noSuchMethod( - Invocation.getter(#newFocusMeteringActionBuilder), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - ) - as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newFocusMeteringActionBuilder => (super.noSuchMethod( + Invocation.getter(#newFocusMeteringActionBuilder), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + ) as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ @@ -1786,37 +1622,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get withModeFocusMeteringActionBuilder => - (super.noSuchMethod( - Invocation.getter(#withModeFocusMeteringActionBuilder), - returnValue: - ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - returnValueForMissingStub: - ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - ) - as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringMode mode, - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get withModeFocusMeteringActionBuilder => (super.noSuchMethod( + Invocation.getter(#withModeFocusMeteringActionBuilder), + returnValue: ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + returnValueForMissingStub: ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + ) as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringMode mode, + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set withModeFocusMeteringActionBuilder( @@ -1825,49 +1658,46 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _withModeFocusMeteringActionBuilder, - ) => super.noSuchMethod( - Invocation.setter( - #withModeFocusMeteringActionBuilder, - _withModeFocusMeteringActionBuilder, - ), - returnValueForMissingStub: null, - ); + })? _withModeFocusMeteringActionBuilder, + ) => + super.noSuchMethod( + Invocation.setter( + #withModeFocusMeteringActionBuilder, + _withModeFocusMeteringActionBuilder, + ), + returnValueForMissingStub: null, + ); @override _i2.CaptureRequestOptions Function({ required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newCaptureRequestOptions => - (super.noSuchMethod( - Invocation.getter(#newCaptureRequestOptions), - returnValue: - ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - returnValueForMissingStub: - ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - ) - as _i2.CaptureRequestOptions Function({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newCaptureRequestOptions => (super.noSuchMethod( + Invocation.getter(#newCaptureRequestOptions), + returnValue: ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + returnValueForMissingStub: ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + ) as _i2.CaptureRequestOptions Function({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set newCaptureRequestOptions( @@ -1875,46 +1705,43 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _newCaptureRequestOptions, - ) => super.noSuchMethod( - Invocation.setter(#newCaptureRequestOptions, _newCaptureRequestOptions), - returnValueForMissingStub: null, - ); + })? _newCaptureRequestOptions, + ) => + super.noSuchMethod( + Invocation.setter(#newCaptureRequestOptions, _newCaptureRequestOptions), + returnValueForMissingStub: null, + ); @override _i2.Camera2CameraControl Function({ required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromCamera2CameraControl => - (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraControl), - returnValue: - ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - returnValueForMissingStub: - ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - ) - as _i2.Camera2CameraControl Function({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromCamera2CameraControl => (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraControl), + returnValue: ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + returnValueForMissingStub: ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + ) as _i2.Camera2CameraControl Function({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set fromCamera2CameraControl( @@ -1922,84 +1749,78 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _fromCamera2CameraControl, - ) => super.noSuchMethod( - Invocation.setter(#fromCamera2CameraControl, _fromCamera2CameraControl), - returnValueForMissingStub: null, - ); + })? _fromCamera2CameraControl, + ) => + super.noSuchMethod( + Invocation.setter(#fromCamera2CameraControl, _fromCamera2CameraControl), + returnValueForMissingStub: null, + ); @override _i2.ResolutionFilter Function({ required _i2.CameraSize preferredSize, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get createWithOnePreferredSizeResolutionFilter => - (super.noSuchMethod( - Invocation.getter(#createWithOnePreferredSizeResolutionFilter), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => _FakeResolutionFilter_31( - this, - Invocation.getter( - #createWithOnePreferredSizeResolutionFilter, - ), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => _FakeResolutionFilter_31( - this, - Invocation.getter( - #createWithOnePreferredSizeResolutionFilter, - ), - ), - ) - as _i2.ResolutionFilter Function({ - required _i2.CameraSize preferredSize, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get createWithOnePreferredSizeResolutionFilter => (super.noSuchMethod( + Invocation.getter(#createWithOnePreferredSizeResolutionFilter), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => + _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => + _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + ) as _i2.ResolutionFilter Function({ + required _i2.CameraSize preferredSize, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Camera2CameraInfo Function({ required _i3.CameraInfo cameraInfo, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromCamera2CameraInfo => - (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraInfo), - returnValue: - ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - returnValueForMissingStub: - ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - ) - as _i2.Camera2CameraInfo Function({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromCamera2CameraInfo => (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraInfo), + returnValue: ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + returnValueForMissingStub: ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + ) as _i2.Camera2CameraInfo Function({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DisplayOrientedMeteringPointFactory Function({ @@ -2008,40 +1829,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newDisplayOrientedMeteringPointFactory => - (super.noSuchMethod( - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - returnValue: - ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - returnValueForMissingStub: - ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - ) - as _i2.DisplayOrientedMeteringPointFactory Function({ - required _i3.CameraInfo cameraInfo, - required double height, - required double width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newDisplayOrientedMeteringPointFactory => (super.noSuchMethod( + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + returnValue: ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => + _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + returnValueForMissingStub: ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => + _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + ) as _i2.DisplayOrientedMeteringPointFactory Function({ + required _i3.CameraInfo cameraInfo, + required double height, + required double width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set newDisplayOrientedMeteringPointFactory( @@ -2051,49 +1869,46 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _newDisplayOrientedMeteringPointFactory, - ) => super.noSuchMethod( - Invocation.setter( - #newDisplayOrientedMeteringPointFactory, - _newDisplayOrientedMeteringPointFactory, - ), - returnValueForMissingStub: null, - ); + })? _newDisplayOrientedMeteringPointFactory, + ) => + super.noSuchMethod( + Invocation.setter( + #newDisplayOrientedMeteringPointFactory, + _newDisplayOrientedMeteringPointFactory, + ), + returnValueForMissingStub: null, + ); @override _i5.Future<_i2.ProcessCameraProvider> Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get getInstanceProcessCameraProvider => - (super.noSuchMethod( + }) get getInstanceProcessCameraProvider => (super.noSuchMethod( + Invocation.getter(#getInstanceProcessCameraProvider), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, Invocation.getter(#getInstanceProcessCameraProvider), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, - Invocation.getter(#getInstanceProcessCameraProvider), - ), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, - Invocation.getter(#getInstanceProcessCameraProvider), - ), - ), - ) - as _i5.Future<_i2.ProcessCameraProvider> Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + ), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, + Invocation.getter(#getInstanceProcessCameraProvider), + ), + ), + ) as _i5.Future<_i2.ProcessCameraProvider> Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i5.Future<_i2.CameraSize?> Function( @@ -2101,203 +1916,175 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.VideoQuality, { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get getResolutionQualitySelector => - (super.noSuchMethod( - Invocation.getter(#getResolutionQualitySelector), - returnValue: - ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: - ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.CameraSize?>.value(), - ) - as _i5.Future<_i2.CameraSize?> Function( - _i3.CameraInfo, - _i2.VideoQuality, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get getResolutionQualitySelector => (super.noSuchMethod( + Invocation.getter(#getResolutionQualitySelector), + returnValue: ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.CameraSize?>.value(), + ) as _i5.Future<_i2.CameraSize?> Function( + _i3.CameraInfo, + _i2.VideoQuality, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function() get defaultBackCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultBackCameraCameraSelector), - returnValue: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - returnValueForMissingStub: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - ) - as _i2.CameraSelector Function()); + Invocation.getter(#defaultBackCameraCameraSelector), + returnValue: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + returnValueForMissingStub: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + ) as _i2.CameraSelector Function()); @override _i2.CameraSelector Function() get defaultFrontCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultFrontCameraCameraSelector), - returnValue: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - returnValueForMissingStub: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - ) - as _i2.CameraSelector Function()); + Invocation.getter(#defaultFrontCameraCameraSelector), + returnValue: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + returnValueForMissingStub: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + ) as _i2.CameraSelector Function()); @override _i2.ResolutionStrategy Function() - get highestAvailableStrategyResolutionStrategy => - (super.noSuchMethod( + get highestAvailableStrategyResolutionStrategy => (super.noSuchMethod( Invocation.getter(#highestAvailableStrategyResolutionStrategy), - returnValue: - () => _FakeResolutionStrategy_24( - this, - Invocation.getter( - #highestAvailableStrategyResolutionStrategy, - ), - ), - returnValueForMissingStub: - () => _FakeResolutionStrategy_24( - this, - Invocation.getter( - #highestAvailableStrategyResolutionStrategy, - ), - ), - ) - as _i2.ResolutionStrategy Function()); + returnValue: () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + returnValueForMissingStub: () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + ) as _i2.ResolutionStrategy Function()); @override _i2.AspectRatioStrategy Function() - get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => - (super.noSuchMethod( + get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( Invocation.getter( #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, ), - returnValue: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - ), - ), - returnValueForMissingStub: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - ), - ), - ) - as _i2.AspectRatioStrategy Function()); + returnValue: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) as _i2.AspectRatioStrategy Function()); @override _i2.AspectRatioStrategy Function() - get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => - (super.noSuchMethod( + get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( Invocation.getter( #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, ), - returnValue: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - ), - ), - returnValueForMissingStub: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - ), - ), - ) - as _i2.AspectRatioStrategy Function()); + returnValue: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) as _i2.AspectRatioStrategy Function()); @override _i2.CaptureRequestKey Function() get controlAELockCaptureRequest => (super.noSuchMethod( - Invocation.getter(#controlAELockCaptureRequest), - returnValue: - () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - returnValueForMissingStub: - () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - ) - as _i2.CaptureRequestKey Function()); + Invocation.getter(#controlAELockCaptureRequest), + returnValue: () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + returnValueForMissingStub: () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + ) as _i2.CaptureRequestKey Function()); @override set controlAELockCaptureRequest( _i2.CaptureRequestKey Function()? _controlAELockCaptureRequest, - ) => super.noSuchMethod( - Invocation.setter( - #controlAELockCaptureRequest, - _controlAELockCaptureRequest, - ), - returnValueForMissingStub: null, - ); + ) => + super.noSuchMethod( + Invocation.setter( + #controlAELockCaptureRequest, + _controlAELockCaptureRequest, + ), + returnValueForMissingStub: null, + ); @override _i2.CameraCharacteristicsKey Function() - get infoSupportedHardwareLevelCameraCharacteristics => - (super.noSuchMethod( + get infoSupportedHardwareLevelCameraCharacteristics => + (super.noSuchMethod( Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), - returnValue: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter( - #infoSupportedHardwareLevelCameraCharacteristics, - ), - ), - returnValueForMissingStub: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter( - #infoSupportedHardwareLevelCameraCharacteristics, - ), - ), - ) - as _i2.CameraCharacteristicsKey Function()); + returnValue: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + ) as _i2.CameraCharacteristicsKey Function()); @override _i2.CameraCharacteristicsKey Function() - get sensorOrientationCameraCharacteristics => - (super.noSuchMethod( + get sensorOrientationCameraCharacteristics => (super.noSuchMethod( Invocation.getter(#sensorOrientationCameraCharacteristics), - returnValue: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - returnValueForMissingStub: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - ) - as _i2.CameraCharacteristicsKey Function()); + returnValue: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + ) as _i2.CameraCharacteristicsKey Function()); } /// A class which mocks [CaptureRequestOptions]. @@ -2306,43 +2093,38 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { class MockCaptureRequestOptions extends _i1.Mock implements _i2.CaptureRequestOptions { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future getCaptureRequestOption(_i2.CaptureRequestKey? key) => (super.noSuchMethod( - Invocation.method(#getCaptureRequestOption, [key]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#getCaptureRequestOption, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.CaptureRequestOptions pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCaptureRequestOptions_30( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCaptureRequestOptions_30( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CaptureRequestOptions); + _i2.CaptureRequestOptions pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCaptureRequestOptions_30( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCaptureRequestOptions_30( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CaptureRequestOptions); } /// A class which mocks [DeviceOrientationManager]. @@ -2352,36 +2134,30 @@ class MockDeviceOrientationManager extends _i1.Mock implements _i2.DeviceOrientationManager { @override void Function(_i2.DeviceOrientationManager, String) - get onDeviceOrientationChanged => - (super.noSuchMethod( + get onDeviceOrientationChanged => (super.noSuchMethod( Invocation.getter(#onDeviceOrientationChanged), - returnValue: - ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - returnValueForMissingStub: - ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - ) - as void Function(_i2.DeviceOrientationManager, String)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + returnValue: ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + returnValueForMissingStub: ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + ) as void Function(_i2.DeviceOrientationManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future startListeningForDeviceOrientationChange( @@ -2389,66 +2165,58 @@ class MockDeviceOrientationManager extends _i1.Mock int? sensorOrientation, ) => (super.noSuchMethod( - Invocation.method(#startListeningForDeviceOrientationChange, [ - isFrontFacing, - sensorOrientation, - ]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#startListeningForDeviceOrientationChange, [ + isFrontFacing, + sensorOrientation, + ]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future stopListeningForDeviceOrientationChange() => (super.noSuchMethod( - Invocation.method(#stopListeningForDeviceOrientationChange, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#stopListeningForDeviceOrientationChange, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future getDefaultDisplayRotation() => - (super.noSuchMethod( - Invocation.method(#getDefaultDisplayRotation, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); + _i5.Future getDefaultDisplayRotation() => (super.noSuchMethod( + Invocation.method(#getDefaultDisplayRotation, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); @override - _i5.Future getUiOrientation() => - (super.noSuchMethod( + _i5.Future getUiOrientation() => (super.noSuchMethod( + Invocation.method(#getUiOrientation, []), + returnValue: _i5.Future.value( + _i6.dummyValue( + this, Invocation.method(#getUiOrientation, []), - returnValue: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getUiOrientation, []), - ), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getUiOrientation, []), - ), - ), - ) - as _i5.Future); + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getUiOrientation, []), + ), + ), + ) as _i5.Future); @override - _i2.DeviceOrientationManager pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeDeviceOrientationManager_18( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeDeviceOrientationManager_18( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.DeviceOrientationManager); + _i2.DeviceOrientationManager pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.DeviceOrientationManager); } /// A class which mocks [DisplayOrientedMeteringPointFactory]. @@ -2457,54 +2225,48 @@ class MockDeviceOrientationManager extends _i1.Mock class MockDisplayOrientedMeteringPointFactory extends _i1.Mock implements _i2.DisplayOrientedMeteringPointFactory { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: - _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.DisplayOrientedMeteringPointFactory); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.DisplayOrientedMeteringPointFactory); @override _i5.Future<_i2.MeteringPoint> createPoint(double? x, double? y) => (super.noSuchMethod( + Invocation.method(#createPoint, [x, y]), + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, Invocation.method(#createPoint, [x, y]), - returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPoint, [x, y]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPoint, [x, y]), - ), - ), - ) - as _i5.Future<_i2.MeteringPoint>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPoint, [x, y]), + ), + ), + ) as _i5.Future<_i2.MeteringPoint>); @override _i5.Future<_i2.MeteringPoint> createPointWithSize( @@ -2513,21 +2275,20 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock double? size, ) => (super.noSuchMethod( + Invocation.method(#createPointWithSize, [x, y, size]), + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, Invocation.method(#createPointWithSize, [x, y, size]), - returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPointWithSize, [x, y, size]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPointWithSize, [x, y, size]), - ), - ), - ) - as _i5.Future<_i2.MeteringPoint>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPointWithSize, [x, y, size]), + ), + ), + ) as _i5.Future<_i2.MeteringPoint>); } /// A class which mocks [ExposureState]. @@ -2535,58 +2296,50 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockExposureState extends _i1.Mock implements _i2.ExposureState { @override - _i2.CameraIntegerRange get exposureCompensationRange => - (super.noSuchMethod( - Invocation.getter(#exposureCompensationRange), - returnValue: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - returnValueForMissingStub: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - ) - as _i2.CameraIntegerRange); - - @override - double get exposureCompensationStep => - (super.noSuchMethod( - Invocation.getter(#exposureCompensationStep), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) - as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.ExposureState pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeExposureState_6( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ExposureState); + _i2.CameraIntegerRange get exposureCompensationRange => (super.noSuchMethod( + Invocation.getter(#exposureCompensationRange), + returnValue: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + returnValueForMissingStub: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + ) as _i2.CameraIntegerRange); + + @override + double get exposureCompensationStep => (super.noSuchMethod( + Invocation.getter(#exposureCompensationStep), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ExposureState pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ExposureState); } /// A class which mocks [FallbackStrategy]. @@ -2594,34 +2347,30 @@ class MockExposureState extends _i1.Mock implements _i2.ExposureState { /// See the documentation for Mockito's code generation for more information. class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.FallbackStrategy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFallbackStrategy_28( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFallbackStrategy_28( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.FallbackStrategy); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.FallbackStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.FallbackStrategy); } /// A class which mocks [FocusMeteringActionBuilder]. @@ -2630,28 +2379,24 @@ class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { class MockFocusMeteringActionBuilder extends _i1.Mock implements _i2.FocusMeteringActionBuilder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future addPoint(_i2.MeteringPoint? point) => - (super.noSuchMethod( - Invocation.method(#addPoint, [point]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future addPoint(_i2.MeteringPoint? point) => (super.noSuchMethod( + Invocation.method(#addPoint, [point]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future addPointWithMode( @@ -2659,52 +2404,44 @@ class MockFocusMeteringActionBuilder extends _i1.Mock _i2.MeteringMode? mode, ) => (super.noSuchMethod( - Invocation.method(#addPointWithMode, [point, mode]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#addPointWithMode, [point, mode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future disableAutoCancel() => - (super.noSuchMethod( - Invocation.method(#disableAutoCancel, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future disableAutoCancel() => (super.noSuchMethod( + Invocation.method(#disableAutoCancel, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.FocusMeteringAction> build() => - (super.noSuchMethod( + _i5.Future<_i2.FocusMeteringAction> build() => (super.noSuchMethod( + Invocation.method(#build, []), + returnValue: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36( + this, Invocation.method(#build, []), - returnValue: _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), - ), - returnValueForMissingStub: - _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36( - this, - Invocation.method(#build, []), - ), - ), - ) - as _i5.Future<_i2.FocusMeteringAction>); - - @override - _i2.FocusMeteringActionBuilder pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.FocusMeteringActionBuilder); + ), + ), + ) as _i5.Future<_i2.FocusMeteringAction>); + + @override + _i2.FocusMeteringActionBuilder pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.FocusMeteringActionBuilder); } /// A class which mocks [FocusMeteringResult]. @@ -2713,43 +2450,37 @@ class MockFocusMeteringActionBuilder extends _i1.Mock class MockFocusMeteringResult extends _i1.Mock implements _i2.FocusMeteringResult { @override - bool get isFocusSuccessful => - (super.noSuchMethod( - Invocation.getter(#isFocusSuccessful), - returnValue: false, - returnValueForMissingStub: false, - ) - as bool); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.FocusMeteringResult pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringResult_37( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFocusMeteringResult_37( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.FocusMeteringResult); + bool get isFocusSuccessful => (super.noSuchMethod( + Invocation.getter(#isFocusSuccessful), + returnValue: false, + returnValueForMissingStub: false, + ) as bool); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.FocusMeteringResult pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.FocusMeteringResult); } /// A class which mocks [ImageAnalysis]. @@ -2757,61 +2488,51 @@ class MockFocusMeteringResult extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => - (super.noSuchMethod( - Invocation.method(#setAnalyzer, [analyzer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i5.Future clearAnalyzer() => - (super.noSuchMethod( - Invocation.method(#clearAnalyzer, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i2.ImageAnalysis pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageAnalysis_26( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageAnalysis_26( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ImageAnalysis); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => (super.noSuchMethod( + Invocation.method(#setAnalyzer, [analyzer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future clearAnalyzer() => (super.noSuchMethod( + Invocation.method(#clearAnalyzer, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ImageAnalysis pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ImageAnalysis); } /// A class which mocks [ImageCapture]. @@ -2819,65 +2540,56 @@ class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { /// See the documentation for Mockito's code generation for more information. class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future setFlashMode(_i2.CameraXFlashMode? flashMode) => (super.noSuchMethod( - Invocation.method(#setFlashMode, [flashMode]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#setFlashMode, [flashMode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future takePicture() => - (super.noSuchMethod( - Invocation.method(#takePicture, []), - returnValue: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#takePicture, [])), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#takePicture, [])), - ), - ) - as _i5.Future); + _i5.Future takePicture() => (super.noSuchMethod( + Invocation.method(#takePicture, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + ) as _i5.Future); @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.ImageCapture pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageCapture_23( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageCapture_23( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ImageCapture); + _i2.ImageCapture pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ImageCapture); } /// A class which mocks [ImageProxy]. @@ -2885,83 +2597,69 @@ class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { /// See the documentation for Mockito's code generation for more information. class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { @override - int get format => - (super.noSuchMethod( - Invocation.getter(#format), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get width => - (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get height => - (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future> getPlanes() => - (super.noSuchMethod( - Invocation.method(#getPlanes, []), - returnValue: _i5.Future>.value( - <_i2.PlaneProxy>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.PlaneProxy>[], - ), - ) - as _i5.Future>); - - @override - _i5.Future close() => - (super.noSuchMethod( - Invocation.method(#close, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i2.ImageProxy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageProxy_38( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageProxy_38( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ImageProxy); + int get format => (super.noSuchMethod( + Invocation.getter(#format), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future> getPlanes() => (super.noSuchMethod( + Invocation.method(#getPlanes, []), + returnValue: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + ) as _i5.Future>); + + @override + _i5.Future close() => (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ImageProxy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ImageProxy); } /// A class which mocks [Observer]. @@ -2969,44 +2667,38 @@ class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { /// See the documentation for Mockito's code generation for more information. class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { @override - void Function(_i2.Observer, Object) get onChanged => - (super.noSuchMethod( - Invocation.getter(#onChanged), - returnValue: (_i2.Observer pigeon_instance, Object value) {}, - returnValueForMissingStub: - (_i2.Observer pigeon_instance, Object value) {}, - ) - as void Function(_i2.Observer, Object)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i3.Observer<_i2.CameraState> pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.Observer<_i2.CameraState>); + void Function(_i2.Observer, Object) get onChanged => (super.noSuchMethod( + Invocation.getter(#onChanged), + returnValue: (_i2.Observer pigeon_instance, Object value) {}, + returnValueForMissingStub: + (_i2.Observer pigeon_instance, Object value) {}, + ) as void Function(_i2.Observer, Object)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i3.Observer<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.Observer<_i2.CameraState>); } /// A class which mocks [PendingRecording]. @@ -3014,47 +2706,42 @@ class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { /// See the documentation for Mockito's code generation for more information. class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.Recording> start(_i2.VideoRecordEventListener? listener) => (super.noSuchMethod( - Invocation.method(#start, [listener]), - returnValue: _i5.Future<_i2.Recording>.value( - _FakeRecording_39(this, Invocation.method(#start, [listener])), - ), - returnValueForMissingStub: _i5.Future<_i2.Recording>.value( - _FakeRecording_39(this, Invocation.method(#start, [listener])), - ), - ) - as _i5.Future<_i2.Recording>); - - @override - _i2.PendingRecording pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePendingRecording_40( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePendingRecording_40( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.PendingRecording); + Invocation.method(#start, [listener]), + returnValue: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + returnValueForMissingStub: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + ) as _i5.Future<_i2.Recording>); + + @override + _i2.PendingRecording pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.PendingRecording); } /// A class which mocks [PlaneProxy]. @@ -3062,61 +2749,51 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { /// See the documentation for Mockito's code generation for more information. class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { @override - _i9.Uint8List get buffer => - (super.noSuchMethod( - Invocation.getter(#buffer), - returnValue: _i9.Uint8List(0), - returnValueForMissingStub: _i9.Uint8List(0), - ) - as _i9.Uint8List); - - @override - int get pixelStride => - (super.noSuchMethod( - Invocation.getter(#pixelStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get rowStride => - (super.noSuchMethod( - Invocation.getter(#rowStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.PlaneProxy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePlaneProxy_41( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePlaneProxy_41( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.PlaneProxy); + _i9.Uint8List get buffer => (super.noSuchMethod( + Invocation.getter(#buffer), + returnValue: _i9.Uint8List(0), + returnValueForMissingStub: _i9.Uint8List(0), + ) as _i9.Uint8List); + + @override + int get pixelStride => (super.noSuchMethod( + Invocation.getter(#pixelStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get rowStride => (super.noSuchMethod( + Invocation.getter(#rowStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.PlaneProxy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.PlaneProxy); } /// A class which mocks [Preview]. @@ -3124,81 +2801,69 @@ class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { /// See the documentation for Mockito's code generation for more information. class MockPreview extends _i1.Mock implements _i2.Preview { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future setSurfaceProvider( _i2.SystemServicesManager? systemServicesManager, ) => (super.noSuchMethod( - Invocation.method(#setSurfaceProvider, [systemServicesManager]), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); + Invocation.method(#setSurfaceProvider, [systemServicesManager]), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); @override - _i5.Future releaseSurfaceProvider() => - (super.noSuchMethod( - Invocation.method(#releaseSurfaceProvider, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future releaseSurfaceProvider() => (super.noSuchMethod( + Invocation.method(#releaseSurfaceProvider, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => - (super.noSuchMethod( - Invocation.method(#getResolutionInfo, []), - returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), - returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), - ) - as _i5.Future<_i2.ResolutionInfo?>); + _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => (super.noSuchMethod( + Invocation.method(#getResolutionInfo, []), + returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), + returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), + ) as _i5.Future<_i2.ResolutionInfo?>); @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future surfaceProducerHandlesCropAndRotation() => (super.noSuchMethod( - Invocation.method(#surfaceProducerHandlesCropAndRotation, []), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) - as _i5.Future); + Invocation.method(#surfaceProducerHandlesCropAndRotation, []), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) as _i5.Future); @override - _i2.Preview pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePreview_19( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePreview_19( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Preview); + _i2.Preview pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Preview); } /// A class which mocks [ProcessCameraProvider]. @@ -3207,32 +2872,29 @@ class MockPreview extends _i1.Mock implements _i2.Preview { class MockProcessCameraProvider extends _i1.Mock implements _i2.ProcessCameraProvider { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future> getAvailableCameraInfos() => (super.noSuchMethod( - Invocation.method(#getAvailableCameraInfos, []), - returnValue: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - ) - as _i5.Future>); + Invocation.method(#getAvailableCameraInfos, []), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) as _i5.Future>); @override _i5.Future<_i2.Camera> bindToLifecycle( @@ -3240,63 +2902,54 @@ class MockProcessCameraProvider extends _i1.Mock List<_i2.UseCase>? useCases, ) => (super.noSuchMethod( + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + returnValue: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - returnValue: _i5.Future<_i2.Camera>.value( - _FakeCamera_5( - this, - Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.Camera>.value( - _FakeCamera_5( - this, - Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - ), - ), - ) - as _i5.Future<_i2.Camera>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + ), + ), + ) as _i5.Future<_i2.Camera>); @override - _i5.Future isBound(_i2.UseCase? useCase) => - (super.noSuchMethod( - Invocation.method(#isBound, [useCase]), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) - as _i5.Future); + _i5.Future isBound(_i2.UseCase? useCase) => (super.noSuchMethod( + Invocation.method(#isBound, [useCase]), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) as _i5.Future); @override - _i5.Future unbind(List<_i2.UseCase>? useCases) => - (super.noSuchMethod( - Invocation.method(#unbind, [useCases]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future unbind(List<_i2.UseCase>? useCases) => (super.noSuchMethod( + Invocation.method(#unbind, [useCases]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future unbindAll() => - (super.noSuchMethod( - Invocation.method(#unbindAll, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future unbindAll() => (super.noSuchMethod( + Invocation.method(#unbindAll, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.ProcessCameraProvider pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeProcessCameraProvider_33( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeProcessCameraProvider_33( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ProcessCameraProvider); + _i2.ProcessCameraProvider pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ProcessCameraProvider); } /// A class which mocks [QualitySelector]. @@ -3304,34 +2957,30 @@ class MockProcessCameraProvider extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.QualitySelector pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeQualitySelector_27( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeQualitySelector_27( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.QualitySelector); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.QualitySelector pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.QualitySelector); } /// A class which mocks [Recorder]. @@ -3339,90 +2988,79 @@ class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { /// See the documentation for Mockito's code generation for more information. class MockRecorder extends _i1.Mock implements _i2.Recorder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future getAspectRatio() => - (super.noSuchMethod( - Invocation.method(#getAspectRatio, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); - - @override - _i5.Future getTargetVideoEncodingBitRate() => - (super.noSuchMethod( - Invocation.method(#getTargetVideoEncodingBitRate, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); - - @override - _i5.Future<_i2.QualitySelector> getQualitySelector() => - (super.noSuchMethod( + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future getAspectRatio() => (super.noSuchMethod( + Invocation.method(#getAspectRatio, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); + + @override + _i5.Future getTargetVideoEncodingBitRate() => (super.noSuchMethod( + Invocation.method(#getTargetVideoEncodingBitRate, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); + + @override + _i5.Future<_i2.QualitySelector> getQualitySelector() => (super.noSuchMethod( + Invocation.method(#getQualitySelector, []), + returnValue: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, Invocation.method(#getQualitySelector, []), - returnValue: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( - this, - Invocation.method(#getQualitySelector, []), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( - this, - Invocation.method(#getQualitySelector, []), - ), - ), - ) - as _i5.Future<_i2.QualitySelector>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, + Invocation.method(#getQualitySelector, []), + ), + ), + ) as _i5.Future<_i2.QualitySelector>); @override _i5.Future<_i2.PendingRecording> prepareRecording(String? path) => (super.noSuchMethod( + Invocation.method(#prepareRecording, [path]), + returnValue: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, Invocation.method(#prepareRecording, [path]), - returnValue: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_40( - this, - Invocation.method(#prepareRecording, [path]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_40( - this, - Invocation.method(#prepareRecording, [path]), - ), - ), - ) - as _i5.Future<_i2.PendingRecording>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, + Invocation.method(#prepareRecording, [path]), + ), + ), + ) as _i5.Future<_i2.PendingRecording>); @override - _i2.Recorder pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecorder_21( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeRecorder_21( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Recorder); + _i2.Recorder pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Recorder); } /// A class which mocks [ResolutionFilter]. @@ -3430,34 +3068,30 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { /// See the documentation for Mockito's code generation for more information. class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.ResolutionFilter pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionFilter_31( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionFilter_31( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ResolutionFilter); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ResolutionFilter pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ResolutionFilter); } /// A class which mocks [ResolutionSelector]. @@ -3466,54 +3100,48 @@ class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { class MockResolutionSelector extends _i1.Mock implements _i2.ResolutionSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategy> getAspectRatioStrategy() => (super.noSuchMethod( + Invocation.method(#getAspectRatioStrategy, []), + returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, Invocation.method(#getAspectRatioStrategy, []), - returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, - Invocation.method(#getAspectRatioStrategy, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, - Invocation.method(#getAspectRatioStrategy, []), - ), - ), - ) - as _i5.Future<_i2.AspectRatioStrategy>); - - @override - _i2.ResolutionSelector pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionSelector_25( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionSelector_25( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ResolutionSelector); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, + Invocation.method(#getAspectRatioStrategy, []), + ), + ), + ) as _i5.Future<_i2.AspectRatioStrategy>); + + @override + _i2.ResolutionSelector pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ResolutionSelector); } /// A class which mocks [ResolutionStrategy]. @@ -3522,57 +3150,50 @@ class MockResolutionSelector extends _i1.Mock class MockResolutionStrategy extends _i1.Mock implements _i2.ResolutionStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future<_i2.CameraSize?> getBoundSize() => - (super.noSuchMethod( - Invocation.method(#getBoundSize, []), - returnValue: _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), - ) - as _i5.Future<_i2.CameraSize?>); + _i5.Future<_i2.CameraSize?> getBoundSize() => (super.noSuchMethod( + Invocation.method(#getBoundSize, []), + returnValue: _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), + ) as _i5.Future<_i2.CameraSize?>); @override _i5.Future<_i2.ResolutionStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method(#getFallbackRule, []), - returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher, - ), - returnValueForMissingStub: - _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher, - ), - ) - as _i5.Future<_i2.ResolutionStrategyFallbackRule>); - - @override - _i2.ResolutionStrategy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionStrategy_24( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionStrategy_24( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ResolutionStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + returnValueForMissingStub: + _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + ) as _i5.Future<_i2.ResolutionStrategyFallbackRule>); + + @override + _i2.ResolutionStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ResolutionStrategy); } /// A class which mocks [Recording]. @@ -3580,70 +3201,58 @@ class MockResolutionStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockRecording extends _i1.Mock implements _i2.Recording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future close() => - (super.noSuchMethod( - Invocation.method(#close, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future close() => (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future pause() => - (super.noSuchMethod( - Invocation.method(#pause, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future pause() => (super.noSuchMethod( + Invocation.method(#pause, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future resume() => - (super.noSuchMethod( - Invocation.method(#resume, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future resume() => (super.noSuchMethod( + Invocation.method(#resume, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future stop() => - (super.noSuchMethod( - Invocation.method(#stop, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future stop() => (super.noSuchMethod( + Invocation.method(#stop, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Recording pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecording_39( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeRecording_39( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Recording); + _i2.Recording pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Recording); } /// A class which mocks [SystemServicesManager]. @@ -3654,80 +3263,71 @@ class MockSystemServicesManager extends _i1.Mock @override void Function(_i2.SystemServicesManager, String) get onCameraError => (super.noSuchMethod( - Invocation.getter(#onCameraError), - returnValue: - ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - returnValueForMissingStub: - ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - ) - as void Function(_i2.SystemServicesManager, String)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + Invocation.getter(#onCameraError), + returnValue: ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + returnValueForMissingStub: ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + ) as void Function(_i2.SystemServicesManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.CameraPermissionsError?> requestCameraPermissions( bool? enableAudio, ) => (super.noSuchMethod( - Invocation.method(#requestCameraPermissions, [enableAudio]), - returnValue: _i5.Future<_i2.CameraPermissionsError?>.value(), - returnValueForMissingStub: - _i5.Future<_i2.CameraPermissionsError?>.value(), - ) - as _i5.Future<_i2.CameraPermissionsError?>); + Invocation.method(#requestCameraPermissions, [enableAudio]), + returnValue: _i5.Future<_i2.CameraPermissionsError?>.value(), + returnValueForMissingStub: + _i5.Future<_i2.CameraPermissionsError?>.value(), + ) as _i5.Future<_i2.CameraPermissionsError?>); @override _i5.Future getTempFilePath(String? prefix, String? suffix) => (super.noSuchMethod( + Invocation.method(#getTempFilePath, [prefix, suffix]), + returnValue: _i5.Future.value( + _i6.dummyValue( + this, Invocation.method(#getTempFilePath, [prefix, suffix]), - returnValue: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getTempFilePath, [prefix, suffix]), - ), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getTempFilePath, [prefix, suffix]), - ), - ), - ) - as _i5.Future); + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getTempFilePath, [prefix, suffix]), + ), + ), + ) as _i5.Future); @override - _i2.SystemServicesManager pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeSystemServicesManager_17( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeSystemServicesManager_17( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.SystemServicesManager); + _i2.SystemServicesManager pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.SystemServicesManager); } /// A class which mocks [VideoCapture]. @@ -3735,56 +3335,48 @@ class MockSystemServicesManager extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.VideoOutput> getOutput() => - (super.noSuchMethod( - Invocation.method(#getOutput, []), - returnValue: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), - ), - returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), - ), - ) - as _i5.Future<_i2.VideoOutput>); - - @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i2.VideoCapture pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeVideoCapture_20( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeVideoCapture_20( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.VideoCapture); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.VideoOutput> getOutput() => (super.noSuchMethod( + Invocation.method(#getOutput, []), + returnValue: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + ) as _i5.Future<_i2.VideoOutput>); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.VideoCapture pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.VideoCapture); } /// A class which mocks [ZoomState]. @@ -3792,52 +3384,44 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { /// See the documentation for Mockito's code generation for more information. class MockZoomState extends _i1.Mock implements _i2.ZoomState { @override - double get minZoomRatio => - (super.noSuchMethod( - Invocation.getter(#minZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) - as double); - - @override - double get maxZoomRatio => - (super.noSuchMethod( - Invocation.getter(#maxZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) - as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.ZoomState pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeZoomState_43( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeZoomState_43( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ZoomState); + double get minZoomRatio => (super.noSuchMethod( + Invocation.getter(#minZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) as double); + + @override + double get maxZoomRatio => (super.noSuchMethod( + Invocation.getter(#maxZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ZoomState pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ZoomState); } /// A class which mocks [LiveData]. @@ -3850,60 +3434,48 @@ class MockLiveCameraState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => - (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) - as _i2.LiveDataSupportedType); + _i2.LiveDataSupportedType get type => (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) as _i2.LiveDataSupportedType); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future observe(_i2.Observer? observer) => - (super.noSuchMethod( - Invocation.method(#observe, [observer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.CameraState?> getValue() => - (super.noSuchMethod( - Invocation.method(#getValue, []), - returnValue: _i5.Future<_i2.CameraState?>.value(), - ) - as _i5.Future<_i2.CameraState?>); + _i5.Future<_i2.CameraState?> getValue() => (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.CameraState?>.value(), + ) as _i5.Future<_i2.CameraState?>); @override - _i3.LiveData<_i2.CameraState> pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.LiveData<_i2.CameraState>); + _i3.LiveData<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.LiveData<_i2.CameraState>); @override - _i5.Future removeObservers() => - (super.noSuchMethod( - Invocation.method(#removeObservers, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future removeObservers() => (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); } /// A class which mocks [LiveData]. @@ -3916,58 +3488,46 @@ class MockLiveZoomState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => - (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) - as _i2.LiveDataSupportedType); + _i2.LiveDataSupportedType get type => (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) as _i2.LiveDataSupportedType); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future observe(_i2.Observer? observer) => - (super.noSuchMethod( - Invocation.method(#observe, [observer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.ZoomState?> getValue() => - (super.noSuchMethod( - Invocation.method(#getValue, []), - returnValue: _i5.Future<_i2.ZoomState?>.value(), - ) - as _i5.Future<_i2.ZoomState?>); + _i5.Future<_i2.ZoomState?> getValue() => (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.ZoomState?>.value(), + ) as _i5.Future<_i2.ZoomState?>); @override - _i3.LiveData<_i2.ZoomState> pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.LiveData<_i2.ZoomState>); + _i3.LiveData<_i2.ZoomState> pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.LiveData<_i2.ZoomState>); @override - _i5.Future removeObservers() => - (super.noSuchMethod( - Invocation.method(#removeObservers, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future removeObservers() => (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); } From 949afb7babd578a972a862b31552ff884ba2754b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 1 Apr 2025 10:53:22 -0400 Subject: [PATCH 125/148] use a single previewproxyapi --- .../java/io/flutter/plugins/camerax/ProxyApiRegistrar.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index c60d2ed41d1..dff09240e25 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -29,6 +29,9 @@ public class ProxyApiRegistrar extends CameraXLibraryPigeonProxyApiRegistrar { @Nullable private CameraPermissionsManager.PermissionsRegistry permissionsRegistry; + // PreviewProxyApi maintains a state to track SurfaceProducers provided by the Flutter engine. + @NonNull private final PreviewProxyApi previewProxyApi = new PreviewProxyApi(this); + public ProxyApiRegistrar( @NonNull BinaryMessenger binaryMessenger, @NonNull Context context, @@ -198,7 +201,7 @@ public DeviceOrientationManagerProxyApi getPigeonApiDeviceOrientationManager() { @NonNull @Override public PigeonApiPreview getPigeonApiPreview() { - return new PreviewProxyApi(this); + return previewProxyApi; } @NonNull From 0a616aafc3d8df150ef14f7265697b4812215baa Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 1 Apr 2025 11:03:06 -0400 Subject: [PATCH 126/148] better comments --- .../camera/camera_android_camerax/android/build.gradle | 1 + .../main/java/io/flutter/plugins/camerax/ResultCompat.kt | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/build.gradle b/packages/camera/camera_android_camerax/android/build.gradle index 7b093d2a256..b9970ae697e 100644 --- a/packages/camera/camera_android_camerax/android/build.gradle +++ b/packages/camera/camera_android_camerax/android/build.gradle @@ -35,6 +35,7 @@ android { } kotlinOptions { + // This must match the Java version provided in compileOptions. jvmTarget = '11' } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt index 01588814489..0be491897b8 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResultCompat.kt @@ -5,11 +5,11 @@ package io.flutter.plugins.camerax /** - * ResultCompat. + * Provides Java compatible helper functions for the [kotlin.Result] class. * - * It is intended to solve the problem of being unable to obtain [kotlin.Result] in Java. - * - * [kotlin.Result] has a weird quirk when it is passed to Java where it seems to wrap itself. + * The Kotlin Result class in used in the pigeon generated Kotlin code and there is no equivalent + * class in Java. The Result class can have weird behavior when passed to Java (e.g. it has a weird + * quirk where it seems to wrap itself). */ @Suppress("UNCHECKED_CAST") class ResultCompat(val result: Result) { From 5ef7811673536f824edf30c4eea3a05f845e7422 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 1 Apr 2025 11:07:14 -0400 Subject: [PATCH 127/148] remove unused vars --- .../flutter/plugins/camerax/CameraXLibrary.g.kt | 15 ++++++--------- .../camerax/DeviceOrientationManagerProxyApi.java | 4 +--- .../camerax/DeviceOrientationManagerApiTest.java | 2 +- .../lib/src/android_camera_camerax.dart | 10 +++------- .../lib/src/camerax_library.g.dart | 11 +++++------ .../pigeons/camerax_library.dart | 5 +---- 6 files changed, 17 insertions(+), 30 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 286b6be7e00..f19bec38b34 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -2727,11 +2727,7 @@ abstract class PigeonApiDeviceOrientationManager( ) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager - abstract fun startListeningForDeviceOrientationChange( - pigeon_instance: DeviceOrientationManager, - isFrontFacing: Boolean, - sensorOrientation: Long - ) + abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) @@ -2780,12 +2776,9 @@ abstract class PigeonApiDeviceOrientationManager( channel.setMessageHandler { message, reply -> val args = message as List val pigeon_instanceArg = args[0] as DeviceOrientationManager - val isFrontFacingArg = args[1] as Boolean - val sensorOrientationArg = args[2] as Long val wrapped: List = try { - api.startListeningForDeviceOrientationChange( - pigeon_instanceArg, isFrontFacingArg, sensorOrientationArg) + api.startListeningForDeviceOrientationChange(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2959,6 +2952,10 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr /** Sets the target rotation. */ abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) + /** + * Returns whether or not the preview's surface producer handles correctly rotating the camera + * preview automatically. + */ abstract fun surfaceProducerHandlesCropAndRotation( pigeon_instance: androidx.camera.core.Preview ): Boolean diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java index c2420d90fe3..5d460d399c8 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java @@ -30,9 +30,7 @@ public DeviceOrientationManager pigeon_defaultConstructor() { @Override public void startListeningForDeviceOrientationChange( - @NonNull DeviceOrientationManager pigeon_instance, - boolean isFrontFacing, - long sensorOrientation) { + @NonNull DeviceOrientationManager pigeon_instance) { pigeon_instance.start(); } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java index c4b343f8aa9..390f4980a10 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java @@ -22,7 +22,7 @@ public void startListeningForDeviceOrientationChange() { new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); final DeviceOrientationManager instance = mock(DeviceOrientationManager.class); - api.startListeningForDeviceOrientationChange(instance, false, 0L); + api.startListeningForDeviceOrientationChange(instance); verify(instance).start(); } diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index ab00aeb44b1..a49ab899026 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -353,13 +353,9 @@ class AndroidCameraCameraX extends CameraPlatform { requireLensFacing: cameraSelectorLensDirection, ); // Start listening for device orientation changes preceding camera creation. - // TODO(bparrishMines): `isFrontFacing` and `sensorOrientation` aren't used - // by the DeviceOrientationManager and can be removed if this was - // intentional. - unawaited(deviceOrientationManager.startListeningForDeviceOrientationChange( - cameraIsFrontFacing, - cameraDescription.sensorOrientation, - )); + unawaited( + deviceOrientationManager.startListeningForDeviceOrientationChange(), + ); // Determine ResolutionSelector and QualitySelector based on // resolutionPreset for camera UseCases. final ResolutionSelector? presetResolutionSelector = diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 1e42e383194..2c73be093f9 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -2947,10 +2947,7 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { } } - Future startListeningForDeviceOrientationChange( - bool isFrontFacing, - int sensorOrientation, - ) async { + Future startListeningForDeviceOrientationChange() async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecDeviceOrientationManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2962,8 +2959,8 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { pigeonChannelCodec, binaryMessenger: pigeonVar_binaryMessenger, ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([this, isFrontFacing, sensorOrientation]); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3335,6 +3332,8 @@ class Preview extends UseCase { } } + /// Returns whether or not the preview's surface producer handles correctly + /// rotating the camera preview automatically. Future surfaceProducerHandlesCropAndRotation() async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecPreview; diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index ca05497ad6a..f8f1adca89a 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -406,10 +406,7 @@ abstract class DeviceOrientationManager { late void Function(String orientation) onDeviceOrientationChanged; - void startListeningForDeviceOrientationChange( - bool isFrontFacing, - int sensorOrientation, - ); + void startListeningForDeviceOrientationChange(); void stopListeningForDeviceOrientationChange(); From c1f12a32203af4ae24d9ad728cbbce73058bd814 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 1 Apr 2025 11:19:28 -0400 Subject: [PATCH 128/148] switch to onSurfaceCleanup --- .../io/flutter/plugins/camerax/PreviewProxyApi.java | 5 +---- .../java/io/flutter/plugins/camerax/PreviewTest.java | 10 +--------- packages/camera/camera_android_camerax/pubspec.yaml | 2 +- 3 files changed, 3 insertions(+), 14 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index 0d520ff1dbf..f62c20c0c3b 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -111,10 +111,7 @@ public void onSurfaceAvailable() { } @Override - // TODO(bparrishMines): Replace with onSurfaceCleanup once available on stable. See - // https://github.com/flutter/flutter/issues/161256. - @SuppressWarnings({"deprecation", "removal"}) - public void onSurfaceDestroyed() { + public void onSurfaceCleanup() { // Invalidate the SurfaceRequest so that CameraX knows to to make a new request // for a surface. request.invalidate(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java index 5e2f279b17f..e3c522fda9f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java @@ -114,7 +114,7 @@ TextureRegistry getTextureRegistry() { final TextureRegistry.SurfaceProducer.Callback callback = callbackCaptor.getValue(); // Verify callback's onSurfaceDestroyed invalidates SurfaceRequest. - simulateSurfaceDestruction(callback); + callback.onSurfaceCleanup(); verify(mockSurfaceRequest).invalidate(); reset(mockSurfaceRequest); @@ -281,12 +281,4 @@ TextureRegistry getTextureRegistry() { verify(mockSurfaceProducer).handlesCropAndRotation(); } - - // TODO(bparrishMines): Replace with inline calls to onSurfaceCleanup once available on stable; - // see https://github.com/flutter/flutter/issues/16125. This separate method only exists to scope - // the suppression. - @SuppressWarnings({"deprecation", "removal"}) - void simulateSurfaceDestruction(TextureRegistry.SurfaceProducer.Callback producerLifecycle) { - producerLifecycle.onSurfaceDestroyed(); - } } diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 2f524a3b132..a97983abdbd 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -6,7 +6,7 @@ version: 0.6.15 environment: sdk: ^3.6.0 - flutter: ">=3.27.0" + flutter: ">=3.29.0" flutter: plugin: From 83d6ad3072dfffa9322206317176e57bd9b3878c Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 1 Apr 2025 11:26:54 -0400 Subject: [PATCH 129/148] review comments --- .../io/flutter/plugins/camerax/CameraXLibrary.g.kt | 3 +++ .../android/src/test/java/android/util/Rational.java | 2 +- .../android/src/test/java/android/util/Size.java | 2 +- .../lib/src/camerax_library.dart | 2 +- .../lib/src/camerax_library.g.dart | 3 +++ .../pigeons/camerax_library.dart | 3 +++ .../test/android_camera_camerax_test.dart | 10 +--------- .../test/android_camera_camerax_test.mocks.dart | 10 ++-------- 8 files changed, 15 insertions(+), 20 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index f19bec38b34..2ddf47c87ac 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -1178,6 +1178,9 @@ enum class ResolutionStrategyFallbackRule(val raw: Int) { /** * When the specified bound size is unavailable, CameraX falls back to select the closest lower * resolution size. + * + * If CameraX still cannot find any available resolution, it will fallback to select other higher + * resolutions. */ CLOSEST_LOWER_THEN_HIGHER(3), /** CameraX doesn't select an alternate size when the specified bound size is unavailable. */ diff --git a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Rational.java b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Rational.java index ca45e0270ff..66cb22a4049 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Rational.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Rational.java @@ -5,7 +5,7 @@ package android.util; // Creates an implementation of Rational that can be used with unittests and the JVM. -// Typically android.util.Range does nothing when not used with an Android environment. +// Typically android.util.Rational does nothing when not used with an Android environment. public final class Rational { private final int numerator; diff --git a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java index aeb768ecb60..ec007cbcf5a 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/android/util/Size.java @@ -5,7 +5,7 @@ package android.util; // Creates an implementation of Range that can be used with unittests and the JVM. -// Typically android.util.Range does nothing when not used with an Android environment. +// Typically android.util.Size does nothing when not used with an Android environment. public final class Size { private final int width; diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index 6967cc625f6..ec810b45e8f 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -117,7 +117,7 @@ class CameraInfo extends camerax.CameraInfo { /// lifecycle. /// /// This is a wrapper around the native class to better support the generic -/// type. Java has type erasure; +/// type. Java has type erasure. /// /// See https://developer.android.com/reference/androidx/lifecycle/LiveData. class LiveData extends camerax.LiveData { diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 2c73be093f9..8cacba3b3ab 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -676,6 +676,9 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. + /// + /// If CameraX still cannot find any available resolution, it will fallback to + /// select other higher resolutions. closestLowerThenHigher, /// CameraX doesn't select an alternate size when the specified bound size is diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index f8f1adca89a..a5fd1d098fc 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -620,6 +620,9 @@ enum ResolutionStrategyFallbackRule { /// When the specified bound size is unavailable, CameraX falls back to select /// the closest lower resolution size. + /// + /// If CameraX still cannot find any available resolution, it will fallback to + /// select other higher resolutions. closestLowerThenHigher, /// CameraX doesn't select an alternate size when the specified bound size is diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 53f085af56b..6cfc1e32e4e 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -919,8 +919,7 @@ void main() { }) { final MockDeviceOrientationManager manager = MockDeviceOrientationManager(); - when(manager.startListeningForDeviceOrientationChange(any, any)) - .thenAnswer( + when(manager.startListeningForDeviceOrientationChange()).thenAnswer( (_) async { startedListeningForDeviceOrientationChanges = true; }, @@ -1793,13 +1792,6 @@ void main() { expectedVideoQuality = VideoQuality.highest; } - // const VideoResolutionFallbackRule expectedFallbackRule = - // VideoResolutionFallbackRule.lowerQualityOrHigherThan; - // final FallbackStrategy expectedFallbackStrategy = - // FallbackStrategy.detached( - // quality: expectedVideoQuality, - // fallbackRule: expectedFallbackRule); - expect( await camera.recorder!.getQualitySelector(), mockQualitySelector, diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index 75962ae8c2e..e1ece4971f7 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -2160,15 +2160,9 @@ class MockDeviceOrientationManager extends _i1.Mock ) as _i2.PigeonInstanceManager); @override - _i5.Future startListeningForDeviceOrientationChange( - bool? isFrontFacing, - int? sensorOrientation, - ) => + _i5.Future startListeningForDeviceOrientationChange() => (super.noSuchMethod( - Invocation.method(#startListeningForDeviceOrientationChange, [ - isFrontFacing, - sensorOrientation, - ]), + Invocation.method(#startListeningForDeviceOrientationChange, []), returnValue: _i5.Future.value(), returnValueForMissingStub: _i5.Future.value(), ) as _i5.Future); From bd4cf2fb315e0c24999c5a6009dcd43fd7d58b2b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 1 Apr 2025 15:16:48 -0400 Subject: [PATCH 130/148] fix remove and use get --- .../main/java/io/flutter/plugins/camerax/PreviewProxyApi.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index f62c20c0c3b..2e75778554e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -76,8 +76,7 @@ public void releaseSurfaceProvider(@NonNull Preview pigeon_instance) { @Override public boolean surfaceProducerHandlesCropAndRotation(@NonNull Preview pigeon_instance) { - final TextureRegistry.SurfaceProducer surfaceProducer = - surfaceProducers.remove(pigeon_instance); + final TextureRegistry.SurfaceProducer surfaceProducer = surfaceProducers.get(pigeon_instance); if (surfaceProducer != null) { return surfaceProducer.handlesCropAndRotation(); } From 7aa02b6bb038ce9e6e1e22732878213d172ea455 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 1 Apr 2025 15:19:54 -0400 Subject: [PATCH 131/148] added suppress for generated kotlin --- .../main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index 2ddf47c87ac..abd671db13f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -3,7 +3,7 @@ // found in the LICENSE file. // Autogenerated from Pigeon (v25.0.0), do not edit directly. // See also: https://pub.dev/packages/pigeon -@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass") +@file:Suppress("UNCHECKED_CAST", "ArrayInDataClass", "UnsafeOptInUsageError", "SyntheticAccessor") package io.flutter.plugins.camerax From 79d230e11ee0fab6b52d61a3abfc4acea974eb6b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Tue, 1 Apr 2025 15:35:02 -0400 Subject: [PATCH 132/148] bump dart --- packages/camera/camera_android_camerax/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index a97983abdbd..954a87c2ed7 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -5,7 +5,7 @@ issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+ version: 0.6.15 environment: - sdk: ^3.6.0 + sdk: ^3.7.0 flutter: ">=3.29.0" flutter: From 631bcc056517909b94db46098fee659ec92b83ee Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 2 Apr 2025 14:03:53 -0400 Subject: [PATCH 133/148] switch back to cleanup --- .../io/flutter/plugins/camerax/PreviewProxyApi.java | 5 ++++- .../java/io/flutter/plugins/camerax/PreviewTest.java | 10 +++++++++- packages/camera/camera_android_camerax/pubspec.yaml | 4 ++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index 2e75778554e..da5a906ba3d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -110,7 +110,10 @@ public void onSurfaceAvailable() { } @Override - public void onSurfaceCleanup() { + // TODO(bparrishMines): Replace with onSurfaceCleanup once available on stable. See + // https://github.com/flutter/flutter/issues/161256. + @SuppressWarnings({"deprecation", "removal"}) + public void onSurfaceDestroyed() { // Invalidate the SurfaceRequest so that CameraX knows to to make a new request // for a surface. request.invalidate(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java index e3c522fda9f..5e2f279b17f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java @@ -114,7 +114,7 @@ TextureRegistry getTextureRegistry() { final TextureRegistry.SurfaceProducer.Callback callback = callbackCaptor.getValue(); // Verify callback's onSurfaceDestroyed invalidates SurfaceRequest. - callback.onSurfaceCleanup(); + simulateSurfaceDestruction(callback); verify(mockSurfaceRequest).invalidate(); reset(mockSurfaceRequest); @@ -281,4 +281,12 @@ TextureRegistry getTextureRegistry() { verify(mockSurfaceProducer).handlesCropAndRotation(); } + + // TODO(bparrishMines): Replace with inline calls to onSurfaceCleanup once available on stable; + // see https://github.com/flutter/flutter/issues/16125. This separate method only exists to scope + // the suppression. + @SuppressWarnings({"deprecation", "removal"}) + void simulateSurfaceDestruction(TextureRegistry.SurfaceProducer.Callback producerLifecycle) { + producerLifecycle.onSurfaceDestroyed(); + } } diff --git a/packages/camera/camera_android_camerax/pubspec.yaml b/packages/camera/camera_android_camerax/pubspec.yaml index 954a87c2ed7..2f524a3b132 100644 --- a/packages/camera/camera_android_camerax/pubspec.yaml +++ b/packages/camera/camera_android_camerax/pubspec.yaml @@ -5,8 +5,8 @@ issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+ version: 0.6.15 environment: - sdk: ^3.7.0 - flutter: ">=3.29.0" + sdk: ^3.6.0 + flutter: ">=3.27.0" flutter: plugin: From d7ea1615d442726acba8b8588577558c7950dd25 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 2 Apr 2025 16:19:16 -0400 Subject: [PATCH 134/148] change to pigeonInstance --- .../camerax/AspectRatioStrategyProxyApi.java | 8 +- .../camerax/Camera2CameraControlProxyApi.java | 4 +- .../camerax/Camera2CameraInfoProxyApi.java | 8 +- .../camerax/CameraControlProxyApi.java | 20 +- .../plugins/camerax/CameraInfoProxyApi.java | 16 +- .../camerax/CameraIntegerRangeProxyApi.java | 8 +- .../CameraPermissionsErrorProxyApi.java | 8 +- .../plugins/camerax/CameraProxyApi.java | 8 +- .../camerax/CameraSelectorProxyApi.java | 4 +- .../plugins/camerax/CameraSizeProxyApi.java | 8 +- .../plugins/camerax/CameraStateProxyApi.java | 8 +- .../CameraStateStateErrorProxyApi.java | 4 +- .../plugins/camerax/CameraXLibrary.g.kt | 953 +- .../CaptureRequestOptionsProxyApi.java | 4 +- .../DeviceOrientationManagerProxyApi.java | 16 +- .../camerax/ExposureStateProxyApi.java | 8 +- .../FocusMeteringActionBuilderProxyApi.java | 16 +- .../camerax/FocusMeteringActionProxyApi.java | 16 +- .../camerax/FocusMeteringResultProxyApi.java | 4 +- .../camerax/ImageAnalysisProxyApi.java | 17 +- .../plugins/camerax/ImageCaptureProxyApi.java | 16 +- .../plugins/camerax/ImageProxyProxyApi.java | 20 +- .../plugins/camerax/LiveDataProxyApi.java | 16 +- .../camerax/MeteringPointFactoryProxyApi.java | 8 +- .../camerax/MeteringPointProxyApi.java | 4 +- .../camerax/PendingRecordingProxyApi.java | 4 +- .../plugins/camerax/PlaneProxyProxyApi.java | 12 +- .../plugins/camerax/PreviewProxyApi.java | 27 +- .../ProcessCameraProviderProxyApi.java | 20 +- .../plugins/camerax/RecorderProxyApi.java | 16 +- .../plugins/camerax/RecordingProxyApi.java | 16 +- .../camerax/ResolutionInfoProxyApi.java | 4 +- .../camerax/ResolutionSelectorProxyApi.java | 12 +- .../camerax/ResolutionStrategyProxyApi.java | 8 +- .../SystemServicesManagerProxyApi.java | 8 +- .../plugins/camerax/VideoCaptureProxyApi.java | 8 +- .../plugins/camerax/ZoomStateProxyApi.java | 8 +- .../example/android/build.gradle | 2 +- .../lib/src/android_camera_camerax.dart | 433 +- .../lib/src/camerax_library.dart | 54 +- .../lib/src/camerax_library.g.dart | 4271 +++--- .../lib/src/camerax_proxy.dart | 139 +- .../lib/src/rotated_preview.dart | 12 +- .../pigeons/camerax_library.dart | 19 +- .../test/android_camera_camerax_test.dart | 11019 ++++++++-------- .../android_camera_camerax_test.mocks.dart | 5444 ++++---- .../test/preview_rotation_test.dart | 1389 +- 47 files changed, 12845 insertions(+), 11282 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java index 5ca154c592b..942c2682ecb 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AspectRatioStrategyProxyApi.java @@ -60,8 +60,8 @@ public AspectRatioStrategy ratio_4_3FallbackAutoStrategy() { @NonNull @Override public AspectRatioStrategyFallbackRule getFallbackRule( - @NonNull AspectRatioStrategy pigeon_instance) { - switch (pigeon_instance.getFallbackRule()) { + @NonNull AspectRatioStrategy pigeonInstance) { + switch (pigeonInstance.getFallbackRule()) { case AspectRatioStrategy.FALLBACK_RULE_AUTO: return AspectRatioStrategyFallbackRule.AUTO; case AspectRatioStrategy.FALLBACK_RULE_NONE: @@ -73,8 +73,8 @@ public AspectRatioStrategyFallbackRule getFallbackRule( @NonNull @Override - public AspectRatio getPreferredAspectRatio(@NonNull AspectRatioStrategy pigeon_instance) { - switch (pigeon_instance.getPreferredAspectRatio()) { + public AspectRatio getPreferredAspectRatio(@NonNull AspectRatioStrategy pigeonInstance) { + switch (pigeonInstance.getPreferredAspectRatio()) { case androidx.camera.core.AspectRatio.RATIO_16_9: return AspectRatio.RATIO16TO9; case androidx.camera.core.AspectRatio.RATIO_4_3: diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java index 0fc7f291561..4d41de7e4e9 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraControlProxyApi.java @@ -43,11 +43,11 @@ public Camera2CameraControl from(@NonNull CameraControl cameraControl) { @Override public void addCaptureRequestOptions( - @NonNull Camera2CameraControl pigeon_instance, + @NonNull Camera2CameraControl pigeonInstance, @NonNull CaptureRequestOptions bundle, @NonNull Function1, Unit> callback) { final ListenableFuture addCaptureRequestOptionsFuture = - pigeon_instance.addCaptureRequestOptions(bundle); + pigeonInstance.addCaptureRequestOptions(bundle); Futures.addCallback( addCaptureRequestOptionsFuture, diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java index 69c4b01ba69..f9ee09c07b8 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/Camera2CameraInfoProxyApi.java @@ -32,15 +32,15 @@ public Camera2CameraInfo from(@NonNull CameraInfo cameraInfo) { @NonNull @Override - public String getCameraId(Camera2CameraInfo pigeon_instance) { - return pigeon_instance.getCameraId(); + public String getCameraId(Camera2CameraInfo pigeonInstance) { + return pigeonInstance.getCameraId(); } @Nullable @Override public Object getCameraCharacteristic( - Camera2CameraInfo pigeon_instance, @NonNull CameraCharacteristics.Key key) { - final Object result = pigeon_instance.getCameraCharacteristic(key); + Camera2CameraInfo pigeonInstance, @NonNull CameraCharacteristics.Key key) { + final Object result = pigeonInstance.getCameraCharacteristic(key); if (result == null) { return null; } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java index 9e5e2d6edd5..cee3178df80 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraControlProxyApi.java @@ -34,10 +34,10 @@ public ProxyApiRegistrar getPigeonRegistrar() { @Override public void enableTorch( - @NonNull CameraControl pigeon_instance, + @NonNull CameraControl pigeonInstance, boolean torch, @NonNull Function1, Unit> callback) { - final ListenableFuture enableTorchFuture = pigeon_instance.enableTorch(torch); + final ListenableFuture enableTorchFuture = pigeonInstance.enableTorch(torch); Futures.addCallback( enableTorchFuture, @@ -55,11 +55,11 @@ public void onFailure(@NonNull Throwable t) { @Override public void setZoomRatio( - @NonNull CameraControl pigeon_instance, + @NonNull CameraControl pigeonInstance, double ratio, @NonNull Function1, Unit> callback) { float ratioAsFloat = (float) ratio; - final ListenableFuture setZoomRatioFuture = pigeon_instance.setZoomRatio(ratioAsFloat); + final ListenableFuture setZoomRatioFuture = pigeonInstance.setZoomRatio(ratioAsFloat); Futures.addCallback( setZoomRatioFuture, @@ -84,11 +84,11 @@ public void onFailure(@NonNull Throwable t) { @Override public void startFocusAndMetering( - @NonNull CameraControl pigeon_instance, + @NonNull CameraControl pigeonInstance, @NonNull FocusMeteringAction action, @NonNull Function1, Unit> callback) { ListenableFuture focusMeteringResultFuture = - pigeon_instance.startFocusAndMetering(action); + pigeonInstance.startFocusAndMetering(action); Futures.addCallback( focusMeteringResultFuture, @@ -112,10 +112,10 @@ public void onFailure(@NonNull Throwable t) { @Override public void cancelFocusAndMetering( - @NonNull CameraControl pigeon_instance, + @NonNull CameraControl pigeonInstance, @NonNull Function1, Unit> callback) { final ListenableFuture cancelFocusAndMeteringFuture = - pigeon_instance.cancelFocusAndMetering(); + pigeonInstance.cancelFocusAndMetering(); Futures.addCallback( cancelFocusAndMeteringFuture, @@ -133,11 +133,11 @@ public void onFailure(@NonNull Throwable t) { @Override public void setExposureCompensationIndex( - @NonNull CameraControl pigeon_instance, + @NonNull CameraControl pigeonInstance, long index, @NonNull Function1, Unit> callback) { final ListenableFuture setExposureCompensationIndexFuture = - pigeon_instance.setExposureCompensationIndex((int) index); + pigeonInstance.setExposureCompensationIndex((int) index); Futures.addCallback( setExposureCompensationIndexFuture, diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java index 223446107e1..9b168dc52fd 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraInfoProxyApi.java @@ -19,27 +19,27 @@ class CameraInfoProxyApi extends PigeonApiCameraInfo { } @Override - public long sensorRotationDegrees(CameraInfo pigeon_instance) { - return pigeon_instance.getSensorRotationDegrees(); + public long sensorRotationDegrees(CameraInfo pigeonInstance) { + return pigeonInstance.getSensorRotationDegrees(); } @NonNull @Override - public ExposureState exposureState(CameraInfo pigeon_instance) { - return pigeon_instance.getExposureState(); + public ExposureState exposureState(CameraInfo pigeonInstance) { + return pigeonInstance.getExposureState(); } @NonNull @Override - public LiveDataProxyApi.LiveDataWrapper getCameraState(CameraInfo pigeon_instance) { + public LiveDataProxyApi.LiveDataWrapper getCameraState(CameraInfo pigeonInstance) { return new LiveDataProxyApi.LiveDataWrapper( - pigeon_instance.getCameraState(), LiveDataSupportedType.CAMERA_STATE); + pigeonInstance.getCameraState(), LiveDataSupportedType.CAMERA_STATE); } @NonNull @Override - public LiveDataProxyApi.LiveDataWrapper getZoomState(CameraInfo pigeon_instance) { + public LiveDataProxyApi.LiveDataWrapper getZoomState(CameraInfo pigeonInstance) { return new LiveDataProxyApi.LiveDataWrapper( - pigeon_instance.getZoomState(), LiveDataSupportedType.ZOOM_STATE); + pigeonInstance.getZoomState(), LiveDataSupportedType.ZOOM_STATE); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java index 63fbbef59cb..6ed0428990e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraIntegerRangeProxyApi.java @@ -24,12 +24,12 @@ public Range pigeon_defaultConstructor(long lower, long upper) { } @Override - public long lower(android.util.Range pigeon_instance) { - return (Integer) pigeon_instance.getLower(); + public long lower(android.util.Range pigeonInstance) { + return (Integer) pigeonInstance.getLower(); } @Override - public long upper(android.util.Range pigeon_instance) { - return (Integer) pigeon_instance.getUpper(); + public long upper(android.util.Range pigeonInstance) { + return (Integer) pigeonInstance.getUpper(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java index cf3277a7cea..83d20dae755 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraPermissionsErrorProxyApi.java @@ -19,13 +19,13 @@ public CameraPermissionsErrorProxyApi( @NonNull @Override - public String errorCode(@NonNull CameraPermissionsError pigeon_instance) { - return pigeon_instance.getErrorCode(); + public String errorCode(@NonNull CameraPermissionsError pigeonInstance) { + return pigeonInstance.getErrorCode(); } @NonNull @Override - public String description(@NonNull CameraPermissionsError pigeon_instance) { - return pigeon_instance.getDescription(); + public String description(@NonNull CameraPermissionsError pigeonInstance) { + return pigeonInstance.getDescription(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java index 0e6b3b0c1cb..3d9158f7ea1 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraProxyApi.java @@ -21,13 +21,13 @@ class CameraProxyApi extends PigeonApiCamera { @NonNull @Override - public CameraControl cameraControl(Camera pigeon_instance) { - return pigeon_instance.getCameraControl(); + public CameraControl cameraControl(Camera pigeonInstance) { + return pigeonInstance.getCameraControl(); } @NonNull @Override - public CameraInfo getCameraInfo(Camera pigeon_instance) { - return pigeon_instance.getCameraInfo(); + public CameraInfo getCameraInfo(Camera pigeonInstance) { + return pigeonInstance.getCameraInfo(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java index 9b6a01272e9..b1eb4121060 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSelectorProxyApi.java @@ -62,7 +62,7 @@ public androidx.camera.core.CameraSelector defaultFrontCamera() { @NonNull @Override public List filter( - @NonNull CameraSelector pigeon_instance, @NonNull List cameraInfos) { - return pigeon_instance.filter((List) cameraInfos); + @NonNull CameraSelector pigeonInstance, @NonNull List cameraInfos) { + return pigeonInstance.filter((List) cameraInfos); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java index c533c1823cc..3294467fcd9 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraSizeProxyApi.java @@ -24,12 +24,12 @@ public Size pigeon_defaultConstructor(long width, long height) { } @Override - public long width(@NonNull Size pigeon_instance) { - return pigeon_instance.getWidth(); + public long width(@NonNull Size pigeonInstance) { + return pigeonInstance.getWidth(); } @Override - public long height(Size pigeon_instance) { - return pigeon_instance.getHeight(); + public long height(Size pigeonInstance) { + return pigeonInstance.getHeight(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java index fc2b6310bd8..33f164a0193 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateProxyApi.java @@ -21,8 +21,8 @@ class CameraStateProxyApi extends PigeonApiCameraState { @NonNull @Override - public CameraStateType type(CameraState pigeon_instance) { - switch (pigeon_instance.getType()) { + public CameraStateType type(CameraState pigeonInstance) { + switch (pigeonInstance.getType()) { case PENDING_OPEN: return CameraStateType.PENDING_OPEN; case OPENING: @@ -40,7 +40,7 @@ public CameraStateType type(CameraState pigeon_instance) { @Nullable @Override - public StateError error(CameraState pigeon_instance) { - return pigeon_instance.getError(); + public StateError error(CameraState pigeonInstance) { + return pigeonInstance.getError(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java index be82ffe466c..6864a3dd549 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraStateStateErrorProxyApi.java @@ -19,8 +19,8 @@ class CameraStateStateErrorProxyApi extends PigeonApiCameraStateStateError { @NonNull @Override - public CameraStateErrorCode code(CameraState.StateError pigeon_instance) { - switch (pigeon_instance.getCode()) { + public CameraStateErrorCode code(CameraState.StateError pigeonInstance) { + switch (pigeonInstance.getCode()) { case CameraState.ERROR_CAMERA_DISABLED: return CameraStateErrorCode.CAMERA_DISABLED; case CameraState.ERROR_CAMERA_FATAL_ERROR: diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index abd671db13f..ff23ad6c244 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -1365,10 +1365,10 @@ abstract class PigeonApiCameraSize( abstract fun pigeon_defaultConstructor(width: Long, height: Long): android.util.Size /** The width of the size (in pixels). */ - abstract fun width(pigeon_instance: android.util.Size): Long + abstract fun width(pigeonInstance: android.util.Size): Long /** The height of the size (in pixels). */ - abstract fun height(pigeon_instance: android.util.Size): Long + abstract fun height(pigeonInstance: android.util.Size): Long companion object { @Suppress("LocalVariableName") @@ -1404,19 +1404,19 @@ abstract class PigeonApiCameraSize( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraSize and attaches it to [pigeon_instanceArg]. */ - fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) { + /** Creates a Dart instance of CameraSize and attaches it to [pigeonInstanceArg]. */ + fun pigeon_newInstance(pigeonInstanceArg: android.util.Size, callback: (Result) -> Unit) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val widthArg = width(pigeon_instanceArg) - val heightArg = height(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val widthArg = width(pigeonInstanceArg) + val heightArg = height(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance" @@ -1447,24 +1447,24 @@ abstract class PigeonApiResolutionInfo( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** Returns the output resolution used for the use case. */ - abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size + abstract fun resolution(pigeonInstance: androidx.camera.core.ResolutionInfo): android.util.Size @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ResolutionInfo, + pigeonInstanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionArg = resolution(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val resolutionArg = resolution(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1499,10 +1499,10 @@ abstract class PigeonApiCameraIntegerRange( abstract fun pigeon_defaultConstructor(lower: Long, upper: Long): android.util.Range<*> /** The lower endpoint. */ - abstract fun lower(pigeon_instance: android.util.Range<*>): Long + abstract fun lower(pigeonInstance: android.util.Range<*>): Long /** The upper endpoint. */ - abstract fun upper(pigeon_instance: android.util.Range<*>): Long + abstract fun upper(pigeonInstance: android.util.Range<*>): Long companion object { @Suppress("LocalVariableName") @@ -1538,22 +1538,22 @@ abstract class PigeonApiCameraIntegerRange( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: android.util.Range<*>, + pigeonInstanceArg: android.util.Range<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val lowerArg = lower(pigeon_instanceArg) - val upperArg = upper(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val lowerArg = lower(pigeonInstanceArg) + val upperArg = upper(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1584,20 +1584,20 @@ open class PigeonApiVideoRecordEvent( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, + pigeonInstanceArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1628,20 +1628,20 @@ open class PigeonApiVideoRecordEventStart( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, + pigeonInstanceArg: androidx.camera.video.VideoRecordEvent.Start, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1678,22 +1678,20 @@ open class PigeonApiVideoRecordEventFinalize( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. - */ + /** Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, + pigeonInstanceArg: androidx.camera.video.VideoRecordEvent.Finalize, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1736,7 +1734,7 @@ abstract class PigeonApiMeteringPoint( * It is the percentage of the sensor width/height (or crop region width/height if crop region is * set). */ - abstract fun getSize(pigeon_instance: androidx.camera.core.MeteringPoint): Double + abstract fun getSize(pigeonInstance: androidx.camera.core.MeteringPoint): Double companion object { @Suppress("LocalVariableName") @@ -1751,10 +1749,10 @@ abstract class PigeonApiMeteringPoint( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPoint + val pigeonInstanceArg = args[0] as androidx.camera.core.MeteringPoint val wrapped: List = try { - listOf(api.getSize(pigeon_instanceArg)) + listOf(api.getSize(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -1768,20 +1766,20 @@ abstract class PigeonApiMeteringPoint( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of MeteringPoint and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of MeteringPoint and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.MeteringPoint, + pigeonInstanceArg: androidx.camera.core.MeteringPoint, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" @@ -1842,16 +1840,16 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Observer and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of Observer and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.lifecycle.Observer<*>, + pigeonInstanceArg: androidx.lifecycle.Observer<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -1865,7 +1863,7 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP /** Called when the data is changed to value. */ fun onChanged( - pigeon_instanceArg: androidx.lifecycle.Observer<*>, + pigeonInstanceArg: androidx.lifecycle.Observer<*>, valueArg: Any, callback: (Result) -> Unit ) { @@ -1879,7 +1877,7 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Observer.onChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_instanceArg, valueArg)) { + channel.send(listOf(pigeonInstanceArg, valueArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -1905,21 +1903,21 @@ abstract class PigeonApiCameraInfo( * Returns the sensor rotation in degrees, relative to the device's "natural" (default) * orientation. */ - abstract fun sensorRotationDegrees(pigeon_instance: androidx.camera.core.CameraInfo): Long + abstract fun sensorRotationDegrees(pigeonInstance: androidx.camera.core.CameraInfo): Long /** Returns a ExposureState. */ abstract fun exposureState( - pigeon_instance: androidx.camera.core.CameraInfo + pigeonInstance: androidx.camera.core.CameraInfo ): androidx.camera.core.ExposureState /** A LiveData of the camera's state. */ abstract fun getCameraState( - pigeon_instance: androidx.camera.core.CameraInfo + pigeonInstance: androidx.camera.core.CameraInfo ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper /** A LiveData of ZoomState. */ abstract fun getZoomState( - pigeon_instance: androidx.camera.core.CameraInfo + pigeonInstance: androidx.camera.core.CameraInfo ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper companion object { @@ -1935,10 +1933,10 @@ abstract class PigeonApiCameraInfo( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo + val pigeonInstanceArg = args[0] as androidx.camera.core.CameraInfo val wrapped: List = try { - listOf(api.getCameraState(pigeon_instanceArg)) + listOf(api.getCameraState(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -1957,10 +1955,10 @@ abstract class PigeonApiCameraInfo( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo + val pigeonInstanceArg = args[0] as androidx.camera.core.CameraInfo val wrapped: List = try { - listOf(api.getZoomState(pigeon_instanceArg)) + listOf(api.getZoomState(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -1974,22 +1972,22 @@ abstract class PigeonApiCameraInfo( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraInfo and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CameraInfo and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraInfo, + pigeonInstanceArg: androidx.camera.core.CameraInfo, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) - val exposureStateArg = exposureState(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val sensorRotationDegreesArg = sensorRotationDegrees(pigeonInstanceArg) + val exposureStateArg = exposureState(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance" @@ -2030,7 +2028,7 @@ abstract class PigeonApiCameraSelector( /** Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the selector. */ abstract fun filter( - pigeon_instance: androidx.camera.core.CameraSelector, + pigeonInstance: androidx.camera.core.CameraSelector, cameraInfos: List ): List @@ -2120,11 +2118,11 @@ abstract class PigeonApiCameraSelector( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.CameraSelector + val pigeonInstanceArg = args[0] as androidx.camera.core.CameraSelector val cameraInfosArg = args[1] as List val wrapped: List = try { - listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) + listOf(api.filter(pigeonInstanceArg, cameraInfosArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2138,20 +2136,20 @@ abstract class PigeonApiCameraSelector( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraSelector and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CameraSelector and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraSelector, + pigeonInstanceArg: androidx.camera.core.CameraSelector, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -2189,30 +2187,30 @@ abstract class PigeonApiProcessCameraProvider( /** The `CameraInfo` instances of the available cameras. */ abstract fun getAvailableCameraInfos( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider + pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider ): List /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ abstract fun bindToLifecycle( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelector: androidx.camera.core.CameraSelector, useCases: List ): androidx.camera.core.Camera /** Returns true if the `UseCase` is bound to a lifecycle. */ abstract fun isBound( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase ): Boolean /** Unbinds all specified use cases from the lifecycle provider. */ abstract fun unbind( - pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, + pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider, useCases: List ) /** Unbinds all use cases from the lifecycle provider and removes them from CameraX. */ - abstract fun unbindAll(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider) + abstract fun unbindAll(pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider) companion object { @Suppress("LocalVariableName") @@ -2252,10 +2250,10 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val wrapped: List = try { - listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) + listOf(api.getAvailableCameraInfos(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2274,12 +2272,12 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val cameraSelectorArg = args[1] as androidx.camera.core.CameraSelector val useCasesArg = args[2] as List val wrapped: List = try { - listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) + listOf(api.bindToLifecycle(pigeonInstanceArg, cameraSelectorArg, useCasesArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2298,11 +2296,11 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCaseArg = args[1] as androidx.camera.core.UseCase val wrapped: List = try { - listOf(api.isBound(pigeon_instanceArg, useCaseArg)) + listOf(api.isBound(pigeonInstanceArg, useCaseArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2321,11 +2319,11 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCasesArg = args[1] as List val wrapped: List = try { - api.unbind(pigeon_instanceArg, useCasesArg) + api.unbind(pigeonInstanceArg, useCasesArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2345,10 +2343,10 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val wrapped: List = try { - api.unbindAll(pigeon_instanceArg) + api.unbindAll(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2363,20 +2361,20 @@ abstract class PigeonApiProcessCameraProvider( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, + pigeonInstanceArg: androidx.camera.lifecycle.ProcessCameraProvider, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -2405,20 +2403,20 @@ abstract class PigeonApiProcessCameraProvider( @Suppress("UNCHECKED_CAST") open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of UseCase and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.UseCase, + pigeonInstanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" @@ -2448,12 +2446,12 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The `CameraControl` for the Camera. */ abstract fun cameraControl( - pigeon_instance: androidx.camera.core.Camera + pigeonInstance: androidx.camera.core.Camera ): androidx.camera.core.CameraControl /** Returns information about this camera. */ abstract fun getCameraInfo( - pigeon_instance: androidx.camera.core.Camera + pigeonInstance: androidx.camera.core.Camera ): androidx.camera.core.CameraInfo companion object { @@ -2469,10 +2467,10 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.Camera + val pigeonInstanceArg = args[0] as androidx.camera.core.Camera val wrapped: List = try { - listOf(api.getCameraInfo(pigeon_instanceArg)) + listOf(api.getCameraInfo(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2486,21 +2484,21 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Camera and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of Camera and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.Camera, + pigeonInstanceArg: androidx.camera.core.Camera, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val cameraControlArg = cameraControl(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val cameraControlArg = cameraControl(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance" @@ -2528,14 +2526,14 @@ abstract class PigeonApiSystemServicesManager( abstract fun pigeon_defaultConstructor(): SystemServicesManager abstract fun requestCameraPermissions( - pigeon_instance: SystemServicesManager, + pigeonInstance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit ) /** Returns a path to be used to create a temp file in the current cache directory. */ abstract fun getTempFilePath( - pigeon_instance: SystemServicesManager, + pigeonInstance: SystemServicesManager, prefix: String, suffix: String ): String @@ -2580,9 +2578,9 @@ abstract class PigeonApiSystemServicesManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as SystemServicesManager + val pigeonInstanceArg = args[0] as SystemServicesManager val enableAudioArg = args[1] as Boolean - api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { + api.requestCameraPermissions(pigeonInstanceArg, enableAudioArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { @@ -2606,12 +2604,12 @@ abstract class PigeonApiSystemServicesManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as SystemServicesManager + val pigeonInstanceArg = args[0] as SystemServicesManager val prefixArg = args[1] as String val suffixArg = args[2] as String val wrapped: List = try { - listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) + listOf(api.getTempFilePath(pigeonInstanceArg, prefixArg, suffixArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2625,16 +2623,16 @@ abstract class PigeonApiSystemServicesManager( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: SystemServicesManager, + pigeonInstanceArg: SystemServicesManager, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -2647,7 +2645,7 @@ abstract class PigeonApiSystemServicesManager( } fun onCameraError( - pigeon_instanceArg: SystemServicesManager, + pigeonInstanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit ) { @@ -2662,7 +2660,7 @@ abstract class PigeonApiSystemServicesManager( val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_instanceArg, errorDescriptionArg)) { + channel.send(listOf(pigeonInstanceArg, errorDescriptionArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -2680,27 +2678,27 @@ abstract class PigeonApiSystemServicesManager( abstract class PigeonApiCameraPermissionsError( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { - abstract fun errorCode(pigeon_instance: CameraPermissionsError): String + abstract fun errorCode(pigeonInstance: CameraPermissionsError): String - abstract fun description(pigeon_instance: CameraPermissionsError): String + abstract fun description(pigeonInstance: CameraPermissionsError): String @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraPermissionsError and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CameraPermissionsError and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: CameraPermissionsError, + pigeonInstanceArg: CameraPermissionsError, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val errorCodeArg = errorCode(pigeon_instanceArg) - val descriptionArg = description(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val errorCodeArg = errorCode(pigeonInstanceArg) + val descriptionArg = description(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -2730,13 +2728,13 @@ abstract class PigeonApiDeviceOrientationManager( ) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager - abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) + abstract fun startListeningForDeviceOrientationChange(pigeonInstance: DeviceOrientationManager) - abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) + abstract fun stopListeningForDeviceOrientationChange(pigeonInstance: DeviceOrientationManager) - abstract fun getDefaultDisplayRotation(pigeon_instance: DeviceOrientationManager): Long + abstract fun getDefaultDisplayRotation(pigeonInstance: DeviceOrientationManager): Long - abstract fun getUiOrientation(pigeon_instance: DeviceOrientationManager): String + abstract fun getUiOrientation(pigeonInstance: DeviceOrientationManager): String companion object { @Suppress("LocalVariableName") @@ -2778,10 +2776,10 @@ abstract class PigeonApiDeviceOrientationManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as DeviceOrientationManager + val pigeonInstanceArg = args[0] as DeviceOrientationManager val wrapped: List = try { - api.startListeningForDeviceOrientationChange(pigeon_instanceArg) + api.startListeningForDeviceOrientationChange(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2801,10 +2799,10 @@ abstract class PigeonApiDeviceOrientationManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as DeviceOrientationManager + val pigeonInstanceArg = args[0] as DeviceOrientationManager val wrapped: List = try { - api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) + api.stopListeningForDeviceOrientationChange(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2824,10 +2822,10 @@ abstract class PigeonApiDeviceOrientationManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as DeviceOrientationManager + val pigeonInstanceArg = args[0] as DeviceOrientationManager val wrapped: List = try { - listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) + listOf(api.getDefaultDisplayRotation(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2846,10 +2844,10 @@ abstract class PigeonApiDeviceOrientationManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as DeviceOrientationManager + val pigeonInstanceArg = args[0] as DeviceOrientationManager val wrapped: List = try { - listOf(api.getUiOrientation(pigeon_instanceArg)) + listOf(api.getUiOrientation(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2863,18 +2861,16 @@ abstract class PigeonApiDeviceOrientationManager( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. - */ + /** Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: DeviceOrientationManager, + pigeonInstanceArg: DeviceOrientationManager, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -2887,7 +2883,7 @@ abstract class PigeonApiDeviceOrientationManager( } fun onDeviceOrientationChanged( - pigeon_instanceArg: DeviceOrientationManager, + pigeonInstanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit ) { @@ -2902,7 +2898,7 @@ abstract class PigeonApiDeviceOrientationManager( val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_instanceArg, orientationArg)) { + channel.send(listOf(pigeonInstanceArg, orientationArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -2928,7 +2924,7 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr ): androidx.camera.core.Preview abstract fun resolutionSelector( - pigeon_instance: androidx.camera.core.Preview + pigeonInstance: androidx.camera.core.Preview ): androidx.camera.core.resolutionselector.ResolutionSelector? /** @@ -2940,27 +2936,27 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr * 3. Returns the texture id of the `TextureEntry` that provided the `SurfaceProducer`. */ abstract fun setSurfaceProvider( - pigeon_instance: androidx.camera.core.Preview, + pigeonInstance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager ): Long /** Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was created. */ - abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) + abstract fun releaseSurfaceProvider(pigeonInstance: androidx.camera.core.Preview) /** Gets selected resolution information of the `Preview`. */ abstract fun getResolutionInfo( - pigeon_instance: androidx.camera.core.Preview + pigeonInstance: androidx.camera.core.Preview ): androidx.camera.core.ResolutionInfo? /** Sets the target rotation. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) + abstract fun setTargetRotation(pigeonInstance: androidx.camera.core.Preview, rotation: Long) /** * Returns whether or not the preview's surface producer handles correctly rotating the camera * preview automatically. */ abstract fun surfaceProducerHandlesCropAndRotation( - pigeon_instance: androidx.camera.core.Preview + pigeonInstance: androidx.camera.core.Preview ): Boolean companion object { @@ -3004,11 +3000,11 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val pigeonInstanceArg = args[0] as androidx.camera.core.Preview val systemServicesManagerArg = args[1] as SystemServicesManager val wrapped: List = try { - listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) + listOf(api.setSurfaceProvider(pigeonInstanceArg, systemServicesManagerArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3027,10 +3023,10 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val pigeonInstanceArg = args[0] as androidx.camera.core.Preview val wrapped: List = try { - api.releaseSurfaceProvider(pigeon_instanceArg) + api.releaseSurfaceProvider(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3050,10 +3046,10 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val pigeonInstanceArg = args[0] as androidx.camera.core.Preview val wrapped: List = try { - listOf(api.getResolutionInfo(pigeon_instanceArg)) + listOf(api.getResolutionInfo(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3072,11 +3068,11 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val pigeonInstanceArg = args[0] as androidx.camera.core.Preview val rotationArg = args[1] as Long val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) + api.setTargetRotation(pigeonInstanceArg, rotationArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3096,10 +3092,10 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.Preview + val pigeonInstanceArg = args[0] as androidx.camera.core.Preview val wrapped: List = try { - listOf(api.surfaceProducerHandlesCropAndRotation(pigeon_instanceArg)) + listOf(api.surfaceProducerHandlesCropAndRotation(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3113,21 +3109,21 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Preview and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of Preview and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.Preview, + pigeonInstanceArg: androidx.camera.core.Preview, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val resolutionSelectorArg = resolutionSelector(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance" @@ -3169,12 +3165,12 @@ abstract class PigeonApiVideoCapture( /** Gets the VideoOutput associated with this VideoCapture. */ abstract fun getOutput( - pigeon_instance: androidx.camera.video.VideoCapture<*> + pigeonInstance: androidx.camera.video.VideoCapture<*> ): androidx.camera.video.VideoOutput /** Sets the desired rotation of the output video. */ abstract fun setTargetRotation( - pigeon_instance: androidx.camera.video.VideoCapture<*>, + pigeonInstance: androidx.camera.video.VideoCapture<*>, rotation: Long ) @@ -3216,10 +3212,10 @@ abstract class PigeonApiVideoCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> + val pigeonInstanceArg = args[0] as androidx.camera.video.VideoCapture<*> val wrapped: List = try { - listOf(api.getOutput(pigeon_instanceArg)) + listOf(api.getOutput(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3238,11 +3234,11 @@ abstract class PigeonApiVideoCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> + val pigeonInstanceArg = args[0] as androidx.camera.video.VideoCapture<*> val rotationArg = args[1] as Long val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) + api.setTargetRotation(pigeonInstanceArg, rotationArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3257,20 +3253,20 @@ abstract class PigeonApiVideoCapture( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoCapture and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of VideoCapture and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, + pigeonInstanceArg: androidx.camera.video.VideoCapture<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" @@ -3304,20 +3300,20 @@ abstract class PigeonApiVideoCapture( @Suppress("UNCHECKED_CAST") open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoOutput and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of VideoOutput and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.VideoOutput, + pigeonInstanceArg: androidx.camera.video.VideoOutput, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" @@ -3352,19 +3348,19 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP ): androidx.camera.video.Recorder /** Gets the aspect ratio of this Recorder. */ - abstract fun getAspectRatio(pigeon_instance: androidx.camera.video.Recorder): Long + abstract fun getAspectRatio(pigeonInstance: androidx.camera.video.Recorder): Long /** Gets the target video encoding bitrate of this Recorder. */ - abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long + abstract fun getTargetVideoEncodingBitRate(pigeonInstance: androidx.camera.video.Recorder): Long /** The quality selector of this Recorder. */ abstract fun getQualitySelector( - pigeon_instance: androidx.camera.video.Recorder + pigeonInstance: androidx.camera.video.Recorder ): androidx.camera.video.QualitySelector /** Prepares a recording that will be saved to a File. */ abstract fun prepareRecording( - pigeon_instance: androidx.camera.video.Recorder, + pigeonInstance: androidx.camera.video.Recorder, path: String ): androidx.camera.video.PendingRecording @@ -3410,10 +3406,10 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder + val pigeonInstanceArg = args[0] as androidx.camera.video.Recorder val wrapped: List = try { - listOf(api.getAspectRatio(pigeon_instanceArg)) + listOf(api.getAspectRatio(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3432,10 +3428,10 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder + val pigeonInstanceArg = args[0] as androidx.camera.video.Recorder val wrapped: List = try { - listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) + listOf(api.getTargetVideoEncodingBitRate(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3454,10 +3450,10 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder + val pigeonInstanceArg = args[0] as androidx.camera.video.Recorder val wrapped: List = try { - listOf(api.getQualitySelector(pigeon_instanceArg)) + listOf(api.getQualitySelector(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3476,11 +3472,11 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder + val pigeonInstanceArg = args[0] as androidx.camera.video.Recorder val pathArg = args[1] as String val wrapped: List = try { - listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) + listOf(api.prepareRecording(pigeonInstanceArg, pathArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3494,20 +3490,20 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Recorder and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of Recorder and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.Recorder, + pigeonInstanceArg: androidx.camera.video.Recorder, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" @@ -3575,18 +3571,16 @@ abstract class PigeonApiVideoRecordEventListener( } @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. - */ + /** Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: VideoRecordEventListener, + pigeonInstanceArg: VideoRecordEventListener, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -3599,7 +3593,7 @@ abstract class PigeonApiVideoRecordEventListener( } fun onEvent( - pigeon_instanceArg: VideoRecordEventListener, + pigeonInstanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit ) { @@ -3613,7 +3607,7 @@ abstract class PigeonApiVideoRecordEventListener( val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_instanceArg, eventArg)) { + channel.send(listOf(pigeonInstanceArg, eventArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -3637,7 +3631,7 @@ abstract class PigeonApiPendingRecording( ) { /** Starts the recording, making it an active recording. */ abstract fun start( - pigeon_instance: androidx.camera.video.PendingRecording, + pigeonInstance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener ): androidx.camera.video.Recording @@ -3654,11 +3648,11 @@ abstract class PigeonApiPendingRecording( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording + val pigeonInstanceArg = args[0] as androidx.camera.video.PendingRecording val listenerArg = args[1] as VideoRecordEventListener val wrapped: List = try { - listOf(api.start(pigeon_instanceArg, listenerArg)) + listOf(api.start(pigeonInstanceArg, listenerArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3672,20 +3666,20 @@ abstract class PigeonApiPendingRecording( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of PendingRecording and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of PendingRecording and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.PendingRecording, + pigeonInstanceArg: androidx.camera.video.PendingRecording, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -3714,20 +3708,20 @@ abstract class PigeonApiPendingRecording( @Suppress("UNCHECKED_CAST") abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Close this recording. */ - abstract fun close(pigeon_instance: androidx.camera.video.Recording) + abstract fun close(pigeonInstance: androidx.camera.video.Recording) /** Pauses the current recording if active. */ - abstract fun pause(pigeon_instance: androidx.camera.video.Recording) + abstract fun pause(pigeonInstance: androidx.camera.video.Recording) /** Resumes the current recording if paused. */ - abstract fun resume(pigeon_instance: androidx.camera.video.Recording) + abstract fun resume(pigeonInstance: androidx.camera.video.Recording) /** * Stops the recording, as if calling `close`. * * This method is equivalent to calling `close`. */ - abstract fun stop(pigeon_instance: androidx.camera.video.Recording) + abstract fun stop(pigeonInstance: androidx.camera.video.Recording) companion object { @Suppress("LocalVariableName") @@ -3740,10 +3734,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.Recording + val pigeonInstanceArg = args[0] as androidx.camera.video.Recording val wrapped: List = try { - api.close(pigeon_instanceArg) + api.close(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3761,10 +3755,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.Recording + val pigeonInstanceArg = args[0] as androidx.camera.video.Recording val wrapped: List = try { - api.pause(pigeon_instanceArg) + api.pause(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3784,10 +3778,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.Recording + val pigeonInstanceArg = args[0] as androidx.camera.video.Recording val wrapped: List = try { - api.resume(pigeon_instanceArg) + api.resume(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3805,10 +3799,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.video.Recording + val pigeonInstanceArg = args[0] as androidx.camera.video.Recording val wrapped: List = try { - api.stop(pigeon_instanceArg) + api.stop(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3823,20 +3817,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Recording and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of Recording and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.Recording, + pigeonInstanceArg: androidx.camera.video.Recording, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" @@ -3872,23 +3866,23 @@ abstract class PigeonApiImageCapture( ): androidx.camera.core.ImageCapture abstract fun resolutionSelector( - pigeon_instance: androidx.camera.core.ImageCapture + pigeonInstance: androidx.camera.core.ImageCapture ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Set the flash mode. */ abstract fun setFlashMode( - pigeon_instance: androidx.camera.core.ImageCapture, + pigeonInstance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode ) /** Captures a new still image for in memory access. */ abstract fun takePicture( - pigeon_instance: androidx.camera.core.ImageCapture, + pigeonInstance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit ) /** Sets the desired rotation of the output image. */ - abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) + abstract fun setTargetRotation(pigeonInstance: androidx.camera.core.ImageCapture, rotation: Long) companion object { @Suppress("LocalVariableName") @@ -3933,11 +3927,11 @@ abstract class PigeonApiImageCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture + val pigeonInstanceArg = args[0] as androidx.camera.core.ImageCapture val flashModeArg = args[1] as CameraXFlashMode val wrapped: List = try { - api.setFlashMode(pigeon_instanceArg, flashModeArg) + api.setFlashMode(pigeonInstanceArg, flashModeArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3957,8 +3951,8 @@ abstract class PigeonApiImageCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture - api.takePicture(pigeon_instanceArg) { result: Result -> + val pigeonInstanceArg = args[0] as androidx.camera.core.ImageCapture + api.takePicture(pigeonInstanceArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -3981,11 +3975,11 @@ abstract class PigeonApiImageCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture + val pigeonInstanceArg = args[0] as androidx.camera.core.ImageCapture val rotationArg = args[1] as Long val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) + api.setTargetRotation(pigeonInstanceArg, rotationArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -4000,21 +3994,21 @@ abstract class PigeonApiImageCapture( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ImageCapture and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ImageCapture and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageCapture, + pigeonInstanceArg: androidx.camera.core.ImageCapture, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val resolutionSelectorArg = resolutionSelector(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance" @@ -4061,14 +4055,14 @@ abstract class PigeonApiResolutionStrategy( /** The specified bound size. */ abstract fun getBoundSize( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy + pigeonInstance: androidx.camera.core.resolutionselector.ResolutionStrategy ): android.util.Size? /** * The fallback rule for choosing an alternate size when the specified bound size is unavailable. */ abstract fun getFallbackRule( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy + pigeonInstance: androidx.camera.core.resolutionselector.ResolutionStrategy ): ResolutionStrategyFallbackRule companion object { @@ -4135,11 +4129,11 @@ abstract class PigeonApiResolutionStrategy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = + val pigeonInstanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy val wrapped: List = try { - listOf(api.getBoundSize(pigeon_instanceArg)) + listOf(api.getBoundSize(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4158,11 +4152,11 @@ abstract class PigeonApiResolutionStrategy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = + val pigeonInstanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy val wrapped: List = try { - listOf(api.getFallbackRule(pigeon_instanceArg)) + listOf(api.getFallbackRule(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4176,20 +4170,20 @@ abstract class PigeonApiResolutionStrategy( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, + pigeonInstanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -4228,12 +4222,12 @@ abstract class PigeonApiResolutionSelector( /** The resolution filter to output the final desired sizes list. */ abstract fun resolutionFilter( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + pigeonInstance: androidx.camera.core.resolutionselector.ResolutionSelector ): androidx.camera.core.resolutionselector.ResolutionFilter? /** The resolution selection strategy for the `UseCase`. */ abstract fun resolutionStrategy( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + pigeonInstance: androidx.camera.core.resolutionselector.ResolutionSelector ): androidx.camera.core.resolutionselector.ResolutionStrategy? /** @@ -4242,7 +4236,7 @@ abstract class PigeonApiResolutionSelector( * ResolutionSelector. */ abstract fun getAspectRatioStrategy( - pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector + pigeonInstance: androidx.camera.core.resolutionselector.ResolutionSelector ): androidx.camera.core.resolutionselector.AspectRatioStrategy companion object { @@ -4290,11 +4284,11 @@ abstract class PigeonApiResolutionSelector( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = + val pigeonInstanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionSelector val wrapped: List = try { - listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) + listOf(api.getAspectRatioStrategy(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4308,22 +4302,22 @@ abstract class PigeonApiResolutionSelector( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, + pigeonInstanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionFilterArg = resolutionFilter(pigeon_instanceArg) - val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val resolutionFilterArg = resolutionFilter(pigeonInstanceArg) + val resolutionStrategyArg = resolutionStrategy(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -4379,12 +4373,12 @@ abstract class PigeonApiAspectRatioStrategy( * not available. */ abstract fun getFallbackRule( - pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy + pigeonInstance: androidx.camera.core.resolutionselector.AspectRatioStrategy ): AspectRatioStrategyFallbackRule /** The specified preferred aspect ratio. */ abstract fun getPreferredAspectRatio( - pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy + pigeonInstance: androidx.camera.core.resolutionselector.AspectRatioStrategy ): AspectRatio companion object { @@ -4475,11 +4469,11 @@ abstract class PigeonApiAspectRatioStrategy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = + val pigeonInstanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy val wrapped: List = try { - listOf(api.getFallbackRule(pigeon_instanceArg)) + listOf(api.getFallbackRule(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4498,11 +4492,11 @@ abstract class PigeonApiAspectRatioStrategy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = + val pigeonInstanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy val wrapped: List = try { - listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) + listOf(api.getPreferredAspectRatio(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4516,20 +4510,20 @@ abstract class PigeonApiAspectRatioStrategy( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, + pigeonInstanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -4560,30 +4554,30 @@ abstract class PigeonApiCameraState( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** The camera's state. */ - abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType + abstract fun type(pigeonInstance: androidx.camera.core.CameraState): CameraStateType /** Potentially returns an error the camera encountered. */ abstract fun error( - pigeon_instance: androidx.camera.core.CameraState + pigeonInstance: androidx.camera.core.CameraState ): androidx.camera.core.CameraState.StateError? @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CameraState and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraState, + pigeonInstanceArg: androidx.camera.core.CameraState, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val typeArg = type(pigeon_instanceArg) - val errorArg = error(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val typeArg = type(pigeonInstanceArg) + val errorArg = error(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance" @@ -4617,29 +4611,29 @@ abstract class PigeonApiExposureState( * `CameraControl.setExposureCompensationIndex`. */ abstract fun exposureCompensationRange( - pigeon_instance: androidx.camera.core.ExposureState + pigeonInstance: androidx.camera.core.ExposureState ): android.util.Range<*> /** Get the smallest step by which the exposure compensation can be changed. */ - abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double + abstract fun exposureCompensationStep(pigeonInstance: androidx.camera.core.ExposureState): Double @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ExposureState and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ExposureState, + pigeonInstanceArg: androidx.camera.core.ExposureState, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) - val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val exposureCompensationRangeArg = exposureCompensationRange(pigeonInstanceArg) + val exposureCompensationStepArg = exposureCompensationStep(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" @@ -4669,28 +4663,28 @@ abstract class PigeonApiExposureState( @Suppress("UNCHECKED_CAST") abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The minimum zoom ratio. */ - abstract fun minZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double + abstract fun minZoomRatio(pigeonInstance: androidx.camera.core.ZoomState): Double /** The maximum zoom ratio. */ - abstract fun maxZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double + abstract fun maxZoomRatio(pigeonInstance: androidx.camera.core.ZoomState): Double @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ZoomState and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ZoomState, + pigeonInstanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) - val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val minZoomRatioArg = minZoomRatio(pigeonInstanceArg) + val maxZoomRatioArg = maxZoomRatio(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance" @@ -4725,23 +4719,20 @@ abstract class PigeonApiImageAnalysis( ): androidx.camera.core.ImageAnalysis abstract fun resolutionSelector( - pigeon_instance: androidx.camera.core.ImageAnalysis + pigeonInstance: androidx.camera.core.ImageAnalysis ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Sets an analyzer to receive and analyze images. */ abstract fun setAnalyzer( - pigeon_instance: androidx.camera.core.ImageAnalysis, + pigeonInstance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer ) /** Removes a previously set analyzer. */ - abstract fun clearAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis) + abstract fun clearAnalyzer(pigeonInstance: androidx.camera.core.ImageAnalysis) /** Sets the target rotation. */ - abstract fun setTargetRotation( - pigeon_instance: androidx.camera.core.ImageAnalysis, - rotation: Long - ) + abstract fun setTargetRotation(pigeonInstance: androidx.camera.core.ImageAnalysis, rotation: Long) companion object { @Suppress("LocalVariableName") @@ -4784,11 +4775,11 @@ abstract class PigeonApiImageAnalysis( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis + val pigeonInstanceArg = args[0] as androidx.camera.core.ImageAnalysis val analyzerArg = args[1] as androidx.camera.core.ImageAnalysis.Analyzer val wrapped: List = try { - api.setAnalyzer(pigeon_instanceArg, analyzerArg) + api.setAnalyzer(pigeonInstanceArg, analyzerArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -4808,10 +4799,10 @@ abstract class PigeonApiImageAnalysis( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis + val pigeonInstanceArg = args[0] as androidx.camera.core.ImageAnalysis val wrapped: List = try { - api.clearAnalyzer(pigeon_instanceArg) + api.clearAnalyzer(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -4831,11 +4822,11 @@ abstract class PigeonApiImageAnalysis( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis + val pigeonInstanceArg = args[0] as androidx.camera.core.ImageAnalysis val rotationArg = args[1] as Long val wrapped: List = try { - api.setTargetRotation(pigeon_instanceArg, rotationArg) + api.setTargetRotation(pigeonInstanceArg, rotationArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -4850,21 +4841,21 @@ abstract class PigeonApiImageAnalysis( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageAnalysis, + pigeonInstanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val resolutionSelectorArg = resolutionSelector(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" @@ -4931,16 +4922,16 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Analyzer and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of Analyzer and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + pigeonInstanceArg: androidx.camera.core.ImageAnalysis.Analyzer, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -4954,7 +4945,7 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP /** Analyzes an image to produce a result. */ fun analyze( - pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + pigeonInstanceArg: androidx.camera.core.ImageAnalysis.Analyzer, imageArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit ) { @@ -4968,7 +4959,7 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeon_instanceArg, imageArg)) { + channel.send(listOf(pigeonInstanceArg, imageArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -4992,25 +4983,25 @@ abstract class PigeonApiCameraStateStateError( ) { /** The code of this error. */ abstract fun code( - pigeon_instance: androidx.camera.core.CameraState.StateError + pigeonInstance: androidx.camera.core.CameraState.StateError ): CameraStateErrorCode @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraState.StateError, + pigeonInstanceArg: androidx.camera.core.CameraState.StateError, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val codeArg = code(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val codeArg = code(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -5043,23 +5034,23 @@ abstract class PigeonApiCameraStateStateError( abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The generic type used by this instance. */ abstract fun type( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + pigeonInstance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper ): LiveDataSupportedType /** Adds the given observer to the observers list within the lifespan of the given owner. */ abstract fun observe( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + pigeonInstance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, observer: androidx.lifecycle.Observer<*> ) /** Removes all observers that are tied to the given `LifecycleOwner`. */ abstract fun removeObservers( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + pigeonInstance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper ) /** Returns the current value. */ abstract fun getValue( - pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + pigeonInstance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper ): Any? companion object { @@ -5075,12 +5066,12 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = + val pigeonInstanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val observerArg = args[1] as androidx.lifecycle.Observer<*> val wrapped: List = try { - api.observe(pigeon_instanceArg, observerArg) + api.observe(pigeonInstanceArg, observerArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -5100,11 +5091,11 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = + val pigeonInstanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val wrapped: List = try { - api.removeObservers(pigeon_instanceArg) + api.removeObservers(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -5124,11 +5115,11 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = + val pigeonInstanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val wrapped: List = try { - listOf(api.getValue(pigeon_instanceArg)) + listOf(api.getValue(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -5142,21 +5133,21 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of LiveData and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + pigeonInstanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val typeArg = type(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val typeArg = type(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance" @@ -5186,21 +5177,21 @@ abstract class PigeonApiImageProxy( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** The image format. */ - abstract fun format(pigeon_instance: androidx.camera.core.ImageProxy): Long + abstract fun format(pigeonInstance: androidx.camera.core.ImageProxy): Long /** The image width. */ - abstract fun width(pigeon_instance: androidx.camera.core.ImageProxy): Long + abstract fun width(pigeonInstance: androidx.camera.core.ImageProxy): Long /** The image height. */ - abstract fun height(pigeon_instance: androidx.camera.core.ImageProxy): Long + abstract fun height(pigeonInstance: androidx.camera.core.ImageProxy): Long /** Returns the array of planes. */ abstract fun getPlanes( - pigeon_instance: androidx.camera.core.ImageProxy + pigeonInstance: androidx.camera.core.ImageProxy ): List /** Closes the underlying `android.media.Image`. */ - abstract fun close(pigeon_instance: androidx.camera.core.ImageProxy) + abstract fun close(pigeonInstance: androidx.camera.core.ImageProxy) companion object { @Suppress("LocalVariableName") @@ -5215,10 +5206,10 @@ abstract class PigeonApiImageProxy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy + val pigeonInstanceArg = args[0] as androidx.camera.core.ImageProxy val wrapped: List = try { - listOf(api.getPlanes(pigeon_instanceArg)) + listOf(api.getPlanes(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -5237,10 +5228,10 @@ abstract class PigeonApiImageProxy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy + val pigeonInstanceArg = args[0] as androidx.camera.core.ImageProxy val wrapped: List = try { - api.close(pigeon_instanceArg) + api.close(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -5255,23 +5246,23 @@ abstract class PigeonApiImageProxy( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ImageProxy and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ImageProxy and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageProxy, + pigeonInstanceArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val formatArg = format(pigeon_instanceArg) - val widthArg = width(pigeon_instanceArg) - val heightArg = height(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val formatArg = format(pigeonInstanceArg) + val widthArg = width(pigeonInstanceArg) + val heightArg = height(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance" @@ -5301,32 +5292,32 @@ abstract class PigeonApiPlaneProxy( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** The pixels buffer. */ - abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray + abstract fun buffer(pigeonInstance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray /** The pixel stride. */ - abstract fun pixelStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long + abstract fun pixelStride(pigeonInstance: androidx.camera.core.ImageProxy.PlaneProxy): Long /** The row stride. */ - abstract fun rowStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long + abstract fun rowStride(pigeonInstance: androidx.camera.core.ImageProxy.PlaneProxy): Long @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of PlaneProxy and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, + pigeonInstanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val bufferArg = buffer(pigeon_instanceArg) - val pixelStrideArg = pixelStride(pigeon_instanceArg) - val rowStrideArg = rowStride(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val bufferArg = buffer(pigeonInstanceArg) + val pixelStrideArg = pixelStride(pigeonInstanceArg) + val rowStrideArg = rowStride(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance" @@ -5457,20 +5448,20 @@ abstract class PigeonApiQualitySelector( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of QualitySelector and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of QualitySelector and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.QualitySelector, + pigeonInstanceArg: androidx.camera.video.QualitySelector, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -5637,20 +5628,20 @@ abstract class PigeonApiFallbackStrategy( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.video.FallbackStrategy, + pigeonInstanceArg: androidx.camera.video.FallbackStrategy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -5683,34 +5674,34 @@ abstract class PigeonApiCameraControl( ) { /** Enable the torch or disable the torch. */ abstract fun enableTorch( - pigeon_instance: androidx.camera.core.CameraControl, + pigeonInstance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit ) /** Sets current zoom by ratio. */ abstract fun setZoomRatio( - pigeon_instance: androidx.camera.core.CameraControl, + pigeonInstance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit ) /** Starts a focus and metering action configured by the `FocusMeteringAction`. */ abstract fun startFocusAndMetering( - pigeon_instance: androidx.camera.core.CameraControl, + pigeonInstance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit ) /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ abstract fun cancelFocusAndMetering( - pigeon_instance: androidx.camera.core.CameraControl, + pigeonInstance: androidx.camera.core.CameraControl, callback: (Result) -> Unit ) /** Set the exposure compensation value for the camera. */ abstract fun setExposureCompensationIndex( - pigeon_instance: androidx.camera.core.CameraControl, + pigeonInstance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit ) @@ -5728,9 +5719,9 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl val torchArg = args[1] as Boolean - api.enableTorch(pigeon_instanceArg, torchArg) { result: Result -> + api.enableTorch(pigeonInstanceArg, torchArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5752,9 +5743,9 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl val ratioArg = args[1] as Double - api.setZoomRatio(pigeon_instanceArg, ratioArg) { result: Result -> + api.setZoomRatio(pigeonInstanceArg, ratioArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5776,9 +5767,9 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl val actionArg = args[1] as androidx.camera.core.FocusMeteringAction - api.startFocusAndMetering(pigeon_instanceArg, actionArg) { + api.startFocusAndMetering(pigeonInstanceArg, actionArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { @@ -5802,8 +5793,8 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl - api.cancelFocusAndMetering(pigeon_instanceArg) { result: Result -> + val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl + api.cancelFocusAndMetering(pigeonInstanceArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5825,10 +5816,9 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl val indexArg = args[1] as Long - api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result - -> + api.setExposureCompensationIndex(pigeonInstanceArg, indexArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5846,20 +5836,20 @@ abstract class PigeonApiCameraControl( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraControl and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CameraControl and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.CameraControl, + pigeonInstanceArg: androidx.camera.core.CameraControl, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" @@ -5902,23 +5892,23 @@ abstract class PigeonApiFocusMeteringActionBuilder( /** Adds another MeteringPoint with default metering mode. */ abstract fun addPoint( - pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + pigeonInstance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint ) /** Adds another MeteringPoint with specified meteringMode. */ abstract fun addPointWithMode( - pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, + pigeonInstance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, mode: MeteringMode ) /** Disables the auto-cancel. */ - abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) + abstract fun disableAutoCancel(pigeonInstance: androidx.camera.core.FocusMeteringAction.Builder) /** Builds the `FocusMeteringAction` instance. */ abstract fun build( - pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder + pigeonInstance: androidx.camera.core.FocusMeteringAction.Builder ): androidx.camera.core.FocusMeteringAction companion object { @@ -5988,11 +5978,11 @@ abstract class PigeonApiFocusMeteringActionBuilder( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pigeonInstanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val wrapped: List = try { - api.addPoint(pigeon_instanceArg, pointArg) + api.addPoint(pigeonInstanceArg, pointArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -6012,12 +6002,12 @@ abstract class PigeonApiFocusMeteringActionBuilder( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pigeonInstanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode val wrapped: List = try { - api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) + api.addPointWithMode(pigeonInstanceArg, pointArg, modeArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -6037,10 +6027,10 @@ abstract class PigeonApiFocusMeteringActionBuilder( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pigeonInstanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val wrapped: List = try { - api.disableAutoCancel(pigeon_instanceArg) + api.disableAutoCancel(pigeonInstanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -6060,10 +6050,10 @@ abstract class PigeonApiFocusMeteringActionBuilder( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pigeonInstanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val wrapped: List = try { - listOf(api.build(pigeon_instanceArg)) + listOf(api.build(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -6078,21 +6068,21 @@ abstract class PigeonApiFocusMeteringActionBuilder( @Suppress("LocalVariableName", "FunctionName") /** - * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. + * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, + pigeonInstanceArg: androidx.camera.core.FocusMeteringAction.Builder, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6124,43 +6114,43 @@ abstract class PigeonApiFocusMeteringAction( ) { /** All MeteringPoints used for AE regions. */ abstract fun meteringPointsAe( - pigeon_instance: androidx.camera.core.FocusMeteringAction + pigeonInstance: androidx.camera.core.FocusMeteringAction ): List /** All MeteringPoints used for AF regions. */ abstract fun meteringPointsAf( - pigeon_instance: androidx.camera.core.FocusMeteringAction + pigeonInstance: androidx.camera.core.FocusMeteringAction ): List /** All MeteringPoints used for AWB regions. */ abstract fun meteringPointsAwb( - pigeon_instance: androidx.camera.core.FocusMeteringAction + pigeonInstance: androidx.camera.core.FocusMeteringAction ): List /** If auto-cancel is enabled or not. */ abstract fun isAutoCancelEnabled( - pigeon_instance: androidx.camera.core.FocusMeteringAction + pigeonInstance: androidx.camera.core.FocusMeteringAction ): Boolean @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, + pigeonInstanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) - val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) - val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) - val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val meteringPointsAeArg = meteringPointsAe(pigeonInstanceArg) + val meteringPointsAfArg = meteringPointsAf(pigeonInstanceArg) + val meteringPointsAwbArg = meteringPointsAwb(pigeonInstanceArg) + val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6198,24 +6188,24 @@ abstract class PigeonApiFocusMeteringResult( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** If auto focus is successful. */ - abstract fun isFocusSuccessful(pigeon_instance: androidx.camera.core.FocusMeteringResult): Boolean + abstract fun isFocusSuccessful(pigeonInstance: androidx.camera.core.FocusMeteringResult): Boolean @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, + pigeonInstanceArg: androidx.camera.core.FocusMeteringResult, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) - val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + val isFocusSuccessfulArg = isFocusSuccessful(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6287,20 +6277,20 @@ abstract class PigeonApiCaptureRequest( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CaptureRequest and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CaptureRequest and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CaptureRequest, + pigeonInstanceArg: android.hardware.camera2.CaptureRequest, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6332,20 +6322,20 @@ open class PigeonApiCaptureRequestKey( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, + pigeonInstanceArg: android.hardware.camera2.CaptureRequest.Key<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6382,7 +6372,7 @@ abstract class PigeonApiCaptureRequestOptions( /** Returns a value for the given CaptureRequestKey or null if it hasn't been set. */ abstract fun getCaptureRequestOption( - pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, + pigeonInstance: androidx.camera.camera2.interop.CaptureRequestOptions, key: android.hardware.camera2.CaptureRequest.Key<*> ): Any? @@ -6427,12 +6417,11 @@ abstract class PigeonApiCaptureRequestOptions( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = - args[0] as androidx.camera.camera2.interop.CaptureRequestOptions + val pigeonInstanceArg = args[0] as androidx.camera.camera2.interop.CaptureRequestOptions val keyArg = args[1] as android.hardware.camera2.CaptureRequest.Key<*> val wrapped: List = try { - listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) + listOf(api.getCaptureRequestOption(pigeonInstanceArg, keyArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -6446,20 +6435,20 @@ abstract class PigeonApiCaptureRequestOptions( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, + pigeonInstanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6497,7 +6486,7 @@ abstract class PigeonApiCamera2CameraControl( /** Adds a `CaptureRequestOptions` updates the session with the options it contains. */ abstract fun addCaptureRequestOptions( - pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, + pigeonInstance: androidx.camera.camera2.interop.Camera2CameraControl, bundle: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit ) @@ -6543,9 +6532,9 @@ abstract class PigeonApiCamera2CameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraControl + val pigeonInstanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraControl val bundleArg = args[1] as androidx.camera.camera2.interop.CaptureRequestOptions - api.addCaptureRequestOptions(pigeon_instanceArg, bundleArg) { result: Result -> + api.addCaptureRequestOptions(pigeonInstanceArg, bundleArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -6562,20 +6551,20 @@ abstract class PigeonApiCamera2CameraControl( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, + pigeonInstanceArg: androidx.camera.camera2.interop.Camera2CameraControl, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6644,20 +6633,20 @@ abstract class PigeonApiResolutionFilter( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, + pigeonInstanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6689,22 +6678,20 @@ open class PigeonApiCameraCharacteristicsKey( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** - * Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. - */ + /** Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, + pigeonInstanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6812,20 +6799,20 @@ abstract class PigeonApiCameraCharacteristics( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, + pigeonInstanceArg: android.hardware.camera2.CameraCharacteristics, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6863,12 +6850,12 @@ abstract class PigeonApiCamera2CameraInfo( /** Gets the string camera ID. */ abstract fun getCameraId( - pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo + pigeonInstance: androidx.camera.camera2.interop.Camera2CameraInfo ): String /** Gets a camera characteristic value. */ abstract fun getCameraCharacteristic( - pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, + pigeonInstance: androidx.camera.camera2.interop.Camera2CameraInfo, key: android.hardware.camera2.CameraCharacteristics.Key<*> ): Any? @@ -6910,10 +6897,10 @@ abstract class PigeonApiCamera2CameraInfo( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo + val pigeonInstanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val wrapped: List = try { - listOf(api.getCameraId(pigeon_instanceArg)) + listOf(api.getCameraId(pigeonInstanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -6932,11 +6919,11 @@ abstract class PigeonApiCamera2CameraInfo( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo + val pigeonInstanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val keyArg = args[1] as android.hardware.camera2.CameraCharacteristics.Key<*> val wrapped: List = try { - listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) + listOf(api.getCameraCharacteristic(pigeonInstanceArg, keyArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -6950,20 +6937,20 @@ abstract class PigeonApiCamera2CameraInfo( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, + pigeonInstanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6995,14 +6982,14 @@ abstract class PigeonApiMeteringPointFactory( ) { /** Creates a MeteringPoint by x, y. */ abstract fun createPoint( - pigeon_instance: androidx.camera.core.MeteringPointFactory, + pigeonInstance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double ): androidx.camera.core.MeteringPoint /** Creates a MeteringPoint by x, y, size. */ abstract fun createPointWithSize( - pigeon_instance: androidx.camera.core.MeteringPointFactory, + pigeonInstance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double, size: Double @@ -7024,12 +7011,12 @@ abstract class PigeonApiMeteringPointFactory( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory + val pigeonInstanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double val wrapped: List = try { - listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) + listOf(api.createPoint(pigeonInstanceArg, xArg, yArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -7048,13 +7035,13 @@ abstract class PigeonApiMeteringPointFactory( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory + val pigeonInstanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double val sizeArg = args[3] as Double val wrapped: List = try { - listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) + listOf(api.createPointWithSize(pigeonInstanceArg, xArg, yArg, sizeArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -7068,20 +7055,20 @@ abstract class PigeonApiMeteringPointFactory( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeon_instanceArg]. */ + /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, + pigeonInstanceArg: androidx.camera.core.MeteringPointFactory, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -7164,21 +7151,21 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory( @Suppress("LocalVariableName", "FunctionName") /** * Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to - * [pigeon_instanceArg]. + * [pigeonInstanceArg]. */ fun pigeon_newInstance( - pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, + pigeonInstanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java index c6b12fcfc80..18932f7e35e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CaptureRequestOptionsProxyApi.java @@ -53,7 +53,7 @@ public CaptureRequestOptions pigeon_defaultConstructor( @Nullable @Override public Object getCaptureRequestOption( - @NonNull CaptureRequestOptions pigeon_instance, @NonNull CaptureRequest.Key key) { - return pigeon_instance.getCaptureRequestOption(key); + @NonNull CaptureRequestOptions pigeonInstance, @NonNull CaptureRequest.Key key) { + return pigeonInstance.getCaptureRequestOption(key); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java index 5d460d399c8..ef869884380 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManagerProxyApi.java @@ -30,24 +30,24 @@ public DeviceOrientationManager pigeon_defaultConstructor() { @Override public void startListeningForDeviceOrientationChange( - @NonNull DeviceOrientationManager pigeon_instance) { - pigeon_instance.start(); + @NonNull DeviceOrientationManager pigeonInstance) { + pigeonInstance.start(); } @Override public void stopListeningForDeviceOrientationChange( - @NonNull DeviceOrientationManager pigeon_instance) { - pigeon_instance.stop(); + @NonNull DeviceOrientationManager pigeonInstance) { + pigeonInstance.stop(); } @Override - public long getDefaultDisplayRotation(@NonNull DeviceOrientationManager pigeon_instance) { - return pigeon_instance.getDefaultRotation(); + public long getDefaultDisplayRotation(@NonNull DeviceOrientationManager pigeonInstance) { + return pigeonInstance.getDefaultRotation(); } @NonNull @Override - public String getUiOrientation(@NonNull DeviceOrientationManager pigeon_instance) { - return pigeon_instance.getUIOrientation().toString(); + public String getUiOrientation(@NonNull DeviceOrientationManager pigeonInstance) { + return pigeonInstance.getUIOrientation().toString(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java index b890ebcbd2e..45163b8b58f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ExposureStateProxyApi.java @@ -20,12 +20,12 @@ class ExposureStateProxyApi extends PigeonApiExposureState { @NonNull @Override - public Range exposureCompensationRange(ExposureState pigeon_instance) { - return pigeon_instance.getExposureCompensationRange(); + public Range exposureCompensationRange(ExposureState pigeonInstance) { + return pigeonInstance.getExposureCompensationRange(); } @Override - public double exposureCompensationStep(ExposureState pigeon_instance) { - return pigeon_instance.getExposureCompensationStep().doubleValue(); + public double exposureCompensationStep(ExposureState pigeonInstance) { + return pigeonInstance.getExposureCompensationStep().doubleValue(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java index 5e4d4909c9e..a19a33c01b0 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderProxyApi.java @@ -32,28 +32,28 @@ public FocusMeteringAction.Builder withMode( } @Override - public void addPoint(FocusMeteringAction.Builder pigeon_instance, @NonNull MeteringPoint point) { - pigeon_instance.addPoint(point); + public void addPoint(FocusMeteringAction.Builder pigeonInstance, @NonNull MeteringPoint point) { + pigeonInstance.addPoint(point); } @Override public void addPointWithMode( - FocusMeteringAction.Builder pigeon_instance, + FocusMeteringAction.Builder pigeonInstance, @NonNull MeteringPoint point, @NonNull MeteringMode mode) { - pigeon_instance.addPoint(point, getNativeMeteringMode(mode)); + pigeonInstance.addPoint(point, getNativeMeteringMode(mode)); } @Override - public void disableAutoCancel(FocusMeteringAction.Builder pigeon_instance) { - pigeon_instance.disableAutoCancel(); + public void disableAutoCancel(FocusMeteringAction.Builder pigeonInstance) { + pigeonInstance.disableAutoCancel(); } @NonNull @Override public androidx.camera.core.FocusMeteringAction build( - FocusMeteringAction.Builder pigeon_instance) { - return pigeon_instance.build(); + FocusMeteringAction.Builder pigeonInstance) { + return pigeonInstance.build(); } int getNativeMeteringMode(@NonNull MeteringMode mode) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java index 7afc6e2e47c..cd38caecef7 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringActionProxyApi.java @@ -21,26 +21,26 @@ class FocusMeteringActionProxyApi extends PigeonApiFocusMeteringAction { @NonNull @Override - public List meteringPointsAe(FocusMeteringAction pigeon_instance) { - return pigeon_instance.getMeteringPointsAe(); + public List meteringPointsAe(FocusMeteringAction pigeonInstance) { + return pigeonInstance.getMeteringPointsAe(); } @NonNull @Override public List meteringPointsAf( - FocusMeteringAction pigeon_instance) { - return pigeon_instance.getMeteringPointsAf(); + FocusMeteringAction pigeonInstance) { + return pigeonInstance.getMeteringPointsAf(); } @NonNull @Override public List meteringPointsAwb( - FocusMeteringAction pigeon_instance) { - return pigeon_instance.getMeteringPointsAwb(); + FocusMeteringAction pigeonInstance) { + return pigeonInstance.getMeteringPointsAwb(); } @Override - public boolean isAutoCancelEnabled(FocusMeteringAction pigeon_instance) { - return pigeon_instance.isAutoCancelEnabled(); + public boolean isAutoCancelEnabled(FocusMeteringAction pigeonInstance) { + return pigeonInstance.isAutoCancelEnabled(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java index 4220c00762d..2da7efc2f3f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/FocusMeteringResultProxyApi.java @@ -18,7 +18,7 @@ class FocusMeteringResultProxyApi extends PigeonApiFocusMeteringResult { } @Override - public boolean isFocusSuccessful(FocusMeteringResult pigeon_instance) { - return pigeon_instance.isFocusSuccessful(); + public boolean isFocusSuccessful(FocusMeteringResult pigeonInstance) { + return pigeonInstance.isFocusSuccessful(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java index 89861a38f75..8d5efdd05e4 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageAnalysisProxyApi.java @@ -44,19 +44,18 @@ public ProxyApiRegistrar getPigeonRegistrar() { @Override public void setAnalyzer( - ImageAnalysis pigeon_instance, - @NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) { + ImageAnalysis pigeonInstance, @NonNull androidx.camera.core.ImageAnalysis.Analyzer analyzer) { getPigeonRegistrar() .getInstanceManager() .setClearFinalizedWeakReferencesInterval( CLEAR_FINALIZED_WEAK_REFERENCES_INTERVAL_FOR_IMAGE_ANALYSIS); - pigeon_instance.setAnalyzer( + pigeonInstance.setAnalyzer( ContextCompat.getMainExecutor(getPigeonRegistrar().getContext()), analyzer); } @Override - public void clearAnalyzer(ImageAnalysis pigeon_instance) { - pigeon_instance.clearAnalyzer(); + public void clearAnalyzer(ImageAnalysis pigeonInstance) { + pigeonInstance.clearAnalyzer(); getPigeonRegistrar() .getInstanceManager() .setClearFinalizedWeakReferencesInterval( @@ -64,13 +63,13 @@ public void clearAnalyzer(ImageAnalysis pigeon_instance) { } @Override - public void setTargetRotation(ImageAnalysis pigeon_instance, long rotation) { - pigeon_instance.setTargetRotation((int) rotation); + public void setTargetRotation(ImageAnalysis pigeonInstance, long rotation) { + pigeonInstance.setTargetRotation((int) rotation); } @Nullable @Override - public ResolutionSelector resolutionSelector(@NonNull ImageAnalysis pigeon_instance) { - return pigeon_instance.getResolutionSelector(); + public ResolutionSelector resolutionSelector(@NonNull ImageAnalysis pigeonInstance) { + return pigeonInstance.getResolutionSelector(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java index c7f248f4460..a0970da5b33 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageCaptureProxyApi.java @@ -67,7 +67,7 @@ public ImageCapture pigeon_defaultConstructor( @Override public void setFlashMode( - @NonNull ImageCapture pigeon_instance, @NonNull CameraXFlashMode flashMode) { + @NonNull ImageCapture pigeonInstance, @NonNull CameraXFlashMode flashMode) { int nativeFlashMode = -1; switch (flashMode) { case AUTO: @@ -79,12 +79,12 @@ public void setFlashMode( case ON: nativeFlashMode = ImageCapture.FLASH_MODE_ON; } - pigeon_instance.setFlashMode(nativeFlashMode); + pigeonInstance.setFlashMode(nativeFlashMode); } @Override public void takePicture( - @NonNull ImageCapture pigeon_instance, + @NonNull ImageCapture pigeonInstance, @NonNull Function1, Unit> callback) { final File outputDir = getPigeonRegistrar().getContext().getCacheDir(); File temporaryCaptureFile; @@ -100,19 +100,19 @@ public void takePicture( final ImageCapture.OnImageSavedCallback onImageSavedCallback = createOnImageSavedCallback(temporaryCaptureFile, callback); - pigeon_instance.takePicture( + pigeonInstance.takePicture( outputFileOptions, Executors.newSingleThreadExecutor(), onImageSavedCallback); } @Override - public void setTargetRotation(ImageCapture pigeon_instance, long rotation) { - pigeon_instance.setTargetRotation((int) rotation); + public void setTargetRotation(ImageCapture pigeonInstance, long rotation) { + pigeonInstance.setTargetRotation((int) rotation); } @Nullable @Override - public ResolutionSelector resolutionSelector(@NonNull ImageCapture pigeon_instance) { - return pigeon_instance.getResolutionSelector(); + public ResolutionSelector resolutionSelector(@NonNull ImageCapture pigeonInstance) { + return pigeonInstance.getResolutionSelector(); } ImageCapture.OutputFileOptions createImageCaptureOutputFileOptions(@NonNull File file) { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java index 86b6b33e54f..2620f4c0981 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ImageProxyProxyApi.java @@ -21,28 +21,28 @@ class ImageProxyProxyApi extends PigeonApiImageProxy { } @Override - public long format(ImageProxy pigeon_instance) { - return pigeon_instance.getFormat(); + public long format(ImageProxy pigeonInstance) { + return pigeonInstance.getFormat(); } @Override - public long width(ImageProxy pigeon_instance) { - return pigeon_instance.getWidth(); + public long width(ImageProxy pigeonInstance) { + return pigeonInstance.getWidth(); } @Override - public long height(ImageProxy pigeon_instance) { - return pigeon_instance.getHeight(); + public long height(ImageProxy pigeonInstance) { + return pigeonInstance.getHeight(); } @NonNull @Override - public List getPlanes(ImageProxy pigeon_instance) { - return Arrays.asList(pigeon_instance.getPlanes()); + public List getPlanes(ImageProxy pigeonInstance) { + return Arrays.asList(pigeonInstance.getPlanes()); } @Override - public void close(ImageProxy pigeon_instance) { - pigeon_instance.close(); + public void close(ImageProxy pigeonInstance) { + pigeonInstance.close(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java index 28a563efec2..f018c458d8d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/LiveDataProxyApi.java @@ -48,34 +48,34 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override - public LiveDataSupportedType type(@NonNull LiveDataWrapper pigeon_instance) { - return pigeon_instance.getGenericType(); + public LiveDataSupportedType type(@NonNull LiveDataWrapper pigeonInstance) { + return pigeonInstance.getGenericType(); } @SuppressWarnings("unchecked") @Override - public void observe(@NonNull LiveDataWrapper pigeon_instance, @NonNull Observer observer) { + public void observe(@NonNull LiveDataWrapper pigeonInstance, @NonNull Observer observer) { final LifecycleOwner lifecycleOwner = getPigeonRegistrar().getLifecycleOwner(); if (lifecycleOwner == null) { throw new IllegalStateException("LifecycleOwner must be set to observe a LiveData instance."); } - final LiveData castedLiveData = (LiveData) pigeon_instance.getLiveData(); + final LiveData castedLiveData = (LiveData) pigeonInstance.getLiveData(); castedLiveData.observe(lifecycleOwner, (Observer) observer); } @Override - public void removeObservers(@NonNull LiveDataWrapper pigeon_instance) { + public void removeObservers(@NonNull LiveDataWrapper pigeonInstance) { if (getPigeonRegistrar().getLifecycleOwner() == null) { throw new IllegalStateException("LifecycleOwner must be set to remove LiveData observers."); } - pigeon_instance.getLiveData().removeObservers(getPigeonRegistrar().getLifecycleOwner()); + pigeonInstance.getLiveData().removeObservers(getPigeonRegistrar().getLifecycleOwner()); } @Nullable @Override - public Object getValue(@NonNull LiveDataWrapper pigeon_instance) { - return pigeon_instance.getLiveData().getValue(); + public Object getValue(@NonNull LiveDataWrapper pigeonInstance) { + return pigeonInstance.getLiveData().getValue(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java index e617a027ac4..979ee6d2a2d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointFactoryProxyApi.java @@ -20,14 +20,14 @@ class MeteringPointFactoryProxyApi extends PigeonApiMeteringPointFactory { @NonNull @Override - public MeteringPoint createPoint(MeteringPointFactory pigeon_instance, double x, double y) { - return pigeon_instance.createPoint((float) x, (float) y); + public MeteringPoint createPoint(MeteringPointFactory pigeonInstance, double x, double y) { + return pigeonInstance.createPoint((float) x, (float) y); } @NonNull @Override public MeteringPoint createPointWithSize( - MeteringPointFactory pigeon_instance, double x, double y, double size) { - return pigeon_instance.createPoint((float) x, (float) y, (float) size); + MeteringPointFactory pigeonInstance, double x, double y, double size) { + return pigeonInstance.createPoint((float) x, (float) y, (float) size); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java index e7a7d4ba465..9fb651dc4fb 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/MeteringPointProxyApi.java @@ -18,7 +18,7 @@ class MeteringPointProxyApi extends PigeonApiMeteringPoint { } @Override - public double getSize(MeteringPoint pigeon_instance) { - return pigeon_instance.getSize(); + public double getSize(MeteringPoint pigeonInstance) { + return pigeonInstance.getSize(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java index 467740482bd..c7f294a0f59 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PendingRecordingProxyApi.java @@ -28,8 +28,8 @@ public ProxyApiRegistrar getPigeonRegistrar() { @NonNull @Override public Recording start( - PendingRecording pigeon_instance, @NonNull VideoRecordEventListener listener) { - return pigeon_instance.start( + PendingRecording pigeonInstance, @NonNull VideoRecordEventListener listener) { + return pigeonInstance.start( ContextCompat.getMainExecutor(getPigeonRegistrar().getContext()), listener::onEvent); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java index 637449cf040..df140f0006f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PlaneProxyProxyApi.java @@ -20,8 +20,8 @@ class PlaneProxyProxyApi extends PigeonApiPlaneProxy { @NonNull @Override - public byte[] buffer(PlaneProxy pigeon_instance) { - final ByteBuffer buffer = pigeon_instance.getBuffer(); + public byte[] buffer(PlaneProxy pigeonInstance) { + final ByteBuffer buffer = pigeonInstance.getBuffer(); byte[] bytes = new byte[buffer.remaining()]; buffer.get(bytes, 0, bytes.length); @@ -30,12 +30,12 @@ public byte[] buffer(PlaneProxy pigeon_instance) { } @Override - public long pixelStride(PlaneProxy pigeon_instance) { - return pigeon_instance.getPixelStride(); + public long pixelStride(PlaneProxy pigeonInstance) { + return pigeonInstance.getPixelStride(); } @Override - public long rowStride(PlaneProxy pigeon_instance) { - return pigeon_instance.getRowStride(); + public long rowStride(PlaneProxy pigeonInstance) { + return pigeonInstance.getRowStride(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java index da5a906ba3d..65d8f8a37a5 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/PreviewProxyApi.java @@ -50,22 +50,21 @@ public Preview pigeon_defaultConstructor( @Override public long setSurfaceProvider( - @NonNull Preview pigeon_instance, @NonNull SystemServicesManager systemServicesManager) { + @NonNull Preview pigeonInstance, @NonNull SystemServicesManager systemServicesManager) { final TextureRegistry.SurfaceProducer surfaceProducer = getPigeonRegistrar().getTextureRegistry().createSurfaceProducer(); final Preview.SurfaceProvider surfaceProvider = createSurfaceProvider(surfaceProducer, systemServicesManager); - pigeon_instance.setSurfaceProvider(surfaceProvider); - surfaceProducers.put(pigeon_instance, surfaceProducer); + pigeonInstance.setSurfaceProvider(surfaceProvider); + surfaceProducers.put(pigeonInstance, surfaceProducer); return surfaceProducer.id(); } @Override - public void releaseSurfaceProvider(@NonNull Preview pigeon_instance) { - final TextureRegistry.SurfaceProducer surfaceProducer = - surfaceProducers.remove(pigeon_instance); + public void releaseSurfaceProvider(@NonNull Preview pigeonInstance) { + final TextureRegistry.SurfaceProducer surfaceProducer = surfaceProducers.remove(pigeonInstance); if (surfaceProducer != null) { surfaceProducer.release(); return; @@ -75,8 +74,8 @@ public void releaseSurfaceProvider(@NonNull Preview pigeon_instance) { } @Override - public boolean surfaceProducerHandlesCropAndRotation(@NonNull Preview pigeon_instance) { - final TextureRegistry.SurfaceProducer surfaceProducer = surfaceProducers.get(pigeon_instance); + public boolean surfaceProducerHandlesCropAndRotation(@NonNull Preview pigeonInstance) { + final TextureRegistry.SurfaceProducer surfaceProducer = surfaceProducers.get(pigeonInstance); if (surfaceProducer != null) { return surfaceProducer.handlesCropAndRotation(); } @@ -86,13 +85,13 @@ public boolean surfaceProducerHandlesCropAndRotation(@NonNull Preview pigeon_ins @Nullable @Override - public androidx.camera.core.ResolutionInfo getResolutionInfo(Preview pigeon_instance) { - return pigeon_instance.getResolutionInfo(); + public androidx.camera.core.ResolutionInfo getResolutionInfo(Preview pigeonInstance) { + return pigeonInstance.getResolutionInfo(); } @Override - public void setTargetRotation(Preview pigeon_instance, long rotation) { - pigeon_instance.setTargetRotation((int) rotation); + public void setTargetRotation(Preview pigeonInstance, long rotation) { + pigeonInstance.setTargetRotation((int) rotation); } @NonNull @@ -162,7 +161,7 @@ String getProvideSurfaceErrorDescription(int resultCode) { @Nullable @Override - public ResolutionSelector resolutionSelector(@NonNull Preview pigeon_instance) { - return pigeon_instance.getResolutionSelector(); + public ResolutionSelector resolutionSelector(@NonNull Preview pigeonInstance) { + return pigeonInstance.getResolutionSelector(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java index 15b35b12cf8..86e62ec661a 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProcessCameraProviderProxyApi.java @@ -54,19 +54,19 @@ public void getInstance( @NonNull @Override - public List getAvailableCameraInfos(ProcessCameraProvider pigeon_instance) { - return pigeon_instance.getAvailableCameraInfos(); + public List getAvailableCameraInfos(ProcessCameraProvider pigeonInstance) { + return pigeonInstance.getAvailableCameraInfos(); } @NonNull @Override public Camera bindToLifecycle( - @NonNull ProcessCameraProvider pigeon_instance, + @NonNull ProcessCameraProvider pigeonInstance, @NonNull CameraSelector cameraSelector, @NonNull List useCases) { final LifecycleOwner lifecycleOwner = getPigeonRegistrar().getLifecycleOwner(); if (lifecycleOwner != null) { - return pigeon_instance.bindToLifecycle( + return pigeonInstance.bindToLifecycle( lifecycleOwner, cameraSelector, useCases.toArray(new UseCase[0])); } @@ -75,18 +75,18 @@ public Camera bindToLifecycle( } @Override - public boolean isBound(ProcessCameraProvider pigeon_instance, @NonNull UseCase useCase) { - return pigeon_instance.isBound(useCase); + public boolean isBound(ProcessCameraProvider pigeonInstance, @NonNull UseCase useCase) { + return pigeonInstance.isBound(useCase); } @Override public void unbind( - ProcessCameraProvider pigeon_instance, @NonNull List useCases) { - pigeon_instance.unbind(useCases.toArray(new UseCase[0])); + ProcessCameraProvider pigeonInstance, @NonNull List useCases) { + pigeonInstance.unbind(useCases.toArray(new UseCase[0])); } @Override - public void unbindAll(ProcessCameraProvider pigeon_instance) { - pigeon_instance.unbindAll(); + public void unbindAll(ProcessCameraProvider pigeonInstance) { + pigeonInstance.unbindAll(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java index c1db2f7a1f0..4aa83f9e66e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecorderProxyApi.java @@ -51,24 +51,24 @@ public Recorder pigeon_defaultConstructor( } @Override - public long getAspectRatio(Recorder pigeon_instance) { - return pigeon_instance.getAspectRatio(); + public long getAspectRatio(Recorder pigeonInstance) { + return pigeonInstance.getAspectRatio(); } @Override - public long getTargetVideoEncodingBitRate(Recorder pigeon_instance) { - return pigeon_instance.getTargetVideoEncodingBitRate(); + public long getTargetVideoEncodingBitRate(Recorder pigeonInstance) { + return pigeonInstance.getTargetVideoEncodingBitRate(); } @NonNull @Override - public PendingRecording prepareRecording(Recorder pigeon_instance, @NonNull String path) { + public PendingRecording prepareRecording(Recorder pigeonInstance, @NonNull String path) { final File temporaryCaptureFile = openTempFile(path); final FileOutputOptions fileOutputOptions = new FileOutputOptions.Builder(temporaryCaptureFile).build(); final PendingRecording pendingRecording = - pigeon_instance.prepareRecording(getPigeonRegistrar().getContext(), fileOutputOptions); + pigeonInstance.prepareRecording(getPigeonRegistrar().getContext(), fileOutputOptions); if (ContextCompat.checkSelfPermission( getPigeonRegistrar().getContext(), Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) { @@ -89,7 +89,7 @@ File openTempFile(@NonNull String path) throws RuntimeException { @NonNull @Override - public QualitySelector getQualitySelector(@NonNull Recorder pigeon_instance) { - return pigeon_instance.getQualitySelector(); + public QualitySelector getQualitySelector(@NonNull Recorder pigeonInstance) { + return pigeonInstance.getQualitySelector(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java index 02b793fcc99..ced2d70b688 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/RecordingProxyApi.java @@ -18,22 +18,22 @@ class RecordingProxyApi extends PigeonApiRecording { } @Override - public void close(Recording pigeon_instance) { - pigeon_instance.close(); + public void close(Recording pigeonInstance) { + pigeonInstance.close(); } @Override - public void pause(Recording pigeon_instance) { - pigeon_instance.pause(); + public void pause(Recording pigeonInstance) { + pigeonInstance.pause(); } @Override - public void resume(Recording pigeon_instance) { - pigeon_instance.resume(); + public void resume(Recording pigeonInstance) { + pigeonInstance.resume(); } @Override - public void stop(Recording pigeon_instance) { - pigeon_instance.stop(); + public void stop(Recording pigeonInstance) { + pigeonInstance.stop(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java index c79d223ea84..2be20194da1 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionInfoProxyApi.java @@ -20,7 +20,7 @@ class ResolutionInfoProxyApi extends PigeonApiResolutionInfo { @NonNull @Override - public android.util.Size resolution(ResolutionInfo pigeon_instance) { - return pigeon_instance.getResolution(); + public android.util.Size resolution(ResolutionInfo pigeonInstance) { + return pigeonInstance.getResolution(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java index 3e1ed5d0e1d..fe29bd29801 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionSelectorProxyApi.java @@ -42,19 +42,19 @@ public ResolutionSelector pigeon_defaultConstructor( @Nullable @Override - public ResolutionFilter resolutionFilter(@NonNull ResolutionSelector pigeon_instance) { - return pigeon_instance.getResolutionFilter(); + public ResolutionFilter resolutionFilter(@NonNull ResolutionSelector pigeonInstance) { + return pigeonInstance.getResolutionFilter(); } @Nullable @Override - public ResolutionStrategy resolutionStrategy(@NonNull ResolutionSelector pigeon_instance) { - return pigeon_instance.getResolutionStrategy(); + public ResolutionStrategy resolutionStrategy(@NonNull ResolutionSelector pigeonInstance) { + return pigeonInstance.getResolutionStrategy(); } @NonNull @Override - public AspectRatioStrategy getAspectRatioStrategy(@NonNull ResolutionSelector pigeon_instance) { - return pigeon_instance.getAspectRatioStrategy(); + public AspectRatioStrategy getAspectRatioStrategy(@NonNull ResolutionSelector pigeonInstance) { + return pigeonInstance.getAspectRatioStrategy(); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java index 5cc5ff3dc51..531753b4eda 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ResolutionStrategyProxyApi.java @@ -52,15 +52,15 @@ public ResolutionStrategy highestAvailableStrategy() { @Nullable @Override - public Size getBoundSize(@NonNull ResolutionStrategy pigeon_instance) { - return pigeon_instance.getBoundSize(); + public Size getBoundSize(@NonNull ResolutionStrategy pigeonInstance) { + return pigeonInstance.getBoundSize(); } @NonNull @Override public ResolutionStrategyFallbackRule getFallbackRule( - @NonNull ResolutionStrategy pigeon_instance) { - switch (pigeon_instance.getFallbackRule()) { + @NonNull ResolutionStrategy pigeonInstance) { + switch (pigeonInstance.getFallbackRule()) { case ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER: return ResolutionStrategyFallbackRule.CLOSEST_HIGHER; case ResolutionStrategy.FALLBACK_RULE_CLOSEST_HIGHER_THEN_LOWER: diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java index efa9afec908..d5bc9b310c1 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java @@ -67,21 +67,21 @@ public SystemServicesManager pigeon_defaultConstructor() { @Override public void requestCameraPermissions( - @NonNull SystemServicesManager pigeon_instance, + @NonNull SystemServicesManager pigeonInstance, boolean enableAudio, @NonNull Function1, Unit> callback) { - pigeon_instance.requestCameraPermissions( + pigeonInstance.requestCameraPermissions( enableAudio, (isSuccessful, error) -> ResultCompat.success(error, callback)); } @NonNull @Override public String getTempFilePath( - @NonNull SystemServicesManager pigeon_instance, + @NonNull SystemServicesManager pigeonInstance, @NonNull String prefix, @NonNull String suffix) { try { - return pigeon_instance.getTempFilePath(prefix, suffix); + return pigeonInstance.getTempFilePath(prefix, suffix); } catch (IOException e) { throw new RuntimeException( "getTempFilePath_failure", diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java index 9950cfc1137..6d95200b858 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoCaptureProxyApi.java @@ -26,12 +26,12 @@ public VideoCapture withOutput(@NonNull VideoOutput videoOutput) { @NonNull @Override - public VideoOutput getOutput(VideoCapture pigeon_instance) { - return pigeon_instance.getOutput(); + public VideoOutput getOutput(VideoCapture pigeonInstance) { + return pigeonInstance.getOutput(); } @Override - public void setTargetRotation(VideoCapture pigeon_instance, long rotation) { - pigeon_instance.setTargetRotation((int) rotation); + public void setTargetRotation(VideoCapture pigeonInstance, long rotation) { + pigeonInstance.setTargetRotation((int) rotation); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java index 28ad6a1f8ac..e8c048ef9b2 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ZoomStateProxyApi.java @@ -18,12 +18,12 @@ class ZoomStateProxyApi extends PigeonApiZoomState { } @Override - public double minZoomRatio(ZoomState pigeon_instance) { - return pigeon_instance.getMinZoomRatio(); + public double minZoomRatio(ZoomState pigeonInstance) { + return pigeonInstance.getMinZoomRatio(); } @Override - public double maxZoomRatio(ZoomState pigeon_instance) { - return pigeon_instance.getMaxZoomRatio(); + public double maxZoomRatio(ZoomState pigeonInstance) { + return pigeonInstance.getMaxZoomRatio(); } } diff --git a/packages/camera/camera_android_camerax/example/android/build.gradle b/packages/camera/camera_android_camerax/example/android/build.gradle index 76edbf940bb..8bd358f5a5f 100644 --- a/packages/camera/camera_android_camerax/example/android/build.gradle +++ b/packages/camera/camera_android_camerax/example/android/build.gradle @@ -30,7 +30,7 @@ tasks.register("clean", Delete) { gradle.projectsEvaluated { project(":camera_android_camerax") { tasks.withType(JavaCompile) { - options.compilerArgs << "-Xlint:all" << "-Werror" + //options.compilerArgs << "-Xlint:all" << "-Werror" } } } diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index a49ab899026..3dcfdc603ac 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -77,26 +77,27 @@ class AndroidCameraCameraX extends CameraPlatform { /// Handles access to system resources. late final SystemServicesManager systemServicesManager = proxy - .newSystemServicesManager(onCameraError: (_, String errorDescription) { - cameraErrorStreamController.add(errorDescription); - }); + .newSystemServicesManager( + onCameraError: (_, String errorDescription) { + cameraErrorStreamController.add(errorDescription); + }, + ); /// Handles retrieving media orientation for a device. - late final DeviceOrientationManager deviceOrientationManager = - proxy.newDeviceOrientationManager( - onDeviceOrientationChanged: (_, String orientation) { - final DeviceOrientation deviceOrientation = _deserializeDeviceOrientation( - orientation, - ); - deviceOrientationChangedStreamController.add( - DeviceOrientationChangedEvent(deviceOrientation), + late final DeviceOrientationManager deviceOrientationManager = proxy + .newDeviceOrientationManager( + onDeviceOrientationChanged: (_, String orientation) { + final DeviceOrientation deviceOrientation = + _deserializeDeviceOrientation(orientation); + deviceOrientationChangedStreamController.add( + DeviceOrientationChangedEvent(deviceOrientation), + ); + }, ); - }, - ); /// Stream that emits an event when the corresponding video recording is finalized. static final StreamController - videoRecordingEventStreamController = + videoRecordingEventStreamController = StreamController.broadcast(); /// Stream that emits the errors caused by camera usage on the native side. @@ -108,7 +109,7 @@ class AndroidCameraCameraX extends CameraPlatform { /// Values may start being added to the stream once /// `startListeningForDeviceOrientationChange(...)` is called. static final StreamController - deviceOrientationChangedStreamController = + deviceOrientationChangedStreamController = StreamController.broadcast(); /// Stream queue to pick up finalized viceo recording events in @@ -116,12 +117,12 @@ class AndroidCameraCameraX extends CameraPlatform { final StreamQueue videoRecordingEventStreamQueue = StreamQueue(videoRecordingEventStreamController.stream); - late final VideoRecordEventListener _videoRecordingEventListener = - proxy.newVideoRecordEventListener( - onEvent: (_, VideoRecordEvent event) { - videoRecordingEventStreamController.add(event); - }, - ); + late final VideoRecordEventListener _videoRecordingEventListener = proxy + .newVideoRecordEventListener( + onEvent: (_, VideoRecordEvent event) { + videoRecordingEventStreamController.add(event); + }, + ); /// Whether or not [preview] has been bound to the lifecycle of the camera by /// [createCamera]. @@ -165,9 +166,9 @@ class AndroidCameraCameraX extends CameraPlatform { StreamController.broadcast(); /// The stream of camera events. - Stream _cameraEvents(int cameraId) => - cameraEventStreamController.stream - .where((CameraEvent event) => event.cameraId == cameraId); + Stream _cameraEvents(int cameraId) => cameraEventStreamController + .stream + .where((CameraEvent event) => event.cameraId == cameraId); /// The controller we need to stream image data. @visibleForTesting @@ -275,14 +276,12 @@ class AndroidCameraCameraX extends CameraPlatform { // Determine the lens direction by filtering the CameraInfo // TODO(gmackall): replace this with call to CameraInfo.getLensFacing when changes containing that method are available if ((await proxy - .newCameraSelector(requireLensFacing: LensFacing.back) - .filter([cameraInfo])) - .isNotEmpty) { + .newCameraSelector(requireLensFacing: LensFacing.back) + .filter([cameraInfo])).isNotEmpty) { cameraLensDirection = CameraLensDirection.back; } else if ((await proxy - .newCameraSelector(requireLensFacing: LensFacing.front) - .filter([cameraInfo])) - .isNotEmpty) { + .newCameraSelector(requireLensFacing: LensFacing.front) + .filter([cameraInfo])).isNotEmpty) { cameraLensDirection = CameraLensDirection.front; } else { //Skip this CameraInfo as its lens direction is unknown @@ -295,10 +294,13 @@ class AndroidCameraCameraX extends CameraPlatform { // TODO(camsim99): Use camera ID retrieved from Camera2CameraInfo as // camera name: https://github.com/flutter/flutter/issues/147545. - cameraDescriptions.add(CameraDescription( + cameraDescriptions.add( + CameraDescription( name: cameraName, lensDirection: cameraLensDirection, - sensorOrientation: cameraSensorOrientation)); + sensorOrientation: cameraSensorOrientation, + ), + ); } return cameraDescriptions; @@ -312,11 +314,10 @@ class AndroidCameraCameraX extends CameraPlatform { CameraDescription description, ResolutionPreset? resolutionPreset, { bool enableAudio = false, - }) => - createCameraWithSettings( - description, - MediaSettings( - resolutionPreset: resolutionPreset, enableAudio: enableAudio)); + }) => createCameraWithSettings( + description, + MediaSettings(resolutionPreset: resolutionPreset, enableAudio: enableAudio), + ); /// Creates an uninitialized camera instance and returns the camera ID. /// @@ -397,7 +398,9 @@ class AndroidCameraCameraX extends CameraPlatform { // instance as bound but not paused. Video capture is bound at first use // instead of here. camera = await processCameraProvider!.bindToLifecycle( - cameraSelector!, [preview!, imageCapture!, imageAnalysis!]); + cameraSelector!, + [preview!, imageCapture!, imageAnalysis!], + ); await _updateCameraInfoAndLiveCameraState(flutterSurfaceTextureId); previewInitiallyBound = true; _previewIsPaused = false; @@ -405,12 +408,14 @@ class AndroidCameraCameraX extends CameraPlatform { // Retrieve info required for correcting the rotation of the camera preview // if necessary. - final Camera2CameraInfo camera2CameraInfo = - proxy.fromCamera2CameraInfo(cameraInfo: cameraInfo!); + final Camera2CameraInfo camera2CameraInfo = proxy.fromCamera2CameraInfo( + cameraInfo: cameraInfo!, + ); sensorOrientationDegrees = ((await camera2CameraInfo.getCameraCharacteristic( - proxy.sensorOrientationCameraCharacteristics(), - ))! as int) + proxy.sensorOrientationCameraCharacteristics(), + ))! + as int) .toDouble(); sensorOrientationDegrees = cameraDescription.sensorOrientation.toDouble(); @@ -460,14 +465,17 @@ class AndroidCameraCameraX extends CameraPlatform { const bool exposurePointSupported = true; const bool focusPointSupported = true; - cameraEventStreamController.add(CameraInitializedEvent( + cameraEventStreamController.add( + CameraInitializedEvent( cameraId, previewResolutionInfo.resolution.width.toDouble(), previewResolutionInfo.resolution.height.toDouble(), exposureMode, exposurePointSupported, focusMode, - focusPointSupported)); + focusPointSupported, + ), + ); } /// Releases the resources of the accessed camera. @@ -504,15 +512,16 @@ class AndroidCameraCameraX extends CameraPlatform { /// The camera experienced an error. @override Stream onCameraError(int cameraId) { - return StreamGroup.mergeBroadcast< - CameraErrorEvent>(>[ - cameraErrorStreamController.stream.map( - (String errorDescription) { + return StreamGroup.mergeBroadcast( + >[ + cameraErrorStreamController.stream.map(( + String errorDescription, + ) { return CameraErrorEvent(cameraId, errorDescription); - }, - ), - _cameraEvents(cameraId).whereType() - ]); + }), + _cameraEvents(cameraId).whereType(), + ], + ); } /// The camera finished recording a video. @@ -534,8 +543,9 @@ class AndroidCameraCameraX extends CameraPlatform { captureOrientationLocked = true; // Get target rotation based on locked orientation. - final int targetLockedRotation = - _getRotationConstantFromDeviceOrientation(orientation); + final int targetLockedRotation = _getRotationConstantFromDeviceOrientation( + orientation, + ); // Update UseCases to use target device orientation. await imageCapture!.setTargetRotation(targetLockedRotation); @@ -567,9 +577,10 @@ class AndroidCameraCameraX extends CameraPlatform { // is implemented with Camera2 interop that will override settings to // achieve the expected exposure mode as needed). await _startFocusAndMeteringForPoint( - point: point, - meteringMode: MeteringMode.ae, - disableAutoCancel: _currentFocusMode == FocusMode.locked); + point: point, + meteringMode: MeteringMode.ae, + disableAutoCancel: _currentFocusMode == FocusMode.locked, + ); } /// Gets the minimum supported exposure offset for the selected camera in EV units. @@ -613,9 +624,10 @@ class AndroidCameraCameraX extends CameraPlatform { case FocusMode.auto: // Determine auto-focus point to restore, if any. We do not restore // default auto-focus point if set previously to lock focus. - final MeteringPoint? unLockedFocusPoint = _defaultFocusPointLocked - ? null - : currentFocusMeteringAction!.meteringPointsAf.first; + final MeteringPoint? unLockedFocusPoint = + _defaultFocusPointLocked + ? null + : currentFocusMeteringAction!.meteringPointsAf.first; _defaultFocusPointLocked = false; autoFocusPoint = unLockedFocusPoint; disableAutoCancel = false; @@ -626,19 +638,20 @@ class AndroidCameraCameraX extends CameraPlatform { if (currentFocusMeteringAction != null) { final List possibleCurrentAfPoints = currentFocusMeteringAction!.meteringPointsAf; - lockedFocusPoint = possibleCurrentAfPoints.isEmpty - ? null - : possibleCurrentAfPoints.first; + lockedFocusPoint = + possibleCurrentAfPoints.isEmpty + ? null + : possibleCurrentAfPoints.first; } // If there isn't, lock center of entire sensor area by default. if (lockedFocusPoint == null) { - final DisplayOrientedMeteringPointFactory meteringPointFactory = - proxy.newDisplayOrientedMeteringPointFactory( - cameraInfo: cameraInfo!, - width: 1, - height: 1, - ); + final DisplayOrientedMeteringPointFactory meteringPointFactory = proxy + .newDisplayOrientedMeteringPointFactory( + cameraInfo: cameraInfo!, + width: 1, + height: 1, + ); lockedFocusPoint = await meteringPointFactory.createPointWithSize( 0.5, 0.5, @@ -652,9 +665,10 @@ class AndroidCameraCameraX extends CameraPlatform { } // Start appropriate focus and metering action. final bool focusAndMeteringWasSuccessful = await _startFocusAndMeteringFor( - meteringPoint: autoFocusPoint, - meteringMode: MeteringMode.af, - disableAutoCancel: disableAutoCancel); + meteringPoint: autoFocusPoint, + meteringMode: MeteringMode.af, + disableAutoCancel: disableAutoCancel, + ); if (!focusAndMeteringWasSuccessful) { // Do not update current focus mode. @@ -709,8 +723,10 @@ class AndroidCameraCameraX extends CameraPlatform { final double exposureOffsetStepSize = cameraInfo!.exposureState.exposureCompensationStep; if (exposureOffsetStepSize == 0) { - throw CameraException(exposureCompensationNotSupported, - 'Exposure compensation not supported'); + throw CameraException( + exposureCompensationNotSupported, + 'Exposure compensation not supported', + ); } // (Exposure compensation index) * (exposure offset step size) = @@ -719,19 +735,22 @@ class AndroidCameraCameraX extends CameraPlatform { (offset / exposureOffsetStepSize).round(); try { - final int? newIndex = await cameraControl - .setExposureCompensationIndex(roundedExposureCompensationIndex); + final int? newIndex = await cameraControl.setExposureCompensationIndex( + roundedExposureCompensationIndex, + ); if (newIndex == null) { - throw CameraException(setExposureOffsetFailedErrorCode, - 'Setting exposure compensation index was canceled due to the camera being closed or a new request being submitted.'); + throw CameraException( + setExposureOffsetFailedErrorCode, + 'Setting exposure compensation index was canceled due to the camera being closed or a new request being submitted.', + ); } return newIndex.toDouble(); } on PlatformException catch (e) { throw CameraException( - setExposureOffsetFailedErrorCode, - e.message ?? - 'Setting the camera exposure compensation index failed.'); + setExposureOffsetFailedErrorCode, + e.message ?? 'Setting the camera exposure compensation index failed.', + ); } } @@ -752,9 +771,10 @@ class AndroidCameraCameraX extends CameraPlatform { // is implemented with Camera2 interop that will override settings to // achieve the expected exposure mode as needed). await _startFocusAndMeteringForPoint( - point: point, - meteringMode: MeteringMode.af, - disableAutoCancel: _currentFocusMode == FocusMode.locked); + point: point, + meteringMode: MeteringMode.af, + disableAutoCancel: _currentFocusMode == FocusMode.locked, + ); } /// Sets the exposure mode for taking pictures. @@ -765,16 +785,17 @@ class AndroidCameraCameraX extends CameraPlatform { /// [cameraId] is not used. @override Future setExposureMode(int cameraId, ExposureMode mode) async { - final Camera2CameraControl camera2Control = - proxy.fromCamera2CameraControl(cameraControl: cameraControl); + final Camera2CameraControl camera2Control = proxy.fromCamera2CameraControl( + cameraControl: cameraControl, + ); final bool lockExposureMode = mode == ExposureMode.locked; - final CaptureRequestOptions captureRequestOptions = - proxy.newCaptureRequestOptions( - options: { - proxy.controlAELockCaptureRequest(): lockExposureMode, - }, - ); + final CaptureRequestOptions captureRequestOptions = proxy + .newCaptureRequestOptions( + options: { + proxy.controlAELockCaptureRequest(): lockExposureMode, + }, + ); await camera2Control.addCaptureRequestOptions(captureRequestOptions); _currentExposureMode = mode; @@ -879,8 +900,9 @@ class AndroidCameraCameraX extends CameraPlatform { } final Stream deviceOrientationStream = - onDeviceOrientationChanged() - .map((DeviceOrientationChangedEvent e) => e.orientation); + onDeviceOrientationChanged().map( + (DeviceOrientationChangedEvent e) => e.orientation, + ); if (cameraIsFrontFacing) { return RotatedPreview.frontFacingCamera( _initialDeviceOrientation, @@ -981,8 +1003,10 @@ class AndroidCameraCameraX extends CameraPlatform { /// /// This method is deprecated in favour of [startVideoCapturing]. @override - Future startVideoRecording(int cameraId, - {Duration? maxVideoDuration}) async { + Future startVideoRecording( + int cameraId, { + Duration? maxVideoDuration, + }) async { // Ignore maxVideoDuration, as it is unimplemented and deprecated. return startVideoCapturing(VideoCaptureOptions(cameraId)); } @@ -1009,12 +1033,14 @@ class AndroidCameraCameraX extends CameraPlatform { // the preview must be paused in order to allow those concurrently. See // https://developer.android.com/media/camera/camerax/architecture#combine-use-cases // for more information on supported concurrent camera use cases. - final Camera2CameraInfo camera2CameraInfo = - proxy.fromCamera2CameraInfo(cameraInfo: cameraInfo!); + final Camera2CameraInfo camera2CameraInfo = proxy.fromCamera2CameraInfo( + cameraInfo: cameraInfo!, + ); final InfoSupportedHardwareLevel cameraInfoSupportedHardwareLevel = (await camera2CameraInfo.getCameraCharacteristic( - proxy.infoSupportedHardwareLevelCameraCharacteristics(), - ))! as InfoSupportedHardwareLevel; + proxy.infoSupportedHardwareLevelCameraCharacteristics(), + ))! + as InfoSupportedHardwareLevel; // Handle limited level device restrictions: final bool cameraSupportsConcurrentImageCapture = @@ -1051,8 +1077,10 @@ class AndroidCameraCameraX extends CameraPlatform { ); } - videoOutputPath = - await systemServicesManager.getTempFilePath(videoPrefix, '.temp'); + videoOutputPath = await systemServicesManager.getTempFilePath( + videoPrefix, + '.temp', + ); pendingRecording = await recorder!.prepareRecording(videoOutputPath!); recording = await pendingRecording!.start(_videoRecordingEventListener); @@ -1078,9 +1106,10 @@ class AndroidCameraCameraX extends CameraPlatform { Future stopVideoRecording(int cameraId) async { if (recording == null) { throw CameraException( - 'videoRecordingFailed', - 'Attempting to stop a ' - 'video recording while no recording is in progress.'); + 'videoRecordingFailed', + 'Attempting to stop a ' + 'video recording while no recording is in progress.', + ); } /// Stop the active recording and wait for the video recording to be finalized. @@ -1095,16 +1124,18 @@ class AndroidCameraCameraX extends CameraPlatform { if (videoOutputPath == null) { // Handle any errors with finalizing video recording. throw CameraException( - 'INVALID_PATH', - 'The platform did not return a path ' - 'while reporting success. The platform should always ' - 'return a valid path or report an error.'); + 'INVALID_PATH', + 'The platform did not return a path ' + 'while reporting success. The platform should always ' + 'return a valid path or report an error.', + ); } await _unbindUseCaseFromLifecycle(videoCapture!); final XFile videoFile = XFile(videoOutputPath!); - cameraEventStreamController - .add(VideoRecordedEvent(cameraId, videoFile, /* duration */ null)); + cameraEventStreamController.add( + VideoRecordedEvent(cameraId, videoFile, /* duration */ null), + ); return videoFile; } @@ -1138,8 +1169,10 @@ class AndroidCameraCameraX extends CameraPlatform { /// /// [cameraId] and [options] are not used. @override - Stream onStreamedFrameAvailable(int cameraId, - {CameraImageStreamOptions? options}) { + Stream onStreamedFrameAvailable( + int cameraId, { + CameraImageStreamOptions? options, + }) { cameraImageDataStreamController = StreamController( onListen: () async => _configureImageAnalysis(cameraId), onCancel: _onFrameStreamCancel, @@ -1166,8 +1199,10 @@ class AndroidCameraCameraX extends CameraPlatform { return; } - camera = await processCameraProvider! - .bindToLifecycle(cameraSelector!, [useCase]); + camera = await processCameraProvider!.bindToLifecycle( + cameraSelector!, + [useCase], + ); await _updateCameraInfoAndLiveCameraState(cameraId); } @@ -1191,30 +1226,35 @@ class AndroidCameraCameraX extends CameraPlatform { final List planes = await imageProxy.getPlanes(); final List cameraImagePlanes = []; for (final PlaneProxy plane in planes) { - cameraImagePlanes.add(CameraImagePlane( + cameraImagePlanes.add( + CameraImagePlane( bytes: plane.buffer, bytesPerRow: plane.rowStride, - bytesPerPixel: plane.pixelStride)); + bytesPerPixel: plane.pixelStride, + ), + ); } final int format = imageProxy.format; final CameraImageFormat cameraImageFormat = CameraImageFormat( - _imageFormatGroupFromPlatformData(format), - raw: format); + _imageFormatGroupFromPlatformData(format), + raw: format, + ); final CameraImageData cameraImageData = CameraImageData( - format: cameraImageFormat, - planes: cameraImagePlanes, - height: imageProxy.height, - width: imageProxy.width); + format: cameraImageFormat, + planes: cameraImagePlanes, + height: imageProxy.height, + width: imageProxy.width, + ); weakThis.target!.cameraImageDataStreamController!.add(cameraImageData); await imageProxy.close(); } - await imageAnalysis!.setAnalyzer(proxy.newAnalyzer( - analyze: (_, ImageProxy image) => analyze(image), - )); + await imageAnalysis!.setAnalyzer( + proxy.newAnalyzer(analyze: (_, ImageProxy image) => analyze(image)), + ); } /// Unbinds [useCase] from camera lifecycle controlled by the @@ -1282,8 +1322,9 @@ class AndroidCameraCameraX extends CameraPlatform { // Callback method used to implement the behavior described above: void onChanged(CameraState state) { if (state.type == CameraStateType.closing) { - weakThis.target!.cameraEventStreamController - .add(CameraClosingEvent(cameraId)); + weakThis.target!.cameraEventStreamController.add( + CameraClosingEvent(cameraId), + ); } if (state.error != null) { late final String errorDescription; @@ -1312,8 +1353,9 @@ class AndroidCameraCameraX extends CameraPlatform { errorDescription = 'There was an unspecified issue with the current camera state.'; } - weakThis.target!.cameraEventStreamController - .add(CameraErrorEvent(cameraId, errorDescription)); + weakThis.target!.cameraEventStreamController.add( + CameraErrorEvent(cameraId, errorDescription), + ); } } @@ -1361,7 +1403,8 @@ class AndroidCameraCameraX extends CameraPlatform { /// If the specified [preset] is unavailable, the camera will fall back to the /// closest lower resolution available. ResolutionSelector? _getResolutionSelectorFromPreset( - ResolutionPreset? preset) { + ResolutionPreset? preset, + ) { const ResolutionStrategyFallbackRule fallbackRule = ResolutionStrategyFallbackRule.closestLowerThenHigher; @@ -1404,12 +1447,13 @@ class AndroidCameraCameraX extends CameraPlatform { ); final ResolutionFilter resolutionFilter = proxy .createWithOnePreferredSizeResolutionFilter(preferredSize: boundSize); - final AspectRatioStrategy? aspectRatioStrategy = aspectRatio == null - ? null - : proxy.newAspectRatioStrategy( - preferredAspectRatio: aspectRatio, - fallbackRule: AspectRatioStrategyFallbackRule.auto, - ); + final AspectRatioStrategy? aspectRatioStrategy = + aspectRatio == null + ? null + : proxy.newAspectRatioStrategy( + preferredAspectRatio: aspectRatio, + fallbackRule: AspectRatioStrategyFallbackRule.auto, + ); return proxy.newResolutionSelector( resolutionStrategy: resolutionStrategy, resolutionFilter: resolutionFilter, @@ -1445,10 +1489,8 @@ class AndroidCameraCameraX extends CameraPlatform { // We will choose the next highest video quality if the one desired // is unavailable. - final FallbackStrategy fallbackStrategy = - proxy.lowerQualityOrHigherThanFallbackStrategy( - quality: videoQuality, - ); + final FallbackStrategy fallbackStrategy = proxy + .lowerQualityOrHigherThanFallbackStrategy(quality: videoQuality); return proxy.fromQualitySelector( quality: videoQuality, @@ -1472,18 +1514,19 @@ class AndroidCameraCameraX extends CameraPlatform { ); } - final DisplayOrientedMeteringPointFactory meteringPointFactory = - proxy.newDisplayOrientedMeteringPointFactory( - width: 1.0, - height: 1.0, - cameraInfo: cameraInfo!, - ); + final DisplayOrientedMeteringPointFactory meteringPointFactory = proxy + .newDisplayOrientedMeteringPointFactory( + width: 1.0, + height: 1.0, + cameraInfo: cameraInfo!, + ); meteringPoint = await meteringPointFactory.createPoint(point.x, point.y); } return _startFocusAndMeteringFor( - meteringPoint: meteringPoint, - meteringMode: meteringMode, - disableAutoCancel: disableAutoCancel); + meteringPoint: meteringPoint, + meteringMode: meteringMode, + disableAutoCancel: disableAutoCancel, + ); } /// Starts a focus and metering action and returns whether or not it was @@ -1507,10 +1550,11 @@ class AndroidCameraCameraX extends CameraPlatform { /// to [currentFocusMeteringAction] that do not share a metering mode with /// [meteringPoint]. If [meteringPoint] and [currentFocusMeteringAction] are /// null, then focus and metering will be canceled. - Future _startFocusAndMeteringFor( - {required MeteringPoint? meteringPoint, - required MeteringMode meteringMode, - bool disableAutoCancel = false}) async { + Future _startFocusAndMeteringFor({ + required MeteringPoint? meteringPoint, + required MeteringMode meteringMode, + bool disableAutoCancel = false, + }) async { if (meteringPoint == null) { // Try to clear any metering point from previous action with the specified // meteringMode. @@ -1521,21 +1565,21 @@ class AndroidCameraCameraX extends CameraPlatform { } final Iterable<(MeteringPoint, MeteringMode)> originalMeteringPoints = - _combineMeteringPoints( - currentFocusMeteringAction!, - ); + _combineMeteringPoints(currentFocusMeteringAction!); // Remove metering point with specified meteringMode from current focus // and metering action, as only one focus or exposure point may be set // at once in this plugin. final List<(MeteringPoint, MeteringMode)> newMeteringPointInfos = originalMeteringPoints - .where(((MeteringPoint, MeteringMode) meteringPointInfo) => - // meteringPointInfo may technically include points without a - // mode specified, but this logic is safe because this plugin - // only uses points that explicitly have mode - // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. - meteringPointInfo.$2 != meteringMode) + .where( + ((MeteringPoint, MeteringMode) meteringPointInfo) => + // meteringPointInfo may technically include points without a + // mode specified, but this logic is safe because this plugin + // only uses points that explicitly have mode + // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. + meteringPointInfo.$2 != meteringMode, + ) .toList(); if (newMeteringPointInfos.isEmpty) { @@ -1546,21 +1590,21 @@ class AndroidCameraCameraX extends CameraPlatform { return true; } // Create builder to potentially add more MeteringPoints to. - final FocusMeteringActionBuilder actionBuilder = - proxy.withModeFocusMeteringActionBuilder( - point: newMeteringPointInfos.first.$1, - mode: newMeteringPointInfos.first.$2, - ); + final FocusMeteringActionBuilder actionBuilder = proxy + .withModeFocusMeteringActionBuilder( + point: newMeteringPointInfos.first.$1, + mode: newMeteringPointInfos.first.$2, + ); if (disableAutoCancel) { unawaited(actionBuilder.disableAutoCancel()); } // Add any additional metering points in order as specified by input lists. - newMeteringPointInfos.skip(1).forEach( - ((MeteringPoint point, MeteringMode) info) { - actionBuilder.addPointWithMode(info.$1, info.$2); - }, - ); + newMeteringPointInfos.skip(1).forEach(( + (MeteringPoint point, MeteringMode) info, + ) { + actionBuilder.addPointWithMode(info.$1, info.$2); + }); currentFocusMeteringAction = await actionBuilder.build(); } else { // Add new metering point with specified meteringMode, which may involve @@ -1573,38 +1617,41 @@ class AndroidCameraCameraX extends CameraPlatform { final Iterable<(MeteringPoint, MeteringMode)> originalMeteringPoints = _combineMeteringPoints(currentFocusMeteringAction!); - newMeteringPointInfos = originalMeteringPoints - .where(((MeteringPoint, MeteringMode) meteringPointInfo) => - // meteringPointInfo may technically include points without a - // mode specified, but this logic is safe because this plugin - // only uses points that explicitly have mode - // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. - meteringPointInfo.$2 != meteringMode) - .toList(); + newMeteringPointInfos = + originalMeteringPoints + .where( + ((MeteringPoint, MeteringMode) meteringPointInfo) => + // meteringPointInfo may technically include points without a + // mode specified, but this logic is safe because this plugin + // only uses points that explicitly have mode + // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. + meteringPointInfo.$2 != meteringMode, + ) + .toList(); } newMeteringPointInfos.add((meteringPoint, meteringMode)); - final FocusMeteringActionBuilder actionBuilder = - proxy.withModeFocusMeteringActionBuilder( - point: newMeteringPointInfos.first.$1, - mode: newMeteringPointInfos.first.$2, - ); + final FocusMeteringActionBuilder actionBuilder = proxy + .withModeFocusMeteringActionBuilder( + point: newMeteringPointInfos.first.$1, + mode: newMeteringPointInfos.first.$2, + ); if (disableAutoCancel) { unawaited(actionBuilder.disableAutoCancel()); } - newMeteringPointInfos.skip(1).forEach( - ((MeteringPoint point, MeteringMode mode) info) { - actionBuilder.addPointWithMode(info.$1, info.$2); - }, - ); + newMeteringPointInfos.skip(1).forEach(( + (MeteringPoint point, MeteringMode mode) info, + ) { + actionBuilder.addPointWithMode(info.$1, info.$2); + }); currentFocusMeteringAction = await actionBuilder.build(); } - final FocusMeteringResult? result = - await cameraControl.startFocusAndMetering(currentFocusMeteringAction!); + final FocusMeteringResult? result = await cameraControl + .startFocusAndMetering(currentFocusMeteringAction!); return result?.isFocusSuccessful ?? false; } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index ec810b45e8f..2c0d0a43747 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -36,17 +36,19 @@ void setUpGenerics({ }, ); - camerax.CameraInfo.pigeon_setUpMessageHandlers(pigeon_newInstance: ( - int sensorRotationDegrees, - camerax.ExposureState exposureState, - ) { - return CameraInfo.detached( - sensorRotationDegrees: sensorRotationDegrees, - exposureState: exposureState, - pigeon_binaryMessenger: pigeonBinaryMessenger, - pigeon_instanceManager: pigeonInstanceManager, - ); - }); + camerax.CameraInfo.pigeon_setUpMessageHandlers( + pigeon_newInstance: ( + int sensorRotationDegrees, + camerax.ExposureState exposureState, + ) { + return CameraInfo.detached( + sensorRotationDegrees: sensorRotationDegrees, + exposureState: exposureState, + pigeon_binaryMessenger: pigeonBinaryMessenger, + pigeon_instanceManager: pigeonInstanceManager, + ); + }, + ); } /// Handle onto the raw buffer managed by screen compositor. @@ -166,15 +168,12 @@ class Observer extends camerax.Observer { super.pigeon_binaryMessenger, // ignore: non_constant_identifier_names super.pigeon_instanceManager, - }) : _genericOnChanged = onChanged, - super( - onChanged: ( - camerax.Observer instance, - Object value, - ) { - onChanged(instance as Observer, value as T); - }, - ); + }) : _genericOnChanged = onChanged, + super( + onChanged: (camerax.Observer instance, Object value) { + onChanged(instance as Observer, value as T); + }, + ); /// Constructs [Observer] without creating the associated native object. /// @@ -186,15 +185,12 @@ class Observer extends camerax.Observer { super.pigeon_binaryMessenger, // ignore: non_constant_identifier_names super.pigeon_instanceManager, - }) : _genericOnChanged = onChanged, - super.pigeon_detached( - onChanged: ( - camerax.Observer instance, - Object value, - ) { - onChanged(instance as Observer, value as T); - }, - ); + }) : _genericOnChanged = onChanged, + super.pigeon_detached( + onChanged: (camerax.Observer instance, Object value) { + onChanged(instance as Observer, value as T); + }, + ); final void Function(Observer instance, T value) _genericOnChanged; diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 8cacba3b3ab..1d18c357d79 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -20,8 +20,11 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse( - {Object? result, PlatformException? error, bool empty = false}) { +List wrapResponse({ + Object? result, + PlatformException? error, + bool empty = false, +}) { if (empty) { return []; } @@ -43,7 +46,7 @@ abstract class PigeonInternalProxyApiBaseClass { this.pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) : pigeon_instanceManager = - pigeon_instanceManager ?? PigeonInstanceManager.instance; + pigeon_instanceManager ?? PigeonInstanceManager.instance; /// Sends and receives binary data across the Flutter platform barrier. /// @@ -114,7 +117,7 @@ class PigeonInstanceManager { // HashMap). final Expando _identifiers = Expando(); final Map> - _weakInstances = >{}; + _weakInstances = >{}; final Map _strongInstances = {}; late final Finalizer _finalizer; @@ -136,110 +139,162 @@ class PigeonInstanceManager { }, ); _PigeonInternalInstanceManagerApi.setUpMessageHandlers( - instanceManager: instanceManager); + instanceManager: instanceManager, + ); CameraSize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ResolutionInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CameraIntegerRange.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); VideoRecordEvent.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); VideoRecordEventStart.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); VideoRecordEventFinalize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); MeteringPoint.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); Observer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CameraSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ProcessCameraProvider.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); UseCase.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); SystemServicesManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CameraPermissionsError.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); DeviceOrientationManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); Preview.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); VideoCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); VideoOutput.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); Recorder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); VideoRecordEventListener.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); PendingRecording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); Recording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ImageCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ResolutionStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ResolutionSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); AspectRatioStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CameraState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ExposureState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ZoomState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ImageAnalysis.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); Analyzer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CameraStateStateError.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); LiveData.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ImageProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); PlaneProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); QualitySelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); FallbackStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); FocusMeteringAction.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); FocusMeteringResult.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CaptureRequest.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CaptureRequestKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CaptureRequestOptions.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); Camera2CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); ResolutionFilter.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CameraCharacteristicsKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); CameraCharacteristics.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); Camera2CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); MeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager); + pigeon_instanceManager: instanceManager, + ); return instanceManager; } @@ -304,7 +359,8 @@ class PigeonInstanceManager { /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. T? getInstanceWithWeakReference( - int identifier) { + int identifier, + ) { final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; @@ -341,19 +397,24 @@ class PigeonInstanceManager { /// /// Returns unique identifier of the [instance] added. void addHostCreatedInstance( - PigeonInternalProxyApiBaseClass instance, int identifier) { + PigeonInternalProxyApiBaseClass instance, + int identifier, + ) { _addInstanceWithIdentifier(instance, identifier); } void _addInstanceWithIdentifier( - PigeonInternalProxyApiBaseClass instance, int identifier) { + PigeonInternalProxyApiBaseClass instance, + int identifier, + ) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = - WeakReference(instance); + _weakInstances[identifier] = WeakReference( + instance, + ); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -381,7 +442,7 @@ class PigeonInstanceManager { class _PigeonInternalInstanceManagerApi { /// Constructor for [_PigeonInternalInstanceManagerApi]. _PigeonInternalInstanceManagerApi({BinaryMessenger? binaryMessenger}) - : pigeonVar_binaryMessenger = binaryMessenger; + : pigeonVar_binaryMessenger = binaryMessenger; final BinaryMessenger? pigeonVar_binaryMessenger; @@ -393,31 +454,37 @@ class _PigeonInternalInstanceManagerApi { PigeonInstanceManager? instanceManager, }) { { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null.', + ); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); - assert(arg_identifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null, expected non-null int.'); + assert( + arg_identifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null, expected non-null int.', + ); try { - (instanceManager ?? PigeonInstanceManager.instance) - .remove(arg_identifier!); + (instanceManager ?? PigeonInstanceManager.instance).remove( + arg_identifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -429,12 +496,13 @@ class _PigeonInternalInstanceManagerApi { 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [identifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([identifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -458,10 +526,10 @@ class _PigeonInternalInstanceManagerApi { 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -496,8 +564,9 @@ class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { case 128: - return instanceManager - .getInstanceWithWeakReference(readValue(buffer)! as int); + return instanceManager.getInstanceWithWeakReference( + readValue(buffer)! as int, + ); default: return super.readValueOfType(type, buffer); } @@ -569,10 +638,7 @@ enum CameraStateType { } /// The types (T) properly wrapped to be used as a LiveData. -enum LiveDataSupportedType { - cameraState, - zoomState, -} +enum LiveDataSupportedType { cameraState, zoomState } /// Video quality constraints that will be used by a QualitySelector to choose /// an appropriate video resolution. @@ -844,8 +910,8 @@ class CameraSize extends PigeonInternalProxyApiBaseClass { required this.width, required this.height, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraSize; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -853,12 +919,13 @@ class CameraSize extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, width, height], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, width, height]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -901,56 +968,63 @@ class CameraSize extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraSize Function( - int width, - int height, - )? pigeon_newInstance, + CameraSize Function(int width, int height)? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.', + ); final int? arg_width = (args[1] as int?); - assert(arg_width != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_width != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.', + ); final int? arg_height = (args[2] as int?); - assert(arg_height != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_height != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_width!, arg_height!) ?? - CameraSize.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - width: arg_width!, - height: arg_height!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_width!, arg_height!) ?? + CameraSize.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + width: arg_width!, + height: arg_height!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -995,45 +1069,53 @@ class ResolutionInfo extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null int.', + ); final CameraSize? arg_resolution = (args[1] as CameraSize?); - assert(arg_resolution != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null CameraSize.'); + assert( + arg_resolution != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null CameraSize.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_resolution!) ?? - ResolutionInfo.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolution: arg_resolution!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_resolution!) ?? + ResolutionInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolution: arg_resolution!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -1062,8 +1144,8 @@ class CameraIntegerRange extends PigeonInternalProxyApiBaseClass { required this.lower, required this.upper, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraIntegerRange; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -1071,12 +1153,13 @@ class CameraIntegerRange extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, lower, upper], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, lower, upper]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -1107,8 +1190,9 @@ class CameraIntegerRange extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecCameraIntegerRange = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecCameraIntegerRange = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); /// The lower endpoint. final int lower; @@ -1120,56 +1204,63 @@ class CameraIntegerRange extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraIntegerRange Function( - int lower, - int upper, - )? pigeon_newInstance, + CameraIntegerRange Function(int lower, int upper)? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.', + ); final int? arg_lower = (args[1] as int?); - assert(arg_lower != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_lower != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.', + ); final int? arg_upper = (args[2] as int?); - assert(arg_upper != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_upper != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_lower!, arg_upper!) ?? - CameraIntegerRange.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - lower: arg_lower!, - upper: arg_upper!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_lower!, arg_upper!) ?? + CameraIntegerRange.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + lower: arg_lower!, + upper: arg_upper!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -1209,41 +1300,47 @@ class VideoRecordEvent extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoRecordEvent.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoRecordEvent.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -1281,41 +1378,47 @@ class VideoRecordEventStart extends VideoRecordEvent { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoRecordEventStart.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoRecordEventStart.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -1353,41 +1456,47 @@ class VideoRecordEventFinalize extends VideoRecordEvent { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoRecordEventFinalize.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoRecordEventFinalize.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -1429,41 +1538,47 @@ class MeteringPoint extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - MeteringPoint.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + MeteringPoint.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -1482,12 +1597,13 @@ class MeteringPoint extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -1526,8 +1642,8 @@ class Observer extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.onChanged, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecObserver; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -1535,12 +1651,13 @@ class Observer extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -1591,52 +1708,57 @@ class Observer extends PigeonInternalProxyApiBaseClass { /// /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to /// release the associated Native object manually. - final void Function( - Observer pigeon_instance, - Object value, - ) onChanged; + final void Function(Observer pigeon_instance, Object value) onChanged; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - void Function( - Observer pigeon_instance, - Object value, - )? onChanged, + void Function(Observer pigeon_instance, Object value)? onChanged, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Observer.onChanged', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + 'dev.flutter.pigeon.camera_android_camerax.Observer.onChanged', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null.', + ); final List args = (message as List?)!; final Observer? arg_pigeon_instance = (args[0] as Observer?); - assert(arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Observer.'); + assert( + arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Observer.', + ); final Object? arg_value = (args[1] as Object?); - assert(arg_value != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Object.'); + assert( + arg_value != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Object.', + ); try { - (onChanged ?? arg_pigeon_instance!.onChanged) - .call(arg_pigeon_instance!, arg_value!); + (onChanged ?? arg_pigeon_instance!.onChanged).call( + arg_pigeon_instance!, + arg_value!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -1683,57 +1805,67 @@ class CameraInfo extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraInfo Function( - int sensorRotationDegrees, - ExposureState exposureState, - )? pigeon_newInstance, + CameraInfo Function(int sensorRotationDegrees, ExposureState exposureState)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.', + ); final int? arg_sensorRotationDegrees = (args[1] as int?); - assert(arg_sensorRotationDegrees != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_sensorRotationDegrees != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.', + ); final ExposureState? arg_exposureState = (args[2] as ExposureState?); - assert(arg_exposureState != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null ExposureState.'); + assert( + arg_exposureState != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null ExposureState.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_sensorRotationDegrees!, arg_exposureState!) ?? - CameraInfo.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - sensorRotationDegrees: arg_sensorRotationDegrees!, - exposureState: arg_exposureState!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_sensorRotationDegrees!, + arg_exposureState!, + ) ?? + CameraInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + sensorRotationDegrees: arg_sensorRotationDegrees!, + exposureState: arg_exposureState!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -1749,12 +1881,13 @@ class CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -1784,12 +1917,13 @@ class CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -1831,8 +1965,8 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, LensFacing? requireLensFacing, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraSelector; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -1840,12 +1974,13 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, requireLensFacing], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, requireLensFacing]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -1891,41 +2026,47 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CameraSelector.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CameraSelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -1945,12 +2086,13 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -1981,12 +2123,13 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2014,12 +2157,13 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, cameraInfos], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, cameraInfos]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2065,8 +2209,9 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecProcessCameraProvider = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecProcessCameraProvider = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -2076,41 +2221,47 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - ProcessCameraProvider.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + ProcessCameraProvider.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -2124,16 +2275,17 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { }) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; const String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -2164,12 +2316,13 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2202,12 +2355,13 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, cameraSelector, useCases], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, cameraSelector, useCases]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2237,12 +2391,13 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, useCase], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, useCase]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2272,12 +2427,13 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, useCases], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, useCases]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2303,12 +2459,13 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2355,41 +2512,47 @@ class UseCase extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - UseCase.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + UseCase.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -2436,45 +2599,53 @@ class Camera extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null int.', + ); final CameraControl? arg_cameraControl = (args[1] as CameraControl?); - assert(arg_cameraControl != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null CameraControl.'); + assert( + arg_cameraControl != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null CameraControl.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_cameraControl!) ?? - Camera.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - cameraControl: arg_cameraControl!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_cameraControl!) ?? + Camera.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + cameraControl: arg_cameraControl!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -2490,12 +2661,13 @@ class Camera extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2533,8 +2705,8 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.onCameraError, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecSystemServicesManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2542,12 +2714,13 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -2577,8 +2750,9 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecSystemServicesManager = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecSystemServicesManager = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); /// Callback method. /// @@ -2602,7 +2776,8 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { final void Function( SystemServicesManager pigeon_instance, String errorDescription, - ) onCameraError; + ) + onCameraError; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -2611,42 +2786,53 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { void Function( SystemServicesManager pigeon_instance, String errorDescription, - )? onCameraError, + )? + onCameraError, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null.', + ); final List args = (message as List?)!; final SystemServicesManager? arg_pigeon_instance = (args[0] as SystemServicesManager?); - assert(arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null SystemServicesManager.'); + assert( + arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null SystemServicesManager.', + ); final String? arg_errorDescription = (args[1] as String?); - assert(arg_errorDescription != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null String.'); + assert( + arg_errorDescription != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null String.', + ); try { - (onCameraError ?? arg_pigeon_instance!.onCameraError) - .call(arg_pigeon_instance!, arg_errorDescription!); + (onCameraError ?? arg_pigeon_instance!.onCameraError).call( + arg_pigeon_instance!, + arg_errorDescription!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -2654,7 +2840,8 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { } Future requestCameraPermissions( - bool enableAudio) async { + bool enableAudio, + ) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecSystemServicesManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2662,12 +2849,13 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, enableAudio], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, enableAudio]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2685,10 +2873,7 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { /// Returns a path to be used to create a temp file in the current cache /// directory. - Future getTempFilePath( - String prefix, - String suffix, - ) async { + Future getTempFilePath(String prefix, String suffix) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecSystemServicesManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2696,12 +2881,13 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, prefix, suffix], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, prefix, suffix]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2754,56 +2940,64 @@ class CameraPermissionsError extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraPermissionsError Function( - String errorCode, - String description, - )? pigeon_newInstance, + CameraPermissionsError Function(String errorCode, String description)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null int.', + ); final String? arg_errorCode = (args[1] as String?); - assert(arg_errorCode != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.'); + assert( + arg_errorCode != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.', + ); final String? arg_description = (args[2] as String?); - assert(arg_description != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.'); + assert( + arg_description != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_errorCode!, arg_description!) ?? - CameraPermissionsError.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - errorCode: arg_errorCode!, - description: arg_description!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_errorCode!, arg_description!) ?? + CameraPermissionsError.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + errorCode: arg_errorCode!, + description: arg_description!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -2829,8 +3023,8 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.onDeviceOrientationChanged, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecDeviceOrientationManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2838,12 +3032,13 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -2873,8 +3068,9 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecDeviceOrientationManager = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecDeviceOrientationManager = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); /// Callback method. /// @@ -2898,42 +3094,48 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { final void Function( DeviceOrientationManager pigeon_instance, String orientation, - ) onDeviceOrientationChanged; + ) + onDeviceOrientationChanged; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - void Function( - DeviceOrientationManager pigeon_instance, - String orientation, - )? onDeviceOrientationChanged, + void Function(DeviceOrientationManager pigeon_instance, String orientation)? + onDeviceOrientationChanged, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null.', + ); final List args = (message as List?)!; final DeviceOrientationManager? arg_pigeon_instance = (args[0] as DeviceOrientationManager?); - assert(arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null DeviceOrientationManager.'); + assert( + arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null DeviceOrientationManager.', + ); final String? arg_orientation = (args[1] as String?); - assert(arg_orientation != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null String.'); + assert( + arg_orientation != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null String.', + ); try { (onDeviceOrientationChanged ?? arg_pigeon_instance!.onDeviceOrientationChanged) @@ -2943,7 +3145,8 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -2958,12 +3161,13 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2987,12 +3191,13 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3016,12 +3221,13 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3050,12 +3256,13 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3096,8 +3303,8 @@ class Preview extends UseCase { this.resolutionSelector, int? targetRotation, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecPreview; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3105,16 +3312,17 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [ + pigeonVar_instanceIdentifier, + resolutionSelector, + targetRotation, + ], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([ - pigeonVar_instanceIdentifier, - resolutionSelector, - targetRotation - ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -3153,48 +3361,54 @@ class Preview extends UseCase { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, Preview Function(ResolutionSelector? resolutionSelector)? - pigeon_newInstance, + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null, expected non-null int.', + ); final ResolutionSelector? arg_resolutionSelector = (args[1] as ResolutionSelector?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_resolutionSelector) ?? - Preview.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolutionSelector: arg_resolutionSelector, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_resolutionSelector) ?? + Preview.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: arg_resolutionSelector, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3210,7 +3424,8 @@ class Preview extends UseCase { /// 3. Returns the texture id of the `TextureEntry` that provided the /// `SurfaceProducer`. Future setSurfaceProvider( - SystemServicesManager systemServicesManager) async { + SystemServicesManager systemServicesManager, + ) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecPreview; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3218,12 +3433,13 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, systemServicesManager], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, systemServicesManager]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3254,12 +3470,13 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3284,12 +3501,13 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3314,12 +3532,13 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, rotation], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, rotation]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3345,12 +3564,13 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.surfaceProducerHandlesCropAndRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3391,8 +3611,8 @@ class VideoCapture extends UseCase { super.pigeon_instanceManager, required VideoOutput videoOutput, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecVideoCapture; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3400,12 +3620,13 @@ class VideoCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, videoOutput], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, videoOutput]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -3444,41 +3665,47 @@ class VideoCapture extends UseCase { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoCapture.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoCapture.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3494,12 +3721,13 @@ class VideoCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3529,12 +3757,13 @@ class VideoCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, rotation], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, rotation]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3581,41 +3810,47 @@ class VideoOutput extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoOutput.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoOutput.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3643,8 +3878,8 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecRecorder; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3652,17 +3887,17 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([ - pigeonVar_instanceIdentifier, - aspectRatio, - targetVideoEncodingBitRate, - qualitySelector - ]); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + aspectRatio, + targetVideoEncodingBitRate, + qualitySelector, + ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -3701,41 +3936,47 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - Recorder.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + Recorder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -3751,12 +3992,13 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3786,12 +4028,13 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3821,12 +4064,13 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3856,12 +4100,13 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, path], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, path]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3898,8 +4143,8 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.onEvent, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecVideoRecordEventListener; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3907,12 +4152,13 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -3942,8 +4188,9 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecVideoRecordEventListener = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecVideoRecordEventListener = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); /// Callback method. /// @@ -3967,7 +4214,8 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { final void Function( VideoRecordEventListener pigeon_instance, VideoRecordEvent event, - ) onEvent; + ) + onEvent; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -3976,42 +4224,53 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { void Function( VideoRecordEventListener pigeon_instance, VideoRecordEvent event, - )? onEvent, + )? + onEvent, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null.', + ); final List args = (message as List?)!; final VideoRecordEventListener? arg_pigeon_instance = (args[0] as VideoRecordEventListener?); - assert(arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEventListener.'); + assert( + arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEventListener.', + ); final VideoRecordEvent? arg_event = (args[1] as VideoRecordEvent?); - assert(arg_event != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEvent.'); + assert( + arg_event != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEvent.', + ); try { - (onEvent ?? arg_pigeon_instance!.onEvent) - .call(arg_pigeon_instance!, arg_event!); + (onEvent ?? arg_pigeon_instance!.onEvent).call( + arg_pigeon_instance!, + arg_event!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -4053,41 +4312,47 @@ class PendingRecording extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - PendingRecording.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + PendingRecording.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -4103,12 +4368,13 @@ class PendingRecording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.PendingRecording.start'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, listener], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, listener]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4163,41 +4429,47 @@ class Recording extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - Recording.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + Recording.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -4213,12 +4485,13 @@ class Recording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Recording.close'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4243,12 +4516,13 @@ class Recording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Recording.pause'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4273,12 +4547,13 @@ class Recording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Recording.resume'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4305,12 +4580,13 @@ class Recording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Recording.stop'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4346,8 +4622,8 @@ class ImageCapture extends UseCase { int? targetRotation, CameraXFlashMode? flashMode, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecImageCapture; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -4355,17 +4631,18 @@ class ImageCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [ + pigeonVar_instanceIdentifier, + resolutionSelector, + targetRotation, + flashMode, + ], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([ - pigeonVar_instanceIdentifier, - resolutionSelector, - targetRotation, - flashMode - ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -4404,48 +4681,54 @@ class ImageCapture extends UseCase { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, ImageCapture Function(ResolutionSelector? resolutionSelector)? - pigeon_newInstance, + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null, expected non-null int.', + ); final ResolutionSelector? arg_resolutionSelector = (args[1] as ResolutionSelector?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_resolutionSelector) ?? - ImageCapture.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolutionSelector: arg_resolutionSelector, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_resolutionSelector) ?? + ImageCapture.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: arg_resolutionSelector, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -4461,12 +4744,13 @@ class ImageCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, flashMode], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, flashMode]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4491,12 +4775,13 @@ class ImageCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4526,12 +4811,13 @@ class ImageCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, rotation], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, rotation]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4568,8 +4854,8 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { required CameraSize boundSize, required ResolutionStrategyFallbackRule fallbackRule, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecResolutionStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -4577,12 +4863,13 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, boundSize, fallbackRule], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, boundSize, fallbackRule]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -4611,8 +4898,9 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecResolutionStrategy = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecResolutionStrategy = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); /// A resolution strategy chooses the highest available resolution. static final ResolutionStrategy highestAvailableStrategy = @@ -4626,41 +4914,47 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - ResolutionStrategy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + ResolutionStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -4681,12 +4975,13 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4713,12 +5008,13 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4744,12 +5040,13 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4791,8 +5088,8 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { this.resolutionStrategy, AspectRatioStrategy? aspectRatioStrategy, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecResolutionSelector; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -4800,17 +5097,17 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([ - pigeonVar_instanceIdentifier, - resolutionFilter, - resolutionStrategy, - aspectRatioStrategy - ]); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + resolutionFilter, + resolutionStrategy, + aspectRatioStrategy, + ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -4841,8 +5138,9 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecResolutionSelector = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecResolutionSelector = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); /// The resolution filter to output the final desired sizes list. final ResolutionFilter? resolutionFilter; @@ -4857,29 +5155,35 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { ResolutionSelector Function( ResolutionFilter? resolutionFilter, ResolutionStrategy? resolutionStrategy, - )? pigeon_newInstance, + )? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null, expected non-null int.', + ); final ResolutionFilter? arg_resolutionFilter = (args[1] as ResolutionFilter?); final ResolutionStrategy? arg_resolutionStrategy = @@ -4887,22 +5191,25 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_resolutionFilter, arg_resolutionStrategy) ?? - ResolutionSelector.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolutionFilter: arg_resolutionFilter, - resolutionStrategy: arg_resolutionStrategy, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_resolutionFilter, + arg_resolutionStrategy, + ) ?? + ResolutionSelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolutionFilter: arg_resolutionFilter, + resolutionStrategy: arg_resolutionStrategy, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -4920,12 +5227,13 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4970,8 +5278,8 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecAspectRatioStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -4979,16 +5287,17 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [ + pigeonVar_instanceIdentifier, + preferredAspectRatio, + fallbackRule, + ], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([ - pigeonVar_instanceIdentifier, - preferredAspectRatio, - fallbackRule - ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -5017,8 +5326,9 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecAspectRatioStrategy = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecAspectRatioStrategy = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); /// The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 /// in priority. @@ -5038,41 +5348,47 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - AspectRatioStrategy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + AspectRatioStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -5093,12 +5409,13 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5130,12 +5447,13 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5163,12 +5481,13 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5198,12 +5517,13 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5259,55 +5579,61 @@ class CameraState extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraState Function( - CameraStateType type, - CameraStateStateError? error, - )? pigeon_newInstance, + CameraState Function(CameraStateType type, CameraStateStateError? error)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null int.', + ); final CameraStateType? arg_type = (args[1] as CameraStateType?); - assert(arg_type != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null CameraStateType.'); + assert( + arg_type != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null CameraStateType.', + ); final CameraStateStateError? arg_error = (args[2] as CameraStateStateError?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_type!, arg_error) ?? - CameraState.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - type: arg_type!, - error: arg_error, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_type!, arg_error) ?? + CameraState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + type: arg_type!, + error: arg_error, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -5355,55 +5681,69 @@ class ExposureState extends PigeonInternalProxyApiBaseClass { ExposureState Function( CameraIntegerRange exposureCompensationRange, double exposureCompensationStep, - )? pigeon_newInstance, + )? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null int.', + ); final CameraIntegerRange? arg_exposureCompensationRange = (args[1] as CameraIntegerRange?); - assert(arg_exposureCompensationRange != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null CameraIntegerRange.'); + assert( + arg_exposureCompensationRange != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null CameraIntegerRange.', + ); final double? arg_exposureCompensationStep = (args[2] as double?); - assert(arg_exposureCompensationStep != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null double.'); + assert( + arg_exposureCompensationStep != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null double.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_exposureCompensationRange!, - arg_exposureCompensationStep!) ?? - ExposureState.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - exposureCompensationRange: arg_exposureCompensationRange!, - exposureCompensationStep: arg_exposureCompensationStep!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_exposureCompensationRange!, + arg_exposureCompensationStep!, + ) ?? + ExposureState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + exposureCompensationRange: + arg_exposureCompensationRange!, + exposureCompensationStep: arg_exposureCompensationStep!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -5447,56 +5787,67 @@ class ZoomState extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - ZoomState Function( - double minZoomRatio, - double maxZoomRatio, - )? pigeon_newInstance, + ZoomState Function(double minZoomRatio, double maxZoomRatio)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null int.', + ); final double? arg_minZoomRatio = (args[1] as double?); - assert(arg_minZoomRatio != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.'); + assert( + arg_minZoomRatio != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.', + ); final double? arg_maxZoomRatio = (args[2] as double?); - assert(arg_maxZoomRatio != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.'); + assert( + arg_maxZoomRatio != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_minZoomRatio!, arg_maxZoomRatio!) ?? - ZoomState.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - minZoomRatio: arg_minZoomRatio!, - maxZoomRatio: arg_maxZoomRatio!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_minZoomRatio!, + arg_maxZoomRatio!, + ) ?? + ZoomState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + minZoomRatio: arg_minZoomRatio!, + maxZoomRatio: arg_maxZoomRatio!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -5525,8 +5876,8 @@ class ImageAnalysis extends UseCase { this.resolutionSelector, int? targetRotation, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecImageAnalysis; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -5534,16 +5885,17 @@ class ImageAnalysis extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [ + pigeonVar_instanceIdentifier, + resolutionSelector, + targetRotation, + ], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([ - pigeonVar_instanceIdentifier, - resolutionSelector, - targetRotation - ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -5582,48 +5934,54 @@ class ImageAnalysis extends UseCase { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, ImageAnalysis Function(ResolutionSelector? resolutionSelector)? - pigeon_newInstance, + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null, expected non-null int.', + ); final ResolutionSelector? arg_resolutionSelector = (args[1] as ResolutionSelector?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_resolutionSelector) ?? - ImageAnalysis.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolutionSelector: arg_resolutionSelector, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_resolutionSelector) ?? + ImageAnalysis.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: arg_resolutionSelector, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -5639,12 +5997,13 @@ class ImageAnalysis extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, analyzer], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, analyzer]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5669,12 +6028,13 @@ class ImageAnalysis extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5699,12 +6059,13 @@ class ImageAnalysis extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, rotation], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, rotation]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5739,8 +6100,8 @@ class Analyzer extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.analyze, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecAnalyzer; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -5748,12 +6109,13 @@ class Analyzer extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -5804,52 +6166,57 @@ class Analyzer extends PigeonInternalProxyApiBaseClass { /// /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to /// release the associated Native object manually. - final void Function( - Analyzer pigeon_instance, - ImageProxy image, - ) analyze; + final void Function(Analyzer pigeon_instance, ImageProxy image) analyze; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - void Function( - Analyzer pigeon_instance, - ImageProxy image, - )? analyze, + void Function(Analyzer pigeon_instance, ImageProxy image)? analyze, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + 'dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null.', + ); final List args = (message as List?)!; final Analyzer? arg_pigeon_instance = (args[0] as Analyzer?); - assert(arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null Analyzer.'); + assert( + arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null Analyzer.', + ); final ImageProxy? arg_image = (args[1] as ImageProxy?); - assert(arg_image != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null ImageProxy.'); + assert( + arg_image != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null ImageProxy.', + ); try { - (analyze ?? arg_pigeon_instance!.analyze) - .call(arg_pigeon_instance!, arg_image!); + (analyze ?? arg_pigeon_instance!.analyze).call( + arg_pigeon_instance!, + arg_image!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -5889,50 +6256,58 @@ class CameraStateStateError extends PigeonInternalProxyApiBaseClass { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, CameraStateStateError Function(CameraStateErrorCode code)? - pigeon_newInstance, + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null int.', + ); final CameraStateErrorCode? arg_code = (args[1] as CameraStateErrorCode?); - assert(arg_code != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null CameraStateErrorCode.'); + assert( + arg_code != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null CameraStateErrorCode.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_code!) ?? - CameraStateStateError.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - code: arg_code!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_code!) ?? + CameraStateStateError.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + code: arg_code!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -5982,46 +6357,54 @@ class LiveData extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null int.', + ); final LiveDataSupportedType? arg_type = (args[1] as LiveDataSupportedType?); - assert(arg_type != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null LiveDataSupportedType.'); + assert( + arg_type != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null LiveDataSupportedType.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_type!) ?? - LiveData.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - type: arg_type!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_type!) ?? + LiveData.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + type: arg_type!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -6038,12 +6421,13 @@ class LiveData extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.LiveData.observe'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, observer], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, observer]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6068,12 +6452,13 @@ class LiveData extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6098,12 +6483,13 @@ class LiveData extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.LiveData.getValue'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6162,61 +6548,73 @@ class ImageProxy extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - ImageProxy Function( - int format, - int width, - int height, - )? pigeon_newInstance, + ImageProxy Function(int format, int width, int height)? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.', + ); final int? arg_format = (args[1] as int?); - assert(arg_format != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_format != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.', + ); final int? arg_width = (args[2] as int?); - assert(arg_width != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_width != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.', + ); final int? arg_height = (args[3] as int?); - assert(arg_height != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_height != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_format!, arg_width!, arg_height!) ?? - ImageProxy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - format: arg_format!, - width: arg_width!, - height: arg_height!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_format!, + arg_width!, + arg_height!, + ) ?? + ImageProxy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + format: arg_format!, + width: arg_width!, + height: arg_height!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -6232,12 +6630,13 @@ class ImageProxy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6267,12 +6666,13 @@ class ImageProxy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.close'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6331,62 +6731,74 @@ class PlaneProxy extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - PlaneProxy Function( - Uint8List buffer, - int pixelStride, - int rowStride, - )? pigeon_newInstance, + PlaneProxy Function(Uint8List buffer, int pixelStride, int rowStride)? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.', + ); final Uint8List? arg_buffer = (args[1] as Uint8List?); - assert(arg_buffer != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null Uint8List.'); + assert( + arg_buffer != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null Uint8List.', + ); final int? arg_pixelStride = (args[2] as int?); - assert(arg_pixelStride != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pixelStride != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.', + ); final int? arg_rowStride = (args[3] as int?); - assert(arg_rowStride != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_rowStride != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_buffer!, arg_pixelStride!, arg_rowStride!) ?? - PlaneProxy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - buffer: arg_buffer!, - pixelStride: arg_pixelStride!, - rowStride: arg_rowStride!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_buffer!, + arg_pixelStride!, + arg_rowStride!, + ) ?? + PlaneProxy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + buffer: arg_buffer!, + pixelStride: arg_pixelStride!, + rowStride: arg_rowStride!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -6417,8 +6829,8 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { required VideoQuality quality, FallbackStrategy? fallbackStrategy, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecQualitySelector; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6426,12 +6838,13 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.from'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, quality, fallbackStrategy]); + [pigeonVar_instanceIdentifier, quality, fallbackStrategy], + ); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -6456,8 +6869,8 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { required List qualities, FallbackStrategy? fallbackStrategy, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecQualitySelector; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6465,12 +6878,13 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, qualities, fallbackStrategy]); + [pigeonVar_instanceIdentifier, qualities, fallbackStrategy], + ); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -6509,41 +6923,47 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - QualitySelector.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + QualitySelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -6559,18 +6979,20 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { }) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; const String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [cameraInfo, quality], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([cameraInfo, quality]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6608,8 +7030,8 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required VideoQuality quality, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFallbackStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6617,12 +7039,13 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, quality], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, quality]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -6647,8 +7070,8 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required VideoQuality quality, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFallbackStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6656,12 +7079,13 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, quality], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, quality]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -6686,8 +7110,8 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required VideoQuality quality, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFallbackStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6695,12 +7119,13 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, quality], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, quality]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -6725,8 +7150,8 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required VideoQuality quality, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFallbackStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6734,12 +7159,13 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, quality], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, quality]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -6778,41 +7204,47 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - FallbackStrategy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + FallbackStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -6855,41 +7287,47 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CameraControl.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CameraControl.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -6905,12 +7343,13 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, torch], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, torch]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6935,12 +7374,13 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, ratio], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, ratio]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6959,7 +7399,8 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { /// Starts a focus and metering action configured by the /// `FocusMeteringAction`. Future startFocusAndMetering( - FocusMeteringAction action) async { + FocusMeteringAction action, + ) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraControl; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6967,12 +7408,13 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, action], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, action]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6997,12 +7439,13 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7027,12 +7470,13 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, index], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, index]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7068,8 +7512,8 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required MeteringPoint point, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFocusMeteringActionBuilder; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7077,12 +7521,13 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, point], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier, point]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7107,8 +7552,8 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { required MeteringPoint point, required MeteringMode mode, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFocusMeteringActionBuilder; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7116,12 +7561,13 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, point, mode], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, point, mode]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7150,8 +7596,9 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecFocusMeteringActionBuilder = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecFocusMeteringActionBuilder = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -7161,41 +7608,47 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - FocusMeteringActionBuilder.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + FocusMeteringActionBuilder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -7211,12 +7664,13 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, point], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, point]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7233,10 +7687,7 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { } /// Adds another MeteringPoint with specified meteringMode. - Future addPointWithMode( - MeteringPoint point, - MeteringMode mode, - ) async { + Future addPointWithMode(MeteringPoint point, MeteringMode mode) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFocusMeteringActionBuilder; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7244,12 +7695,13 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, point, mode], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, point, mode]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7274,12 +7726,13 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7304,12 +7757,13 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7378,68 +7832,84 @@ class FocusMeteringAction extends PigeonInternalProxyApiBaseClass { List meteringPointsAf, List meteringPointsAwb, bool isAutoCancelEnabled, - )? pigeon_newInstance, + )? + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null int.', + ); final List? arg_meteringPointsAe = (args[1] as List?)?.cast(); - assert(arg_meteringPointsAe != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.'); + assert( + arg_meteringPointsAe != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.', + ); final List? arg_meteringPointsAf = (args[2] as List?)?.cast(); - assert(arg_meteringPointsAf != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.'); + assert( + arg_meteringPointsAf != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.', + ); final List? arg_meteringPointsAwb = (args[3] as List?)?.cast(); - assert(arg_meteringPointsAwb != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.'); + assert( + arg_meteringPointsAwb != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.', + ); final bool? arg_isAutoCancelEnabled = (args[4] as bool?); - assert(arg_isAutoCancelEnabled != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null bool.'); + assert( + arg_isAutoCancelEnabled != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null bool.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_meteringPointsAe!, - arg_meteringPointsAf!, - arg_meteringPointsAwb!, - arg_isAutoCancelEnabled!) ?? - FocusMeteringAction.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - meteringPointsAe: arg_meteringPointsAe!, - meteringPointsAf: arg_meteringPointsAf!, - meteringPointsAwb: arg_meteringPointsAwb!, - isAutoCancelEnabled: arg_isAutoCancelEnabled!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_meteringPointsAe!, + arg_meteringPointsAf!, + arg_meteringPointsAwb!, + arg_isAutoCancelEnabled!, + ) ?? + FocusMeteringAction.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + meteringPointsAe: arg_meteringPointsAe!, + meteringPointsAf: arg_meteringPointsAf!, + meteringPointsAwb: arg_meteringPointsAwb!, + isAutoCancelEnabled: arg_isAutoCancelEnabled!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -7485,45 +7955,53 @@ class FocusMeteringResult extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null int.', + ); final bool? arg_isFocusSuccessful = (args[1] as bool?); - assert(arg_isFocusSuccessful != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null bool.'); + assert( + arg_isFocusSuccessful != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null bool.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_isFocusSuccessful!) ?? - FocusMeteringResult.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - isFocusSuccessful: arg_isFocusSuccessful!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_isFocusSuccessful!) ?? + FocusMeteringResult.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + isFocusSuccessful: arg_isFocusSuccessful!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -7571,41 +8049,47 @@ class CaptureRequest extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CaptureRequest.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CaptureRequest.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -7626,12 +8110,13 @@ class CaptureRequest extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7681,41 +8166,47 @@ class CaptureRequestKey extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CaptureRequestKey.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CaptureRequestKey.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -7740,8 +8231,8 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required Map options, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCaptureRequestOptions; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7749,12 +8240,13 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, options], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, options]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7783,8 +8275,9 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecCaptureRequestOptions = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecCaptureRequestOptions = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -7794,41 +8287,47 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CaptureRequestOptions.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CaptureRequestOptions.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -7845,12 +8344,13 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, key], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, key]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7886,8 +8386,8 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required CameraControl cameraControl, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCamera2CameraControl; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7895,12 +8395,13 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, cameraControl], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, cameraControl]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7929,8 +8430,9 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecCamera2CameraControl = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecCamera2CameraControl = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -7940,41 +8442,47 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - Camera2CameraControl.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + Camera2CameraControl.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -7991,12 +8499,13 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, bundle], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, bundle]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8031,8 +8540,8 @@ class ResolutionFilter extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required CameraSize preferredSize, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecResolutionFilter; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -8040,12 +8549,13 @@ class ResolutionFilter extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, preferredSize], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, preferredSize]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -8084,41 +8594,47 @@ class ResolutionFilter extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - ResolutionFilter.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + ResolutionFilter.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -8157,41 +8673,47 @@ class CameraCharacteristicsKey extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CameraCharacteristicsKey.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CameraCharacteristicsKey.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -8246,41 +8768,47 @@ class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CameraCharacteristics.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CameraCharacteristics.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -8301,12 +8829,13 @@ class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8338,12 +8867,13 @@ class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8380,8 +8910,8 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required CameraInfo cameraInfo, }) { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCamera2CameraInfo; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -8389,12 +8919,13 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, cameraInfo], ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([pigeonVar_instanceIdentifier, cameraInfo]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -8423,8 +8954,9 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecCamera2CameraInfo = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecCamera2CameraInfo = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -8434,41 +8966,47 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - Camera2CameraInfo.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + Camera2CameraInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -8484,12 +9022,13 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8519,12 +9058,13 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, key], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, key]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8564,8 +9104,9 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecMeteringPointFactory = - _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); + _pigeonVar_codecMeteringPointFactory = _PigeonInternalProxyApiBaseCodec( + pigeon_instanceManager, + ); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -8575,41 +9116,47 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - MeteringPointFactory.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + MeteringPointFactory.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } @@ -8617,10 +9164,7 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { } /// Creates a MeteringPoint by x, y. - Future createPoint( - double x, - double y, - ) async { + Future createPoint(double x, double y) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecMeteringPointFactory; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -8628,12 +9172,13 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, x, y], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, x, y]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8667,12 +9212,13 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [this, x, y, size], ); - final Future pigeonVar_sendFuture = - pigeonVar_channel.send([this, x, y, size]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8718,8 +9264,8 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { required double width, required double height, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = - pigeon_instanceManager.addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = pigeon_instanceManager + .addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecDisplayOrientedMeteringPointFactory; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -8727,12 +9273,13 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { 'dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, cameraInfo, width, height]); + [pigeonVar_instanceIdentifier, cameraInfo, width, height], + ); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -8761,7 +9308,7 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { }) : super.pigeon_detached(); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecDisplayOrientedMeteringPointFactory = + _pigeonVar_codecDisplayOrientedMeteringPointFactory = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); static void pigeon_setUpMessageHandlers({ @@ -8772,41 +9319,47 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance); + pigeon_instanceManager ?? PigeonInstanceManager.instance, + ); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel< - Object?> pigeonVar_channel = BasicMessageChannel< - Object?>( - 'dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger); + final BasicMessageChannel + pigeonVar_channel = BasicMessageChannel( + 'dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger, + ); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert(message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null.'); + assert( + message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null.', + ); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert(arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null, expected non-null int.'); + assert( + arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null, expected non-null int.', + ); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - DisplayOrientedMeteringPointFactory.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + DisplayOrientedMeteringPointFactory.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString())); + error: PlatformException(code: 'error', message: e.toString()), + ); } }); } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart index 5daf870589e..123a2f6804f 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart @@ -76,7 +76,8 @@ class CameraXProxy { final void Function({ BinaryMessenger? pigeonBinaryMessenger, PigeonInstanceManager? pigeonInstanceManager, - }) setUpGenericsProxy; + }) + setUpGenericsProxy; /// Constructs [CameraSize]. final CameraSize Function({ @@ -84,7 +85,8 @@ class CameraXProxy { required int height, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newCameraSize; + }) + newCameraSize; /// Constructs [CameraIntegerRange]. final CameraIntegerRange Function({ @@ -92,41 +94,41 @@ class CameraXProxy { required int upper, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newCameraIntegerRange; + }) + newCameraIntegerRange; /// Constructs [Observer]. final Observer Function({ required void Function(Observer, T) onChanged, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newObserver; + }) + newObserver; /// Constructs [CameraSelector]. final CameraSelector Function({ LensFacing? requireLensFacing, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newCameraSelector; + }) + newCameraSelector; /// Constructs [SystemServicesManager]. final SystemServicesManager Function({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, + required void Function(SystemServicesManager, String) onCameraError, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newSystemServicesManager; + }) + newSystemServicesManager; /// Constructs [DeviceOrientationManager]. final DeviceOrientationManager Function({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newDeviceOrientationManager; + }) + newDeviceOrientationManager; /// Constructs [Preview]. final Preview Function({ @@ -134,14 +136,16 @@ class CameraXProxy { ResolutionSelector? resolutionSelector, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newPreview; + }) + newPreview; /// Constructs [VideoCapture]. final VideoCapture Function({ required VideoOutput videoOutput, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) withOutputVideoCapture; + }) + withOutputVideoCapture; /// Constructs [Recorder]. final Recorder Function({ @@ -150,17 +154,16 @@ class CameraXProxy { QualitySelector? qualitySelector, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newRecorder; + }) + newRecorder; /// Constructs [VideoRecordEventListener]. final VideoRecordEventListener Function({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, + required void Function(VideoRecordEventListener, VideoRecordEvent) onEvent, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newVideoRecordEventListener; + }) + newVideoRecordEventListener; /// Constructs [ImageCapture]. final ImageCapture Function({ @@ -169,7 +172,8 @@ class CameraXProxy { ResolutionSelector? resolutionSelector, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newImageCapture; + }) + newImageCapture; /// Constructs [ResolutionStrategy]. final ResolutionStrategy Function({ @@ -177,7 +181,8 @@ class CameraXProxy { required ResolutionStrategyFallbackRule fallbackRule, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newResolutionStrategy; + }) + newResolutionStrategy; /// Constructs [ResolutionSelector]. final ResolutionSelector Function({ @@ -186,7 +191,8 @@ class CameraXProxy { ResolutionFilter? resolutionFilter, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newResolutionSelector; + }) + newResolutionSelector; /// Constructs [AspectRatioStrategy]. final AspectRatioStrategy Function({ @@ -194,7 +200,8 @@ class CameraXProxy { required AspectRatioStrategyFallbackRule fallbackRule, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newAspectRatioStrategy; + }) + newAspectRatioStrategy; /// Constructs [ImageAnalysis]. final ImageAnalysis Function({ @@ -202,17 +209,16 @@ class CameraXProxy { ResolutionSelector? resolutionSelector, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newImageAnalysis; + }) + newImageAnalysis; /// Constructs [Analyzer]. final Analyzer Function({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, + required void Function(Analyzer, ImageProxy) analyze, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newAnalyzer; + }) + newAnalyzer; /// Constructs [QualitySelector]. final QualitySelector Function({ @@ -220,7 +226,8 @@ class CameraXProxy { FallbackStrategy? fallbackStrategy, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) fromQualitySelector; + }) + fromQualitySelector; /// Constructs [QualitySelector]. final QualitySelector Function({ @@ -228,42 +235,48 @@ class CameraXProxy { FallbackStrategy? fallbackStrategy, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) fromOrderedListQualitySelector; + }) + fromOrderedListQualitySelector; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({ required VideoQuality quality, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) higherQualityOrLowerThanFallbackStrategy; + }) + higherQualityOrLowerThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({ required VideoQuality quality, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) higherQualityThanFallbackStrategy; + }) + higherQualityThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({ required VideoQuality quality, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) lowerQualityOrHigherThanFallbackStrategy; + }) + lowerQualityOrHigherThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({ required VideoQuality quality, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) lowerQualityThanFallbackStrategy; + }) + lowerQualityThanFallbackStrategy; /// Constructs [FocusMeteringActionBuilder]. final FocusMeteringActionBuilder Function({ required MeteringPoint point, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newFocusMeteringActionBuilder; + }) + newFocusMeteringActionBuilder; /// Constructs [FocusMeteringActionBuilder]. FocusMeteringActionBuilder Function({ @@ -271,35 +284,40 @@ class CameraXProxy { required MeteringMode mode, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) withModeFocusMeteringActionBuilder; + }) + withModeFocusMeteringActionBuilder; /// Constructs [CaptureRequestOptions]. CaptureRequestOptions Function({ required Map options, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newCaptureRequestOptions; + }) + newCaptureRequestOptions; /// Constructs [Camera2CameraControl]. Camera2CameraControl Function({ required CameraControl cameraControl, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) fromCamera2CameraControl; + }) + fromCamera2CameraControl; /// Constructs [ResolutionFilter]. final ResolutionFilter Function({ required CameraSize preferredSize, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) createWithOnePreferredSizeResolutionFilter; + }) + createWithOnePreferredSizeResolutionFilter; /// Constructs [Camera2CameraInfo]. final Camera2CameraInfo Function({ required CameraInfo cameraInfo, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) fromCamera2CameraInfo; + }) + fromCamera2CameraInfo; /// Constructs [DisplayOrientedMeteringPointFactory]. DisplayOrientedMeteringPointFactory Function({ @@ -308,13 +326,15 @@ class CameraXProxy { required double height, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) newDisplayOrientedMeteringPointFactory; + }) + newDisplayOrientedMeteringPointFactory; /// Calls to [ProcessCameraProvider.getInstance]. final Future Function({ BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) getInstanceProcessCameraProvider; + }) + getInstanceProcessCameraProvider; /// Calls to [QualitySelector.getResolution]. final Future Function( @@ -322,7 +342,8 @@ class CameraXProxy { VideoQuality, { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) getResolutionQualitySelector; + }) + getResolutionQualitySelector; /// Calls to [CameraSelector.defaultBackCamera]. final CameraSelector Function() defaultBackCameraCameraSelector; @@ -332,26 +353,26 @@ class CameraXProxy { /// Calls to [ResolutionStrategy.highestAvailableStrategy]. final ResolutionStrategy Function() - highestAvailableStrategyResolutionStrategy; + highestAvailableStrategyResolutionStrategy; /// Calls to [AspectRatioStrategy.ratio_16_9FallbackAutoStrategy]. final AspectRatioStrategy Function() - ratio_16_9FallbackAutoStrategyAspectRatioStrategy; + ratio_16_9FallbackAutoStrategyAspectRatioStrategy; /// Calls to [AspectRatioStrategy.ratio_4_3FallbackAutoStrategy]. final AspectRatioStrategy Function() - ratio_4_3FallbackAutoStrategyAspectRatioStrategy; + ratio_4_3FallbackAutoStrategyAspectRatioStrategy; /// Calls to [CaptureRequest.controlAELock]. CaptureRequestKey Function() controlAELockCaptureRequest; /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. final CameraCharacteristicsKey Function() - infoSupportedHardwareLevelCameraCharacteristics; + infoSupportedHardwareLevelCameraCharacteristics; /// Calls to [CameraCharacteristics.sensorOrientation]. final CameraCharacteristicsKey Function() - sensorOrientationCameraCharacteristics; + sensorOrientationCameraCharacteristics; static CameraSelector _defaultBackCameraCameraSelector() => CameraSelector.defaultBackCamera; @@ -363,19 +384,19 @@ class CameraXProxy { ResolutionStrategy.highestAvailableStrategy; static AspectRatioStrategy - _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; static AspectRatioStrategy - _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; static CaptureRequestKey _controlAELockCaptureRequest() => CaptureRequest.controlAELock; static CameraCharacteristicsKey - _infoSupportedHardwareLevelCameraCharacteristics() => - CameraCharacteristics.infoSupportedHardwareLevel; + _infoSupportedHardwareLevelCameraCharacteristics() => + CameraCharacteristics.infoSupportedHardwareLevel; static CameraCharacteristicsKey _sensorOrientationCameraCharacteristics() => CameraCharacteristics.sensorOrientation; diff --git a/packages/camera/camera_android_camerax/lib/src/rotated_preview.dart b/packages/camera/camera_android_camerax/lib/src/rotated_preview.dart index 849de39013f..6ef054a007f 100644 --- a/packages/camera/camera_android_camerax/lib/src/rotated_preview.dart +++ b/packages/camera/camera_android_camerax/lib/src/rotated_preview.dart @@ -60,8 +60,9 @@ final class _RotatedPreviewState extends State { @override void initState() { deviceOrientation = widget.initialDeviceOrientation; - deviceOrientationSubscription = - widget.deviceOrientation.listen((DeviceOrientation event) { + deviceOrientationSubscription = widget.deviceOrientation.listen(( + DeviceOrientation event, + ) { // Ensure that we aren't updating the state if the widget is being destroyed. if (!mounted) { return; @@ -89,7 +90,7 @@ final class _RotatedPreviewState extends State { // https://developer.android.com/media/camera/camera2/camera-preview#orientation_calculation. double rotationDegrees = (sensorOrientationDegrees - deviceOrientationDegrees * sign + 360) % - 360; + 360; // Then, subtract the rotation already applied in the CameraPreview widget // (see camera/camera/lib/src/camera_preview.dart). @@ -111,9 +112,6 @@ final class _RotatedPreviewState extends State { sensorOrientationDegrees: widget.sensorOrientationDegrees, sign: widget.facingSign, ); - return RotatedBox( - quarterTurns: rotationDegrees ~/ 90, - child: widget.child, - ); + return RotatedBox(quarterTurns: rotationDegrees ~/ 90, child: widget.child); } } diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index a5fd1d098fc..4f7377af93d 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -18,14 +18,11 @@ import 'package:pigeon/pigeon.dart'; ), ), ) - /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. @ProxyApi( - kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'android.util.Size', - ), + kotlinOptions: KotlinProxyApiOptions(fullClassName: 'android.util.Size'), ) abstract class CameraSize { CameraSize(); @@ -116,10 +113,7 @@ enum CameraStateType { } /// The types (T) properly wrapped to be used as a LiveData. -enum LiveDataSupportedType { - cameraState, - zoomState, -} +enum LiveDataSupportedType { cameraState, zoomState } /// Immutable class for describing the range of two integer values. /// @@ -127,9 +121,7 @@ enum LiveDataSupportedType { /// /// See https://developer.android.com/reference/android/util/Range.html. @ProxyApi( - kotlinOptions: KotlinProxyApiOptions( - fullClassName: 'android.util.Range<*>', - ), + kotlinOptions: KotlinProxyApiOptions(fullClassName: 'android.util.Range<*>'), ) abstract class CameraIntegerRange { CameraIntegerRange(); @@ -332,10 +324,7 @@ abstract class ProcessCameraProvider { List getAvailableCameraInfos(); /// Binds the collection of `UseCase` to a `LifecycleOwner`. - Camera bindToLifecycle( - CameraSelector cameraSelector, - List useCases, - ); + Camera bindToLifecycle(CameraSelector cameraSelector, List useCases); /// Returns true if the `UseCase` is bound to a lifecycle. bool isBound(UseCase useCase); diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index 6cfc1e32e4e..d1e4f9e6879 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -56,29 +56,35 @@ import 'android_camera_camerax_test.mocks.dart'; MockSpec(), MockSpec(), ]) -@GenerateMocks([], customMocks: >[ - MockSpec>(as: #MockLiveCameraState), - MockSpec>(as: #MockLiveZoomState), -]) +@GenerateMocks( + [], + customMocks: >[ + MockSpec>(as: #MockLiveCameraState), + MockSpec>(as: #MockLiveZoomState), + ], +) void main() { TestWidgetsFlutterBinding.ensureInitialized(); /// Helper method for testing sending/receiving CameraErrorEvents. - Future testCameraClosingObserver(AndroidCameraCameraX camera, - int cameraId, Observer observer) async { + Future testCameraClosingObserver( + AndroidCameraCameraX camera, + int cameraId, + Observer observer, + ) async { final CameraStateStateError testCameraStateError = CameraStateStateError.pigeon_detached( - code: CameraStateErrorCode.doNotDisturbModeEnabled, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - final Stream cameraClosingEventStream = - camera.onCameraClosing(cameraId); + code: CameraStateErrorCode.doNotDisturbModeEnabled, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + final Stream cameraClosingEventStream = camera + .onCameraClosing(cameraId); final StreamQueue cameraClosingStreamQueue = StreamQueue(cameraClosingEventStream); - final Stream cameraErrorEventStream = - camera.onCameraError(cameraId); + final Stream cameraErrorEventStream = camera + .onCameraError(cameraId); final StreamQueue cameraErrorStreamQueue = StreamQueue(cameraErrorEventStream); @@ -95,7 +101,8 @@ void main() { final bool cameraClosingEventSent = await cameraClosingStreamQueue.next == CameraClosingEvent(cameraId); - final bool cameraErrorSent = await cameraErrorStreamQueue.next == + final bool cameraErrorSent = + await cameraErrorStreamQueue.next == CameraErrorEvent( cameraId, 'The camera could not be opened because "Do Not Disturb" mode is enabled. Please disable this mode, and try opening the camera again.', @@ -117,14 +124,16 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? createWithOnePreferredSizeResolutionFilter, + })? + createWithOnePreferredSizeResolutionFilter, FallbackStrategy Function({ required VideoQuality quality, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? lowerQualityOrHigherThanFallbackStrategy, + })? + lowerQualityOrHigherThanFallbackStrategy, QualitySelector Function({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, @@ -132,7 +141,8 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? fromQualitySelector, + })? + fromQualitySelector, Preview Function({ int? targetRotation, ResolutionSelector? resolutionSelector, @@ -140,7 +150,8 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? newPreview, + })? + newPreview, }) { late final CameraXProxy proxy; final AspectRatioStrategy ratio_4_3FallbackAutoStrategyAspectRatioStrategy = @@ -174,7 +185,8 @@ void main() { return MockCameraSelector(); }, - newPreview: newPreview ?? + newPreview: + newPreview ?? ({ int? targetRotation, ResolutionSelector? resolutionSelector, @@ -184,8 +196,9 @@ void main() { PigeonInstanceManager? pigeon_instanceManager, }) { final MockPreview mockPreview = MockPreview(); - when(mockPreview.surfaceProducerHandlesCropAndRotation()) - .thenAnswer((_) async => false); + when( + mockPreview.surfaceProducerHandlesCropAndRotation(), + ).thenAnswer((_) async => false); when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); return mockPreview; }, @@ -199,8 +212,9 @@ void main() { PigeonInstanceManager? pigeon_instanceManager, }) { final MockImageCapture mockImageCapture = MockImageCapture(); - when(mockImageCapture.resolutionSelector) - .thenReturn(resolutionSelector); + when( + mockImageCapture.resolutionSelector, + ).thenReturn(resolutionSelector); return mockImageCapture; }, newRecorder: ({ @@ -213,9 +227,9 @@ void main() { PigeonInstanceManager? pigeon_instanceManager, }) { final MockRecorder mockRecorder = MockRecorder(); - when(mockRecorder.getQualitySelector()).thenAnswer( - (_) async => qualitySelector ?? MockQualitySelector(), - ); + when( + mockRecorder.getQualitySelector(), + ).thenAnswer((_) async => qualitySelector ?? MockQualitySelector()); return mockRecorder; }, withOutputVideoCapture: ({ @@ -236,8 +250,9 @@ void main() { PigeonInstanceManager? pigeon_instanceManager, }) { final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - when(mockImageAnalysis.resolutionSelector) - .thenReturn(resolutionSelector); + when( + mockImageAnalysis.resolutionSelector, + ).thenReturn(resolutionSelector); return mockImageAnalysis; }, newResolutionStrategy: ({ @@ -250,12 +265,12 @@ void main() { }) { final MockResolutionStrategy resolutionStrategy = MockResolutionStrategy(); - when(resolutionStrategy.getBoundSize()).thenAnswer( - (_) async => boundSize, - ); - when(resolutionStrategy.getFallbackRule()).thenAnswer( - (_) async => fallbackRule, - ); + when( + resolutionStrategy.getBoundSize(), + ).thenAnswer((_) async => boundSize); + when( + resolutionStrategy.getFallbackRule(), + ).thenAnswer((_) async => fallbackRule); return resolutionStrategy; }, newResolutionSelector: ({ @@ -274,15 +289,16 @@ void main() { aspectRatioStrategy ?? proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), ); - when(mockResolutionSelector.resolutionStrategy).thenReturn( - resolutionStrategy, - ); - when(mockResolutionSelector.resolutionFilter).thenReturn( - resolutionFilter, - ); + when( + mockResolutionSelector.resolutionStrategy, + ).thenReturn(resolutionStrategy); + when( + mockResolutionSelector.resolutionFilter, + ).thenReturn(resolutionFilter); return mockResolutionSelector; }, - fromQualitySelector: fromQualitySelector ?? + fromQualitySelector: + fromQualitySelector ?? ({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, @@ -308,10 +324,7 @@ void main() { ); }, newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, + required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -320,10 +333,8 @@ void main() { return MockSystemServicesManager(); }, newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -346,25 +357,25 @@ void main() { }) { final MockAspectRatioStrategy mockAspectRatioStrategy = MockAspectRatioStrategy(); - when(mockAspectRatioStrategy.getFallbackRule()).thenAnswer( - (_) async => fallbackRule, - ); - when(mockAspectRatioStrategy.getPreferredAspectRatio()).thenAnswer( - (_) async => preferredAspectRatio, - ); + when( + mockAspectRatioStrategy.getFallbackRule(), + ).thenAnswer((_) async => fallbackRule); + when( + mockAspectRatioStrategy.getPreferredAspectRatio(), + ).thenAnswer((_) async => preferredAspectRatio); return mockAspectRatioStrategy; }, createWithOnePreferredSizeResolutionFilter: createWithOnePreferredSizeResolutionFilter ?? - ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }, + ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, // ignore: non_constant_identifier_names @@ -399,20 +410,20 @@ void main() { }, lowerQualityOrHigherThanFallbackStrategy: lowerQualityOrHigherThanFallbackStrategy ?? - ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, + ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, highestAvailableStrategyResolutionStrategy: () { return highestAvailableStrategyResolutionStrategy; }, - ratio_4_3FallbackAutoStrategyAspectRatioStrategy: () => - ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ratio_4_3FallbackAutoStrategyAspectRatioStrategy: + () => ratio_4_3FallbackAutoStrategyAspectRatioStrategy, lowerQualityThanFallbackStrategy: ({ required VideoQuality quality, // ignore: non_constant_identifier_names @@ -439,7 +450,8 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? withModeFocusMeteringActionBuilder, + })? + withModeFocusMeteringActionBuilder, DisplayOrientedMeteringPointFactory Function({ required CameraInfo cameraInfo, required double width, @@ -448,106 +460,99 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? newDisplayOrientedMeteringPointFactory, - }) => - CameraXProxy( - newDisplayOrientedMeteringPointFactory: - newDisplayOrientedMeteringPointFactory ?? - ({ - required CameraInfo cameraInfo, - required double width, - required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDisplayOrientedMeteringPointFactory mockFactory = - MockDisplayOrientedMeteringPointFactory(); - when(mockFactory.createPoint(any, any)).thenAnswer( - (Invocation invocation) async => TestMeteringPoint.detached( - x: invocation.positionalArguments[0]! as double, - y: invocation.positionalArguments[1]! as double, - ), - ); - when(mockFactory.createPointWithSize(any, any, any)) - .thenAnswer( - (Invocation invocation) async => TestMeteringPoint.detached( - x: invocation.positionalArguments[0]! as double, - y: invocation.positionalArguments[1]! as double, - size: invocation.positionalArguments[2]! as double, - ), - ); - return mockFactory; - }, - withModeFocusMeteringActionBuilder: - withModeFocusMeteringActionBuilder ?? - ({ - required MeteringPoint point, - required MeteringMode mode, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - final MockFocusMeteringActionBuilder mockBuilder = - MockFocusMeteringActionBuilder(); - bool disableAutoCancelCalled = false; - when(mockBuilder.disableAutoCancel()).thenAnswer((_) async { - disableAutoCancelCalled = true; - }); - final List meteringPointsAe = - []; - final List meteringPointsAf = - []; - final List meteringPointsAwb = - []; - - switch (mode) { - case MeteringMode.ae: - meteringPointsAe.add(point); - case MeteringMode.af: - meteringPointsAf.add(point); - case MeteringMode.awb: - meteringPointsAwb.add(point); - } - - when(mockBuilder.addPointWithMode(any, any)).thenAnswer( - (Invocation invocation) async { - switch (invocation.positionalArguments[1]) { - case MeteringMode.ae: - meteringPointsAe.add( - invocation.positionalArguments.first - as MeteringPoint, - ); - case MeteringMode.af: - meteringPointsAf.add( - invocation.positionalArguments.first - as MeteringPoint, - ); - case MeteringMode.awb: - meteringPointsAwb.add( - invocation.positionalArguments.first - as MeteringPoint, - ); - } - }, - ); - - when(mockBuilder.build()).thenAnswer( - (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: meteringPointsAe, - meteringPointsAf: meteringPointsAf, - meteringPointsAwb: meteringPointsAwb, - isAutoCancelEnabled: !disableAutoCancelCalled, - pigeon_instanceManager: testInstanceManager, - ), - ); - return mockBuilder; - }, - ); + })? + newDisplayOrientedMeteringPointFactory, + }) => CameraXProxy( + newDisplayOrientedMeteringPointFactory: + newDisplayOrientedMeteringPointFactory ?? + ({ + required CameraInfo cameraInfo, + required double width, + required double height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when(mockFactory.createPoint(any, any)).thenAnswer( + (Invocation invocation) async => TestMeteringPoint.detached( + x: invocation.positionalArguments[0]! as double, + y: invocation.positionalArguments[1]! as double, + ), + ); + when(mockFactory.createPointWithSize(any, any, any)).thenAnswer( + (Invocation invocation) async => TestMeteringPoint.detached( + x: invocation.positionalArguments[0]! as double, + y: invocation.positionalArguments[1]! as double, + size: invocation.positionalArguments[2]! as double, + ), + ); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: + withModeFocusMeteringActionBuilder ?? + ({ + required MeteringPoint point, + required MeteringMode mode, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + final MockFocusMeteringActionBuilder mockBuilder = + MockFocusMeteringActionBuilder(); + bool disableAutoCancelCalled = false; + when(mockBuilder.disableAutoCancel()).thenAnswer((_) async { + disableAutoCancelCalled = true; + }); + final List meteringPointsAe = []; + final List meteringPointsAf = []; + final List meteringPointsAwb = []; + + switch (mode) { + case MeteringMode.ae: + meteringPointsAe.add(point); + case MeteringMode.af: + meteringPointsAf.add(point); + case MeteringMode.awb: + meteringPointsAwb.add(point); + } + + when(mockBuilder.addPointWithMode(any, any)).thenAnswer(( + Invocation invocation, + ) async { + switch (invocation.positionalArguments[1]) { + case MeteringMode.ae: + meteringPointsAe.add( + invocation.positionalArguments.first as MeteringPoint, + ); + case MeteringMode.af: + meteringPointsAf.add( + invocation.positionalArguments.first as MeteringPoint, + ); + case MeteringMode.awb: + meteringPointsAwb.add( + invocation.positionalArguments.first as MeteringPoint, + ); + } + }); + + when(mockBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: meteringPointsAe, + meteringPointsAf: meteringPointsAf, + meteringPointsAwb: meteringPointsAwb, + isAutoCancelEnabled: !disableAutoCancelCalled, + pigeon_instanceManager: testInstanceManager, + ), + ); + return mockBuilder; + }, + ); /// CameraXProxy for testing setting focus and exposure points. /// @@ -564,7 +569,8 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? withModeFocusMeteringActionBuilder, + })? + withModeFocusMeteringActionBuilder, DisplayOrientedMeteringPointFactory Function({ required CameraInfo cameraInfo, required double width, @@ -573,7 +579,8 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? newDisplayOrientedMeteringPointFactory, + })? + newDisplayOrientedMeteringPointFactory, }) { final CameraXProxy proxy = getProxyForExposureAndFocus(); @@ -588,18 +595,19 @@ void main() { proxy.newDisplayOrientedMeteringPointFactory = newDisplayOrientedMeteringPointFactory; } - proxy.fromCamera2CameraControl = ({ - required CameraControl cameraControl, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - cameraControl == cameraControlForComparison - ? camera2cameraControl - : Camera2CameraControl.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + proxy.fromCamera2CameraControl = + ({ + required CameraControl cameraControl, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + cameraControl == cameraControlForComparison + ? camera2cameraControl + : Camera2CameraControl.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); proxy.newCaptureRequestOptions = ({ required Map options, // ignore: non_constant_identifier_names @@ -610,9 +618,9 @@ void main() { final MockCaptureRequestOptions mockCaptureRequestOptions = MockCaptureRequestOptions(); options.forEach((CaptureRequestKey key, Object? value) { - when(mockCaptureRequestOptions.getCaptureRequestOption(key)).thenAnswer( - (_) async => value, - ); + when( + mockCaptureRequestOptions.getCaptureRequestOption(key), + ).thenAnswer((_) async => value); }); return mockCaptureRequestOptions; }; @@ -624,380 +632,390 @@ void main() { return proxy; } - test('Should fetch CameraDescription instances for available cameras', - () async { - // Arrange - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final List returnData = [ - { - 'name': 'Camera 0', - 'lensFacing': 'back', - 'sensorOrientation': 0 - }, - { - 'name': 'Camera 1', - 'lensFacing': 'front', - 'sensorOrientation': 90 - } - ]; - - // Create mocks to use - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); - final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); - final MockCameraInfo mockFrontCameraInfo = MockCameraInfo(); - final MockCameraInfo mockBackCameraInfo = MockCameraInfo(); + test( + 'Should fetch CameraDescription instances for available cameras', + () async { + // Arrange + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final List returnData = [ + { + 'name': 'Camera 0', + 'lensFacing': 'back', + 'sensorOrientation': 0, + }, + { + 'name': 'Camera 1', + 'lensFacing': 'front', + 'sensorOrientation': 90, + }, + ]; - // Tell plugin to create mock CameraSelectors for testing. - camera.proxy = CameraXProxy( - setUpGenericsProxy: ({ - BinaryMessenger? pigeonBinaryMessenger, - PigeonInstanceManager? pigeonInstanceManager, - }) {}, - getInstanceProcessCameraProvider: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - Future.value(mockProcessCameraProvider), - newCameraSelector: ({ - LensFacing? requireLensFacing, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - switch (requireLensFacing) { - case LensFacing.front: - return mockFrontCameraSelector; - case LensFacing.back: - case LensFacing.external: - case LensFacing.unknown: - case null: - } + // Create mocks to use + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); + final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); + final MockCameraInfo mockFrontCameraInfo = MockCameraInfo(); + final MockCameraInfo mockBackCameraInfo = MockCameraInfo(); - return mockBackCameraSelector; - }, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockSystemServicesManager(); - }, - ); + // Tell plugin to create mock CameraSelectors for testing. + camera.proxy = CameraXProxy( + setUpGenericsProxy: + ({ + BinaryMessenger? pigeonBinaryMessenger, + PigeonInstanceManager? pigeonInstanceManager, + }) {}, + getInstanceProcessCameraProvider: + ({ + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + Future.value(mockProcessCameraProvider), + newCameraSelector: ({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: + return mockFrontCameraSelector; + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } + + return mockBackCameraSelector; + }, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); + }, + ); - // Mock calls to native platform - when(mockProcessCameraProvider.getAvailableCameraInfos()).thenAnswer( - (_) async => [mockBackCameraInfo, mockFrontCameraInfo]); - when(mockBackCameraSelector.filter([mockFrontCameraInfo])) - .thenAnswer((_) async => []); - when(mockBackCameraSelector.filter([mockBackCameraInfo])) - .thenAnswer((_) async => [mockBackCameraInfo]); - when(mockFrontCameraSelector.filter([mockBackCameraInfo])) - .thenAnswer((_) async => []); - when(mockFrontCameraSelector.filter([mockFrontCameraInfo])) - .thenAnswer((_) async => [mockFrontCameraInfo]); - when(mockBackCameraInfo.sensorRotationDegrees).thenReturn(0); - when(mockFrontCameraInfo.sensorRotationDegrees).thenReturn(90); - - final List cameraDescriptions = - await camera.availableCameras(); - - expect(cameraDescriptions.length, returnData.length); - for (int i = 0; i < returnData.length; i++) { - final Map typedData = - (returnData[i] as Map).cast(); - final CameraDescription cameraDescription = CameraDescription( - name: typedData['name']! as String, - lensDirection: (typedData['lensFacing']! as String) == 'front' - ? CameraLensDirection.front - : CameraLensDirection.back, - sensorOrientation: typedData['sensorOrientation']! as int, - ); - expect(cameraDescriptions[i], cameraDescription); - } - }); + // Mock calls to native platform + when(mockProcessCameraProvider.getAvailableCameraInfos()).thenAnswer( + (_) async => [mockBackCameraInfo, mockFrontCameraInfo], + ); + when( + mockBackCameraSelector.filter([mockFrontCameraInfo]), + ).thenAnswer((_) async => []); + when( + mockBackCameraSelector.filter([mockBackCameraInfo]), + ).thenAnswer((_) async => [mockBackCameraInfo]); + when( + mockFrontCameraSelector.filter([mockBackCameraInfo]), + ).thenAnswer((_) async => []); + when( + mockFrontCameraSelector.filter([mockFrontCameraInfo]), + ).thenAnswer((_) async => [mockFrontCameraInfo]); + when(mockBackCameraInfo.sensorRotationDegrees).thenReturn(0); + when(mockFrontCameraInfo.sensorRotationDegrees).thenReturn(90); + + final List cameraDescriptions = + await camera.availableCameras(); + + expect(cameraDescriptions.length, returnData.length); + for (int i = 0; i < returnData.length; i++) { + final Map typedData = + (returnData[i] as Map).cast(); + final CameraDescription cameraDescription = CameraDescription( + name: typedData['name']! as String, + lensDirection: + (typedData['lensFacing']! as String) == 'front' + ? CameraLensDirection.front + : CameraLensDirection.back, + sensorOrientation: typedData['sensorOrientation']! as int, + ); + expect(cameraDescriptions[i], cameraDescription); + } + }, + ); test( - 'createCamera requests permissions, starts listening for device orientation changes, updates camera state observers, and returns flutter surface texture ID', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( + 'createCamera requests permissions, starts listening for device orientation changes, updates camera state observers, and returns flutter surface texture ID', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( name: 'cameraName', lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - - const int testSurfaceTextureId = 6; + sensorOrientation: testSensorOrientation, + ); - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockPreview mockPreview = MockPreview(); - final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); - final MockImageCapture mockImageCapture = MockImageCapture(); - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockRecorder mockRecorder = MockRecorder(); - final MockVideoCapture mockVideoCapture = MockVideoCapture(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - final MockCameraCharacteristicsKey mockCameraCharacteristicsKey = - MockCameraCharacteristicsKey(); + const int testSurfaceTextureId = 6; - bool cameraPermissionsRequested = false; - bool startedListeningForDeviceOrientationChanges = false; + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockPreview mockPreview = MockPreview(); + final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); + final MockImageCapture mockImageCapture = MockImageCapture(); + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockRecorder mockRecorder = MockRecorder(); + final MockVideoCapture mockVideoCapture = MockVideoCapture(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + final MockCameraCharacteristicsKey mockCameraCharacteristicsKey = + MockCameraCharacteristicsKey(); - camera.proxy = CameraXProxy( - getInstanceProcessCameraProvider: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) async { - return mockProcessCameraProvider; - }, - newCameraSelector: ({ - LensFacing? requireLensFacing, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - switch (requireLensFacing) { - case LensFacing.front: - return MockCameraSelector(); - case LensFacing.back: - case LensFacing.external: - case LensFacing.unknown: - case null: - } + bool cameraPermissionsRequested = false; + bool startedListeningForDeviceOrientationChanges = false; - return mockBackCameraSelector; - }, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockPreview; - }, - newImageCapture: ({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockImageCapture; - }, - newRecorder: ({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockRecorder; - }, - withOutputVideoCapture: ({ - required VideoOutput videoOutput, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockVideoCapture; - }, - newImageAnalysis: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockImageAnalysis; - }, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionStrategy(); - }, - newResolutionSelector: ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionSelector(); - }, - fromQualitySelector: ({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockQualitySelector(); - }, - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - when(mockSystemServicesManager.requestCameraPermissions(any)) - .thenAnswer( - (_) async { + camera.proxy = CameraXProxy( + getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) async { + return mockProcessCameraProvider; + }, + newCameraSelector: ({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } + + return mockBackCameraSelector; + }, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockPreview; + }, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageCapture; + }, + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockRecorder; + }, + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockVideoCapture; + }, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageAnalysis; + }, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + when( + mockSystemServicesManager.requestCameraPermissions(any), + ).thenAnswer((_) async { cameraPermissionsRequested = true; return CameraPermissionsError.pigeon_detached( errorCode: '', description: '', - pigeon_instanceManager: - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}), + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), ); - }, - ); - return mockSystemServicesManager; - }, - newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDeviceOrientationManager manager = - MockDeviceOrientationManager(); - when(manager.startListeningForDeviceOrientationChange()).thenAnswer( - (_) async { + }); + return mockSystemServicesManager; + }, + newDeviceOrientationManager: ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.startListeningForDeviceOrientationChange()).thenAnswer(( + _, + ) async { startedListeningForDeviceOrientationChanges = true; - }, - ); - when(manager.getUiOrientation()).thenAnswer((_) async { - return 'PORTRAIT_UP'; - }); - return manager; - }, - newAspectRatioStrategy: ({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockAspectRatioStrategy(); - }, - createWithOnePreferredSizeResolutionFilter: ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockCamera2CameraInfo camera2cameraInfo = MockCamera2CameraInfo(); - when( - camera2cameraInfo - .getCameraCharacteristic(mockCameraCharacteristicsKey), - ).thenAnswer((_) async => testSensorOrientation); - return camera2cameraInfo; - }, - newCameraSize: ({ - required int width, - required int height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockCameraSize(); - }, - sensorOrientationCameraCharacteristics: () { - return mockCameraCharacteristicsKey; - }, - lowerQualityOrHigherThanFallbackStrategy: ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, - ); + }); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }, + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAspectRatioStrategy(); + }, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockCamera2CameraInfo camera2cameraInfo = + MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic( + mockCameraCharacteristicsKey, + ), + ).thenAnswer((_) async => testSensorOrientation); + return camera2cameraInfo; + }, + newCameraSize: ({ + required int width, + required int height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockCameraSize(); + }, + sensorOrientationCameraCharacteristics: () { + return mockCameraCharacteristicsKey; + }, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + ); - camera.processCameraProvider = mockProcessCameraProvider; + camera.processCameraProvider = mockProcessCameraProvider; - when(mockPreview.setSurfaceProvider(mockSystemServicesManager)) - .thenAnswer((_) async => testSurfaceTextureId); - when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, - [mockPreview, mockImageCapture, mockImageAnalysis])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => mockLiveCameraState); + when( + mockPreview.setSurfaceProvider(mockSystemServicesManager), + ).thenAnswer((_) async => testSurfaceTextureId); + when( + mockProcessCameraProvider.bindToLifecycle( + mockBackCameraSelector, + [mockPreview, mockImageCapture, mockImageAnalysis], + ), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => mockLiveCameraState); - expect( + expect( await camera.createCameraWithSettings( testCameraDescription, const MediaSettings( @@ -1008,289 +1026,295 @@ void main() { enableAudio: true, ), ), - equals(testSurfaceTextureId)); + equals(testSurfaceTextureId), + ); - // Verify permissions are requested and the camera starts listening for device orientation changes. - expect(cameraPermissionsRequested, isTrue); - expect(startedListeningForDeviceOrientationChanges, isTrue); + // Verify permissions are requested and the camera starts listening for device orientation changes. + expect(cameraPermissionsRequested, isTrue); + expect(startedListeningForDeviceOrientationChanges, isTrue); - // Verify CameraSelector is set with appropriate lens direction. - expect(camera.cameraSelector, equals(mockBackCameraSelector)); + // Verify CameraSelector is set with appropriate lens direction. + expect(camera.cameraSelector, equals(mockBackCameraSelector)); - // Verify the camera's Preview instance is instantiated properly. - expect(camera.preview, equals(mockPreview)); + // Verify the camera's Preview instance is instantiated properly. + expect(camera.preview, equals(mockPreview)); - // Verify the camera's ImageCapture instance is instantiated properly. - expect(camera.imageCapture, equals(mockImageCapture)); + // Verify the camera's ImageCapture instance is instantiated properly. + expect(camera.imageCapture, equals(mockImageCapture)); - // Verify the camera's Recorder and VideoCapture instances are instantiated properly. - expect(camera.recorder, equals(mockRecorder)); - expect(camera.videoCapture, equals(mockVideoCapture)); + // Verify the camera's Recorder and VideoCapture instances are instantiated properly. + expect(camera.recorder, equals(mockRecorder)); + expect(camera.videoCapture, equals(mockVideoCapture)); - // Verify the camera's Preview instance has its surface provider set. - verify(camera.preview!.setSurfaceProvider(mockSystemServicesManager)); + // Verify the camera's Preview instance has its surface provider set. + verify(camera.preview!.setSurfaceProvider(mockSystemServicesManager)); - // Verify the camera state observer is updated. - expect( + // Verify the camera state observer is updated. + expect( await testCameraClosingObserver( - camera, - testSurfaceTextureId, - verify(mockLiveCameraState.observe(captureAny)).captured.single - as Observer), - isTrue); - }); + camera, + testSurfaceTextureId, + verify(mockLiveCameraState.observe(captureAny)).captured.single + as Observer, + ), + isTrue, + ); + }, + ); test( - 'createCamera binds Preview and ImageCapture use cases to ProcessCameraProvider instance', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( + 'createCamera binds Preview and ImageCapture use cases to ProcessCameraProvider instance', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( name: 'cameraName', lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; - const bool enableAudio = true; - - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockPreview mockPreview = MockPreview(); - final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); - final MockImageCapture mockImageCapture = MockImageCapture(); - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockRecorder mockRecorder = MockRecorder(); - final MockVideoCapture mockVideoCapture = MockVideoCapture(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - final MockCameraCharacteristicsKey mockCameraCharacteristicsKey = - MockCameraCharacteristicsKey(); + sensorOrientation: testSensorOrientation, + ); + const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; + const bool enableAudio = true; - // Tell plugin to create mock/detached objects and stub method calls for the - // testing of createCamera. - camera.proxy = CameraXProxy( - getInstanceProcessCameraProvider: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) async { - return mockProcessCameraProvider; - }, - newCameraSelector: ({ - LensFacing? requireLensFacing, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - switch (requireLensFacing) { - case LensFacing.front: - return MockCameraSelector(); - case LensFacing.back: - case LensFacing.external: - case LensFacing.unknown: - case null: - } + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockPreview mockPreview = MockPreview(); + final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); + final MockImageCapture mockImageCapture = MockImageCapture(); + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockRecorder mockRecorder = MockRecorder(); + final MockVideoCapture mockVideoCapture = MockVideoCapture(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); + final MockCameraCharacteristicsKey mockCameraCharacteristicsKey = + MockCameraCharacteristicsKey(); - return mockBackCameraSelector; - }, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockPreview; - }, - newImageCapture: ({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockImageCapture; - }, - newRecorder: ({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockRecorder; - }, - withOutputVideoCapture: ({ - required VideoOutput videoOutput, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockVideoCapture; - }, - newImageAnalysis: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return mockImageAnalysis; - }, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionStrategy(); - }, - newResolutionSelector: ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionSelector(); - }, - fromQualitySelector: ({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockQualitySelector(); - }, - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockSystemServicesManager(); - }, - newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDeviceOrientationManager manager = - MockDeviceOrientationManager(); - when(manager.getUiOrientation()).thenAnswer((_) async { - return 'PORTRAIT_UP'; - }); - return manager; - }, - newAspectRatioStrategy: ({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockAspectRatioStrategy(); - }, - createWithOnePreferredSizeResolutionFilter: ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - when( - mockCamera2CameraInfo - .getCameraCharacteristic(mockCameraCharacteristicsKey), - ).thenAnswer((_) async => testSensorOrientation); - return mockCamera2CameraInfo; - }, - newCameraSize: ({ - required int width, - required int height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockCameraSize(); - }, - sensorOrientationCameraCharacteristics: () { - return mockCameraCharacteristicsKey; - }, - lowerQualityOrHigherThanFallbackStrategy: ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, - ); + // Tell plugin to create mock/detached objects and stub method calls for the + // testing of createCamera. + camera.proxy = CameraXProxy( + getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) async { + return mockProcessCameraProvider; + }, + newCameraSelector: ({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + switch (requireLensFacing) { + case LensFacing.front: + return MockCameraSelector(); + case LensFacing.back: + case LensFacing.external: + case LensFacing.unknown: + case null: + } + + return mockBackCameraSelector; + }, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockPreview; + }, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageCapture; + }, + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockRecorder; + }, + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockVideoCapture; + }, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return mockImageAnalysis; + }, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); + }, + newDeviceOrientationManager: ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) async { + return 'PORTRAIT_UP'; + }); + return manager; + }, + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAspectRatioStrategy(); + }, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + when( + mockCamera2CameraInfo.getCameraCharacteristic( + mockCameraCharacteristicsKey, + ), + ).thenAnswer((_) async => testSensorOrientation); + return mockCamera2CameraInfo; + }, + newCameraSize: ({ + required int width, + required int height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockCameraSize(); + }, + sensorOrientationCameraCharacteristics: () { + return mockCameraCharacteristicsKey; + }, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + ); - when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, - [mockPreview, mockImageCapture, mockImageAnalysis])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera.cameraControl).thenAnswer((_) => mockCameraControl); + when( + mockProcessCameraProvider.bindToLifecycle( + mockBackCameraSelector, + [mockPreview, mockImageCapture, mockImageAnalysis], + ), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when(mockCamera.cameraControl).thenAnswer((_) => mockCameraControl); - camera.processCameraProvider = mockProcessCameraProvider; + camera.processCameraProvider = mockProcessCameraProvider; - await camera.createCameraWithSettings( + await camera.createCameraWithSettings( testCameraDescription, const MediaSettings( resolutionPreset: testResolutionPreset, @@ -1298,582 +1322,627 @@ void main() { videoBitrate: 2000000, audioBitrate: 64000, enableAudio: enableAudio, - )); + ), + ); - // Verify expected UseCases were bound. - verify(camera.processCameraProvider!.bindToLifecycle(camera.cameraSelector!, - [mockPreview, mockImageCapture, mockImageAnalysis])); + // Verify expected UseCases were bound. + verify( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [mockPreview, mockImageCapture, mockImageAnalysis], + ), + ); - // Verify the camera's CameraInfo instance got updated. - expect(camera.cameraInfo, equals(mockCameraInfo)); + // Verify the camera's CameraInfo instance got updated. + expect(camera.cameraInfo, equals(mockCameraInfo)); - // Verify camera's CameraControl instance got updated. - expect(camera.cameraControl, equals(mockCameraControl)); + // Verify camera's CameraControl instance got updated. + expect(camera.cameraControl, equals(mockCameraControl)); - // Verify preview has been marked as bound to the camera lifecycle by - // createCamera. - expect(camera.previewInitiallyBound, isTrue); - }); + // Verify preview has been marked as bound to the camera lifecycle by + // createCamera. + expect(camera.previewInitiallyBound, isTrue); + }, + ); test( - 'createCamera properly sets preset resolution selection strategy for non-video capture use cases', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( + 'createCamera properly sets preset resolution selection strategy for non-video capture use cases', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( name: 'cameraName', lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - final MockCamera mockCamera = MockCamera(); + sensorOrientation: testSensorOrientation, + ); + const bool enableAudio = true; + final MockCamera mockCamera = MockCamera(); - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - camera.processCameraProvider = mockProcessCameraProvider; + when( + mockProcessCameraProvider.bindToLifecycle(any, any), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + camera.processCameraProvider = mockProcessCameraProvider; - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - camera.proxy = getProxyForTestingResolutionPreset( - mockProcessCameraProvider, - ); + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + ); - // Test non-null resolution presets. - for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + // Test non-null resolution presets. + for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + await camera.createCamera( + testCameraDescription, + resolutionPreset, + enableAudio: enableAudio, + ); + + late final CameraSize? expectedBoundSize; + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + switch (resolutionPreset) { + case ResolutionPreset.low: + expectedBoundSize = CameraSize.pigeon_detached( + width: 320, + height: 240, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.medium: + expectedBoundSize = CameraSize.pigeon_detached( + width: 720, + height: 480, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.high: + expectedBoundSize = CameraSize.pigeon_detached( + width: 1280, + height: 720, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.veryHigh: + expectedBoundSize = CameraSize.pigeon_detached( + width: 1920, + height: 1080, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.ultraHigh: + expectedBoundSize = CameraSize.pigeon_detached( + width: 3840, + height: 2160, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.max: + continue; + } + + final CameraSize? previewSize = + await camera.preview!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); + expect(previewSize?.width, equals(expectedBoundSize.width)); + expect(previewSize?.height, equals(expectedBoundSize.height)); + expect( + await camera.preview!.resolutionSelector!.resolutionStrategy! + .getFallbackRule(), + ResolutionStrategyFallbackRule.closestLowerThenHigher, + ); + + final CameraSize? imageCaptureSize = + await camera.imageCapture!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); + expect(imageCaptureSize?.width, equals(expectedBoundSize.width)); + expect(imageCaptureSize?.height, equals(expectedBoundSize.height)); + expect( + await camera.imageCapture!.resolutionSelector!.resolutionStrategy! + .getFallbackRule(), + ResolutionStrategyFallbackRule.closestLowerThenHigher, + ); + + final CameraSize? imageAnalysisSize = + await camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); + expect(imageAnalysisSize?.width, equals(expectedBoundSize.width)); + expect(imageAnalysisSize?.height, equals(expectedBoundSize.height)); + expect( + await camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! + .getFallbackRule(), + ResolutionStrategyFallbackRule.closestLowerThenHigher, + ); + } + + // Test max case. await camera.createCamera( testCameraDescription, - resolutionPreset, - enableAudio: enableAudio, - ); - - late final CameraSize? expectedBoundSize; - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, + ResolutionPreset.max, + enableAudio: true, ); - switch (resolutionPreset) { - case ResolutionPreset.low: - expectedBoundSize = CameraSize.pigeon_detached( - width: 320, - height: 240, - pigeon_instanceManager: testInstanceManager, - ); - case ResolutionPreset.medium: - expectedBoundSize = CameraSize.pigeon_detached( - width: 720, - height: 480, - pigeon_instanceManager: testInstanceManager, - ); - case ResolutionPreset.high: - expectedBoundSize = CameraSize.pigeon_detached( - width: 1280, - height: 720, - pigeon_instanceManager: testInstanceManager, - ); - case ResolutionPreset.veryHigh: - expectedBoundSize = CameraSize.pigeon_detached( - width: 1920, - height: 1080, - pigeon_instanceManager: testInstanceManager, - ); - case ResolutionPreset.ultraHigh: - expectedBoundSize = CameraSize.pigeon_detached( - width: 3840, - height: 2160, - pigeon_instanceManager: testInstanceManager, - ); - case ResolutionPreset.max: - continue; - } - final CameraSize? previewSize = await camera - .preview!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); - expect(previewSize?.width, equals(expectedBoundSize.width)); - expect(previewSize?.height, equals(expectedBoundSize.height)); expect( - await camera.preview!.resolutionSelector!.resolutionStrategy! - .getFallbackRule(), - ResolutionStrategyFallbackRule.closestLowerThenHigher, + camera.preview!.resolutionSelector!.resolutionStrategy, + equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), ); - - final CameraSize? imageCaptureSize = await camera - .imageCapture!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); - expect(imageCaptureSize?.width, equals(expectedBoundSize.width)); - expect(imageCaptureSize?.height, equals(expectedBoundSize.height)); expect( - await camera.imageCapture!.resolutionSelector!.resolutionStrategy! - .getFallbackRule(), - ResolutionStrategyFallbackRule.closestLowerThenHigher, + camera.imageCapture!.resolutionSelector!.resolutionStrategy, + equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), ); - - final CameraSize? imageAnalysisSize = await camera - .imageAnalysis!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); - expect(imageAnalysisSize?.width, equals(expectedBoundSize.width)); - expect(imageAnalysisSize?.height, equals(expectedBoundSize.height)); expect( - await camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! - .getFallbackRule(), - ResolutionStrategyFallbackRule.closestLowerThenHigher, + camera.imageAnalysis!.resolutionSelector!.resolutionStrategy, + equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), ); - } - - // Test max case. - await camera.createCamera( - testCameraDescription, - ResolutionPreset.max, - enableAudio: true, - ); - - expect( - camera.preview!.resolutionSelector!.resolutionStrategy, - equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), - ); - expect( - camera.imageCapture!.resolutionSelector!.resolutionStrategy, - equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), - ); - expect( - camera.imageAnalysis!.resolutionSelector!.resolutionStrategy, - equals(camera.proxy.highestAvailableStrategyResolutionStrategy()), - ); - // Test null case. - await camera.createCamera(testCameraDescription, null); - expect(camera.preview!.resolutionSelector, isNull); - expect(camera.imageCapture!.resolutionSelector, isNull); - expect(camera.imageAnalysis!.resolutionSelector, isNull); - }); + // Test null case. + await camera.createCamera(testCameraDescription, null); + expect(camera.preview!.resolutionSelector, isNull); + expect(camera.imageCapture!.resolutionSelector, isNull); + expect(camera.imageAnalysis!.resolutionSelector, isNull); + }, + ); test( - 'createCamera properly sets filter for resolution preset for non-video capture use cases', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.front; - const int testSensorOrientation = 180; - const CameraDescription testCameraDescription = CameraDescription( + 'createCamera properly sets filter for resolution preset for non-video capture use cases', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.front; + const int testSensorOrientation = 180; + const CameraDescription testCameraDescription = CameraDescription( name: 'cameraName', lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - final MockCamera mockCamera = MockCamera(); + sensorOrientation: testSensorOrientation, + ); + const bool enableAudio = true; + final MockCamera mockCamera = MockCamera(); - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - CameraSize? lastSetPreferredSize; - camera.proxy = getProxyForTestingResolutionPreset( - mockProcessCameraProvider, - createWithOnePreferredSizeResolutionFilter: ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - lastSetPreferredSize = preferredSize; - return MockResolutionFilter(); - }, - ); + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + CameraSize? lastSetPreferredSize; + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + lastSetPreferredSize = preferredSize; + return MockResolutionFilter(); + }, + ); - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - camera.processCameraProvider = mockProcessCameraProvider; + when( + mockProcessCameraProvider.bindToLifecycle(any, any), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + camera.processCameraProvider = mockProcessCameraProvider; - // Test non-null resolution presets. - for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - await camera.createCamera(testCameraDescription, resolutionPreset, - enableAudio: enableAudio); + // Test non-null resolution presets. + for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + await camera.createCamera( + testCameraDescription, + resolutionPreset, + enableAudio: enableAudio, + ); - CameraSize? expectedPreferredResolution; - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - switch (resolutionPreset) { - case ResolutionPreset.low: - expectedPreferredResolution = CameraSize.pigeon_detached( - width: 320, - height: 240, - pigeon_instanceManager: testInstanceManager, - ); - case ResolutionPreset.medium: - expectedPreferredResolution = CameraSize.pigeon_detached( - width: 720, - height: 480, - pigeon_instanceManager: testInstanceManager, - ); - case ResolutionPreset.high: - expectedPreferredResolution = CameraSize.pigeon_detached( - width: 1280, - height: 720, - pigeon_instanceManager: testInstanceManager, - ); - case ResolutionPreset.veryHigh: - expectedPreferredResolution = CameraSize.pigeon_detached( - width: 1920, - height: 1080, - pigeon_instanceManager: testInstanceManager, + CameraSize? expectedPreferredResolution; + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + switch (resolutionPreset) { + case ResolutionPreset.low: + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 320, + height: 240, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.medium: + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 720, + height: 480, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.high: + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 1280, + height: 720, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.veryHigh: + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 1920, + height: 1080, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.ultraHigh: + expectedPreferredResolution = CameraSize.pigeon_detached( + width: 3840, + height: 2160, + pigeon_instanceManager: testInstanceManager, + ); + case ResolutionPreset.max: + expectedPreferredResolution = null; + } + + if (expectedPreferredResolution == null) { + expect(camera.preview!.resolutionSelector!.resolutionFilter, isNull); + expect( + camera.imageCapture!.resolutionSelector!.resolutionFilter, + isNull, ); - case ResolutionPreset.ultraHigh: - expectedPreferredResolution = CameraSize.pigeon_detached( - width: 3840, - height: 2160, - pigeon_instanceManager: testInstanceManager, + expect( + camera.imageAnalysis!.resolutionSelector!.resolutionFilter, + isNull, ); - case ResolutionPreset.max: - expectedPreferredResolution = null; - } + continue; + } + + expect( + lastSetPreferredSize?.width, + equals(expectedPreferredResolution.width), + ); + expect( + lastSetPreferredSize?.height, + equals(expectedPreferredResolution.height), + ); + + final CameraSize? imageCaptureSize = + await camera.imageCapture!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); + expect( + imageCaptureSize?.width, + equals(expectedPreferredResolution.width), + ); + expect( + imageCaptureSize?.height, + equals(expectedPreferredResolution.height), + ); - if (expectedPreferredResolution == null) { - expect(camera.preview!.resolutionSelector!.resolutionFilter, isNull); + final CameraSize? imageAnalysisSize = + await camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); expect( - camera.imageCapture!.resolutionSelector!.resolutionFilter, isNull); + imageAnalysisSize?.width, + equals(expectedPreferredResolution.width), + ); expect( - camera.imageAnalysis!.resolutionSelector!.resolutionFilter, isNull); - continue; + imageAnalysisSize?.height, + equals(expectedPreferredResolution.height), + ); } - expect( - lastSetPreferredSize?.width, - equals(expectedPreferredResolution.width), - ); - expect( - lastSetPreferredSize?.height, - equals(expectedPreferredResolution.height), - ); + // Test null case. + await camera.createCamera(testCameraDescription, null); + expect(camera.preview!.resolutionSelector, isNull); + expect(camera.imageCapture!.resolutionSelector, isNull); + expect(camera.imageAnalysis!.resolutionSelector, isNull); + }, + ); - final CameraSize? imageCaptureSize = await camera - .imageCapture!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); - expect( - imageCaptureSize?.width, - equals(expectedPreferredResolution.width), - ); - expect( - imageCaptureSize?.height, - equals(expectedPreferredResolution.height), + test( + 'createCamera properly sets aspect ratio based on preset resolution for non-video capture use cases', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( + name: 'cameraName', + lensDirection: testLensDirection, + sensorOrientation: testSensorOrientation, ); + const bool enableAudio = true; + final MockCamera mockCamera = MockCamera(); - final CameraSize? imageAnalysisSize = await camera - .imageAnalysis!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); - expect( - imageAnalysisSize?.width, - equals(expectedPreferredResolution.width), - ); - expect( - imageAnalysisSize?.height, - equals(expectedPreferredResolution.height), + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, ); - } + when( + mockProcessCameraProvider.bindToLifecycle(any, any), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + camera.processCameraProvider = mockProcessCameraProvider; - // Test null case. - await camera.createCamera(testCameraDescription, null); - expect(camera.preview!.resolutionSelector, isNull); - expect(camera.imageCapture!.resolutionSelector, isNull); - expect(camera.imageAnalysis!.resolutionSelector, isNull); - }); + // Test non-null resolution presets. + for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + await camera.createCamera( + testCameraDescription, + resolutionPreset, + enableAudio: enableAudio, + ); - test( - 'createCamera properly sets aspect ratio based on preset resolution for non-video capture use cases', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( - name: 'cameraName', - lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - final MockCamera mockCamera = MockCamera(); + AspectRatio? expectedAspectRatio; + AspectRatioStrategyFallbackRule? expectedFallbackRule; + switch (resolutionPreset) { + case ResolutionPreset.low: + expectedAspectRatio = AspectRatio.ratio4To3; + expectedFallbackRule = AspectRatioStrategyFallbackRule.auto; + case ResolutionPreset.high: + case ResolutionPreset.veryHigh: + case ResolutionPreset.ultraHigh: + expectedAspectRatio = AspectRatio.ratio16To9; + expectedFallbackRule = AspectRatioStrategyFallbackRule.auto; + case ResolutionPreset.medium: + // Medium resolution preset uses aspect ratio 3:2 which is unsupported + // by CameraX. + case ResolutionPreset.max: + } - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + if (expectedAspectRatio == null) { + expect( + await camera.preview!.resolutionSelector!.getAspectRatioStrategy(), + equals( + camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), + ), + ); + expect( + await camera.imageCapture!.resolutionSelector! + .getAspectRatioStrategy(), + equals( + camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), + ), + ); + expect( + await camera.imageAnalysis!.resolutionSelector! + .getAspectRatioStrategy(), + equals( + camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), + ), + ); + continue; + } - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - camera.proxy = - getProxyForTestingResolutionPreset(mockProcessCameraProvider); - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - camera.processCameraProvider = mockProcessCameraProvider; - - // Test non-null resolution presets. - for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - await camera.createCamera(testCameraDescription, resolutionPreset, - enableAudio: enableAudio); - - AspectRatio? expectedAspectRatio; - AspectRatioStrategyFallbackRule? expectedFallbackRule; - switch (resolutionPreset) { - case ResolutionPreset.low: - expectedAspectRatio = AspectRatio.ratio4To3; - expectedFallbackRule = AspectRatioStrategyFallbackRule.auto; - case ResolutionPreset.high: - case ResolutionPreset.veryHigh: - case ResolutionPreset.ultraHigh: - expectedAspectRatio = AspectRatio.ratio16To9; - expectedFallbackRule = AspectRatioStrategyFallbackRule.auto; - case ResolutionPreset.medium: - // Medium resolution preset uses aspect ratio 3:2 which is unsupported - // by CameraX. - case ResolutionPreset.max: - } + final AspectRatioStrategy previewStrategy = + await camera.preview!.resolutionSelector!.getAspectRatioStrategy(); + final AspectRatioStrategy imageCaptureStrategy = + await camera.imageCapture!.resolutionSelector! + .getAspectRatioStrategy(); + final AspectRatioStrategy imageAnalysisStrategy = + await camera.imageCapture!.resolutionSelector! + .getAspectRatioStrategy(); - if (expectedAspectRatio == null) { + // Check aspect ratio. expect( - await camera.preview!.resolutionSelector!.getAspectRatioStrategy(), - equals( - camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), - ), + await previewStrategy.getPreferredAspectRatio(), + equals(expectedAspectRatio), ); expect( - await camera.imageCapture!.resolutionSelector! - .getAspectRatioStrategy(), - equals( - camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), - ), + await imageCaptureStrategy.getPreferredAspectRatio(), + equals(expectedAspectRatio), ); expect( - await camera.imageAnalysis!.resolutionSelector! - .getAspectRatioStrategy(), - equals( - camera.proxy.ratio_4_3FallbackAutoStrategyAspectRatioStrategy(), - ), - ); - continue; - } - - final AspectRatioStrategy previewStrategy = - await camera.preview!.resolutionSelector!.getAspectRatioStrategy(); - final AspectRatioStrategy imageCaptureStrategy = await camera - .imageCapture!.resolutionSelector! - .getAspectRatioStrategy(); - final AspectRatioStrategy imageAnalysisStrategy = await camera - .imageCapture!.resolutionSelector! - .getAspectRatioStrategy(); - - // Check aspect ratio. - expect( - await previewStrategy.getPreferredAspectRatio(), - equals(expectedAspectRatio), - ); - expect( - await imageCaptureStrategy.getPreferredAspectRatio(), - equals(expectedAspectRatio), - ); - expect( - await imageAnalysisStrategy.getPreferredAspectRatio(), - equals(expectedAspectRatio), - ); + await imageAnalysisStrategy.getPreferredAspectRatio(), + equals(expectedAspectRatio), + ); - // Check fallback rule. - expect( - await previewStrategy.getFallbackRule(), - equals(expectedFallbackRule), - ); - expect( - await imageCaptureStrategy.getFallbackRule(), - equals(expectedFallbackRule), - ); - expect( - await imageAnalysisStrategy.getFallbackRule(), - equals(expectedFallbackRule), - ); - } + // Check fallback rule. + expect( + await previewStrategy.getFallbackRule(), + equals(expectedFallbackRule), + ); + expect( + await imageCaptureStrategy.getFallbackRule(), + equals(expectedFallbackRule), + ); + expect( + await imageAnalysisStrategy.getFallbackRule(), + equals(expectedFallbackRule), + ); + } - // Test null case. - await camera.createCamera(testCameraDescription, null); - expect(camera.preview!.resolutionSelector, isNull); - expect(camera.imageCapture!.resolutionSelector, isNull); - expect(camera.imageAnalysis!.resolutionSelector, isNull); - }); + // Test null case. + await camera.createCamera(testCameraDescription, null); + expect(camera.preview!.resolutionSelector, isNull); + expect(camera.imageCapture!.resolutionSelector, isNull); + expect(camera.imageAnalysis!.resolutionSelector, isNull); + }, + ); test( - 'createCamera properly sets preset resolution for video capture use case', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( + 'createCamera properly sets preset resolution for video capture use case', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( name: 'cameraName', lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - final MockCamera mockCamera = MockCamera(); + sensorOrientation: testSensorOrientation, + ); + const bool enableAudio = true; + final MockCamera mockCamera = MockCamera(); - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // Tell plugin to create mock/detached objects for testing createCamera - // as needed. - VideoQuality? fallbackStrategyVideoQuality; - VideoQuality? qualitySelectorVideoQuality; - FallbackStrategy? setFallbackStrategy; - final MockFallbackStrategy mockFallbackStrategy = MockFallbackStrategy(); - final MockQualitySelector mockQualitySelector = MockQualitySelector(); - camera.proxy = getProxyForTestingResolutionPreset( - mockProcessCameraProvider, - lowerQualityOrHigherThanFallbackStrategy: ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - fallbackStrategyVideoQuality = quality; - return mockFallbackStrategy; - }, - fromQualitySelector: ({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - qualitySelectorVideoQuality = quality; - setFallbackStrategy = fallbackStrategy; - return mockQualitySelector; - }, - ); + // Tell plugin to create mock/detached objects for testing createCamera + // as needed. + VideoQuality? fallbackStrategyVideoQuality; + VideoQuality? qualitySelectorVideoQuality; + FallbackStrategy? setFallbackStrategy; + final MockFallbackStrategy mockFallbackStrategy = MockFallbackStrategy(); + final MockQualitySelector mockQualitySelector = MockQualitySelector(); + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + fallbackStrategyVideoQuality = quality; + return mockFallbackStrategy; + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + qualitySelectorVideoQuality = quality; + setFallbackStrategy = fallbackStrategy; + return mockQualitySelector; + }, + ); - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - - // Test non-null resolution presets. - for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { - await camera.createCamera(testCameraDescription, resolutionPreset, - enableAudio: enableAudio); - - VideoQuality? expectedVideoQuality; - switch (resolutionPreset) { - case ResolutionPreset.low: - // 240p is not supported by CameraX. - case ResolutionPreset.medium: - expectedVideoQuality = VideoQuality.SD; - case ResolutionPreset.high: - expectedVideoQuality = VideoQuality.HD; - case ResolutionPreset.veryHigh: - expectedVideoQuality = VideoQuality.FHD; - case ResolutionPreset.ultraHigh: - expectedVideoQuality = VideoQuality.UHD; - case ResolutionPreset.max: - expectedVideoQuality = VideoQuality.highest; + when( + mockProcessCameraProvider.bindToLifecycle(any, any), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + + // Test non-null resolution presets. + for (final ResolutionPreset resolutionPreset in ResolutionPreset.values) { + await camera.createCamera( + testCameraDescription, + resolutionPreset, + enableAudio: enableAudio, + ); + + VideoQuality? expectedVideoQuality; + switch (resolutionPreset) { + case ResolutionPreset.low: + // 240p is not supported by CameraX. + case ResolutionPreset.medium: + expectedVideoQuality = VideoQuality.SD; + case ResolutionPreset.high: + expectedVideoQuality = VideoQuality.HD; + case ResolutionPreset.veryHigh: + expectedVideoQuality = VideoQuality.FHD; + case ResolutionPreset.ultraHigh: + expectedVideoQuality = VideoQuality.UHD; + case ResolutionPreset.max: + expectedVideoQuality = VideoQuality.highest; + } + + expect( + await camera.recorder!.getQualitySelector(), + mockQualitySelector, + ); + expect(qualitySelectorVideoQuality, equals(expectedVideoQuality)); + expect(fallbackStrategyVideoQuality, equals(expectedVideoQuality)); + expect(setFallbackStrategy, equals(mockFallbackStrategy)); } + qualitySelectorVideoQuality = null; + setFallbackStrategy = null; + + // Test null case. + await camera.createCamera(testCameraDescription, null); expect( await camera.recorder!.getQualitySelector(), - mockQualitySelector, + isNot(equals(mockQualitySelector)), ); - expect(qualitySelectorVideoQuality, equals(expectedVideoQuality)); - expect(fallbackStrategyVideoQuality, equals(expectedVideoQuality)); - expect(setFallbackStrategy, equals(mockFallbackStrategy)); - } - - qualitySelectorVideoQuality = null; - setFallbackStrategy = null; - - // Test null case. - await camera.createCamera(testCameraDescription, null); - expect( - await camera.recorder!.getQualitySelector(), - isNot(equals(mockQualitySelector)), - ); - }); + }, + ); test( - 'createCamera sets sensor orientation, handlesCropAndRotation, initialDeviceOrientation as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const CameraLensDirection testLensDirection = CameraLensDirection.back; - const int testSensorOrientation = 90; - const CameraDescription testCameraDescription = CameraDescription( + 'createCamera sets sensor orientation, handlesCropAndRotation, initialDeviceOrientation as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const CameraLensDirection testLensDirection = CameraLensDirection.back; + const int testSensorOrientation = 90; + const CameraDescription testCameraDescription = CameraDescription( name: 'cameraName', lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); - const bool enableAudio = true; - const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; - const bool testHandlesCropAndRotation = true; - - // Mock/Detached objects for (typically attached) objects created by - // createCamera. - final MockCamera mockCamera = MockCamera(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + sensorOrientation: testSensorOrientation, + ); + const bool enableAudio = true; + const ResolutionPreset testResolutionPreset = ResolutionPreset.veryHigh; + const bool testHandlesCropAndRotation = true; - // The proxy needed for this test is the same as testing resolution - // presets except for mocking the retrieval of the sensor and current - // UI orientation. - camera.proxy = getProxyForTestingResolutionPreset( - mockProcessCameraProvider, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockPreview mockPreview = MockPreview(); - when(mockPreview.surfaceProducerHandlesCropAndRotation()) - .thenAnswer((_) async => testHandlesCropAndRotation); - when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); - return mockPreview; - }, - ); + // Mock/Detached objects for (typically attached) objects created by + // createCamera. + final MockCamera mockCamera = MockCamera(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); + // The proxy needed for this test is the same as testing resolution + // presets except for mocking the retrieval of the sensor and current + // UI orientation. + camera.proxy = getProxyForTestingResolutionPreset( + mockProcessCameraProvider, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockPreview mockPreview = MockPreview(); + when( + mockPreview.surfaceProducerHandlesCropAndRotation(), + ).thenAnswer((_) async => testHandlesCropAndRotation); + when(mockPreview.resolutionSelector).thenReturn(resolutionSelector); + return mockPreview; + }, + ); - await camera.createCamera(testCameraDescription, testResolutionPreset, - enableAudio: enableAudio); + when( + mockProcessCameraProvider.bindToLifecycle(any, any), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); - expect(camera.sensorOrientationDegrees, testSensorOrientation); - }); + await camera.createCamera( + testCameraDescription, + testResolutionPreset, + enableAudio: enableAudio, + ); + + expect(camera.sensorOrientationDegrees, testSensorOrientation); + }, + ); test( - 'initializeCamera throws a CameraException when createCamera has not been called before initializedCamera', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - await expectLater(() async { - await camera.initializeCamera(3); - }, throwsA(isA())); - }); + 'initializeCamera throws a CameraException when createCamera has not been called before initializedCamera', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + await expectLater(() async { + await camera.initializeCamera(3); + }, throwsA(isA())); + }, + ); test('initializeCamera sends expected CameraInitializedEvent', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); @@ -1882,9 +1951,10 @@ void main() { const CameraLensDirection testLensDirection = CameraLensDirection.back; const int testSensorOrientation = 90; const CameraDescription testCameraDescription = CameraDescription( - name: 'cameraName', - lensDirection: testLensDirection, - sensorOrientation: testSensorOrientation); + name: 'cameraName', + lensDirection: testLensDirection, + sensorOrientation: testSensorOrientation, + ); const int resolutionWidth = 350; const int resolutionHeight = 750; final Camera mockCamera = MockCamera(); @@ -1913,13 +1983,13 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. camera.proxy = CameraXProxy( - getInstanceProcessCameraProvider: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - Future.value(mockProcessCameraProvider), + getInstanceProcessCameraProvider: + ({ + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => Future.value(mockProcessCameraProvider), newCameraSelector: ({ LensFacing? requireLensFacing, // ignore: non_constant_identifier_names @@ -1934,88 +2004,88 @@ void main() { return mockBackCameraSelector; } }, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockPreview, - newImageCapture: ({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockImageCapture, - newRecorder: ({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockRecorder(), - withOutputVideoCapture: ({ - required VideoOutput videoOutput, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockVideoCapture(), - newImageAnalysis: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockImageAnalysis, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockResolutionStrategy(), - newResolutionSelector: ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockResolutionSelector(), - lowerQualityOrHigherThanFallbackStrategy: ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockFallbackStrategy(), - fromQualitySelector: ({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockQualitySelector(), + newPreview: + ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockPreview, + newImageCapture: + ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockImageCapture, + newRecorder: + ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockRecorder(), + withOutputVideoCapture: + ({ + required VideoOutput videoOutput, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockVideoCapture(), + newImageAnalysis: + ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockImageAnalysis, + newResolutionStrategy: + ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockResolutionStrategy(), + newResolutionSelector: + ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockResolutionSelector(), + lowerQualityOrHigherThanFallbackStrategy: + ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockFallbackStrategy(), + fromQualitySelector: + ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockQualitySelector(), newObserver: ({ required void Function(Observer, T) onChanged, // ignore: non_constant_identifier_names @@ -2026,26 +2096,21 @@ void main() { return Observer.detached( onChanged: onChanged, pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockSystemServicesManager(), + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: + ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockSystemServicesManager(), newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -2058,23 +2123,23 @@ void main() { }); return manager; }, - newAspectRatioStrategy: ({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockAspectRatioStrategy(), - createWithOnePreferredSizeResolutionFilter: ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockResolutionFilter(), + newAspectRatioStrategy: + ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockAspectRatioStrategy(), + createWithOnePreferredSizeResolutionFilter: + ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockResolutionFilter(), fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, // ignore: non_constant_identifier_names @@ -2089,40 +2154,46 @@ void main() { ).thenAnswer((_) async => 90); return mockCamera2CameraInfo; }, - newCameraSize: ({ - required int width, - required int height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockCameraSize(), - sensorOrientationCameraCharacteristics: () => - MockCameraCharacteristicsKey(), + newCameraSize: + ({ + required int width, + required int height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockCameraSize(), + sensorOrientationCameraCharacteristics: + () => MockCameraCharacteristicsKey(), ); final CameraInitializedEvent testCameraInitializedEvent = CameraInitializedEvent( - cameraId, - resolutionWidth.toDouble(), - resolutionHeight.toDouble(), - ExposureMode.auto, - true, - FocusMode.auto, - true); + cameraId, + resolutionWidth.toDouble(), + resolutionHeight.toDouble(), + ExposureMode.auto, + true, + FocusMode.auto, + true, + ); // Call createCamera. when(mockPreview.setSurfaceProvider(any)).thenAnswer((_) async => cameraId); - when(mockProcessCameraProvider.bindToLifecycle(mockBackCameraSelector, - [mockPreview, mockImageCapture, mockImageAnalysis])) - .thenAnswer((_) async => mockCamera); + when( + mockProcessCameraProvider.bindToLifecycle( + mockBackCameraSelector, + [mockPreview, mockImageCapture, mockImageAnalysis], + ), + ).thenAnswer((_) async => mockCamera); when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockPreview.getResolutionInfo()) - .thenAnswer((_) async => testResolutionInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when( + mockPreview.getResolutionInfo(), + ).thenAnswer((_) async => testResolutionInfo); await camera.createCameraWithSettings( testCameraDescription, @@ -2148,32 +2219,40 @@ void main() { }); test( - 'dispose releases Flutter surface texture, removes camera state observers, and unbinds all use cases', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); + 'dispose releases Flutter surface texture, removes camera state observers, and unbinds all use cases', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); - camera.preview = MockPreview(); - camera.processCameraProvider = MockProcessCameraProvider(); - camera.liveCameraState = MockLiveCameraState(); - camera.imageAnalysis = MockImageAnalysis(); + camera.preview = MockPreview(); + camera.processCameraProvider = MockProcessCameraProvider(); + camera.liveCameraState = MockLiveCameraState(); + camera.imageAnalysis = MockImageAnalysis(); - await camera.dispose(3); + await camera.dispose(3); - verify(camera.preview!.releaseSurfaceProvider()); - verify(camera.liveCameraState!.removeObservers()); - verify(camera.processCameraProvider!.unbindAll()); - verify(camera.imageAnalysis!.clearAnalyzer()); - }); + verify(camera.preview!.releaseSurfaceProvider()); + verify(camera.liveCameraState!.removeObservers()); + verify(camera.processCameraProvider!.unbindAll()); + verify(camera.imageAnalysis!.clearAnalyzer()); + }, + ); test('onCameraInitialized stream emits CameraInitializedEvents', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); const int cameraId = 16; - final Stream eventStream = - camera.onCameraInitialized(cameraId); + final Stream eventStream = camera + .onCameraInitialized(cameraId); final StreamQueue streamQueue = StreamQueue(eventStream); const CameraInitializedEvent testEvent = CameraInitializedEvent( - cameraId, 320, 80, ExposureMode.auto, false, FocusMode.auto, false); + cameraId, + 320, + 80, + ExposureMode.auto, + false, + FocusMode.auto, + false, + ); camera.cameraEventStreamController.add(testEvent); @@ -2182,693 +2261,1155 @@ void main() { }); test( - 'onCameraClosing stream emits camera closing event when cameraEventStreamController emits a camera closing event', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 99; - const CameraClosingEvent cameraClosingEvent = CameraClosingEvent(cameraId); - final Stream eventStream = - camera.onCameraClosing(cameraId); - final StreamQueue streamQueue = - StreamQueue(eventStream); + 'onCameraClosing stream emits camera closing event when cameraEventStreamController emits a camera closing event', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 99; + const CameraClosingEvent cameraClosingEvent = CameraClosingEvent( + cameraId, + ); + final Stream eventStream = camera.onCameraClosing( + cameraId, + ); + final StreamQueue streamQueue = + StreamQueue(eventStream); - camera.cameraEventStreamController.add(cameraClosingEvent); + camera.cameraEventStreamController.add(cameraClosingEvent); - expect(await streamQueue.next, equals(cameraClosingEvent)); - await streamQueue.cancel(); - }); + expect(await streamQueue.next, equals(cameraClosingEvent)); + await streamQueue.cancel(); + }, + ); test( - 'onCameraError stream emits errors caught by system services or added to stream within plugin', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 27; - const String firstTestErrorDescription = 'Test error description 1!'; - const String secondTestErrorDescription = 'Test error description 2!'; - const CameraErrorEvent secondCameraErrorEvent = - CameraErrorEvent(cameraId, secondTestErrorDescription); - final Stream eventStream = camera.onCameraError(cameraId); - final StreamQueue streamQueue = - StreamQueue(eventStream); - - camera.proxy = CameraXProxy(newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.onCameraError).thenReturn(onCameraError); - return mockSystemServicesManager; - }); + 'onCameraError stream emits errors caught by system services or added to stream within plugin', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 27; + const String firstTestErrorDescription = 'Test error description 1!'; + const String secondTestErrorDescription = 'Test error description 2!'; + const CameraErrorEvent secondCameraErrorEvent = CameraErrorEvent( + cameraId, + secondTestErrorDescription, + ); + final Stream eventStream = camera.onCameraError( + cameraId, + ); + final StreamQueue streamQueue = + StreamQueue(eventStream); - camera.systemServicesManager.onCameraError( - camera.systemServicesManager, - firstTestErrorDescription, - ); - expect(await streamQueue.next, - equals(const CameraErrorEvent(cameraId, firstTestErrorDescription))); + camera.proxy = CameraXProxy( + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.onCameraError, + ).thenReturn(onCameraError); + return mockSystemServicesManager; + }, + ); + + camera.systemServicesManager.onCameraError( + camera.systemServicesManager, + firstTestErrorDescription, + ); + expect( + await streamQueue.next, + equals(const CameraErrorEvent(cameraId, firstTestErrorDescription)), + ); - camera.cameraEventStreamController.add(secondCameraErrorEvent); - expect(await streamQueue.next, equals(secondCameraErrorEvent)); + camera.cameraEventStreamController.add(secondCameraErrorEvent); + expect(await streamQueue.next, equals(secondCameraErrorEvent)); - await streamQueue.cancel(); - }); + await streamQueue.cancel(); + }, + ); test( - 'onDeviceOrientationChanged stream emits changes in device orientation detected by system services', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final Stream eventStream = - camera.onDeviceOrientationChanged(); - final StreamQueue streamQueue = - StreamQueue(eventStream); - const DeviceOrientationChangedEvent testEvent = - DeviceOrientationChangedEvent(DeviceOrientation.portraitDown); - - camera.proxy = CameraXProxy(newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDeviceOrientationManager mockDeviceOrientationManager = - MockDeviceOrientationManager(); - when(mockDeviceOrientationManager.onDeviceOrientationChanged).thenReturn( - onDeviceOrientationChanged, + 'onDeviceOrientationChanged stream emits changes in device orientation detected by system services', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final Stream eventStream = + camera.onDeviceOrientationChanged(); + final StreamQueue streamQueue = + StreamQueue(eventStream); + const DeviceOrientationChangedEvent testEvent = + DeviceOrientationChangedEvent(DeviceOrientation.portraitDown); + + camera.proxy = CameraXProxy( + newDeviceOrientationManager: ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager mockDeviceOrientationManager = + MockDeviceOrientationManager(); + when( + mockDeviceOrientationManager.onDeviceOrientationChanged, + ).thenReturn(onDeviceOrientationChanged); + return mockDeviceOrientationManager; + }, ); - return mockDeviceOrientationManager; - }); - camera.deviceOrientationManager.onDeviceOrientationChanged( - camera.deviceOrientationManager, - 'PORTRAIT_DOWN', - ); + camera.deviceOrientationManager.onDeviceOrientationChanged( + camera.deviceOrientationManager, + 'PORTRAIT_DOWN', + ); - expect(await streamQueue.next, testEvent); - await streamQueue.cancel(); - }); + expect(await streamQueue.next, testEvent); + await streamQueue.cancel(); + }, + ); test( - 'pausePreview unbinds preview from lifecycle when preview is nonnull and has been bound to lifecycle', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); + 'pausePreview unbinds preview from lifecycle when preview is nonnull and has been bound to lifecycle', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.preview = MockPreview(); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.preview = MockPreview(); - when(camera.processCameraProvider!.isBound(camera.preview!)) - .thenAnswer((_) async => true); + when( + camera.processCameraProvider!.isBound(camera.preview!), + ).thenAnswer((_) async => true); - await camera.pausePreview(579); + await camera.pausePreview(579); - verify(camera.processCameraProvider!.unbind([camera.preview!])); - }); + verify(camera.processCameraProvider!.unbind([camera.preview!])); + }, + ); + + test( + 'pausePreview does not unbind preview from lifecycle when preview has not been bound to lifecycle', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.preview = MockPreview(); + + await camera.pausePreview(632); + + verifyNever( + camera.processCameraProvider!.unbind([camera.preview!]), + ); + }, + ); + + test( + 'resumePreview does not bind preview to lifecycle or update camera state observers if already bound', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.preview = MockPreview(); + + when( + camera.processCameraProvider!.isBound(camera.preview!), + ).thenAnswer((_) async => true); + + when( + mockProcessCameraProvider.bindToLifecycle( + camera.cameraSelector, + [camera.preview!], + ), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => mockLiveCameraState); + + await camera.resumePreview(78); + + verifyNever( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.preview!], + ), + ); + verifyNever(mockLiveCameraState.observe(any)); + expect(camera.cameraInfo, isNot(mockCameraInfo)); + }, + ); + + test( + 'resumePreview binds preview to lifecycle and updates camera state observers if not already bound', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.preview = MockPreview(); + + // Tell plugin to create a detached Observer, that is created to + // track camera state once preview is bound to the lifecycle and needed to + // test for expected updates. + camera.proxy = CameraXProxy( + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); + + when( + mockProcessCameraProvider.bindToLifecycle( + camera.cameraSelector, + [camera.preview!], + ), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => mockLiveCameraState); + when(mockCamera.cameraControl).thenReturn(mockCameraControl); + + await camera.resumePreview(78); + + verify( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.preview!], + ), + ); + expect( + await testCameraClosingObserver( + camera, + 78, + verify(mockLiveCameraState.observe(captureAny)).captured.single + as Observer, + ), + isTrue, + ); + expect(camera.cameraInfo, equals(mockCameraInfo)); + expect(camera.cameraControl, equals(mockCameraControl)); + }, + ); + // Further `buildPreview` testing concerning the Widget that it returns is + // located in preview_rotation_test.dart. test( - 'pausePreview does not unbind preview from lifecycle when preview has not been bound to lifecycle', + 'buildPreview throws an exception if the preview is not bound to the lifecycle', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 73; + + // Tell camera that createCamera has not been called and thus, preview has + // not been bound to the lifecycle of the camera. + camera.previewInitiallyBound = false; + + expect( + () => camera.buildPreview(cameraId), + throwsA(isA()), + ); + }, + ); + + group('video recording', () { + test( + 'startVideoCapturing binds video capture use case, updates saved camera instance and its properties, and starts the recording', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = + MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCamera newMockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + final MockLiveCameraState newMockLiveCameraState = + MockLiveCameraState(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.preview = MockPreview(); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.camera = mockCamera; + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.liveCameraState = mockLiveCameraState; + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + + // Ignore setting target rotation for this test; tested separately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); + + const int cameraId = 17; - await camera.pausePreview(632); + // Mock method calls. + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockPendingRecording.start(any), + ).thenAnswer((_) async => mockRecording); + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => false); + when( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], + ), + ).thenAnswer((_) async => newMockCamera); + when( + newMockCamera.getCameraInfo(), + ).thenAnswer((_) async => mockCameraInfo); + when(newMockCamera.cameraControl).thenReturn(mockCameraControl); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => newMockLiveCameraState); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.limited); + + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); - verifyNever( - camera.processCameraProvider!.unbind([camera.preview!])); - }); + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - test( - 'resumePreview does not bind preview to lifecycle or update camera state observers if already bound', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + // Verify VideoCapture UseCase is bound and camera & its properties + // are updated. + verify( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], + ), + ); + expect(camera.camera, equals(newMockCamera)); + expect(camera.cameraInfo, equals(mockCameraInfo)); + expect(camera.cameraControl, equals(mockCameraControl)); + verify(mockLiveCameraState.removeObservers()); + expect( + await testCameraClosingObserver( + camera, + cameraId, + verify(newMockLiveCameraState.observe(captureAny)).captured.single + as Observer, + ), + isTrue, + ); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.preview = MockPreview(); + // Verify recording is started. + expect(camera.pendingRecording, equals(mockPendingRecording)); + expect(camera.recording, mockRecording); + }, + ); - when(camera.processCameraProvider!.isBound(camera.preview!)) - .thenAnswer((_) async => true); + test( + 'startVideoCapturing binds video capture use case and starts the recording' + ' on first call, and does nothing on second call', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = + MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); - when(mockProcessCameraProvider - .bindToLifecycle(camera.cameraSelector, [camera.preview!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => mockLiveCameraState); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); - await camera.resumePreview(78); + const int cameraId = 17; - verifyNever(camera.processCameraProvider! - .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); - verifyNever(mockLiveCameraState.observe(any)); - expect(camera.cameraInfo, isNot(mockCameraInfo)); - }); + // Mock method calls. + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockPendingRecording.start(any), + ).thenAnswer((_) async => mockRecording); + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => false); + when( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], + ), + ).thenAnswer((_) async => mockCamera); + when( + mockCamera.getCameraInfo(), + ).thenAnswer((_) => Future.value(mockCameraInfo)); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.limited); - test( - 'resumePreview binds preview to lifecycle and updates camera state observers if not already bound', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.preview = MockPreview(); + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // Tell plugin to create a detached Observer, that is created to - // track camera state once preview is bound to the lifecycle and needed to - // test for expected updates. - camera.proxy = CameraXProxy( - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, + verify( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], ), ); + expect(camera.pendingRecording, equals(mockPendingRecording)); + expect(camera.recording, mockRecording); + + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // Verify that each of these calls happened only once. + verify( + camera.systemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).called(1); + verifyNoMoreInteractions(camera.systemServicesManager); + verify(camera.recorder!.prepareRecording(outputPath)).called(1); + verifyNoMoreInteractions(camera.recorder); + verify(mockPendingRecording.start(any)).called(1); + verifyNoMoreInteractions(mockPendingRecording); }, ); - when(mockProcessCameraProvider - .bindToLifecycle(camera.cameraSelector, [camera.preview!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => mockLiveCameraState); - when(mockCamera.cameraControl).thenReturn(mockCameraControl); + test( + 'startVideoCapturing called with stream options starts image streaming', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final Recorder mockRecorder = MockRecorder(); + final MockPendingRecording mockPendingRecording = + MockPendingRecording(); + final MockCameraInfo initialCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); - await camera.resumePreview(78); + // Set directly for test versus calling createCamera. + + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.videoCapture = MockVideoCapture(); + camera.imageAnalysis = MockImageAnalysis(); + camera.camera = MockCamera(); + camera.recorder = mockRecorder; + camera.cameraInfo = initialCameraInfo; + camera.imageCapture = MockImageCapture(); + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached Analyzer for testing. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockAnalyzer(); + }, + ); - verify(camera.processCameraProvider! - .bindToLifecycle(camera.cameraSelector!, [camera.preview!])); - expect( - await testCameraClosingObserver( - camera, - 78, - verify(mockLiveCameraState.observe(captureAny)).captured.single - as Observer), - isTrue); - expect(camera.cameraInfo, equals(mockCameraInfo)); - expect(camera.cameraControl, equals(mockCameraControl)); - }); + const int cameraId = 17; + final Completer imageDataCompleter = + Completer(); + final VideoCaptureOptions videoCaptureOptions = VideoCaptureOptions( + cameraId, + streamCallback: + (CameraImageData imageData) => + imageDataCompleter.complete(imageData), + ); - // Further `buildPreview` testing concerning the Widget that it returns is - // located in preview_rotation_test.dart. - test( - 'buildPreview throws an exception if the preview is not bound to the lifecycle', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 73; + // Mock method calls. + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => true); + when( + camera.processCameraProvider!.isBound(camera.imageAnalysis!), + ).thenAnswer((_) async => true); + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockProcessCameraProvider.bindToLifecycle(any, any), + ).thenAnswer((_) => Future.value(camera.camera)); + when( + camera.camera!.getCameraInfo(), + ).thenAnswer((_) => Future.value(MockCameraInfo())); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.level3); + + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); - // Tell camera that createCamera has not been called and thus, preview has - // not been bound to the lifecycle of the camera. - camera.previewInitiallyBound = false; + await camera.startVideoCapturing(videoCaptureOptions); - expect( - () => camera.buildPreview(cameraId), throwsA(isA())); - }); + final CameraImageData mockCameraImageData = MockCameraImageData(); + camera.cameraImageDataStreamController!.add(mockCameraImageData); + + expect(imageDataCompleter.future, isNotNull); + await camera.cameraImageDataStreamController!.close(); + }, + ); - group('video recording', () { test( - 'startVideoCapturing binds video capture use case, updates saved camera instance and its properties, and starts the recording', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCamera newMockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockLiveCameraState mockLiveCameraState = MockLiveCameraState(); - final MockLiveCameraState newMockLiveCameraState = MockLiveCameraState(); - final MockCamera2CameraInfo mockCamera2CameraInfo = - MockCamera2CameraInfo(); + 'startVideoCapturing sets VideoCapture target rotation to current video orientation if orientation unlocked', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = + MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockVideoCapture mockVideoCapture = MockVideoCapture(); + final MockCameraInfo initialCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); + const int defaultTargetRotation = Surface.rotation270; + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.camera = MockCamera(); + camera.recorder = MockRecorder(); + camera.videoCapture = mockVideoCapture; + camera.cameraSelector = MockCameraSelector(); + camera.imageAnalysis = MockImageAnalysis(); + camera.cameraInfo = initialCameraInfo; + + // Tell plugin to mock call to get current video orientation and mock Camera2CameraInfo retrieval. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + cameraInfo == initialCameraInfo + ? mockCamera2CameraInfo + : MockCamera2CameraInfo(), + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newDeviceOrientationManager: ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager mockDeviceOrientationManager = + MockDeviceOrientationManager(); + when( + mockDeviceOrientationManager.getDefaultDisplayRotation(), + ).thenAnswer((_) async => defaultTargetRotation); + return mockDeviceOrientationManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.camera = mockCamera; - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.liveCameraState = mockLiveCameraState; - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); + const int cameraId = 87; - // Ignore setting target rotation for this test; tested separately. - camera.captureOrientationLocked = true; + // Mock method calls. + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockPendingRecording.start(any), + ).thenAnswer((_) async => mockRecording); + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => true); + when( + camera.processCameraProvider!.isBound(camera.imageAnalysis!), + ).thenAnswer((_) async => false); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.limited); - // Tell plugin to create detached Observer when camera info updated. - const String outputPath = '/temp/REC123.temp'; - camera.proxy = CameraXProxy( - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCamera2CameraInfo, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, + onWeakReferenceRemoved: (_) {}, + ), + ), + ); + + // Orientation is unlocked and plugin does not need to set default target + // rotation manually. + camera.recording = null; + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + verifyNever(mockVideoCapture.setTargetRotation(any)); + + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( pigeon_instanceManager: PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - ); + ), + ); - const int cameraId = 17; + // Orientation is locked and plugin does not need to set default target + // rotation manually. + camera.recording = null; + camera.captureOrientationLocked = true; + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + verifyNever(mockVideoCapture.setTargetRotation(any)); - // Mock method calls. - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start(any)) - .thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => newMockCamera); - when(newMockCamera.getCameraInfo()) - .thenAnswer((_) async => mockCameraInfo); - when(newMockCamera.cameraControl).thenReturn(mockCameraControl); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => newMockLiveCameraState); - when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( - (_) async => InfoSupportedHardwareLevel.limited, - ); + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, + // Orientation is locked and plugin does need to set default target + // rotation manually. + camera.recording = null; + camera.captureOrientationLocked = true; + camera.shouldSetDefaultRotation = true; + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + verifyNever(mockVideoCapture.setTargetRotation(any)); + + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), ), - ), - ); + ); - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + // Orientation is unlocked and plugin does need to set default target + // rotation manually. + camera.recording = null; + camera.captureOrientationLocked = false; + camera.shouldSetDefaultRotation = true; + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + verify(mockVideoCapture.setTargetRotation(defaultTargetRotation)); + }, + ); - // Verify VideoCapture UseCase is bound and camera & its properties - // are updated. - verify(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])); - expect(camera.camera, equals(newMockCamera)); - expect(camera.cameraInfo, equals(mockCameraInfo)); - expect(camera.cameraControl, equals(mockCameraControl)); - verify(mockLiveCameraState.removeObservers()); - expect( - await testCameraClosingObserver( - camera, - cameraId, - verify(newMockLiveCameraState.observe(captureAny)).captured.single - as Observer), - isTrue); - - // Verify recording is started. - expect(camera.pendingRecording, equals(mockPendingRecording)); - expect(camera.recording, mockRecording); + test('pauseVideoRecording pauses the recording', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording recording = MockRecording(); + + // Set directly for test versus calling startVideoCapturing. + camera.recording = recording; + + await camera.pauseVideoRecording(0); + verify(recording.pause()); + verifyNoMoreInteractions(recording); }); - test( - 'startVideoCapturing binds video capture use case and starts the recording' - ' on first call, and does nothing on second call', () async { - // Set up mocks and constants. + test('resumeVideoRecording resumes the recording', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = - MockCamera2CameraInfo(); + final MockRecording recording = MockRecording(); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); + // Set directly for test versus calling startVideoCapturing. + camera.recording = recording; - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; + await camera.resumeVideoRecording(0); + verify(recording.resume()); + verifyNoMoreInteractions(recording); + }); - // Tell plugin to create detached Observer when camera info updated. - const String outputPath = '/temp/REC123.temp'; - camera.proxy = CameraXProxy( - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCamera2CameraInfo, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - ); + test('stopVideoRecording stops the recording', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording recording = MockRecording(); + final MockProcessCameraProvider processCameraProvider = + MockProcessCameraProvider(); + final MockVideoCapture videoCapture = MockVideoCapture(); + const String videoOutputPath = '/test/output/path'; - const int cameraId = 17; + // Set directly for test versus calling createCamera and startVideoCapturing. + camera.processCameraProvider = processCameraProvider; + camera.recording = recording; + camera.videoCapture = videoCapture; + camera.videoOutputPath = videoOutputPath; - // Mock method calls. - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start(any)) - .thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( - (_) async => InfoSupportedHardwareLevel.limited, - ); + // Tell plugin that videoCapture use case was bound to start recording. + when( + camera.processCameraProvider!.isBound(videoCapture), + ).thenAnswer((_) async => true); - // Simulate video recording being started so startVideoRecording completes. + // Simulate video recording being finalized so stopVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( + VideoRecordEventFinalize.pigeon_detached( pigeon_instanceManager: PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, ), ), ); - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - - verify(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])); - expect(camera.pendingRecording, equals(mockPendingRecording)); - expect(camera.recording, mockRecording); + final XFile file = await camera.stopVideoRecording(0); + expect(file.path, videoOutputPath); - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // Verify that each of these calls happened only once. - verify( - camera.systemServicesManager - .getTempFilePath(camera.videoPrefix, '.temp'), - ).called(1); - verifyNoMoreInteractions(camera.systemServicesManager); - verify(camera.recorder!.prepareRecording(outputPath)).called(1); - verifyNoMoreInteractions(camera.recorder); - verify(mockPendingRecording.start(any)).called(1); - verifyNoMoreInteractions(mockPendingRecording); + // Verify that recording stops. + verify(recording.close()); + verifyNoMoreInteractions(recording); }); - test( - 'startVideoCapturing called with stream options starts image streaming', - () async { - // Set up mocks and constants. + test('stopVideoRecording throws a camera exception if ' + 'no recording is in progress', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final Recorder mockRecorder = MockRecorder(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockCameraInfo initialCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = - MockCamera2CameraInfo(); + const String videoOutputPath = '/test/output/path'; - // Set directly for test versus calling createCamera. + // Set directly for test versus calling startVideoCapturing. + camera.recording = null; + camera.videoOutputPath = videoOutputPath; - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.videoCapture = MockVideoCapture(); - camera.imageAnalysis = MockImageAnalysis(); - camera.camera = MockCamera(); - camera.recorder = mockRecorder; - camera.cameraInfo = initialCameraInfo; - camera.imageCapture = MockImageCapture(); + await expectLater(() async { + await camera.stopVideoRecording(0); + }, throwsA(isA())); + }); - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; + test('stopVideoRecording throws a camera exception if ' + 'videoOutputPath is null, and sets recording to null', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording mockRecording = MockRecording(); + final MockVideoCapture mockVideoCapture = MockVideoCapture(); - // Tell plugin to create detached Analyzer for testing. - const String outputPath = '/temp/REC123.temp'; - camera.proxy = CameraXProxy( - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCamera2CameraInfo, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, + // Set directly for test versus calling startVideoCapturing. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recording = mockRecording; + camera.videoOutputPath = null; + camera.videoCapture = mockVideoCapture; + + // Tell plugin that videoCapture use case was bound to start recording. + when( + camera.processCameraProvider!.isBound(mockVideoCapture), + ).thenAnswer((_) async => true); + + await expectLater(() async { + // Simulate video recording being finalized so stopVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventFinalize.pigeon_detached( pigeon_instanceManager: PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockAnalyzer(); - }, - ); + ), + ); + await camera.stopVideoRecording(0); + }, throwsA(isA())); + expect(camera.recording, null); + }); - const int cameraId = 17; - final Completer imageDataCompleter = - Completer(); - final VideoCaptureOptions videoCaptureOptions = VideoCaptureOptions( - cameraId, - streamCallback: (CameraImageData imageData) => - imageDataCompleter.complete(imageData)); + test('calling stopVideoRecording twice stops the recording ' + 'and then throws a CameraException', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording recording = MockRecording(); + final MockProcessCameraProvider processCameraProvider = + MockProcessCameraProvider(); + final MockVideoCapture videoCapture = MockVideoCapture(); + const String videoOutputPath = '/test/output/path'; - // Mock method calls. - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) => Future.value(camera.camera)); - when(camera.camera!.getCameraInfo()) - .thenAnswer((_) => Future.value(MockCameraInfo())); - when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( - (_) async => InfoSupportedHardwareLevel.level3, - ); + // Set directly for test versus calling createCamera and startVideoCapturing. + camera.processCameraProvider = processCameraProvider; + camera.recording = recording; + camera.videoCapture = videoCapture; + camera.videoOutputPath = videoOutputPath; - // Simulate video recording being started so startVideoRecording completes. + // Simulate video recording being finalized so stopVideoRecording completes. AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( + VideoRecordEventFinalize.pigeon_detached( pigeon_instanceManager: PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, ), ), ); - await camera.startVideoCapturing(videoCaptureOptions); - - final CameraImageData mockCameraImageData = MockCameraImageData(); - camera.cameraImageDataStreamController!.add(mockCameraImageData); + final XFile file = await camera.stopVideoRecording(0); + expect(file.path, videoOutputPath); - expect(imageDataCompleter.future, isNotNull); - await camera.cameraImageDataStreamController!.close(); + await expectLater(() async { + await camera.stopVideoRecording(0); + }, throwsA(isA())); }); test( - 'startVideoCapturing sets VideoCapture target rotation to current video orientation if orientation unlocked', - () async { - // Set up mocks and constants. + 'VideoCapture use case is unbound from lifecycle when video recording stops', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockRecording recording = MockRecording(); + final MockProcessCameraProvider processCameraProvider = + MockProcessCameraProvider(); + final MockVideoCapture videoCapture = MockVideoCapture(); + const String videoOutputPath = '/test/output/path'; + + // Set directly for test versus calling createCamera and startVideoCapturing. + camera.processCameraProvider = processCameraProvider; + camera.recording = recording; + camera.videoCapture = videoCapture; + camera.videoOutputPath = videoOutputPath; + + // Tell plugin that videoCapture use case was bound to start recording. + when( + camera.processCameraProvider!.isBound(videoCapture), + ).thenAnswer((_) async => true); + + // Simulate video recording being finalized so stopVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventFinalize.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); + + await camera.stopVideoRecording(90); + verify(processCameraProvider.unbind([videoCapture])); + + // Verify that recording stops. + verify(recording.close()); + verifyNoMoreInteractions(recording); + }, + ); + + test( + 'setDescriptionWhileRecording does not make any calls involving starting video recording', + () async { + // TODO(camsim99): Modify test when implemented, see https://github.com/flutter/flutter/issues/148013. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.camera = MockCamera(); + + await camera.setDescriptionWhileRecording( + const CameraDescription( + name: 'fakeCameraName', + lensDirection: CameraLensDirection.back, + sensorOrientation: 90, + ), + ); + verifyNoMoreInteractions(camera.processCameraProvider); + verifyNoMoreInteractions(camera.recorder); + verifyNoMoreInteractions(camera.videoCapture); + verifyNoMoreInteractions(camera.camera); + }, + ); + }); + + test( + 'takePicture binds ImageCapture to lifecycle and makes call to take a picture', + () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockVideoCapture mockVideoCapture = MockVideoCapture(); - final MockCameraInfo initialCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = - MockCamera2CameraInfo(); - const int defaultTargetRotation = Surface.rotation270; + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + const String testPicturePath = 'test/absolute/path/to/picture'; // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.camera = MockCamera(); - camera.recorder = MockRecorder(); - camera.videoCapture = mockVideoCapture; + camera.imageCapture = MockImageCapture(); + camera.processCameraProvider = mockProcessCameraProvider; camera.cameraSelector = MockCameraSelector(); - camera.imageAnalysis = MockImageAnalysis(); - camera.cameraInfo = initialCameraInfo; - // Tell plugin to mock call to get current video orientation and mock Camera2CameraInfo retrieval. - const String outputPath = '/temp/REC123.temp'; + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + + // Tell plugin to create detached camera state observers. camera.proxy = CameraXProxy( newObserver: ({ required void Function(Observer, T) onChanged, @@ -2884,38 +3425,51 @@ void main() { ), ); }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - cameraInfo == initialCameraInfo - ? mockCamera2CameraInfo - : MockCamera2CameraInfo(), - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, + ); + + when( + mockProcessCameraProvider.isBound(camera.imageCapture), + ).thenAnswer((_) async => false); + when( + mockProcessCameraProvider.bindToLifecycle( + camera.cameraSelector, + [camera.imageCapture!], + ), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when( + camera.imageCapture!.takePicture(), + ).thenAnswer((_) async => testPicturePath); + + final XFile imageFile = await camera.takePicture(3); + + expect(imageFile.path, equals(testPicturePath)); + }, + ); + + test( + 'takePicture sets ImageCapture target rotation to currrent photo rotation when orientation unlocked', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockImageCapture mockImageCapture = MockImageCapture(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + + const int cameraId = 3; + const int defaultTargetRotation = Surface.rotation180; + + // Set directly for test versus calling createCamera. + camera.imageCapture = mockImageCapture; + camera.processCameraProvider = mockProcessCameraProvider; + + // Tell plugin to mock call to get current photo orientation. + camera.proxy = CameraXProxy( newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -2923,3597 +3477,3448 @@ void main() { }) { final MockDeviceOrientationManager mockDeviceOrientationManager = MockDeviceOrientationManager(); - when(mockDeviceOrientationManager.getDefaultDisplayRotation()) - .thenAnswer( - (_) async => defaultTargetRotation, - ); + when( + mockDeviceOrientationManager.getDefaultDisplayRotation(), + ).thenAnswer((_) async => defaultTargetRotation); return mockDeviceOrientationManager; }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - ); - - const int cameraId = 87; - - // Mock method calls. - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start(any)).thenAnswer( - (_) async => mockRecording, - ); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => false); - when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( - (_) async => InfoSupportedHardwareLevel.limited, ); - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), - ); + when( + mockProcessCameraProvider.isBound(camera.imageCapture), + ).thenAnswer((_) async => true); + when( + camera.imageCapture!.takePicture(), + ).thenAnswer((_) async => 'test/absolute/path/to/picture'); // Orientation is unlocked and plugin does not need to set default target // rotation manually. - camera.recording = null; - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verifyNever(mockVideoCapture.setTargetRotation(any)); - - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), - ); + await camera.takePicture(cameraId); + verifyNever(mockImageCapture.setTargetRotation(any)); // Orientation is locked and plugin does not need to set default target // rotation manually. - camera.recording = null; camera.captureOrientationLocked = true; - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verifyNever(mockVideoCapture.setTargetRotation(any)); - - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), - ); + await camera.takePicture(cameraId); + verifyNever(mockImageCapture.setTargetRotation(any)); // Orientation is locked and plugin does need to set default target // rotation manually. - camera.recording = null; camera.captureOrientationLocked = true; camera.shouldSetDefaultRotation = true; - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verifyNever(mockVideoCapture.setTargetRotation(any)); - - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), - ); + await camera.takePicture(cameraId); + verifyNever(mockImageCapture.setTargetRotation(any)); // Orientation is unlocked and plugin does need to set default target // rotation manually. - camera.recording = null; camera.captureOrientationLocked = false; camera.shouldSetDefaultRotation = true; - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verify(mockVideoCapture.setTargetRotation(defaultTargetRotation)); - }); + await camera.takePicture(cameraId); + verify(mockImageCapture.setTargetRotation(defaultTargetRotation)); + }, + ); - test('pauseVideoRecording pauses the recording', () async { + test( + 'takePicture turns non-torch flash mode off when torch mode enabled', + () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + const int cameraId = 77; - // Set directly for test versus calling startVideoCapturing. - camera.recording = recording; + // Set directly for test versus calling createCamera. + camera.imageCapture = MockImageCapture(); + camera.cameraControl = MockCameraControl(); + camera.processCameraProvider = mockProcessCameraProvider; - await camera.pauseVideoRecording(0); - verify(recording.pause()); - verifyNoMoreInteractions(recording); - }); + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - test('resumeVideoRecording resumes the recording', () async { + when( + mockProcessCameraProvider.isBound(camera.imageCapture), + ).thenAnswer((_) async => true); + + await camera.setFlashMode(cameraId, FlashMode.torch); + await camera.takePicture(cameraId); + verify(camera.imageCapture!.setFlashMode(CameraXFlashMode.off)); + }, + ); + + test( + 'setFlashMode configures ImageCapture with expected non-torch flash mode', + () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); + const int cameraId = 22; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + + // Set directly for test versus calling createCamera. + camera.imageCapture = MockImageCapture(); + camera.cameraControl = mockCameraControl; + + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; + camera.processCameraProvider = mockProcessCameraProvider; + + when( + mockProcessCameraProvider.isBound(camera.imageCapture), + ).thenAnswer((_) async => true); + + for (final FlashMode flashMode in FlashMode.values) { + await camera.setFlashMode(cameraId, flashMode); + + CameraXFlashMode? expectedFlashMode; + switch (flashMode) { + case FlashMode.off: + expectedFlashMode = CameraXFlashMode.off; + case FlashMode.auto: + expectedFlashMode = CameraXFlashMode.auto; + case FlashMode.always: + expectedFlashMode = CameraXFlashMode.on; + case FlashMode.torch: + expectedFlashMode = null; + } + + if (expectedFlashMode == null) { + // Torch mode enabled and won't be used for configuring image capture. + continue; + } + + verifyNever(mockCameraControl.enableTorch(true)); + expect(camera.torchEnabled, isFalse); + await camera.takePicture(cameraId); + verify(camera.imageCapture!.setFlashMode(expectedFlashMode)); + } + }, + ); + + test('setFlashMode turns on torch mode as expected', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 44; + final MockCameraControl mockCameraControl = MockCameraControl(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + + await camera.setFlashMode(cameraId, FlashMode.torch); + + verify(mockCameraControl.enableTorch(true)); + expect(camera.torchEnabled, isTrue); + }); + + test( + 'setFlashMode turns off torch mode when non-torch flash modes set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 33; + final MockCameraControl mockCameraControl = MockCameraControl(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + + for (final FlashMode flashMode in FlashMode.values) { + camera.torchEnabled = true; + await camera.setFlashMode(cameraId, flashMode); + + switch (flashMode) { + case FlashMode.off: + case FlashMode.auto: + case FlashMode.always: + verify(mockCameraControl.enableTorch(false)); + expect(camera.torchEnabled, isFalse); + case FlashMode.torch: + verifyNever(mockCameraControl.enableTorch(true)); + expect(camera.torchEnabled, true); + } + } + }, + ); + + test('getMinExposureOffset returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); - // Set directly for test versus calling startVideoCapturing. - camera.recording = recording; + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; - await camera.resumeVideoRecording(0); - verify(recording.resume()); - verifyNoMoreInteractions(recording); - }); + when(mockCameraInfo.exposureState).thenReturn(exposureState); - test('stopVideoRecording stops the recording', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); - final MockProcessCameraProvider processCameraProvider = - MockProcessCameraProvider(); - final MockVideoCapture videoCapture = MockVideoCapture(); - const String videoOutputPath = '/test/output/path'; + // We expect the minimum exposure to be the minimum exposure compensation * exposure compensation step. + // Delta is included due to avoid catching rounding errors. + expect(await camera.getMinExposureOffset(35), closeTo(0.6, 0.0000000001)); + }); - // Set directly for test versus calling createCamera and startVideoCapturing. - camera.processCameraProvider = processCameraProvider; - camera.recording = recording; - camera.videoCapture = videoCapture; - camera.videoOutputPath = videoOutputPath; + test('getMaxExposureOffset returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); - // Tell plugin that videoCapture use case was bound to start recording. - when(camera.processCameraProvider!.isBound(videoCapture)) - .thenAnswer((_) async => true); + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; - // Simulate video recording being finalized so stopVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventFinalize.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), - ); + when(mockCameraInfo.exposureState).thenReturn(exposureState); - final XFile file = await camera.stopVideoRecording(0); - expect(file.path, videoOutputPath); + // We expect the maximum exposure to be the maximum exposure compensation * exposure compensation step. + expect(await camera.getMaxExposureOffset(35), 0.8); + }); - // Verify that recording stops. - verify(recording.close()); - verifyNoMoreInteractions(recording); - }); + test('getExposureOffsetStepSize returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); - test( - 'stopVideoRecording throws a camera exception if ' - 'no recording is in progress', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const String videoOutputPath = '/test/output/path'; + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; - // Set directly for test versus calling startVideoCapturing. - camera.recording = null; - camera.videoOutputPath = videoOutputPath; + when(mockCameraInfo.exposureState).thenReturn(exposureState); - await expectLater(() async { - await camera.stopVideoRecording(0); - }, throwsA(isA())); - }); + expect(await camera.getExposureOffsetStepSize(55), 0.2); + }); - test( - 'stopVideoRecording throws a camera exception if ' - 'videoOutputPath is null, and sets recording to null', () async { + test( + 'getExposureOffsetStepSize returns -1 when exposure compensation not supported on device', + () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording mockRecording = MockRecording(); - final MockVideoCapture mockVideoCapture = MockVideoCapture(); - - // Set directly for test versus calling startVideoCapturing. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recording = mockRecording; - camera.videoOutputPath = null; - camera.videoCapture = mockVideoCapture; + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 0, + upper: 0, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0, + pigeon_instanceManager: testInstanceManager, + ); - // Tell plugin that videoCapture use case was bound to start recording. - when(camera.processCameraProvider!.isBound(mockVideoCapture)) - .thenAnswer((_) async => true); + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; - await expectLater(() async { - // Simulate video recording being finalized so stopVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventFinalize.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), - ); - await camera.stopVideoRecording(0); - }, throwsA(isA())); - expect(camera.recording, null); - }); + when(mockCameraInfo.exposureState).thenReturn(exposureState); - test( - 'calling stopVideoRecording twice stops the recording ' - 'and then throws a CameraException', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); - final MockProcessCameraProvider processCameraProvider = - MockProcessCameraProvider(); - final MockVideoCapture videoCapture = MockVideoCapture(); - const String videoOutputPath = '/test/output/path'; + expect(await camera.getExposureOffsetStepSize(55), -1); + }, + ); - // Set directly for test versus calling createCamera and startVideoCapturing. - camera.processCameraProvider = processCameraProvider; - camera.recording = recording; - camera.videoCapture = videoCapture; - camera.videoOutputPath = videoOutputPath; + test('getMaxZoomLevel returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + const double maxZoomRatio = 1; + final LiveData mockLiveZoomState = MockLiveZoomState(); + final ZoomState zoomState = ZoomState.pigeon_detached( + maxZoomRatio: maxZoomRatio, + minZoomRatio: 0, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); - // Simulate video recording being finalized so stopVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventFinalize.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), - ); + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; - final XFile file = await camera.stopVideoRecording(0); - expect(file.path, videoOutputPath); + when( + mockCameraInfo.getZoomState(), + ).thenAnswer((_) async => mockLiveZoomState); + when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); - await expectLater(() async { - await camera.stopVideoRecording(0); - }, throwsA(isA())); - }); + expect(await camera.getMaxZoomLevel(55), maxZoomRatio); + }); - test( - 'VideoCapture use case is unbound from lifecycle when video recording stops', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockRecording recording = MockRecording(); - final MockProcessCameraProvider processCameraProvider = - MockProcessCameraProvider(); - final MockVideoCapture videoCapture = MockVideoCapture(); - const String videoOutputPath = '/test/output/path'; + test('getMinZoomLevel returns expected exposure offset', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + const double minZoomRatio = 0; + final LiveData mockLiveZoomState = MockLiveZoomState(); + final ZoomState zoomState = ZoomState.pigeon_detached( + maxZoomRatio: 1, + minZoomRatio: minZoomRatio, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); - // Set directly for test versus calling createCamera and startVideoCapturing. - camera.processCameraProvider = processCameraProvider; - camera.recording = recording; - camera.videoCapture = videoCapture; - camera.videoOutputPath = videoOutputPath; + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; - // Tell plugin that videoCapture use case was bound to start recording. - when(camera.processCameraProvider!.isBound(videoCapture)) - .thenAnswer((_) async => true); + when( + mockCameraInfo.getZoomState(), + ).thenAnswer((_) async => mockLiveZoomState); + when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); - // Simulate video recording being finalized so stopVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventFinalize.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), - ); + expect(await camera.getMinZoomLevel(55), minZoomRatio); + }); - await camera.stopVideoRecording(90); - verify(processCameraProvider.unbind([videoCapture])); + test('setZoomLevel sets zoom ratio as expected', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 44; + const double zoomRatio = 0.3; + final MockCameraControl mockCameraControl = MockCameraControl(); - // Verify that recording stops. - verify(recording.close()); - verifyNoMoreInteractions(recording); - }); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; - test( - 'setDescriptionWhileRecording does not make any calls involving starting video recording', - () async { - // TODO(camsim99): Modify test when implemented, see https://github.com/flutter/flutter/issues/148013. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); + await camera.setZoomLevel(cameraId, zoomRatio); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.camera = MockCamera(); + verify(mockCameraControl.setZoomRatio(zoomRatio)); + }); - await camera.setDescriptionWhileRecording(const CameraDescription( - name: 'fakeCameraName', - lensDirection: CameraLensDirection.back, - sensorOrientation: 90)); - verifyNoMoreInteractions(camera.processCameraProvider); - verifyNoMoreInteractions(camera.recorder); - verifyNoMoreInteractions(camera.videoCapture); - verifyNoMoreInteractions(camera.camera); - }); + test('Should report support for image streaming', () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + expect(camera.supportsImageStreaming(), true); }); test( - 'takePicture binds ImageCapture to lifecycle and makes call to take a picture', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - const String testPicturePath = 'test/absolute/path/to/picture'; + 'onStreamedFrameAvailable emits CameraImageData when picked up from CameraImageData stream controller', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + const int cameraId = 22; + + // Tell plugin to create detached Analyzer for testing. + camera.proxy = CameraXProxy( + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); - // Set directly for test versus calling createCamera. - camera.imageCapture = MockImageCapture(); - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.imageAnalysis = MockImageAnalysis(); - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - // Tell plugin to create detached camera state observers. - camera.proxy = CameraXProxy( - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - ); + when( + mockProcessCameraProvider.bindToLifecycle(any, any), + ).thenAnswer((_) => Future.value(mockCamera)); + when( + mockProcessCameraProvider.isBound(camera.imageAnalysis), + ).thenAnswer((_) async => true); + when( + mockCamera.getCameraInfo(), + ).thenAnswer((_) => Future.value(mockCameraInfo)); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); - when(mockProcessCameraProvider.isBound(camera.imageCapture)) - .thenAnswer((_) async => false); - when(mockProcessCameraProvider.bindToLifecycle( - camera.cameraSelector, [camera.imageCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(camera.imageCapture!.takePicture()) - .thenAnswer((_) async => testPicturePath); + final CameraImageData mockCameraImageData = MockCameraImageData(); + final Stream imageStream = camera + .onStreamedFrameAvailable(cameraId); + final StreamQueue streamQueue = + StreamQueue(imageStream); - final XFile imageFile = await camera.takePicture(3); + camera.cameraImageDataStreamController!.add(mockCameraImageData); - expect(imageFile.path, equals(testPicturePath)); - }); + expect(await streamQueue.next, equals(mockCameraImageData)); + await streamQueue.cancel(); + }, + ); test( - 'takePicture sets ImageCapture target rotation to currrent photo rotation when orientation unlocked', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockImageCapture mockImageCapture = MockImageCapture(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); + 'onStreamedFrameAvailable emits CameraImageData when listened to after cancelation', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + const int cameraId = 22; - const int cameraId = 3; - const int defaultTargetRotation = Surface.rotation180; + // Tell plugin to create detached Analyzer for testing. + camera.proxy = CameraXProxy( + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); - // Set directly for test versus calling createCamera. - camera.imageCapture = mockImageCapture; - camera.processCameraProvider = mockProcessCameraProvider; + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); + camera.imageAnalysis = MockImageAnalysis(); - // Tell plugin to mock call to get current photo orientation. - camera.proxy = CameraXProxy( - newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDeviceOrientationManager mockDeviceOrientationManager = - MockDeviceOrientationManager(); - when(mockDeviceOrientationManager.getDefaultDisplayRotation()) - .thenAnswer( - (_) async => defaultTargetRotation, - ); - return mockDeviceOrientationManager; - }, - ); + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - when(mockProcessCameraProvider.isBound(camera.imageCapture)) - .thenAnswer((_) async => true); - when(camera.imageCapture!.takePicture()) - .thenAnswer((_) async => 'test/absolute/path/to/picture'); - - // Orientation is unlocked and plugin does not need to set default target - // rotation manually. - await camera.takePicture(cameraId); - verifyNever(mockImageCapture.setTargetRotation(any)); - - // Orientation is locked and plugin does not need to set default target - // rotation manually. - camera.captureOrientationLocked = true; - await camera.takePicture(cameraId); - verifyNever(mockImageCapture.setTargetRotation(any)); - - // Orientation is locked and plugin does need to set default target - // rotation manually. - camera.captureOrientationLocked = true; - camera.shouldSetDefaultRotation = true; - await camera.takePicture(cameraId); - verifyNever(mockImageCapture.setTargetRotation(any)); - - // Orientation is unlocked and plugin does need to set default target - // rotation manually. - camera.captureOrientationLocked = false; - camera.shouldSetDefaultRotation = true; - await camera.takePicture(cameraId); - verify(mockImageCapture.setTargetRotation(defaultTargetRotation)); - }); + when( + mockProcessCameraProvider.isBound(camera.imageAnalysis), + ).thenAnswer((_) async => true); - test('takePicture turns non-torch flash mode off when torch mode enabled', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - const int cameraId = 77; + final CameraImageData mockCameraImageData = MockCameraImageData(); + final Stream imageStream = camera + .onStreamedFrameAvailable(cameraId); - // Set directly for test versus calling createCamera. - camera.imageCapture = MockImageCapture(); - camera.cameraControl = MockCameraControl(); - camera.processCameraProvider = mockProcessCameraProvider; + // Listen to image stream. + final StreamSubscription imageStreamSubscription = + imageStream.listen((CameraImageData data) {}); - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; + // Cancel subscription to image stream. + await imageStreamSubscription.cancel(); + final Stream imageStream2 = camera + .onStreamedFrameAvailable(cameraId); - when(mockProcessCameraProvider.isBound(camera.imageCapture)) - .thenAnswer((_) async => true); + // Listen to image stream again. + final StreamQueue streamQueue = + StreamQueue(imageStream2); + camera.cameraImageDataStreamController!.add(mockCameraImageData); - await camera.setFlashMode(cameraId, FlashMode.torch); - await camera.takePicture(cameraId); - verify(camera.imageCapture!.setFlashMode(CameraXFlashMode.off)); - }); + expect(await streamQueue.next, equals(mockCameraImageData)); + await streamQueue.cancel(); + }, + ); test( - 'setFlashMode configures ImageCapture with expected non-torch flash mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 22; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); + 'onStreamedFrameAvailable returns stream that responds expectedly to being listened to', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 33; + final ProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final CameraSelector mockCameraSelector = MockCameraSelector(); + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final Camera mockCamera = MockCamera(); + final CameraInfo mockCameraInfo = MockCameraInfo(); + final MockImageProxy mockImageProxy = MockImageProxy(); + final MockPlaneProxy mockPlane = MockPlaneProxy(); + final List mockPlanes = [mockPlane]; + final Uint8List buffer = Uint8List(0); + const int pixelStride = 27; + const int rowStride = 58; + const int imageFormat = 582; + const int imageHeight = 100; + const int imageWidth = 200; - // Set directly for test versus calling createCamera. - camera.imageCapture = MockImageCapture(); - camera.cameraControl = mockCameraControl; + // Tell plugin to create detached Analyzer for testing. + camera.proxy = CameraXProxy( + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - camera.processCameraProvider = mockProcessCameraProvider; - - when(mockProcessCameraProvider.isBound(camera.imageCapture)) - .thenAnswer((_) async => true); - - for (final FlashMode flashMode in FlashMode.values) { - await camera.setFlashMode(cameraId, flashMode); - - CameraXFlashMode? expectedFlashMode; - switch (flashMode) { - case FlashMode.off: - expectedFlashMode = CameraXFlashMode.off; - case FlashMode.auto: - expectedFlashMode = CameraXFlashMode.auto; - case FlashMode.always: - expectedFlashMode = CameraXFlashMode.on; - case FlashMode.torch: - expectedFlashMode = null; - } + // Set directly for test versus calling createCamera. + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = mockCameraSelector; + camera.imageAnalysis = mockImageAnalysis; - if (expectedFlashMode == null) { - // Torch mode enabled and won't be used for configuring image capture. - continue; - } + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - verifyNever(mockCameraControl.enableTorch(true)); - expect(camera.torchEnabled, isFalse); - await camera.takePicture(cameraId); - verify(camera.imageCapture!.setFlashMode(expectedFlashMode)); - } - }); + when( + mockProcessCameraProvider.isBound(mockImageAnalysis), + ).thenAnswer((_) async => false); + when( + mockProcessCameraProvider.bindToLifecycle(mockCameraSelector, [ + mockImageAnalysis, + ]), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when( + mockImageProxy.getPlanes(), + ).thenAnswer((_) async => Future>.value(mockPlanes)); + when(mockPlane.buffer).thenReturn(buffer); + when(mockPlane.rowStride).thenReturn(rowStride); + when(mockPlane.pixelStride).thenReturn(pixelStride); + when(mockImageProxy.format).thenReturn(imageFormat); + when(mockImageProxy.height).thenReturn(imageHeight); + when(mockImageProxy.width).thenReturn(imageWidth); - test('setFlashMode turns on torch mode as expected', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 44; - final MockCameraControl mockCameraControl = MockCameraControl(); + final Completer imageDataCompleter = + Completer(); + final StreamSubscription + onStreamedFrameAvailableSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData imageData) { + imageDataCompleter.complete(imageData); + }); + + // Test ImageAnalysis use case is bound to ProcessCameraProvider. + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + final Analyzer capturedAnalyzer = + verify(mockImageAnalysis.setAnalyzer(captureAny)).captured.single + as Analyzer; + + capturedAnalyzer.analyze(MockAnalyzer(), mockImageProxy); + + final CameraImageData imageData = await imageDataCompleter.future; + + // Test Analyzer correctly process ImageProxy instances. + expect(imageData.planes.length, equals(1)); + expect(imageData.planes[0].bytes, equals(buffer)); + expect(imageData.planes[0].bytesPerRow, equals(rowStride)); + expect(imageData.planes[0].bytesPerPixel, equals(pixelStride)); + expect(imageData.format.raw, equals(imageFormat)); + expect(imageData.height, equals(imageHeight)); + expect(imageData.width, equals(imageWidth)); + + await onStreamedFrameAvailableSubscription.cancel(); + }, + ); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; + test( + 'onStreamedFrameAvailable returns stream that responds expectedly to being canceled', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 32; + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); - await camera.setFlashMode(cameraId, FlashMode.torch); + // Set directly for test versus calling createCamera. + camera.imageAnalysis = mockImageAnalysis; + camera.processCameraProvider = mockProcessCameraProvider; - verify(mockCameraControl.enableTorch(true)); - expect(camera.torchEnabled, isTrue); - }); + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - test('setFlashMode turns off torch mode when non-torch flash modes set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 33; - final MockCameraControl mockCameraControl = MockCameraControl(); + // Tell plugin to create a detached analyzer for testing purposes. + camera.proxy = CameraXProxy( + newAnalyzer: + ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockAnalyzer(), + ); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; + when( + mockProcessCameraProvider.isBound(mockImageAnalysis), + ).thenAnswer((_) async => true); - for (final FlashMode flashMode in FlashMode.values) { - camera.torchEnabled = true; - await camera.setFlashMode(cameraId, flashMode); - - switch (flashMode) { - case FlashMode.off: - case FlashMode.auto: - case FlashMode.always: - verify(mockCameraControl.enableTorch(false)); - expect(camera.torchEnabled, isFalse); - case FlashMode.torch: - verifyNever(mockCameraControl.enableTorch(true)); - expect(camera.torchEnabled, true); - } - } - }); + final StreamSubscription imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); - test('getMinExposureOffset returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ExposureState exposureState = ExposureState.pigeon_detached( - exposureCompensationRange: CameraIntegerRange.pigeon_detached( - lower: 3, - upper: 4, - pigeon_instanceManager: testInstanceManager, - ), - exposureCompensationStep: 0.2, - pigeon_instanceManager: testInstanceManager, - ); + await imageStreamSubscription.cancel(); - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; + verify(mockImageAnalysis.clearAnalyzer()); + }, + ); - when(mockCameraInfo.exposureState).thenReturn(exposureState); + test( + 'onStreamedFrameAvailable sets ImageAnalysis target rotation to current photo orientation when orientation unlocked', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 35; + const int defaultTargetRotation = Surface.rotation90; + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); - // We expect the minimum exposure to be the minimum exposure compensation * exposure compensation step. - // Delta is included due to avoid catching rounding errors. - expect(await camera.getMinExposureOffset(35), closeTo(0.6, 0.0000000001)); - }); + // Set directly for test versus calling createCamera. + camera.imageAnalysis = mockImageAnalysis; + camera.processCameraProvider = mockProcessCameraProvider; - test('getMaxExposureOffset returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ExposureState exposureState = ExposureState.pigeon_detached( - exposureCompensationRange: CameraIntegerRange.pigeon_detached( - lower: 3, - upper: 4, - pigeon_instanceManager: testInstanceManager, - ), - exposureCompensationStep: 0.2, - pigeon_instanceManager: testInstanceManager, - ); + // Tell plugin to create a detached analyzer for testing purposes and mock + // call to get current photo orientation. + camera.proxy = CameraXProxy( + newAnalyzer: + ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockAnalyzer(), + newDeviceOrientationManager: ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getDefaultDisplayRotation()).thenAnswer((_) async { + return defaultTargetRotation; + }); + return manager; + }, + ); - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; + when( + mockProcessCameraProvider.isBound(mockImageAnalysis), + ).thenAnswer((_) async => true); - when(mockCameraInfo.exposureState).thenReturn(exposureState); + // Orientation is unlocked and plugin does not need to set default target + // rotation manually. + StreamSubscription imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + verifyNever(mockImageAnalysis.setTargetRotation(any)); + await imageStreamSubscription.cancel(); - // We expect the maximum exposure to be the maximum exposure compensation * exposure compensation step. - expect(await camera.getMaxExposureOffset(35), 0.8); - }); + // Orientation is locked and plugin does not need to set default target + // rotation manually. + camera.captureOrientationLocked = true; + imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + verifyNever(mockImageAnalysis.setTargetRotation(any)); + await imageStreamSubscription.cancel(); - test('getExposureOffsetStepSize returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ExposureState exposureState = ExposureState.pigeon_detached( - exposureCompensationRange: CameraIntegerRange.pigeon_detached( - lower: 3, - upper: 4, - pigeon_instanceManager: testInstanceManager, - ), - exposureCompensationStep: 0.2, - pigeon_instanceManager: testInstanceManager, - ); + // Orientation is locked and plugin does need to set default target + // rotation manually. + camera.captureOrientationLocked = true; + camera.shouldSetDefaultRotation = true; + imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + verifyNever(mockImageAnalysis.setTargetRotation(any)); + await imageStreamSubscription.cancel(); + + // Orientation is unlocked and plugin does need to set default target + // rotation manually. + camera.captureOrientationLocked = false; + camera.shouldSetDefaultRotation = true; + imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + await untilCalled( + mockImageAnalysis.setTargetRotation(defaultTargetRotation), + ); + await imageStreamSubscription.cancel(); + }, + ); + + test( + 'lockCaptureOrientation sets capture-related use case target rotations to correct orientation', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 44; - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockImageCapture mockImageCapture = MockImageCapture(); + final MockVideoCapture mockVideoCapture = MockVideoCapture(); - when(mockCameraInfo.exposureState).thenReturn(exposureState); + // Set directly for test versus calling createCamera. + camera.imageAnalysis = mockImageAnalysis; + camera.imageCapture = mockImageCapture; + camera.videoCapture = mockVideoCapture; - expect(await camera.getExposureOffsetStepSize(55), 0.2); - }); + for (final DeviceOrientation orientation in DeviceOrientation.values) { + int? expectedTargetRotation; + switch (orientation) { + case DeviceOrientation.portraitUp: + expectedTargetRotation = Surface.rotation0; + case DeviceOrientation.landscapeLeft: + expectedTargetRotation = Surface.rotation90; + case DeviceOrientation.portraitDown: + expectedTargetRotation = Surface.rotation180; + case DeviceOrientation.landscapeRight: + expectedTargetRotation = Surface.rotation270; + } + + await camera.lockCaptureOrientation(cameraId, orientation); + + verify(mockImageAnalysis.setTargetRotation(expectedTargetRotation)); + verify(mockImageCapture.setTargetRotation(expectedTargetRotation)); + verify(mockVideoCapture.setTargetRotation(expectedTargetRotation)); + expect(camera.captureOrientationLocked, isTrue); + expect(camera.shouldSetDefaultRotation, isTrue); + + // Reset flags for testing. + camera.captureOrientationLocked = false; + camera.shouldSetDefaultRotation = false; + } + }, + ); test( - 'getExposureOffsetStepSize returns -1 when exposure compensation not supported on device', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ExposureState exposureState = ExposureState.pigeon_detached( - exposureCompensationRange: CameraIntegerRange.pigeon_detached( - lower: 0, - upper: 0, - pigeon_instanceManager: testInstanceManager, - ), - exposureCompensationStep: 0, - pigeon_instanceManager: testInstanceManager, - ); + 'unlockCaptureOrientation sets capture-related use case target rotations to current photo/video orientation', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 57; - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; + camera.captureOrientationLocked = true; + await camera.unlockCaptureOrientation(cameraId); + expect(camera.captureOrientationLocked, isFalse); + }, + ); - when(mockCameraInfo.exposureState).thenReturn(exposureState); + test( + 'setExposureMode sets expected controlAeLock value via Camera2 interop', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 78; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); - expect(await camera.getExposureOffsetStepSize(55), -1); - }); + // Set directly for test versus calling createCamera. + camera.camera = MockCamera(); + camera.cameraControl = mockCameraControl; - test('getMaxZoomLevel returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - const double maxZoomRatio = 1; - final LiveData mockLiveZoomState = MockLiveZoomState(); - final ZoomState zoomState = ZoomState.pigeon_detached( - maxZoomRatio: maxZoomRatio, - minZoomRatio: 0, - pigeon_instanceManager: PigeonInstanceManager( + // Tell plugin to create detached Camera2CameraControl and + // CaptureRequestOptions instances for testing. + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, - ), - ); + ); + final CaptureRequestKey controlAELockKey = + CaptureRequestKey.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + camera.proxy = CameraXProxy( + fromCamera2CameraControl: + ({ + required CameraControl cameraControl, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + cameraControl == mockCameraControl + ? mockCamera2CameraControl + : Camera2CameraControl.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + newCaptureRequestOptions: ({ + required Map options, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockCaptureRequestOptions mockCaptureRequestOptions = + MockCaptureRequestOptions(); + options.forEach((CaptureRequestKey key, Object? value) { + when( + mockCaptureRequestOptions.getCaptureRequestOption(key), + ).thenAnswer((_) async => value); + }); + return mockCaptureRequestOptions; + }, + controlAELockCaptureRequest: () => controlAELockKey, + ); - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; + // Test auto mode. + await camera.setExposureMode(cameraId, ExposureMode.auto); - when(mockCameraInfo.getZoomState()) - .thenAnswer((_) async => mockLiveZoomState); - when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); + VerificationResult verificationResult = verify( + mockCamera2CameraControl.addCaptureRequestOptions(captureAny), + ); + CaptureRequestOptions capturedCaptureRequestOptions = + verificationResult.captured.single as CaptureRequestOptions; + expect( + await capturedCaptureRequestOptions.getCaptureRequestOption( + controlAELockKey, + ), + isFalse, + ); - expect(await camera.getMaxZoomLevel(55), maxZoomRatio); - }); + // Test locked mode. + clearInteractions(mockCamera2CameraControl); + await camera.setExposureMode(cameraId, ExposureMode.locked); - test('getMinZoomLevel returns expected exposure offset', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - const double minZoomRatio = 0; - final LiveData mockLiveZoomState = MockLiveZoomState(); - final ZoomState zoomState = ZoomState.pigeon_detached( - maxZoomRatio: 1, - minZoomRatio: minZoomRatio, - pigeon_instanceManager: PigeonInstanceManager( + verificationResult = verify( + mockCamera2CameraControl.addCaptureRequestOptions(captureAny), + ); + capturedCaptureRequestOptions = + verificationResult.captured.single as CaptureRequestOptions; + expect( + await capturedCaptureRequestOptions.getCaptureRequestOption( + controlAELockKey, + ), + isTrue, + ); + }, + ); + + test( + 'setExposurePoint clears current auto-exposure metering point as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 93; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = mockCameraInfo; + + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, - ), - ); + ); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + camera.proxy = getProxyForExposureAndFocus( + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; + // Verify nothing happens if no current focus and metering action has been + // enabled. + await camera.setExposurePoint(cameraId, null); + verifyNever(mockCameraControl.startFocusAndMetering(any)); + verifyNever(mockCameraControl.cancelFocusAndMetering()); + + // Verify current auto-exposure metering point is removed if previously set. + final FocusMeteringAction originalMeteringAction = + FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; - when(mockCameraInfo.getZoomState()) - .thenAnswer((_) async => mockLiveZoomState); - when(mockLiveZoomState.getValue()).thenAnswer((_) async => zoomState); + await camera.setExposurePoint(cameraId, null); - expect(await camera.getMinZoomLevel(55), minZoomRatio); - }); + expect(actionBuilderMeteringMode, MeteringMode.af); + expect( + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAf.single, + ); + verifyNever(mockActionBuilder.addPoint(any)); + verifyNever(mockActionBuilder.addPointWithMode(any, any)); + + // Verify current focus and metering action is cleared if only previously + // set metering point was for auto-exposure. + camera.currentFocusMeteringAction = FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); - test('setZoomLevel sets zoom ratio as expected', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 44; - const double zoomRatio = 0.3; - final MockCameraControl mockCameraControl = MockCameraControl(); + await camera.setExposurePoint(cameraId, null); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; + verify(mockCameraControl.cancelFocusAndMetering()); + }, + ); - await camera.setZoomLevel(cameraId, zoomRatio); + test( + 'setExposurePoint throws CameraException if invalid point specified', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 23; + final MockCameraControl mockCameraControl = MockCameraControl(); + const Point invalidExposurePoint = Point(3, -1); - verify(mockCameraControl.setZoomRatio(zoomRatio)); - }); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); - test('Should report support for image streaming', () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - expect(camera.supportsImageStreaming(), true); - }); + camera.proxy = getProxyForExposureAndFocus(); + + expect( + () => camera.setExposurePoint(cameraId, invalidExposurePoint), + throwsA(isA()), + ); + }, + ); test( - 'onStreamedFrameAvailable emits CameraImageData when picked up from CameraImageData stream controller', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - const int cameraId = 22; + 'setExposurePoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 9; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // Tell plugin to create detached Analyzer for testing. - camera.proxy = CameraXProxy( - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Analyzer.pigeon_detached( - analyze: analyze, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = mockCameraInfo; + + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + double exposurePointX = 0.8; + double exposurePointY = 0.1; + final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + camera.proxy = getProxyForExposureAndFocus( + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when( + mockFactory.createPoint(exposurePointX, exposurePointY), + ).thenAnswer((_) async => createdMeteringPoint); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); + + // Verify current auto-exposure metering point is removed if previously set. + Point exposurePoint = Point( + exposurePointX, + exposurePointY, + ); + FocusMeteringAction originalMeteringAction = + FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; + + await camera.setExposurePoint(cameraId, exposurePoint); + + expect( + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAf.single, + ); + expect(actionBuilderMeteringMode, MeteringMode.af); + verify( + mockActionBuilder.addPointWithMode( + createdMeteringPoint, + MeteringMode.ae, + ), + ); + + // Verify exposure point is set when no auto-exposure metering point + // previously set, but an auto-focus point metering point has been. + exposurePointX = 0.2; + exposurePointY = 0.9; + exposurePoint = Point(exposurePointX, exposurePointY); + originalMeteringAction = FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, ), - ); - }, - ); + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) => Future.value(mockCamera)); - when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) - .thenAnswer((_) async => true); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - - final CameraImageData mockCameraImageData = MockCameraImageData(); - final Stream imageStream = - camera.onStreamedFrameAvailable(cameraId); - final StreamQueue streamQueue = - StreamQueue(imageStream); - - camera.cameraImageDataStreamController!.add(mockCameraImageData); - - expect(await streamQueue.next, equals(mockCameraImageData)); - await streamQueue.cancel(); - }); + await camera.setExposurePoint(cameraId, exposurePoint); + + expect( + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAf.single, + ); + expect(actionBuilderMeteringMode, MeteringMode.af); + verify( + mockActionBuilder.addPointWithMode( + createdMeteringPoint, + MeteringMode.ae, + ), + ); + }, + ); test( - 'onStreamedFrameAvailable emits CameraImageData when listened to after cancelation', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - const int cameraId = 22; + 'setExposurePoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 19; + final MockCameraControl mockCameraControl = MockCameraControl(); + const double exposurePointX = 0.8; + const double exposurePointY = 0.1; + const Point exposurePoint = Point( + exposurePointX, + exposurePointY, + ); - // Tell plugin to create detached Analyzer for testing. - camera.proxy = CameraXProxy( - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Analyzer.pigeon_detached( - analyze: analyze, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - ); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + camera.currentFocusMeteringAction = null; - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); - camera.imageAnalysis = MockImageAnalysis(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + camera.proxy = getProxyForExposureAndFocus( + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when( + mockFactory.createPoint(exposurePointX, exposurePointY), + ).thenAnswer((_) async => createdMeteringPoint); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; + await camera.setExposurePoint(cameraId, exposurePoint); - when(mockProcessCameraProvider.isBound(camera.imageAnalysis)) - .thenAnswer((_) async => true); + expect(actionBuilderMeteringPoint, createdMeteringPoint); + expect(actionBuilderMeteringMode, MeteringMode.ae); + }, + ); - final CameraImageData mockCameraImageData = MockCameraImageData(); - final Stream imageStream = - camera.onStreamedFrameAvailable(cameraId); + test( + 'setExposurePoint disables auto-cancel for focus and metering as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 2; + final MockCameraControl mockCameraControl = MockCameraControl(); + final FocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point exposurePoint = Point(0.1, 0.2); - // Listen to image stream. - final StreamSubscription imageStreamSubscription = - imageStream.listen((CameraImageData data) {}); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); - // Cancel subscription to image stream. - await imageStreamSubscription.cancel(); - final Stream imageStream2 = - camera.onStreamedFrameAvailable(cameraId); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + MockCamera2CameraControl(), + ); - // Listen to image stream again. - final StreamQueue streamQueue = - StreamQueue(imageStream2); - camera.cameraImageDataStreamController!.add(mockCameraImageData); + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - expect(await streamQueue.next, equals(mockCameraImageData)); - await streamQueue.cancel(); - }); + // Test not disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.auto); + clearInteractions(mockCameraControl); + await camera.setExposurePoint(cameraId, exposurePoint); + VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isTrue); + + clearInteractions(mockCameraControl); + + // Test disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); + await camera.setExposurePoint(cameraId, exposurePoint); + verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isFalse); + }, + ); test( - 'onStreamedFrameAvailable returns stream that responds expectedly to being listened to', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 33; - final ProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final CameraSelector mockCameraSelector = MockCameraSelector(); - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final Camera mockCamera = MockCamera(); - final CameraInfo mockCameraInfo = MockCameraInfo(); - final MockImageProxy mockImageProxy = MockImageProxy(); - final MockPlaneProxy mockPlane = MockPlaneProxy(); - final List mockPlanes = [mockPlane]; - final Uint8List buffer = Uint8List(0); - const int pixelStride = 27; - const int rowStride = 58; - const int imageFormat = 582; - const int imageHeight = 100; - const int imageWidth = 200; - - // Tell plugin to create detached Analyzer for testing. - camera.proxy = CameraXProxy( - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Analyzer.pigeon_detached( - analyze: analyze, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - ); + 'setExposureOffset throws exception if exposure compensation not supported', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 6; + const double offset = 2; + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0, + pigeon_instanceManager: testInstanceManager, + ); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = mockCameraSelector; - camera.imageAnalysis = mockImageAnalysis; - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - .thenAnswer((_) async => false); - when(mockProcessCameraProvider - .bindToLifecycle(mockCameraSelector, [mockImageAnalysis])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockImageProxy.getPlanes()) - .thenAnswer((_) async => Future>.value(mockPlanes)); - when(mockPlane.buffer).thenReturn(buffer); - when(mockPlane.rowStride).thenReturn(rowStride); - when(mockPlane.pixelStride).thenReturn(pixelStride); - when(mockImageProxy.format).thenReturn(imageFormat); - when(mockImageProxy.height).thenReturn(imageHeight); - when(mockImageProxy.width).thenReturn(imageWidth); - - final Completer imageDataCompleter = - Completer(); - final StreamSubscription - onStreamedFrameAvailableSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData imageData) { - imageDataCompleter.complete(imageData); - }); + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + + when(mockCameraInfo.exposureState).thenReturn(exposureState); - // Test ImageAnalysis use case is bound to ProcessCameraProvider. - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - final Analyzer capturedAnalyzer = - verify(mockImageAnalysis.setAnalyzer(captureAny)).captured.single - as Analyzer; + expect( + () => camera.setExposureOffset(cameraId, offset), + throwsA(isA()), + ); + }, + ); - capturedAnalyzer.analyze(MockAnalyzer(), mockImageProxy); + test( + 'setExposureOffset throws exception if exposure compensation could not be set for unknown reason', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 11; + const double offset = 3; + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final CameraControl mockCameraControl = MockCameraControl(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); - final CameraImageData imageData = await imageDataCompleter.future; + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + camera.cameraControl = mockCameraControl; - // Test Analyzer correctly process ImageProxy instances. - expect(imageData.planes.length, equals(1)); - expect(imageData.planes[0].bytes, equals(buffer)); - expect(imageData.planes[0].bytesPerRow, equals(rowStride)); - expect(imageData.planes[0].bytesPerPixel, equals(pixelStride)); - expect(imageData.format.raw, equals(imageFormat)); - expect(imageData.height, equals(imageHeight)); - expect(imageData.width, equals(imageWidth)); + when(mockCameraInfo.exposureState).thenReturn(exposureState); + when(mockCameraControl.setExposureCompensationIndex(15)).thenThrow( + PlatformException( + code: 'TEST_ERROR', + message: + 'This is a test error message indicating exposure offset could not be set.', + ), + ); - await onStreamedFrameAvailableSubscription.cancel(); - }); + expect( + () => camera.setExposureOffset(cameraId, offset), + throwsA(isA()), + ); + }, + ); test( - 'onStreamedFrameAvailable returns stream that responds expectedly to being canceled', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 32; - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); + 'setExposureOffset throws exception if exposure compensation could not be set due to camera being closed or newer value being set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 21; + const double offset = 5; + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final CameraControl mockCameraControl = MockCameraControl(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.1, + pigeon_instanceManager: testInstanceManager, + ); + final int expectedExposureCompensationIndex = + (offset / exposureState.exposureCompensationStep).round(); - // Set directly for test versus calling createCamera. - camera.imageAnalysis = mockImageAnalysis; - camera.processCameraProvider = mockProcessCameraProvider; + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + camera.cameraControl = mockCameraControl; - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; + when(mockCameraInfo.exposureState).thenReturn(exposureState); + when( + mockCameraControl.setExposureCompensationIndex( + expectedExposureCompensationIndex, + ), + ).thenAnswer((_) async => Future.value()); - // Tell plugin to create a detached analyzer for testing purposes. - camera.proxy = CameraXProxy( - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockAnalyzer(), - ); + expect( + () => camera.setExposureOffset(cameraId, offset), + throwsA(isA()), + ); + }, + ); - when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - .thenAnswer((_) async => true); + test( + 'setExposureOffset behaves as expected to successful attempt to set exposure compensation index', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 11; + const double offset = 3; + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final CameraControl mockCameraControl = MockCameraControl(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final ExposureState exposureState = ExposureState.pigeon_detached( + exposureCompensationRange: CameraIntegerRange.pigeon_detached( + lower: 3, + upper: 4, + pigeon_instanceManager: testInstanceManager, + ), + exposureCompensationStep: 0.2, + pigeon_instanceManager: testInstanceManager, + ); + final int expectedExposureCompensationIndex = + (offset / exposureState.exposureCompensationStep).round(); - final StreamSubscription imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); + // Set directly for test versus calling createCamera. + camera.cameraInfo = mockCameraInfo; + camera.cameraControl = mockCameraControl; - await imageStreamSubscription.cancel(); + when(mockCameraInfo.exposureState).thenReturn(exposureState); + when( + mockCameraControl.setExposureCompensationIndex( + expectedExposureCompensationIndex, + ), + ).thenAnswer( + (_) async => Future.value( + (expectedExposureCompensationIndex * + exposureState.exposureCompensationStep) + .round(), + ), + ); - verify(mockImageAnalysis.clearAnalyzer()); - }); + // Exposure index * exposure offset step size = exposure offset, i.e. + // 15 * 0.2 = 3. + expect(await camera.setExposureOffset(cameraId, offset), equals(3)); + }, + ); test( - 'onStreamedFrameAvailable sets ImageAnalysis target rotation to current photo orientation when orientation unlocked', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 35; - const int defaultTargetRotation = Surface.rotation90; - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); + 'setFocusPoint clears current auto-exposure metering point as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 93; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // Set directly for test versus calling createCamera. - camera.imageAnalysis = mockImageAnalysis; - camera.processCameraProvider = mockProcessCameraProvider; + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = mockCameraInfo; - // Tell plugin to create a detached analyzer for testing purposes and mock - // call to get current photo orientation. - camera.proxy = CameraXProxy( - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockAnalyzer(), - newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDeviceOrientationManager manager = - MockDeviceOrientationManager(); - when(manager.getDefaultDisplayRotation()).thenAnswer((_) async { - return defaultTargetRotation; - }); - return manager; - }, - ); + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + camera.proxy = getProxyForExposureAndFocus( + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); - when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - .thenAnswer((_) async => true); - - // Orientation is unlocked and plugin does not need to set default target - // rotation manually. - StreamSubscription imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - verifyNever(mockImageAnalysis.setTargetRotation(any)); - await imageStreamSubscription.cancel(); - - // Orientation is locked and plugin does not need to set default target - // rotation manually. - camera.captureOrientationLocked = true; - imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - verifyNever(mockImageAnalysis.setTargetRotation(any)); - await imageStreamSubscription.cancel(); - - // Orientation is locked and plugin does need to set default target - // rotation manually. - camera.captureOrientationLocked = true; - camera.shouldSetDefaultRotation = true; - imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - verifyNever(mockImageAnalysis.setTargetRotation(any)); - await imageStreamSubscription.cancel(); - - // Orientation is unlocked and plugin does need to set default target - // rotation manually. - camera.captureOrientationLocked = false; - camera.shouldSetDefaultRotation = true; - imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); - await untilCalled( - mockImageAnalysis.setTargetRotation(defaultTargetRotation)); - await imageStreamSubscription.cancel(); - }); + // Verify nothing happens if no current focus and metering action has been + // enabled. + await camera.setFocusPoint(cameraId, null); + verifyNever(mockCameraControl.startFocusAndMetering(any)); + verifyNever(mockCameraControl.cancelFocusAndMetering()); - test( - 'lockCaptureOrientation sets capture-related use case target rotations to correct orientation', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 44; + final FocusMeteringAction originalMeteringAction = + FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockImageCapture mockImageCapture = MockImageCapture(); - final MockVideoCapture mockVideoCapture = MockVideoCapture(); + await camera.setFocusPoint(cameraId, null); - // Set directly for test versus calling createCamera. - camera.imageAnalysis = mockImageAnalysis; - camera.imageCapture = mockImageCapture; - camera.videoCapture = mockVideoCapture; - - for (final DeviceOrientation orientation in DeviceOrientation.values) { - int? expectedTargetRotation; - switch (orientation) { - case DeviceOrientation.portraitUp: - expectedTargetRotation = Surface.rotation0; - case DeviceOrientation.landscapeLeft: - expectedTargetRotation = Surface.rotation90; - case DeviceOrientation.portraitDown: - expectedTargetRotation = Surface.rotation180; - case DeviceOrientation.landscapeRight: - expectedTargetRotation = Surface.rotation270; - } + expect(actionBuilderMeteringMode, MeteringMode.ae); + expect( + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAe.single, + ); + verifyNever(mockActionBuilder.addPoint(any)); + verifyNever(mockActionBuilder.addPointWithMode(any, any)); - await camera.lockCaptureOrientation(cameraId, orientation); + // Verify current focus and metering action is cleared if only previously + // set metering point was for auto-exposure. + camera.currentFocusMeteringAction = FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); - verify(mockImageAnalysis.setTargetRotation(expectedTargetRotation)); - verify(mockImageCapture.setTargetRotation(expectedTargetRotation)); - verify(mockVideoCapture.setTargetRotation(expectedTargetRotation)); - expect(camera.captureOrientationLocked, isTrue); - expect(camera.shouldSetDefaultRotation, isTrue); + await camera.setFocusPoint(cameraId, null); - // Reset flags for testing. - camera.captureOrientationLocked = false; - camera.shouldSetDefaultRotation = false; - } - }); + verify(mockCameraControl.cancelFocusAndMetering()); + }, + ); test( - 'unlockCaptureOrientation sets capture-related use case target rotations to current photo/video orientation', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 57; + 'setFocusPoint throws CameraException if invalid point specified', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 23; + final MockCameraControl mockCameraControl = MockCameraControl(); + const Point invalidFocusPoint = Point(-3, 1); - camera.captureOrientationLocked = true; - await camera.unlockCaptureOrientation(cameraId); - expect(camera.captureOrientationLocked, isFalse); - }); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); - test('setExposureMode sets expected controlAeLock value via Camera2 interop', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 78; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); + camera.proxy = getProxyForExposureAndFocus(); - // Set directly for test versus calling createCamera. - camera.camera = MockCamera(); - camera.cameraControl = mockCameraControl; + expect( + () => camera.setFocusPoint(cameraId, invalidFocusPoint), + throwsA(isA()), + ); + }, + ); - // Tell plugin to create detached Camera2CameraControl and - // CaptureRequestOptions instances for testing. - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final CaptureRequestKey controlAELockKey = - CaptureRequestKey.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); - camera.proxy = CameraXProxy( - fromCamera2CameraControl: ({ - required CameraControl cameraControl, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - cameraControl == mockCameraControl - ? mockCamera2CameraControl - : Camera2CameraControl.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - newCaptureRequestOptions: ({ - required Map options, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockCaptureRequestOptions mockCaptureRequestOptions = - MockCaptureRequestOptions(); - options.forEach((CaptureRequestKey key, Object? value) { - when(mockCaptureRequestOptions.getCaptureRequestOption(key)) - .thenAnswer( - (_) async => value, - ); - }); - return mockCaptureRequestOptions; - }, - controlAELockCaptureRequest: () => controlAELockKey, - ); + test( + 'setFocusPoint adds new focus point to focus metering action to start as expected when previous metering points have been set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 9; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // Test auto mode. - await camera.setExposureMode(cameraId, ExposureMode.auto); - - VerificationResult verificationResult = - verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); - CaptureRequestOptions capturedCaptureRequestOptions = - verificationResult.captured.single as CaptureRequestOptions; - expect( - await capturedCaptureRequestOptions - .getCaptureRequestOption(controlAELockKey), - isFalse, - ); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = mockCameraInfo; - // Test locked mode. - clearInteractions(mockCamera2CameraControl); - await camera.setExposureMode(cameraId, ExposureMode.locked); - - verificationResult = - verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); - capturedCaptureRequestOptions = - verificationResult.captured.single as CaptureRequestOptions; - expect( - await capturedCaptureRequestOptions - .getCaptureRequestOption(controlAELockKey), - isTrue, - ); - }); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + double focusPointX = 0.8; + double focusPointY = 0.1; + Point focusPoint = Point(focusPointX, focusPointY); + final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + camera.proxy = getProxyForExposureAndFocus( + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when( + mockFactory.createPoint(focusPointX, focusPointY), + ).thenAnswer((_) async => createdMeteringPoint); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); - test( - 'setExposurePoint clears current auto-exposure metering point as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 93; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // Verify current auto-exposure metering point is removed if previously set. + FocusMeteringAction originalMeteringAction = + FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); + camera.currentFocusMeteringAction = originalMeteringAction; - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = mockCameraInfo; + await camera.setFocusPoint(cameraId, focusPoint); - final MockFocusMeteringActionBuilder mockActionBuilder = - MockFocusMeteringActionBuilder(); - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - when(mockActionBuilder.build()).thenAnswer( - (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], + expect( + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAe.single, + ); + expect(actionBuilderMeteringMode, MeteringMode.ae); + verify( + mockActionBuilder.addPointWithMode( + createdMeteringPoint, + MeteringMode.af, + ), + ); + + // Verify exposure point is set when no auto-focus metering point + // previously set, but an auto-exposure point metering point has been. + focusPointX = 0.2; + focusPointY = 0.9; + focusPoint = Point(focusPointX, focusPointY); + originalMeteringAction = FocusMeteringAction.pigeon_detached( + meteringPointsAe: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], meteringPointsAf: const [], meteringPointsAwb: const [], isAutoCancelEnabled: false, pigeon_instanceManager: testInstanceManager, - ), - ); - MeteringMode? actionBuilderMeteringMode; - MeteringPoint? actionBuilderMeteringPoint; - camera.proxy = - getProxyForExposureAndFocus(withModeFocusMeteringActionBuilder: ({ - required MeteringMode mode, - required MeteringPoint point, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - actionBuilderMeteringMode = mode; - actionBuilderMeteringPoint = point; - return mockActionBuilder; - }); - - // Verify nothing happens if no current focus and metering action has been - // enabled. - await camera.setExposurePoint(cameraId, null); - verifyNever(mockCameraControl.startFocusAndMetering(any)); - verifyNever(mockCameraControl.cancelFocusAndMetering()); - - // Verify current auto-exposure metering point is removed if previously set. - final FocusMeteringAction originalMeteringAction = - FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ); - camera.currentFocusMeteringAction = originalMeteringAction; + ); + camera.currentFocusMeteringAction = originalMeteringAction; - await camera.setExposurePoint(cameraId, null); + await camera.setFocusPoint(cameraId, focusPoint); - expect(actionBuilderMeteringMode, MeteringMode.af); - expect( - actionBuilderMeteringPoint, - originalMeteringAction.meteringPointsAf.single, - ); - verifyNever(mockActionBuilder.addPoint(any)); - verifyNever(mockActionBuilder.addPointWithMode(any, any)); - - // Verify current focus and metering action is cleared if only previously - // set metering point was for auto-exposure. - camera.currentFocusMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, + expect( + actionBuilderMeteringPoint, + originalMeteringAction.meteringPointsAe.single, + ); + expect(actionBuilderMeteringMode, MeteringMode.ae); + verify( + mockActionBuilder.addPointWithMode( + createdMeteringPoint, + MeteringMode.af, ), - ], - meteringPointsAf: const [], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ); - - await camera.setExposurePoint(cameraId, null); + ); + }, + ); - verify(mockCameraControl.cancelFocusAndMetering()); - }); + test( + 'setFocusPoint adds new focus point to focus metering action to start as expected when no previous metering points have been set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 19; + final MockCameraControl mockCameraControl = MockCameraControl(); + const double focusPointX = 0.8; + const double focusPointY = 0.1; + const Point focusPoint = Point(focusPointX, focusPointY); - test('setExposurePoint throws CameraException if invalid point specified', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 23; - final MockCameraControl mockCameraControl = MockCameraControl(); - const Point invalidExposurePoint = Point(3, -1); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); + camera.currentFocusMeteringAction = null; - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + MeteringMode? actionBuilderMeteringMode; + MeteringPoint? actionBuilderMeteringPoint; + final MockFocusMeteringActionBuilder mockActionBuilder = + MockFocusMeteringActionBuilder(); + when(mockActionBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: const [], + meteringPointsAf: const [], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ), + ); + camera.proxy = getProxyForExposureAndFocus( + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when( + mockFactory.createPoint(focusPointX, focusPointY), + ).thenAnswer((_) async => createdMeteringPoint); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: ({ + required MeteringMode mode, + required MeteringPoint point, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + actionBuilderMeteringMode = mode; + actionBuilderMeteringPoint = point; + return mockActionBuilder; + }, + ); - camera.proxy = getProxyForExposureAndFocus(); + await camera.setFocusPoint(cameraId, focusPoint); - expect(() => camera.setExposurePoint(cameraId, invalidExposurePoint), - throwsA(isA())); - }); + expect(actionBuilderMeteringPoint, createdMeteringPoint); + expect(actionBuilderMeteringMode, MeteringMode.af); + }, + ); test( - 'setExposurePoint adds new exposure point to focus metering action to start as expected when previous metering points have been set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 9; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + 'setFocusPoint disables auto-cancel for focus and metering as expected', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 2; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point exposurePoint = Point(0.1, 0.2); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = mockCameraInfo; + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - double exposurePointX = 0.8; - double exposurePointY = 0.1; - final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); - MeteringMode? actionBuilderMeteringMode; - MeteringPoint? actionBuilderMeteringPoint; - final MockFocusMeteringActionBuilder mockActionBuilder = - MockFocusMeteringActionBuilder(); - when(mockActionBuilder.build()).thenAnswer( - (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], - meteringPointsAf: const [], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ), - ); - camera.proxy = getProxyForExposureAndFocus( - newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, - required double width, - required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDisplayOrientedMeteringPointFactory mockFactory = - MockDisplayOrientedMeteringPointFactory(); - when(mockFactory.createPoint(exposurePointX, exposurePointY)) - .thenAnswer( - (_) async => createdMeteringPoint, - ); - return mockFactory; - }, - withModeFocusMeteringActionBuilder: ({ - required MeteringMode mode, - required MeteringPoint point, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - actionBuilderMeteringMode = mode; - actionBuilderMeteringPoint = point; - return mockActionBuilder; - }, - ); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + MockCamera2CameraControl(), + ); - // Verify current auto-exposure metering point is removed if previously set. - Point exposurePoint = Point(exposurePointX, exposurePointY); - FocusMeteringAction originalMeteringAction = - FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ); - camera.currentFocusMeteringAction = originalMeteringAction; + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - await camera.setExposurePoint(cameraId, exposurePoint); + // Test not disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.auto); + clearInteractions(mockCameraControl); - expect( - actionBuilderMeteringPoint, - originalMeteringAction.meteringPointsAf.single, - ); - expect(actionBuilderMeteringMode, MeteringMode.af); - verify( - mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.ae), - ); + await camera.setFocusPoint(cameraId, exposurePoint); + VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isTrue); - // Verify exposure point is set when no auto-exposure metering point - // previously set, but an auto-focus point metering point has been. - exposurePointX = 0.2; - exposurePointY = 0.9; - exposurePoint = Point(exposurePointX, exposurePointY); - originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ); - camera.currentFocusMeteringAction = originalMeteringAction; + clearInteractions(mockCameraControl); - await camera.setExposurePoint(cameraId, exposurePoint); + // Test disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); - expect( - actionBuilderMeteringPoint, - originalMeteringAction.meteringPointsAf.single, - ); - expect(actionBuilderMeteringMode, MeteringMode.af); - verify( - mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.ae), - ); - }); + await camera.setFocusPoint(cameraId, exposurePoint); + verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isFalse); + }, + ); test( - 'setExposurePoint adds new exposure point to focus metering action to start as expected when no previous metering points have been set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 19; - final MockCameraControl mockCameraControl = MockCameraControl(); - const double exposurePointX = 0.8; - const double exposurePointY = 0.1; - const Point exposurePoint = - Point(exposurePointX, exposurePointY); - - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - camera.currentFocusMeteringAction = null; + 'setFocusMode does nothing if setting auto-focus mode and is already using auto-focus mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 4; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); - MeteringMode? actionBuilderMeteringMode; - MeteringPoint? actionBuilderMeteringPoint; - final MockFocusMeteringActionBuilder mockActionBuilder = - MockFocusMeteringActionBuilder(); - when(mockActionBuilder.build()).thenAnswer( - (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], - meteringPointsAf: const [], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ), - ); - camera.proxy = getProxyForExposureAndFocus( - newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, - required double width, - required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDisplayOrientedMeteringPointFactory mockFactory = - MockDisplayOrientedMeteringPointFactory(); - when(mockFactory.createPoint(exposurePointX, exposurePointY)) - .thenAnswer( - (_) async => createdMeteringPoint, - ); - return mockFactory; - }, - withModeFocusMeteringActionBuilder: ({ - required MeteringMode mode, - required MeteringPoint point, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - actionBuilderMeteringMode = mode; - actionBuilderMeteringPoint = point; - return mockActionBuilder; - }, - ); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); - await camera.setExposurePoint(cameraId, exposurePoint); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + MockCamera2CameraControl(), + ); - expect(actionBuilderMeteringPoint, createdMeteringPoint); - expect(actionBuilderMeteringMode, MeteringMode.ae); - }); + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - test( - 'setExposurePoint disables auto-cancel for focus and metering as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 2; - final MockCameraControl mockCameraControl = MockCameraControl(); - final FocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point exposurePoint = Point(0.1, 0.2); + // Set locked focus mode and then try to re-set it. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Test not disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.auto); - clearInteractions(mockCameraControl); - await camera.setExposurePoint(cameraId, exposurePoint); - VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isTrue); - - clearInteractions(mockCameraControl); - - // Test disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - await camera.setExposurePoint(cameraId, exposurePoint); - verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isFalse); - }); + await camera.setFocusMode(cameraId, FocusMode.locked); + verifyNoMoreInteractions(mockCameraControl); + }, + ); test( - 'setExposureOffset throws exception if exposure compensation not supported', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 6; - const double offset = 2; - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ExposureState exposureState = ExposureState.pigeon_detached( - exposureCompensationRange: CameraIntegerRange.pigeon_detached( - lower: 3, - upper: 4, - pigeon_instanceManager: testInstanceManager, - ), - exposureCompensationStep: 0, - pigeon_instanceManager: testInstanceManager, - ); - - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; + 'setFocusMode does nothing if setting locked focus mode and is already using locked focus mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 4; + final MockCameraControl mockCameraControl = MockCameraControl(); - when(mockCameraInfo.exposureState).thenReturn(exposureState); + // Camera uses auto-focus by default, so try setting auto mode again. + await camera.setFocusMode(cameraId, FocusMode.auto); - expect(() => camera.setExposureOffset(cameraId, offset), - throwsA(isA())); - }); + verifyNoMoreInteractions(mockCameraControl); + }, + ); test( - 'setExposureOffset throws exception if exposure compensation could not be set for unknown reason', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 11; - const double offset = 3; - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final CameraControl mockCameraControl = MockCameraControl(); - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ExposureState exposureState = ExposureState.pigeon_detached( - exposureCompensationRange: CameraIntegerRange.pigeon_detached( - lower: 3, - upper: 4, - pigeon_instanceManager: testInstanceManager, - ), - exposureCompensationStep: 0.2, - pigeon_instanceManager: testInstanceManager, - ); + 'setFocusMode removes default auto-focus point if previously set and setting auto-focus mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 5; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double exposurePointX = 0.2; + const double exposurePointY = 0.7; - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - camera.cameraControl = mockCameraControl; + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; - when(mockCameraInfo.exposureState).thenReturn(exposureState); - when(mockCameraControl.setExposureCompensationIndex(15)).thenThrow( - PlatformException( - code: 'TEST_ERROR', - message: - 'This is a test error message indicating exposure offset could not be set.')); + when( + mockCamera2CameraControl.addCaptureRequestOptions(any), + ).thenAnswer((_) async => Future.value()); - expect(() => camera.setExposureOffset(cameraId, offset), - throwsA(isA())); - }); + final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ); + final List createdMeteringPoints = []; + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + mockCamera2CameraControl, + newDisplayOrientedMeteringPointFactory: ({ + required CameraInfo cameraInfo, + required double width, + required double height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when( + mockFactory.createPoint(exposurePointX, exposurePointY), + ).thenAnswer((_) async { + final MeteringPoint createdMeteringPoint = + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + createdMeteringPoints.add(createdMeteringPoint); + return createdMeteringPoint; + }); + when(mockFactory.createPointWithSize(0.5, 0.5, 1)).thenAnswer(( + _, + ) async { + final MeteringPoint createdMeteringPoint = + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); + createdMeteringPoints.add(createdMeteringPoint); + return createdMeteringPoint; + }); + return mockFactory; + }, + ); - test( - 'setExposureOffset throws exception if exposure compensation could not be set due to camera being closed or newer value being set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 21; - const double offset = 5; - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final CameraControl mockCameraControl = MockCameraControl(); - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ExposureState exposureState = ExposureState.pigeon_detached( - exposureCompensationRange: CameraIntegerRange.pigeon_detached( - lower: 3, - upper: 4, - pigeon_instanceManager: testInstanceManager, - ), - exposureCompensationStep: 0.1, - pigeon_instanceManager: testInstanceManager, - ); - final int expectedExposureCompensationIndex = - (offset / exposureState.exposureCompensationStep).round(); + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - camera.cameraControl = mockCameraControl; + // Set exposure points. + await camera.setExposurePoint( + cameraId, + const Point(exposurePointX, exposurePointY), + ); - when(mockCameraInfo.exposureState).thenReturn(exposureState); - when(mockCameraControl - .setExposureCompensationIndex(expectedExposureCompensationIndex)) - .thenAnswer((_) async => Future.value()); + // Lock focus default focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); - expect(() => camera.setExposureOffset(cameraId, offset), - throwsA(isA())); - }); + clearInteractions(mockCameraControl); + + // Test removal of default focus point. + await camera.setFocusMode(cameraId, FocusMode.auto); + + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isTrue); + + // We expect only the previously set exposure point to be re-set. + expect(capturedAction.meteringPointsAe.first, createdMeteringPoints[0]); + expect(capturedAction.meteringPointsAe.length, equals(1)); + expect(capturedAction.meteringPointsAf.length, equals(0)); + }, + ); test( - 'setExposureOffset behaves as expected to successful attempt to set exposure compensation index', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 11; - const double offset = 3; - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final CameraControl mockCameraControl = MockCameraControl(); - final PigeonInstanceManager testInstanceManager = PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ); - final ExposureState exposureState = ExposureState.pigeon_detached( - exposureCompensationRange: CameraIntegerRange.pigeon_detached( - lower: 3, - upper: 4, - pigeon_instanceManager: testInstanceManager, - ), - exposureCompensationStep: 0.2, - pigeon_instanceManager: testInstanceManager, - ); - final int expectedExposureCompensationIndex = - (offset / exposureState.exposureCompensationStep).round(); + 'setFocusMode cancels focus and metering if only focus point previously set is a focus point', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 5; + final MockCameraControl mockCameraControl = MockCameraControl(); + final FocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); - // Set directly for test versus calling createCamera. - camera.cameraInfo = mockCameraInfo; - camera.cameraControl = mockCameraControl; + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; - when(mockCameraInfo.exposureState).thenReturn(exposureState); - when(mockCameraControl - .setExposureCompensationIndex(expectedExposureCompensationIndex)) - .thenAnswer((_) async => Future.value( - (expectedExposureCompensationIndex * - exposureState.exposureCompensationStep) - .round())); - - // Exposure index * exposure offset step size = exposure offset, i.e. - // 15 * 0.2 = 3. - expect(await camera.setExposureOffset(cameraId, offset), equals(3)); - }); + when( + mockCamera2CameraControl.addCaptureRequestOptions(any), + ).thenAnswer((_) async => Future.value()); - test('setFocusPoint clears current auto-exposure metering point as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 93; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + mockCamera2CameraControl, + ); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = mockCameraInfo; + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - final MockFocusMeteringActionBuilder mockActionBuilder = - MockFocusMeteringActionBuilder(); - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - when(mockActionBuilder.build()).thenAnswer( - (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], - meteringPointsAf: const [], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ), - ); - MeteringMode? actionBuilderMeteringMode; - MeteringPoint? actionBuilderMeteringPoint; - camera.proxy = - getProxyForExposureAndFocus(withModeFocusMeteringActionBuilder: ({ - required MeteringMode mode, - required MeteringPoint point, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - actionBuilderMeteringMode = mode; - actionBuilderMeteringPoint = point; - return mockActionBuilder; - }); + // Lock focus default focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); - // Verify nothing happens if no current focus and metering action has been - // enabled. - await camera.setFocusPoint(cameraId, null); - verifyNever(mockCameraControl.startFocusAndMetering(any)); - verifyNever(mockCameraControl.cancelFocusAndMetering()); + // Test removal of default focus point. + await camera.setFocusMode(cameraId, FocusMode.auto); - final FocusMeteringAction originalMeteringAction = - FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ); - camera.currentFocusMeteringAction = originalMeteringAction; + verify(mockCameraControl.cancelFocusAndMetering()); + }, + ); - await camera.setFocusPoint(cameraId, null); + test( + 'setFocusMode re-focuses on previously set auto-focus point with auto-canceled enabled if setting auto-focus mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 6; + final MockCameraControl mockCameraControl = MockCameraControl(); + final FocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double focusPointX = 0.1; + const double focusPointY = 0.2; - expect(actionBuilderMeteringMode, MeteringMode.ae); - expect( - actionBuilderMeteringPoint, - originalMeteringAction.meteringPointsAe.single, - ); - verifyNever(mockActionBuilder.addPoint(any)); - verifyNever(mockActionBuilder.addPointWithMode(any, any)); - - // Verify current focus and metering action is cleared if only previously - // set metering point was for auto-exposure. - camera.currentFocusMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ); + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; - await camera.setFocusPoint(cameraId, null); + when( + mockCamera2CameraControl.addCaptureRequestOptions(any), + ).thenAnswer((_) async => Future.value()); - verify(mockCameraControl.cancelFocusAndMetering()); - }); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + mockCamera2CameraControl, + ); - test('setFocusPoint throws CameraException if invalid point specified', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 23; - final MockCameraControl mockCameraControl = MockCameraControl(); - const Point invalidFocusPoint = Point(-3, 1); + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); + // Lock a focus point. + await camera.setFocusPoint( + cameraId, + const Point(focusPointX, focusPointY), + ); + await camera.setFocusMode(cameraId, FocusMode.locked); - camera.proxy = getProxyForExposureAndFocus(); + clearInteractions(mockCameraControl); - expect(() => camera.setFocusPoint(cameraId, invalidFocusPoint), - throwsA(isA())); - }); + // Test re-focusing on previously set auto-focus point with auto-cancel enabled. + await camera.setFocusMode(cameraId, FocusMode.auto); + + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isTrue); + expect(capturedAction.meteringPointsAe.length, equals(0)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(focusPointX)); + expect(focusPoint.y, equals(focusPointY)); + expect(focusPoint.size, isNull); + }, + ); test( - 'setFocusPoint adds new focus point to focus metering action to start as expected when previous metering points have been set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 9; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 7; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double focusPointX = 0.88; + const double focusPointY = 0.33; - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = mockCameraInfo; + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - double focusPointX = 0.8; - double focusPointY = 0.1; - Point focusPoint = Point(focusPointX, focusPointY); - final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); - MeteringMode? actionBuilderMeteringMode; - MeteringPoint? actionBuilderMeteringPoint; - final MockFocusMeteringActionBuilder mockActionBuilder = - MockFocusMeteringActionBuilder(); - when(mockActionBuilder.build()).thenAnswer( - (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], - meteringPointsAf: const [], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ), - ); - camera.proxy = getProxyForExposureAndFocus( - newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, - required double width, - required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDisplayOrientedMeteringPointFactory mockFactory = - MockDisplayOrientedMeteringPointFactory(); - when(mockFactory.createPoint(focusPointX, focusPointY)).thenAnswer( - (_) async => createdMeteringPoint, - ); - return mockFactory; - }, - withModeFocusMeteringActionBuilder: ({ - required MeteringMode mode, - required MeteringPoint point, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - actionBuilderMeteringMode = mode; - actionBuilderMeteringPoint = point; - return mockActionBuilder; - }, - ); + when( + mockCamera2CameraControl.addCaptureRequestOptions(any), + ).thenAnswer((_) async => Future.value()); - // Verify current auto-exposure metering point is removed if previously set. - FocusMeteringAction originalMeteringAction = - FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ); - camera.currentFocusMeteringAction = originalMeteringAction; + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + mockCamera2CameraControl, + ); - await camera.setFocusPoint(cameraId, focusPoint); + // Set a focus point. + await camera.setFocusPoint( + cameraId, + const Point(focusPointX, focusPointY), + ); + clearInteractions(mockCameraControl); - expect( - actionBuilderMeteringPoint, - originalMeteringAction.meteringPointsAe.single, - ); - expect(actionBuilderMeteringMode, MeteringMode.ae); - verify( - mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.af), - ); + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); - // Verify exposure point is set when no auto-focus metering point - // previously set, but an auto-exposure point metering point has been. - focusPointX = 0.2; - focusPointY = 0.9; - focusPoint = Point(focusPointX, focusPointY); - originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: const [], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ); - camera.currentFocusMeteringAction = originalMeteringAction; + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isFalse); + + // We expect the set focus point to be locked. + expect(capturedAction.meteringPointsAe.length, equals(0)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(focusPointX)); + expect(focusPoint.y, equals(focusPointY)); + expect(focusPoint.size, isNull); + }, + ); - await camera.setFocusPoint(cameraId, focusPoint); + test( + 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point amongst others', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 8; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double focusPointX = 0.38; + const double focusPointY = 0.38; + const double exposurePointX = 0.54; + const double exposurePointY = 0.45; - expect( - actionBuilderMeteringPoint, - originalMeteringAction.meteringPointsAe.single, - ); - expect(actionBuilderMeteringMode, MeteringMode.ae); - verify( - mockActionBuilder.addPointWithMode(createdMeteringPoint, MeteringMode.af), - ); - }); + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; + + when( + mockCamera2CameraControl.addCaptureRequestOptions(any), + ).thenAnswer((_) async => Future.value()); + + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + mockCamera2CameraControl, + ); + + // Set focus and exposure points. + await camera.setFocusPoint( + cameraId, + const Point(focusPointX, focusPointY), + ); + await camera.setExposurePoint( + cameraId, + const Point(exposurePointX, exposurePointY), + ); + clearInteractions(mockCameraControl); + + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); + + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isFalse); + + // We expect two MeteringPoints, the set focus point and the set exposure + // point. + expect(capturedAction.meteringPointsAe.length, equals(1)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(focusPointX)); + expect(focusPoint.y, equals(focusPointY)); + expect(focusPoint.size, isNull); + + final TestMeteringPoint exposurePoint = + capturedAction.meteringPointsAe.single as TestMeteringPoint; + expect(exposurePoint.x, equals(exposurePointX)); + expect(exposurePoint.y, equals(exposurePointY)); + expect(exposurePoint.size, isNull); + }, + ); test( - 'setFocusPoint adds new focus point to focus metering action to start as expected when no previous metering points have been set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 19; - final MockCameraControl mockCameraControl = MockCameraControl(); - const double focusPointX = 0.8; - const double focusPointY = 0.1; - const Point focusPoint = Point(focusPointX, focusPointY); + 'setFocusMode starts expected focus and metering action if setting locked focus mode and current focus and metering action does not contain an auto-focus point', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 9; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double exposurePointX = 0.8; + const double exposurePointY = 0.3; + const double defaultFocusPointX = 0.5; + const double defaultFocusPointY = 0.5; + const double defaultFocusPointSize = 1; - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - camera.currentFocusMeteringAction = null; + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); - MeteringMode? actionBuilderMeteringMode; - MeteringPoint? actionBuilderMeteringPoint; - final MockFocusMeteringActionBuilder mockActionBuilder = - MockFocusMeteringActionBuilder(); - when(mockActionBuilder.build()).thenAnswer( - (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: const [], - meteringPointsAf: const [], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, - pigeon_instanceManager: testInstanceManager, - ), - ); - camera.proxy = getProxyForExposureAndFocus( - newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, - required double width, - required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDisplayOrientedMeteringPointFactory mockFactory = - MockDisplayOrientedMeteringPointFactory(); - when(mockFactory.createPoint(focusPointX, focusPointY)).thenAnswer( - (_) async => createdMeteringPoint, - ); - return mockFactory; - }, - withModeFocusMeteringActionBuilder: ({ - required MeteringMode mode, - required MeteringPoint point, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - actionBuilderMeteringMode = mode; - actionBuilderMeteringPoint = point; - return mockActionBuilder; - }, - ); + when( + mockCamera2CameraControl.addCaptureRequestOptions(any), + ).thenAnswer((_) async => Future.value()); - await camera.setFocusPoint(cameraId, focusPoint); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + mockCamera2CameraControl, + ); - expect(actionBuilderMeteringPoint, createdMeteringPoint); - expect(actionBuilderMeteringMode, MeteringMode.af); - }); + // Set an exposure point (creates a current focus and metering action + // without a focus point). + await camera.setExposurePoint( + cameraId, + const Point(exposurePointX, exposurePointY), + ); + clearInteractions(mockCameraControl); - test('setFocusPoint disables auto-cancel for focus and metering as expected', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 2; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point exposurePoint = Point(0.1, 0.2); + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Test not disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.auto); - clearInteractions(mockCameraControl); - - await camera.setFocusPoint(cameraId, exposurePoint); - VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isTrue); - - clearInteractions(mockCameraControl); - - // Test disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - await camera.setFocusPoint(cameraId, exposurePoint); - verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - capturedAction = verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isFalse); - }); + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isFalse); + + // We expect two MeteringPoints, the default focus point and the set + //exposure point. + expect(capturedAction.meteringPointsAe.length, equals(1)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(defaultFocusPointX)); + expect(focusPoint.y, equals(defaultFocusPointY)); + expect(focusPoint.size, equals(defaultFocusPointSize)); + + final TestMeteringPoint exposurePoint = + capturedAction.meteringPointsAe.single as TestMeteringPoint; + expect(exposurePoint.x, equals(exposurePointX)); + expect(exposurePoint.y, equals(exposurePointY)); + expect(exposurePoint.size, isNull); + }, + ); test( - 'setFocusMode does nothing if setting auto-focus mode and is already using auto-focus mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 4; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); + 'setFocusMode starts expected focus and metering action if there is no current focus and metering action', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 10; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); + const double defaultFocusPointX = 0.5; + const double defaultFocusPointY = 0.5; + const double defaultFocusPointSize = 1; - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); + when( + mockCamera2CameraControl.addCaptureRequestOptions(any), + ).thenAnswer((_) async => Future.value()); - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + mockCamera2CameraControl, + ); - // Set locked focus mode and then try to re-set it. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); - await camera.setFocusMode(cameraId, FocusMode.locked); - verifyNoMoreInteractions(mockCameraControl); - }); + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isFalse); + + // We expect only the default focus point to be set. + expect(capturedAction.meteringPointsAe.length, equals(0)); + expect(capturedAction.meteringPointsAf.length, equals(1)); + expect(capturedAction.meteringPointsAwb.length, equals(0)); + + final TestMeteringPoint focusPoint = + capturedAction.meteringPointsAf.single as TestMeteringPoint; + expect(focusPoint.x, equals(defaultFocusPointX)); + expect(focusPoint.y, equals(defaultFocusPointY)); + expect(focusPoint.size, equals(defaultFocusPointSize)); + }, + ); test( - 'setFocusMode does nothing if setting locked focus mode and is already using locked focus mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 4; - final MockCameraControl mockCameraControl = MockCameraControl(); + 'setFocusMode re-sets exposure mode if setting locked focus mode while using auto exposure mode', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 11; + final MockCameraControl mockCameraControl = MockCameraControl(); + final FocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + final MockCamera2CameraControl mockCamera2CameraControl = + MockCamera2CameraControl(); - // Camera uses auto-focus by default, so try setting auto mode again. - await camera.setFocusMode(cameraId, FocusMode.auto); + // Set directly for test versus calling createCamera. + camera.cameraInfo = MockCameraInfo(); + camera.cameraControl = mockCameraControl; - verifyNoMoreInteractions(mockCameraControl); - }); + when( + mockCamera2CameraControl.addCaptureRequestOptions(any), + ).thenAnswer((_) async => Future.value()); - test( - 'setFocusMode removes default auto-focus point if previously set and setting auto-focus mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 5; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double exposurePointX = 0.2; - const double exposurePointY = 0.7; + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + mockCamera2CameraControl, + ); - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; + // Make setting focus and metering action successful for test. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); + // Set auto exposure mode. + await camera.setExposureMode(cameraId, ExposureMode.auto); + clearInteractions(mockCamera2CameraControl); - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - final List createdMeteringPoints = []; - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, - mockCamera2CameraControl, - newDisplayOrientedMeteringPointFactory: ({ - required CameraInfo cameraInfo, - required double width, - required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDisplayOrientedMeteringPointFactory mockFactory = - MockDisplayOrientedMeteringPointFactory(); - when(mockFactory.createPoint(exposurePointX, exposurePointY)) - .thenAnswer( - (_) async { - final MeteringPoint createdMeteringPoint = - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); - createdMeteringPoints.add(createdMeteringPoint); - return createdMeteringPoint; - }, - ); - when(mockFactory.createPointWithSize(0.5, 0.5, 1)).thenAnswer( - (_) async { - final MeteringPoint createdMeteringPoint = - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); - createdMeteringPoints.add(createdMeteringPoint); - return createdMeteringPoint; - }, - ); - return mockFactory; - }, - ); + // Lock focus point. + await camera.setFocusMode(cameraId, FocusMode.locked); + + final VerificationResult verificationResult = verify( + mockCamera2CameraControl.addCaptureRequestOptions(captureAny), + ); + final CaptureRequestOptions capturedCaptureRequestOptions = + verificationResult.captured.single as CaptureRequestOptions; + expect( + await capturedCaptureRequestOptions.getCaptureRequestOption( + camera.proxy.controlAELockCaptureRequest(), + ), + isFalse, + ); + }, + ); + + test( + 'setFocusPoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 22; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point focusPoint = Point(0.21, 0.21); + + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + MockCamera2CameraControl(), + ); - // Set exposure points. - await camera.setExposurePoint( - cameraId, const Point(exposurePointX, exposurePointY)); + // Make setting focus and metering action successful to set locked focus + // mode. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - // Lock focus default focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); + // Set exposure point to later mock failed call to set an exposure point ( + // otherwise, focus and metering will be canceled altogether, which is + //considered a successful call). + await camera.setExposurePoint(cameraId, const Point(0.3, 0.4)); - clearInteractions(mockCameraControl); + // Set locked focus mode so we can set auto mode (cannot set auto mode + // directly since it is the default). + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); - // Test removal of default focus point. - await camera.setFocusMode(cameraId, FocusMode.auto); + // Make setting focus and metering action fail to test that auto-cancel is + // still disabled. + reset(mockFocusMeteringResult); + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isTrue); + // Test disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.auto); + clearInteractions(mockCameraControl); - // We expect only the previously set exposure point to be re-set. - expect(capturedAction.meteringPointsAe.first, createdMeteringPoints[0]); - expect(capturedAction.meteringPointsAe.length, equals(1)); - expect(capturedAction.meteringPointsAf.length, equals(0)); - }); + await camera.setFocusPoint(cameraId, focusPoint); + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isFalse); + }, + ); test( - 'setFocusMode cancels focus and metering if only focus point previously set is a focus point', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 5; - final MockCameraControl mockCameraControl = MockCameraControl(); - final FocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); + 'setExposurePoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 342; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point exposurePoint = Point(0.23, 0.32); - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + MockCamera2CameraControl(), + ); - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); + // Make setting focus and metering action successful to set locked focus + // mode. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); + // Set exposure point to later mock failed call to set an exposure point ( + // otherwise, focus and metering will be canceled altogether, which is + //considered a successful call). + await camera.setExposurePoint(cameraId, const Point(0.4, 0.3)); - // Lock focus default focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); + // Set locked focus mode so we can set auto mode (cannot set auto mode + // directly since it is the default). + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); - // Test removal of default focus point. - await camera.setFocusMode(cameraId, FocusMode.auto); + // Make setting focus and metering action fail to test that auto-cancel is + // still disabled. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); - verify(mockCameraControl.cancelFocusAndMetering()); - }); + // Test disabling auto cancel. + await camera.setFocusMode(cameraId, FocusMode.auto); + clearInteractions(mockCameraControl); - test( - 'setFocusMode re-focuses on previously set auto-focus point with auto-canceled enabled if setting auto-focus mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 6; - final MockCameraControl mockCameraControl = MockCameraControl(); - final FocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double focusPointX = 0.1; - const double focusPointY = 0.2; + await camera.setExposurePoint(cameraId, exposurePoint); + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isFalse); + }, + ); - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; + test( + 'setFocusPoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 232; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point focusPoint = Point(0.221, 0.211); - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + MockCamera2CameraControl(), + ); - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); + // Make setting focus and metering action fail to test auto-cancel is not + // disabled. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - // Lock a focus point. - await camera.setFocusPoint( - cameraId, - const Point(focusPointX, focusPointY), - ); - await camera.setFocusMode(cameraId, FocusMode.locked); - - clearInteractions(mockCameraControl); - - // Test re-focusing on previously set auto-focus point with auto-cancel enabled. - await camera.setFocusMode(cameraId, FocusMode.auto); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isTrue); - expect(capturedAction.meteringPointsAe.length, equals(0)); - expect(capturedAction.meteringPointsAf.length, equals(1)); - expect(capturedAction.meteringPointsAwb.length, equals(0)); - final TestMeteringPoint focusPoint = - capturedAction.meteringPointsAf.single as TestMeteringPoint; - expect(focusPoint.x, equals(focusPointX)); - expect(focusPoint.y, equals(focusPointY)); - expect(focusPoint.size, isNull); - }); + // Set exposure point to later mock failed call to set an exposure point. + await camera.setExposurePoint(cameraId, const Point(0.43, 0.34)); - test( - 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 7; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double focusPointX = 0.88; - const double focusPointY = 0.33; + // Test failing to set locked focus mode. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; + await camera.setFocusPoint(cameraId, focusPoint); + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isTrue); + }, + ); - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); + test( + 'setExposurePoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 323; + final MockCameraControl mockCameraControl = MockCameraControl(); + final MockFocusMeteringResult mockFocusMeteringResult = + MockFocusMeteringResult(); + const Point exposurePoint = Point(0.223, 0.332); - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); + // Set directly for test versus calling createCamera. + camera.cameraControl = mockCameraControl; + camera.cameraInfo = MockCameraInfo(); - // Set a focus point. - await camera.setFocusPoint( - cameraId, const Point(focusPointX, focusPointY)); - clearInteractions(mockCameraControl); + camera.proxy = getProxyForSettingFocusandExposurePoints( + mockCameraControl, + MockCamera2CameraControl(), + ); - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); + // Make setting focus and metering action fail to test auto-cancel is not + // disabled. + when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); + when(mockCameraControl.startFocusAndMetering(any)).thenAnswer( + (_) async => Future.value(mockFocusMeteringResult), + ); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isFalse); + // Set exposure point to later mock failed call to set an exposure point. + await camera.setExposurePoint(cameraId, const Point(0.5, 0.2)); - // We expect the set focus point to be locked. - expect(capturedAction.meteringPointsAe.length, equals(0)); - expect(capturedAction.meteringPointsAf.length, equals(1)); - expect(capturedAction.meteringPointsAwb.length, equals(0)); + // Test failing to set locked focus mode. + await camera.setFocusMode(cameraId, FocusMode.locked); + clearInteractions(mockCameraControl); - final TestMeteringPoint focusPoint = - capturedAction.meteringPointsAf.single as TestMeteringPoint; - expect(focusPoint.x, equals(focusPointX)); - expect(focusPoint.y, equals(focusPointY)); - expect(focusPoint.size, isNull); - }); + await camera.setExposurePoint(cameraId, exposurePoint); + final VerificationResult verificationResult = verify( + mockCameraControl.startFocusAndMetering(captureAny), + ); + final FocusMeteringAction capturedAction = + verificationResult.captured.single as FocusMeteringAction; + expect(capturedAction.isAutoCancelEnabled, isTrue); + }, + ); test( - 'setFocusMode starts expected focus and metering action with previously set auto-focus point if setting locked focus mode and current focus and metering action has auto-focus point amongst others', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 8; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double focusPointX = 0.38; - const double focusPointY = 0.38; - const double exposurePointX = 0.54; - const double exposurePointY = 0.45; + 'onStreamedFrameAvailable binds ImageAnalysis use case when not already bound', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 22; + final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); + final MockProcessCameraProvider mockProcessCameraProvider = + MockProcessCameraProvider(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; + // Set directly for test versus calling createCamera. + camera.imageAnalysis = mockImageAnalysis; + camera.processCameraProvider = mockProcessCameraProvider; + camera.cameraSelector = MockCameraSelector(); - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Set focus and exposure points. - await camera.setFocusPoint( - cameraId, const Point(focusPointX, focusPointY)); - await camera.setExposurePoint( - cameraId, const Point(exposurePointX, exposurePointY)); - clearInteractions(mockCameraControl); - - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isFalse); - - // We expect two MeteringPoints, the set focus point and the set exposure - // point. - expect(capturedAction.meteringPointsAe.length, equals(1)); - expect(capturedAction.meteringPointsAf.length, equals(1)); - expect(capturedAction.meteringPointsAwb.length, equals(0)); - - final TestMeteringPoint focusPoint = - capturedAction.meteringPointsAf.single as TestMeteringPoint; - expect(focusPoint.x, equals(focusPointX)); - expect(focusPoint.y, equals(focusPointY)); - expect(focusPoint.size, isNull); - - final TestMeteringPoint exposurePoint = - capturedAction.meteringPointsAe.single as TestMeteringPoint; - expect(exposurePoint.x, equals(exposurePointX)); - expect(exposurePoint.y, equals(exposurePointY)); - expect(exposurePoint.size, isNull); - }); + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - test( - 'setFocusMode starts expected focus and metering action if setting locked focus mode and current focus and metering action does not contain an auto-focus point', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 9; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double exposurePointX = 0.8; - const double exposurePointY = 0.3; - const double defaultFocusPointX = 0.5; - const double defaultFocusPointY = 0.5; - const double defaultFocusPointSize = 1; + // Tell plugin to create a detached analyzer for testing purposes. + camera.proxy = CameraXProxy( + newAnalyzer: + ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => MockAnalyzer(), + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + ); - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; + when( + mockProcessCameraProvider.isBound(mockImageAnalysis), + ).thenAnswer((_) async => false); + when( + mockProcessCameraProvider.bindToLifecycle(any, [ + mockImageAnalysis, + ]), + ).thenAnswer((_) async => mockCamera); + when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + + final StreamSubscription imageStreamSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData data) {}); + + await untilCalled(mockImageAnalysis.setAnalyzer(any)); + verify( + mockProcessCameraProvider.bindToLifecycle( + camera.cameraSelector, + [mockImageAnalysis], + ), + ); - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Set an exposure point (creates a current focus and metering action - // without a focus point). - await camera.setExposurePoint( - cameraId, const Point(exposurePointX, exposurePointY)); - clearInteractions(mockCameraControl); - - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); - - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isFalse); - - // We expect two MeteringPoints, the default focus point and the set - //exposure point. - expect(capturedAction.meteringPointsAe.length, equals(1)); - expect(capturedAction.meteringPointsAf.length, equals(1)); - expect(capturedAction.meteringPointsAwb.length, equals(0)); - - final TestMeteringPoint focusPoint = - capturedAction.meteringPointsAf.single as TestMeteringPoint; - expect(focusPoint.x, equals(defaultFocusPointX)); - expect(focusPoint.y, equals(defaultFocusPointY)); - expect(focusPoint.size, equals(defaultFocusPointSize)); - - final TestMeteringPoint exposurePoint = - capturedAction.meteringPointsAe.single as TestMeteringPoint; - expect(exposurePoint.x, equals(exposurePointX)); - expect(exposurePoint.y, equals(exposurePointY)); - expect(exposurePoint.size, isNull); - }); + await imageStreamSubscription.cancel(); + }, + ); test( - 'setFocusMode starts expected focus and metering action if there is no current focus and metering action', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 10; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); - const double defaultFocusPointX = 0.5; - const double defaultFocusPointY = 0.5; - const double defaultFocusPointSize = 1; - - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; - - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); - - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); + 'startVideoCapturing unbinds ImageAnalysis use case when camera device is not at least level 3, no image streaming callback is specified, and preview is not paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isFalse); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); - // We expect only the default focus point to be set. - expect(capturedAction.meteringPointsAe.length, equals(0)); - expect(capturedAction.meteringPointsAf.length, equals(1)); - expect(capturedAction.meteringPointsAwb.length, equals(0)); + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - final TestMeteringPoint focusPoint = - capturedAction.meteringPointsAf.single as TestMeteringPoint; - expect(focusPoint.x, equals(defaultFocusPointX)); - expect(focusPoint.y, equals(defaultFocusPointY)); - expect(focusPoint.size, equals(defaultFocusPointSize)); - }); + // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); - test( - 'setFocusMode re-sets exposure mode if setting locked focus mode while using auto exposure mode', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 11; - final MockCameraControl mockCameraControl = MockCameraControl(); - final FocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - final MockCamera2CameraControl mockCamera2CameraControl = - MockCamera2CameraControl(); + const int cameraId = 7; - // Set directly for test versus calling createCamera. - camera.cameraInfo = MockCameraInfo(); - camera.cameraControl = mockCameraControl; + // Mock method calls. + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockPendingRecording.start(any), + ).thenAnswer((_) async => mockRecording); + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => false); + when( + camera.processCameraProvider!.isBound(camera.imageAnalysis!), + ).thenAnswer((_) async => true); + when( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], + ), + ).thenAnswer((_) async => mockCamera); + when( + mockCamera.getCameraInfo(), + ).thenAnswer((_) => Future.value(mockCameraInfo)); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.full); - when(mockCamera2CameraControl.addCaptureRequestOptions(any)) - .thenAnswer((_) async => Future.value()); + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, mockCamera2CameraControl); + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // Make setting focus and metering action successful for test. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); + verify( + camera.processCameraProvider!.unbind([camera.imageAnalysis!]), + ); + }, + ); - // Set auto exposure mode. - await camera.setExposureMode(cameraId, ExposureMode.auto); - clearInteractions(mockCamera2CameraControl); + test( + 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback not specified, camera device is level 3, and preview is not paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); - // Lock focus point. - await camera.setFocusMode(cameraId, FocusMode.locked); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); - final VerificationResult verificationResult = - verify(mockCamera2CameraControl.addCaptureRequestOptions(captureAny)); - final CaptureRequestOptions capturedCaptureRequestOptions = - verificationResult.captured.single as CaptureRequestOptions; - expect( - await capturedCaptureRequestOptions - .getCaptureRequestOption(camera.proxy.controlAELockCaptureRequest()), - isFalse, - ); - }); + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - test( - 'setFocusPoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 22; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point focusPoint = Point(0.21, 0.21); + // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action successful to set locked focus - // mode. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set exposure point to later mock failed call to set an exposure point ( - // otherwise, focus and metering will be canceled altogether, which is - //considered a successful call). - await camera.setExposurePoint(cameraId, const Point(0.3, 0.4)); - - // Set locked focus mode so we can set auto mode (cannot set auto mode - // directly since it is the default). - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - // Make setting focus and metering action fail to test that auto-cancel is - // still disabled. - reset(mockFocusMeteringResult); - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); - - // Test disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.auto); - clearInteractions(mockCameraControl); - - await camera.setFocusPoint(cameraId, focusPoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isFalse); - }); + const int cameraId = 77; - test( - 'setExposurePoint disables auto-cancel if auto focus mode fails to be set after locked focus mode is set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 342; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point exposurePoint = Point(0.23, 0.32); + // Mock method calls. + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockPendingRecording.start(any), + ).thenAnswer((_) async => mockRecording); + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => false); + when( + camera.processCameraProvider!.isBound(camera.imageAnalysis!), + ).thenAnswer((_) async => true); + when( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], + ), + ).thenAnswer((_) async => mockCamera); + when( + mockCamera.getCameraInfo(), + ).thenAnswer((_) => Future.value(mockCameraInfo)); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.level3); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action successful to set locked focus - // mode. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(true); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set exposure point to later mock failed call to set an exposure point ( - // otherwise, focus and metering will be canceled altogether, which is - //considered a successful call). - await camera.setExposurePoint(cameraId, const Point(0.4, 0.3)); - - // Set locked focus mode so we can set auto mode (cannot set auto mode - // directly since it is the default). - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - // Make setting focus and metering action fail to test that auto-cancel is - // still disabled. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); - - // Test disabling auto cancel. - await camera.setFocusMode(cameraId, FocusMode.auto); - clearInteractions(mockCameraControl); - - await camera.setExposurePoint(cameraId, exposurePoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isFalse); - }); + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); - test( - 'setFocusPoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 232; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point focusPoint = Point(0.221, 0.211); + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action fail to test auto-cancel is not - // disabled. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set exposure point to later mock failed call to set an exposure point. - await camera.setExposurePoint(cameraId, const Point(0.43, 0.34)); - - // Test failing to set locked focus mode. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - await camera.setFocusPoint(cameraId, focusPoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isTrue); - }); + verify( + camera.processCameraProvider!.unbind([camera.imageAnalysis!]), + ); + }, + ); test( - 'setExposurePoint enables auto-cancel if locked focus mode fails to be set after auto focus mode is set', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 323; - final MockCameraControl mockCameraControl = MockCameraControl(); - final MockFocusMeteringResult mockFocusMeteringResult = - MockFocusMeteringResult(); - const Point exposurePoint = Point(0.223, 0.332); + 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback is specified, camera device is not at least level 3, and preview is not paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); - // Set directly for test versus calling createCamera. - camera.cameraControl = mockCameraControl; - camera.cameraInfo = MockCameraInfo(); - - camera.proxy = getProxyForSettingFocusandExposurePoints( - mockCameraControl, MockCamera2CameraControl()); - - // Make setting focus and metering action fail to test auto-cancel is not - // disabled. - when(mockFocusMeteringResult.isFocusSuccessful).thenReturn(false); - when(mockCameraControl.startFocusAndMetering(any)).thenAnswer((_) async => - Future.value(mockFocusMeteringResult)); - - // Set exposure point to later mock failed call to set an exposure point. - await camera.setExposurePoint(cameraId, const Point(0.5, 0.2)); - - // Test failing to set locked focus mode. - await camera.setFocusMode(cameraId, FocusMode.locked); - clearInteractions(mockCameraControl); - - await camera.setExposurePoint(cameraId, exposurePoint); - final VerificationResult verificationResult = - verify(mockCameraControl.startFocusAndMetering(captureAny)); - final FocusMeteringAction capturedAction = - verificationResult.captured.single as FocusMeteringAction; - expect(capturedAction.isAutoCancelEnabled, isTrue); - }); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); - test( - 'onStreamedFrameAvailable binds ImageAnalysis use case when not already bound', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 22; - final MockImageAnalysis mockImageAnalysis = MockImageAnalysis(); - final MockProcessCameraProvider mockProcessCameraProvider = - MockProcessCameraProvider(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - // Set directly for test versus calling createCamera. - camera.imageAnalysis = mockImageAnalysis; - camera.processCameraProvider = mockProcessCameraProvider; - camera.cameraSelector = MockCameraSelector(); + // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; + const int cameraId = 87; - // Tell plugin to create a detached analyzer for testing purposes. - camera.proxy = CameraXProxy( - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - MockAnalyzer(), - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, + // Mock method calls. + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockPendingRecording.start(any), + ).thenAnswer((_) async => mockRecording); + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => false); + when( + camera.processCameraProvider!.isBound(camera.imageAnalysis!), + ).thenAnswer((_) async => true); + when( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], + ), + ).thenAnswer((_) async => mockCamera); + when( + mockCamera.getCameraInfo(), + ).thenAnswer((_) => Future.value(mockCameraInfo)); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.external); + + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( pigeon_instanceManager: PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, ), - ); - }, - ); - - when(mockProcessCameraProvider.isBound(mockImageAnalysis)) - .thenAnswer((_) async => false); - when(mockProcessCameraProvider.bindToLifecycle( - any, [mockImageAnalysis])).thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); + ), + ); - final StreamSubscription imageStreamSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData data) {}); + await camera.startVideoCapturing( + VideoCaptureOptions( + cameraId, + streamCallback: (CameraImageData image) {}, + ), + ); + verify( + camera.processCameraProvider!.unbind([camera.imageAnalysis!]), + ); + }, + ); - await untilCalled(mockImageAnalysis.setAnalyzer(any)); - verify(mockProcessCameraProvider - .bindToLifecycle(camera.cameraSelector, [mockImageAnalysis])); + test( + 'startVideoCapturing unbinds ImageCapture use case when image streaming callback is specified, camera device is at least level 3, and preview is not paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); - await imageStreamSubscription.cancel(); - }); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + camera.imageCapture = MockImageCapture(); - test( - 'startVideoCapturing unbinds ImageAnalysis use case when camera device is not at least level 3, no image streaming callback is specified, and preview is not paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - const String outputPath = '/temp/REC123.temp'; - camera.proxy = CameraXProxy( - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCamera2CameraInfo, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - ); + // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); - const int cameraId = 7; - - // Mock method calls. - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start(any)) - .thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( - (_) async => InfoSupportedHardwareLevel.full, - ); + const int cameraId = 107; - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, + // Mock method calls. + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockPendingRecording.start(any), + ).thenAnswer((_) async => mockRecording); + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => false); + when( + camera.processCameraProvider!.isBound(camera.imageCapture!), + ).thenAnswer((_) async => true); + when( + camera.processCameraProvider!.isBound(camera.imageAnalysis!), + ).thenAnswer((_) async => true); + when( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], ), - ), - ); - - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - - verify( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); + ).thenAnswer((_) async => mockCamera); + when( + mockCamera.getCameraInfo(), + ).thenAnswer((_) => Future.value(mockCameraInfo)); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.level3); - test( - 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback not specified, camera device is level 3, and preview is not paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - const String outputPath = '/temp/REC123.temp'; - camera.proxy = CameraXProxy( - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCamera2CameraInfo, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( pigeon_instanceManager: PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - ); - - const int cameraId = 77; - - // Mock method calls. - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start(any)) - .thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( - (_) async => InfoSupportedHardwareLevel.level3, - ); - - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, ), - ), - ); - - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + ); - verify( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); + await camera.startVideoCapturing( + VideoCaptureOptions( + cameraId, + streamCallback: (CameraImageData image) {}, + ), + ); + verify( + camera.processCameraProvider!.unbind([camera.imageCapture!]), + ); + }, + ); test( - 'startVideoCapturing unbinds ImageAnalysis use case when image streaming callback is specified, camera device is not at least level 3, and preview is not paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); - - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - const String outputPath = '/temp/REC123.temp'; - camera.proxy = CameraXProxy( - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCamera2CameraInfo, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - ); - - const int cameraId = 87; - - // Mock method calls. - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start(any)) - .thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( - (_) async => InfoSupportedHardwareLevel.external, - ); - - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ), - ); + 'startVideoCapturing does not unbind ImageCapture or ImageAnalysis use cases when preview is paused', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); - await camera.startVideoCapturing(VideoCaptureOptions(cameraId, - streamCallback: (CameraImageData image) {})); - verify( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + camera.imageCapture = MockImageCapture(); + camera.preview = MockPreview(); - test( - 'startVideoCapturing unbinds ImageCapture use case when image streaming callback is specified, camera device is at least level 3, and preview is not paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - camera.imageCapture = MockImageCapture(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - const String outputPath = '/temp/REC123.temp'; - camera.proxy = CameraXProxy( - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Analyzer.pigeon_detached( - analyze: analyze, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCamera2CameraInfo, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - ); + // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); - const int cameraId = 107; - - // Mock method calls. - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start(any)) - .thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageCapture!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( - (_) async => InfoSupportedHardwareLevel.level3, - ); + const int cameraId = 97; - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, + // Mock method calls. + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockPendingRecording.start(any), + ).thenAnswer((_) async => mockRecording); + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => false); + when( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], ), - ), - ); - - await camera.startVideoCapturing(VideoCaptureOptions(cameraId, - streamCallback: (CameraImageData image) {})); - verify( - camera.processCameraProvider!.unbind([camera.imageCapture!])); - }); + ).thenAnswer((_) async => mockCamera); + when( + mockCamera.getCameraInfo(), + ).thenAnswer((_) => Future.value(mockCameraInfo)); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); - test( - 'startVideoCapturing does not unbind ImageCapture or ImageAnalysis use cases when preview is paused', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + await camera.pausePreview(cameraId); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - camera.imageCapture = MockImageCapture(); - camera.preview = MockPreview(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - const String outputPath = '/temp/REC123.temp'; - camera.proxy = CameraXProxy( - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Analyzer.pigeon_detached( - analyze: analyze, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCamera2CameraInfo, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( pigeon_instanceManager: PigeonInstanceManager( onWeakReferenceRemoved: (_) {}, ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - ); - - const int cameraId = 97; - - // Mock method calls. - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start(any)) - .thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - - await camera.pausePreview(cameraId); - - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, ), - ), - ); + ); - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verifyNever( - camera.processCameraProvider!.unbind([camera.imageCapture!])); - verifyNever( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); + verifyNever( + camera.processCameraProvider!.unbind([camera.imageCapture!]), + ); + verifyNever( + camera.processCameraProvider!.unbind([camera.imageAnalysis!]), + ); + }, + ); test( - 'startVideoCapturing unbinds ImageCapture and ImageAnalysis use cases when running on a legacy hardware device', - () async { - // Set up mocks and constants. - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - final MockPendingRecording mockPendingRecording = MockPendingRecording(); - final MockRecording mockRecording = MockRecording(); - final MockCamera mockCamera = MockCamera(); - final MockCameraInfo mockCameraInfo = MockCameraInfo(); - final MockCamera2CameraInfo mockCamera2CameraInfo = MockCamera2CameraInfo(); + 'startVideoCapturing unbinds ImageCapture and ImageAnalysis use cases when running on a legacy hardware device', + () async { + // Set up mocks and constants. + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + final MockPendingRecording mockPendingRecording = MockPendingRecording(); + final MockRecording mockRecording = MockRecording(); + final MockCamera mockCamera = MockCamera(); + final MockCameraInfo mockCameraInfo = MockCameraInfo(); + final MockCamera2CameraInfo mockCamera2CameraInfo = + MockCamera2CameraInfo(); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.cameraSelector = MockCameraSelector(); - camera.cameraInfo = MockCameraInfo(); - camera.imageAnalysis = MockImageAnalysis(); - camera.imageCapture = MockImageCapture(); - camera.preview = MockPreview(); - - // Ignore setting target rotation for this test; tested seprately. - camera.captureOrientationLocked = true; - - // Tell plugin to create detached Observer when camera info updated. - const String outputPath = '/temp/REC123.temp'; - camera.proxy = CameraXProxy( - newAnalyzer: ({ - required void Function( - Analyzer, - ImageProxy, - ) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Analyzer.pigeon_detached( - analyze: analyze, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCamera2CameraInfo, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockSystemServicesManager mockSystemServicesManager = - MockSystemServicesManager(); - when(mockSystemServicesManager.getTempFilePath( - camera.videoPrefix, '.temp')) - .thenAnswer((_) async => outputPath); - return mockSystemServicesManager; - }, - newVideoRecordEventListener: ({ - required void Function( - VideoRecordEventListener, - VideoRecordEvent, - ) onEvent, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return VideoRecordEventListener.pigeon_detached( - onEvent: onEvent, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - infoSupportedHardwareLevelCameraCharacteristics: () { - return MockCameraCharacteristicsKey(); - }, - ); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.cameraSelector = MockCameraSelector(); + camera.cameraInfo = MockCameraInfo(); + camera.imageAnalysis = MockImageAnalysis(); + camera.imageCapture = MockImageCapture(); + camera.preview = MockPreview(); - const int cameraId = 44; + // Ignore setting target rotation for this test; tested seprately. + camera.captureOrientationLocked = true; - // Mock method calls. - when(camera.recorder!.prepareRecording(outputPath)) - .thenAnswer((_) async => mockPendingRecording); - when(mockPendingRecording.start(any)) - .thenAnswer((_) async => mockRecording); - when(camera.processCameraProvider!.isBound(camera.videoCapture!)) - .thenAnswer((_) async => false); - when(camera.processCameraProvider!.isBound(camera.imageCapture!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.isBound(camera.imageAnalysis!)) - .thenAnswer((_) async => true); - when(camera.processCameraProvider!.bindToLifecycle( - camera.cameraSelector!, [camera.videoCapture!])) - .thenAnswer((_) async => mockCamera); - when(mockCamera.getCameraInfo()) - .thenAnswer((_) => Future.value(mockCameraInfo)); - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); - when(mockCamera2CameraInfo.getCameraCharacteristic(any)).thenAnswer( - (_) async => InfoSupportedHardwareLevel.legacy, - ); + // Tell plugin to create detached Observer when camera info updated. + const String outputPath = '/temp/REC123.temp'; + camera.proxy = CameraXProxy( + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Analyzer.pigeon_detached( + analyze: analyze, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + fromCamera2CameraInfo: + ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCamera2CameraInfo, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockSystemServicesManager mockSystemServicesManager = + MockSystemServicesManager(); + when( + mockSystemServicesManager.getTempFilePath( + camera.videoPrefix, + '.temp', + ), + ).thenAnswer((_) async => outputPath); + return mockSystemServicesManager; + }, + newVideoRecordEventListener: ({ + required void Function(VideoRecordEventListener, VideoRecordEvent) + onEvent, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return VideoRecordEventListener.pigeon_detached( + onEvent: onEvent, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + infoSupportedHardwareLevelCameraCharacteristics: () { + return MockCameraCharacteristicsKey(); + }, + ); - // Simulate video recording being started so startVideoRecording completes. - AndroidCameraCameraX.videoRecordingEventStreamController.add( - VideoRecordEventStart.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, + const int cameraId = 44; + + // Mock method calls. + when( + camera.recorder!.prepareRecording(outputPath), + ).thenAnswer((_) async => mockPendingRecording); + when( + mockPendingRecording.start(any), + ).thenAnswer((_) async => mockRecording); + when( + camera.processCameraProvider!.isBound(camera.videoCapture!), + ).thenAnswer((_) async => false); + when( + camera.processCameraProvider!.isBound(camera.imageCapture!), + ).thenAnswer((_) async => true); + when( + camera.processCameraProvider!.isBound(camera.imageAnalysis!), + ).thenAnswer((_) async => true); + when( + camera.processCameraProvider!.bindToLifecycle( + camera.cameraSelector!, + [camera.videoCapture!], ), - ), - ); + ).thenAnswer((_) async => mockCamera); + when( + mockCamera.getCameraInfo(), + ).thenAnswer((_) => Future.value(mockCameraInfo)); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); + when( + mockCamera2CameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => InfoSupportedHardwareLevel.legacy); + + // Simulate video recording being started so startVideoRecording completes. + AndroidCameraCameraX.videoRecordingEventStreamController.add( + VideoRecordEventStart.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ), + ); - await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); + await camera.startVideoCapturing(const VideoCaptureOptions(cameraId)); - verify( - camera.processCameraProvider!.unbind([camera.imageCapture!])); - verify( - camera.processCameraProvider!.unbind([camera.imageAnalysis!])); - }); + verify( + camera.processCameraProvider!.unbind([camera.imageCapture!]), + ); + verify( + camera.processCameraProvider!.unbind([camera.imageAnalysis!]), + ); + }, + ); test( - 'prepareForVideoRecording does not make any calls involving starting video recording', - () async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); + 'prepareForVideoRecording does not make any calls involving starting video recording', + () async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); - // Set directly for test versus calling createCamera. - camera.processCameraProvider = MockProcessCameraProvider(); - camera.recorder = MockRecorder(); - camera.videoCapture = MockVideoCapture(); - camera.camera = MockCamera(); - - await camera.prepareForVideoRecording(); - verifyNoMoreInteractions(camera.processCameraProvider); - verifyNoMoreInteractions(camera.recorder); - verifyNoMoreInteractions(camera.videoCapture); - verifyNoMoreInteractions(camera.camera); - }); + // Set directly for test versus calling createCamera. + camera.processCameraProvider = MockProcessCameraProvider(); + camera.recorder = MockRecorder(); + camera.videoCapture = MockVideoCapture(); + camera.camera = MockCamera(); + + await camera.prepareForVideoRecording(); + verifyNoMoreInteractions(camera.processCameraProvider); + verifyNoMoreInteractions(camera.recorder); + verifyNoMoreInteractions(camera.videoCapture); + verifyNoMoreInteractions(camera.camera); + }, + ); } class TestMeteringPoint extends MeteringPoint { TestMeteringPoint.detached({required this.x, required this.y, this.size}) - : super.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); + : super.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); final double x; final double y; diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index e1ece4971f7..d88b2feba4f 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -32,179 +32,179 @@ import 'package:mockito/src/dummies.dart' as _i6; class _FakePigeonInstanceManager_0 extends _i1.SmartFake implements _i2.PigeonInstanceManager { _FakePigeonInstanceManager_0(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeAnalyzer_1 extends _i1.SmartFake implements _i2.Analyzer { _FakeAnalyzer_1(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeAspectRatioStrategy_2 extends _i1.SmartFake implements _i2.AspectRatioStrategy { _FakeAspectRatioStrategy_2(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraControl_3 extends _i1.SmartFake implements _i2.CameraControl { _FakeCameraControl_3(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraInfo_4 extends _i1.SmartFake implements _i2.CameraInfo { _FakeCameraInfo_4(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera_5 extends _i1.SmartFake implements _i2.Camera { _FakeCamera_5(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeExposureState_6 extends _i1.SmartFake implements _i2.ExposureState { _FakeExposureState_6(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeLiveData_7 extends _i1.SmartFake implements _i3.LiveData { _FakeLiveData_7(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraInfo_8 extends _i1.SmartFake implements _i3.CameraInfo { _FakeCameraInfo_8(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraCharacteristicsKey_9 extends _i1.SmartFake implements _i2.CameraCharacteristicsKey { _FakeCameraCharacteristicsKey_9(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraSize_10 extends _i1.SmartFake implements _i2.CameraSize { _FakeCameraSize_10(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera2CameraControl_11 extends _i1.SmartFake implements _i2.Camera2CameraControl { _FakeCamera2CameraControl_11(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera2CameraInfo_12 extends _i1.SmartFake implements _i2.Camera2CameraInfo { _FakeCamera2CameraInfo_12(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraImageFormat_13 extends _i1.SmartFake implements _i4.CameraImageFormat { _FakeCameraImageFormat_13(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraSelector_14 extends _i1.SmartFake implements _i2.CameraSelector { _FakeCameraSelector_14(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraIntegerRange_15 extends _i1.SmartFake implements _i2.CameraIntegerRange { _FakeCameraIntegerRange_15(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeObserver_16 extends _i1.SmartFake implements _i3.Observer { _FakeObserver_16(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeSystemServicesManager_17 extends _i1.SmartFake implements _i2.SystemServicesManager { _FakeSystemServicesManager_17(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeDeviceOrientationManager_18 extends _i1.SmartFake implements _i2.DeviceOrientationManager { _FakeDeviceOrientationManager_18(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePreview_19 extends _i1.SmartFake implements _i2.Preview { _FakePreview_19(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoCapture_20 extends _i1.SmartFake implements _i2.VideoCapture { _FakeVideoCapture_20(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeRecorder_21 extends _i1.SmartFake implements _i2.Recorder { _FakeRecorder_21(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoRecordEventListener_22 extends _i1.SmartFake implements _i2.VideoRecordEventListener { _FakeVideoRecordEventListener_22(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageCapture_23 extends _i1.SmartFake implements _i2.ImageCapture { _FakeImageCapture_23(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionStrategy_24 extends _i1.SmartFake implements _i2.ResolutionStrategy { _FakeResolutionStrategy_24(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionSelector_25 extends _i1.SmartFake implements _i2.ResolutionSelector { _FakeResolutionSelector_25(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageAnalysis_26 extends _i1.SmartFake implements _i2.ImageAnalysis { _FakeImageAnalysis_26(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeQualitySelector_27 extends _i1.SmartFake implements _i2.QualitySelector { _FakeQualitySelector_27(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFallbackStrategy_28 extends _i1.SmartFake implements _i2.FallbackStrategy { _FakeFallbackStrategy_28(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringActionBuilder_29 extends _i1.SmartFake implements _i2.FocusMeteringActionBuilder { _FakeFocusMeteringActionBuilder_29(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCaptureRequestOptions_30 extends _i1.SmartFake implements _i2.CaptureRequestOptions { _FakeCaptureRequestOptions_30(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionFilter_31 extends _i1.SmartFake implements _i2.ResolutionFilter { _FakeResolutionFilter_31(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake @@ -218,61 +218,61 @@ class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake class _FakeProcessCameraProvider_33 extends _i1.SmartFake implements _i2.ProcessCameraProvider { _FakeProcessCameraProvider_33(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCaptureRequestKey_34 extends _i1.SmartFake implements _i2.CaptureRequestKey { _FakeCaptureRequestKey_34(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeMeteringPoint_35 extends _i1.SmartFake implements _i2.MeteringPoint { _FakeMeteringPoint_35(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringAction_36 extends _i1.SmartFake implements _i2.FocusMeteringAction { _FakeFocusMeteringAction_36(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringResult_37 extends _i1.SmartFake implements _i2.FocusMeteringResult { _FakeFocusMeteringResult_37(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageProxy_38 extends _i1.SmartFake implements _i2.ImageProxy { _FakeImageProxy_38(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeRecording_39 extends _i1.SmartFake implements _i2.Recording { _FakeRecording_39(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePendingRecording_40 extends _i1.SmartFake implements _i2.PendingRecording { _FakePendingRecording_40(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePlaneProxy_41 extends _i1.SmartFake implements _i2.PlaneProxy { _FakePlaneProxy_41(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoOutput_42 extends _i1.SmartFake implements _i2.VideoOutput { _FakeVideoOutput_42(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeZoomState_43 extends _i1.SmartFake implements _i2.ZoomState { _FakeZoomState_43(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } /// A class which mocks [Analyzer]. @@ -282,37 +282,43 @@ class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { @override void Function(_i2.Analyzer, _i2.ImageProxy) get analyze => (super.noSuchMethod( - Invocation.getter(#analyze), - returnValue: (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, - returnValueForMissingStub: - (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, - ) as void Function(_i2.Analyzer, _i2.ImageProxy)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.Analyzer pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeAnalyzer_1( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeAnalyzer_1( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.Analyzer); + Invocation.getter(#analyze), + returnValue: + (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + returnValueForMissingStub: + (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + ) + as void Function(_i2.Analyzer, _i2.ImageProxy)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.Analyzer pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Analyzer); } /// A class which mocks [AspectRatioStrategy]. @@ -321,54 +327,61 @@ class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { class MockAspectRatioStrategy extends _i1.Mock implements _i2.AspectRatioStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method(#getFallbackRule, []), - returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto, - ), - returnValueForMissingStub: - _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto, - ), - ) as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); - - @override - _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => (super.noSuchMethod( - Invocation.method(#getPreferredAspectRatio, []), - returnValue: _i5.Future<_i2.AspectRatio>.value( - _i2.AspectRatio.ratio16To9, - ), - returnValueForMissingStub: _i5.Future<_i2.AspectRatio>.value( - _i2.AspectRatio.ratio16To9, - ), - ) as _i5.Future<_i2.AspectRatio>); - - @override - _i2.AspectRatioStrategy pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeAspectRatioStrategy_2( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeAspectRatioStrategy_2( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.AspectRatioStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + returnValueForMissingStub: + _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + ) + as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); + + @override + _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => + (super.noSuchMethod( + Invocation.method(#getPreferredAspectRatio, []), + returnValue: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + returnValueForMissingStub: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + ) + as _i5.Future<_i2.AspectRatio>); + + @override + _i2.AspectRatioStrategy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.AspectRatioStrategy); } /// A class which mocks [Camera]. @@ -376,54 +389,62 @@ class MockAspectRatioStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera extends _i1.Mock implements _i2.Camera { @override - _i2.CameraControl get cameraControl => (super.noSuchMethod( - Invocation.getter(#cameraControl), - returnValue: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - ) as _i2.CameraControl); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.CameraInfo> getCameraInfo() => (super.noSuchMethod( - Invocation.method(#getCameraInfo, []), - returnValue: _i5.Future<_i2.CameraInfo>.value( - _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), - ), - returnValueForMissingStub: _i5.Future<_i2.CameraInfo>.value( - _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), - ), - ) as _i5.Future<_i2.CameraInfo>); - - @override - _i2.Camera pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera_5( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera_5( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.Camera); + _i2.CameraControl get cameraControl => + (super.noSuchMethod( + Invocation.getter(#cameraControl), + returnValue: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + ) + as _i2.CameraControl); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.CameraInfo> getCameraInfo() => + (super.noSuchMethod( + Invocation.method(#getCameraInfo, []), + returnValue: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + ) + as _i5.Future<_i2.CameraInfo>); + + @override + _i2.Camera pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Camera); } /// A class which mocks [CameraInfo]. @@ -431,87 +452,98 @@ class MockCamera extends _i1.Mock implements _i2.Camera { /// See the documentation for Mockito's code generation for more information. class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { @override - int get sensorRotationDegrees => (super.noSuchMethod( - Invocation.getter(#sensorRotationDegrees), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - _i2.ExposureState get exposureState => (super.noSuchMethod( - Invocation.getter(#exposureState), - returnValue: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - ) as _i2.ExposureState); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + int get sensorRotationDegrees => + (super.noSuchMethod( + Invocation.getter(#sensorRotationDegrees), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); @override - _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => + _i2.ExposureState get exposureState => (super.noSuchMethod( - Invocation.method(#getCameraState, []), - returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#getCameraState, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#getCameraState, []), - ), - ), - ) as _i5.Future<_i3.LiveData<_i2.CameraState>>); + Invocation.getter(#exposureState), + returnValue: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + ) + as _i2.ExposureState); @override - _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => (super.noSuchMethod( - Invocation.method(#getZoomState, []), - returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#getZoomState, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#getZoomState, []), - ), - ), - ) as _i5.Future<_i3.LiveData<_i2.ZoomState>>); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override - _i3.CameraInfo pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraInfo_8( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraInfo_8( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i3.CameraInfo); + _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => + (super.noSuchMethod( + Invocation.method(#getCameraState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + ) + as _i5.Future<_i3.LiveData<_i2.CameraState>>); + + @override + _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => + (super.noSuchMethod( + Invocation.method(#getZoomState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + ) + as _i5.Future<_i3.LiveData<_i2.ZoomState>>); + + @override + _i3.CameraInfo pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i3.CameraInfo); } /// A class which mocks [CameraCharacteristicsKey]. @@ -520,30 +552,34 @@ class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { class MockCameraCharacteristicsKey extends _i1.Mock implements _i2.CameraCharacteristicsKey { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.CameraCharacteristicsKey pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.CameraCharacteristicsKey); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.CameraCharacteristicsKey pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.CameraCharacteristicsKey); } /// A class which mocks [CameraControl]. @@ -551,69 +587,82 @@ class MockCameraCharacteristicsKey extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCameraControl extends _i1.Mock implements _i2.CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override - _i5.Future enableTorch(bool? torch) => (super.noSuchMethod( - Invocation.method(#enableTorch, [torch]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future enableTorch(bool? torch) => + (super.noSuchMethod( + Invocation.method(#enableTorch, [torch]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future setZoomRatio(double? ratio) => (super.noSuchMethod( - Invocation.method(#setZoomRatio, [ratio]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future setZoomRatio(double? ratio) => + (super.noSuchMethod( + Invocation.method(#setZoomRatio, [ratio]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override _i5.Future<_i2.FocusMeteringResult?> startFocusAndMetering( _i2.FocusMeteringAction? action, ) => (super.noSuchMethod( - Invocation.method(#startFocusAndMetering, [action]), - returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), - returnValueForMissingStub: _i5.Future<_i2.FocusMeteringResult?>.value(), - ) as _i5.Future<_i2.FocusMeteringResult?>); + Invocation.method(#startFocusAndMetering, [action]), + returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), + returnValueForMissingStub: + _i5.Future<_i2.FocusMeteringResult?>.value(), + ) + as _i5.Future<_i2.FocusMeteringResult?>); @override - _i5.Future cancelFocusAndMetering() => (super.noSuchMethod( - Invocation.method(#cancelFocusAndMetering, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future cancelFocusAndMetering() => + (super.noSuchMethod( + Invocation.method(#cancelFocusAndMetering, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override _i5.Future setExposureCompensationIndex(int? index) => (super.noSuchMethod( - Invocation.method(#setExposureCompensationIndex, [index]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#setExposureCompensationIndex, [index]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i2.CameraControl pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraControl_3( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.CameraControl); + _i2.CameraControl pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.CameraControl); } /// A class which mocks [CameraSize]. @@ -621,44 +670,52 @@ class MockCameraControl extends _i1.Mock implements _i2.CameraControl { /// See the documentation for Mockito's code generation for more information. class MockCameraSize extends _i1.Mock implements _i2.CameraSize { @override - int get width => (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - int get height => (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.CameraSize pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraSize_10( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraSize_10( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.CameraSize); + int get width => + (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + int get height => + (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.CameraSize pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.CameraSize); } /// A class which mocks [Camera2CameraControl]. @@ -667,40 +724,45 @@ class MockCameraSize extends _i1.Mock implements _i2.CameraSize { class MockCamera2CameraControl extends _i1.Mock implements _i2.Camera2CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future addCaptureRequestOptions( _i2.CaptureRequestOptions? bundle, ) => (super.noSuchMethod( - Invocation.method(#addCaptureRequestOptions, [bundle]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#addCaptureRequestOptions, [bundle]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i2.Camera2CameraControl pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera2CameraControl_11( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera2CameraControl_11( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.Camera2CameraControl); + _i2.Camera2CameraControl pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Camera2CameraControl); } /// A class which mocks [Camera2CameraInfo]. @@ -708,51 +770,58 @@ class MockCamera2CameraControl extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future getCameraId() => (super.noSuchMethod( - Invocation.method(#getCameraId, []), - returnValue: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#getCameraId, [])), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#getCameraId, [])), - ), - ) as _i5.Future); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future getCameraId() => + (super.noSuchMethod( + Invocation.method(#getCameraId, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + ) + as _i5.Future); @override _i5.Future getCameraCharacteristic( _i2.CameraCharacteristicsKey? key, ) => (super.noSuchMethod( - Invocation.method(#getCameraCharacteristic, [key]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#getCameraCharacteristic, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i2.Camera2CameraInfo pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera2CameraInfo_12( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera2CameraInfo_12( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.Camera2CameraInfo); + _i2.Camera2CameraInfo pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Camera2CameraInfo); } /// A class which mocks [CameraImageData]. @@ -761,38 +830,46 @@ class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { // ignore: must_be_immutable class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { @override - _i4.CameraImageFormat get format => (super.noSuchMethod( - Invocation.getter(#format), - returnValue: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - returnValueForMissingStub: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - ) as _i4.CameraImageFormat); + _i4.CameraImageFormat get format => + (super.noSuchMethod( + Invocation.getter(#format), + returnValue: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + returnValueForMissingStub: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + ) + as _i4.CameraImageFormat); @override - int get height => (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); + int get height => + (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); @override - int get width => (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); + int get width => + (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); @override - List<_i4.CameraImagePlane> get planes => (super.noSuchMethod( - Invocation.getter(#planes), - returnValue: <_i4.CameraImagePlane>[], - returnValueForMissingStub: <_i4.CameraImagePlane>[], - ) as List<_i4.CameraImagePlane>); + List<_i4.CameraImagePlane> get planes => + (super.noSuchMethod( + Invocation.getter(#planes), + returnValue: <_i4.CameraImagePlane>[], + returnValueForMissingStub: <_i4.CameraImagePlane>[], + ) + as List<_i4.CameraImagePlane>); } /// A class which mocks [CameraSelector]. @@ -800,42 +877,47 @@ class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { /// See the documentation for Mockito's code generation for more information. class MockCameraSelector extends _i1.Mock implements _i2.CameraSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future> filter(List<_i2.CameraInfo>? cameraInfos) => (super.noSuchMethod( - Invocation.method(#filter, [cameraInfos]), - returnValue: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - ) as _i5.Future>); - - @override - _i2.CameraSelector pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraSelector_14( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraSelector_14( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.CameraSelector); + Invocation.method(#filter, [cameraInfos]), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) + as _i5.Future>); + + @override + _i2.CameraSelector pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.CameraSelector); } /// A class which mocks [CameraXProxy]. @@ -846,20 +928,25 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { void Function({ _i8.BinaryMessenger? pigeonBinaryMessenger, _i2.PigeonInstanceManager? pigeonInstanceManager, - }) get setUpGenericsProxy => (super.noSuchMethod( - Invocation.getter(#setUpGenericsProxy), - returnValue: ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - ) as void Function({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - })); + }) + get setUpGenericsProxy => + (super.noSuchMethod( + Invocation.getter(#setUpGenericsProxy), + returnValue: + ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + ) + as void Function({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + })); @override _i2.CameraSize Function({ @@ -867,28 +954,33 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newCameraSize => (super.noSuchMethod( - Invocation.getter(#newCameraSize), - returnValue: ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), - returnValueForMissingStub: ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), - ) as _i2.CameraSize Function({ - required int height, - required int width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newCameraSize => + (super.noSuchMethod( + Invocation.getter(#newCameraSize), + returnValue: + ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + returnValueForMissingStub: + ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + ) + as _i2.CameraSize Function({ + required int height, + required int width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraIntegerRange Function({ @@ -896,158 +988,176 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int upper, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newCameraIntegerRange => (super.noSuchMethod( - Invocation.getter(#newCameraIntegerRange), - returnValue: ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => - _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - returnValueForMissingStub: ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => - _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - ) as _i2.CameraIntegerRange Function({ - required int lower, - required int upper, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newCameraIntegerRange => + (super.noSuchMethod( + Invocation.getter(#newCameraIntegerRange), + returnValue: + ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + returnValueForMissingStub: + ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + ) + as _i2.CameraIntegerRange Function({ + required int lower, + required int upper, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i3.Observer Function({ required void Function(_i3.Observer, T) onChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newObserver => (super.noSuchMethod( - Invocation.getter(#newObserver), - returnValue: ({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16(this, Invocation.getter(#newObserver)), - returnValueForMissingStub: ({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16(this, Invocation.getter(#newObserver)), - ) as _i3.Observer Function({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newObserver => + (super.noSuchMethod( + Invocation.getter(#newObserver), + returnValue: + ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + returnValueForMissingStub: + ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + ) + as _i3.Observer Function({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.LensFacing? requireLensFacing, - }) get newCameraSelector => (super.noSuchMethod( - Invocation.getter(#newCameraSelector), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => - _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => - _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - ) as _i2.CameraSelector Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - })); + }) + get newCameraSelector => + (super.noSuchMethod( + Invocation.getter(#newCameraSelector), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + ) + as _i2.CameraSelector Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + })); @override _i2.SystemServicesManager Function({ required void Function(_i2.SystemServicesManager, String) onCameraError, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newSystemServicesManager => (super.noSuchMethod( - Invocation.getter(#newSystemServicesManager), - returnValue: ({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - returnValueForMissingStub: ({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - ) as _i2.SystemServicesManager Function({ - required void Function(_i2.SystemServicesManager, String) onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newSystemServicesManager => + (super.noSuchMethod( + Invocation.getter(#newSystemServicesManager), + returnValue: + ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + returnValueForMissingStub: + ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + ) + as _i2.SystemServicesManager Function({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DeviceOrientationManager Function({ required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newDeviceOrientationManager => (super.noSuchMethod( - Invocation.getter(#newDeviceOrientationManager), - returnValue: ({ - required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - returnValueForMissingStub: ({ - required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - ) as _i2.DeviceOrientationManager Function({ - required void Function(_i2.DeviceOrientationManager, String) + }) + get newDeviceOrientationManager => + (super.noSuchMethod( + Invocation.getter(#newDeviceOrientationManager), + returnValue: + ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + returnValueForMissingStub: + ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + ) + as _i2.DeviceOrientationManager Function({ + required void Function(_i2.DeviceOrientationManager, String) onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Preview Function({ @@ -1055,59 +1165,65 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) get newPreview => (super.noSuchMethod( - Invocation.getter(#newPreview), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakePreview_19(this, Invocation.getter(#newPreview)), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakePreview_19(this, Invocation.getter(#newPreview)), - ) as _i2.Preview Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) + get newPreview => + (super.noSuchMethod( + Invocation.getter(#newPreview), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakePreview_19(this, Invocation.getter(#newPreview)), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakePreview_19(this, Invocation.getter(#newPreview)), + ) + as _i2.Preview Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.VideoCapture Function({ required _i2.VideoOutput videoOutput, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get withOutputVideoCapture => (super.noSuchMethod( - Invocation.getter(#withOutputVideoCapture), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => - _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => - _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - ) as _i2.VideoCapture Function({ - required _i2.VideoOutput videoOutput, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get withOutputVideoCapture => + (super.noSuchMethod( + Invocation.getter(#withOutputVideoCapture), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + ) + as _i2.VideoCapture Function({ + required _i2.VideoOutput videoOutput, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Recorder Function({ @@ -1116,72 +1232,81 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.QualitySelector? qualitySelector, int? targetVideoEncodingBitRate, - }) get newRecorder => (super.noSuchMethod( - Invocation.getter(#newRecorder), - returnValue: ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => - _FakeRecorder_21(this, Invocation.getter(#newRecorder)), - returnValueForMissingStub: ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => - _FakeRecorder_21(this, Invocation.getter(#newRecorder)), - ) as _i2.Recorder Function({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - })); + }) + get newRecorder => + (super.noSuchMethod( + Invocation.getter(#newRecorder), + returnValue: + ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + returnValueForMissingStub: + ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + ) + as _i2.Recorder Function({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + })); @override _i2.VideoRecordEventListener Function({ required void Function(_i2.VideoRecordEventListener, _i2.VideoRecordEvent) - onEvent, + onEvent, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newVideoRecordEventListener => (super.noSuchMethod( - Invocation.getter(#newVideoRecordEventListener), - returnValue: ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - returnValueForMissingStub: ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - ) as _i2.VideoRecordEventListener Function({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newVideoRecordEventListener => + (super.noSuchMethod( + Invocation.getter(#newVideoRecordEventListener), + returnValue: + ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) + onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + returnValueForMissingStub: + ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) + onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + ) + as _i2.VideoRecordEventListener Function({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) + onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageCapture Function({ @@ -1190,37 +1315,40 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) get newImageCapture => (super.noSuchMethod( - Invocation.getter(#newImageCapture), - returnValue: ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - returnValueForMissingStub: ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - ) as _i2.ImageCapture Function({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) + get newImageCapture => + (super.noSuchMethod( + Invocation.getter(#newImageCapture), + returnValue: + ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + returnValueForMissingStub: + ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + ) + as _i2.ImageCapture Function({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.ResolutionStrategy Function({ @@ -1228,34 +1356,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.ResolutionStrategyFallbackRule fallbackRule, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newResolutionStrategy => (super.noSuchMethod( - Invocation.getter(#newResolutionStrategy), - returnValue: ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - returnValueForMissingStub: ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - ) as _i2.ResolutionStrategy Function({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newResolutionStrategy => + (super.noSuchMethod( + Invocation.getter(#newResolutionStrategy), + returnValue: + ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + returnValueForMissingStub: + ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + ) + as _i2.ResolutionStrategy Function({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ResolutionSelector Function({ @@ -1264,37 +1395,40 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionFilter? resolutionFilter, _i2.ResolutionStrategy? resolutionStrategy, - }) get newResolutionSelector => (super.noSuchMethod( - Invocation.getter(#newResolutionSelector), - returnValue: ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => - _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - returnValueForMissingStub: ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => - _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - ) as _i2.ResolutionSelector Function({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - })); + }) + get newResolutionSelector => + (super.noSuchMethod( + Invocation.getter(#newResolutionSelector), + returnValue: + ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + returnValueForMissingStub: + ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + ) + as _i2.ResolutionSelector Function({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + })); @override _i2.AspectRatioStrategy Function({ @@ -1302,34 +1436,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.AspectRatio preferredAspectRatio, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newAspectRatioStrategy => (super.noSuchMethod( - Invocation.getter(#newAspectRatioStrategy), - returnValue: ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => - _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - returnValueForMissingStub: ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => - _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - ) as _i2.AspectRatioStrategy Function({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - required _i2.AspectRatio preferredAspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newAspectRatioStrategy => + (super.noSuchMethod( + Invocation.getter(#newAspectRatioStrategy), + returnValue: + ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + returnValueForMissingStub: + ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + ) + as _i2.AspectRatioStrategy Function({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + required _i2.AspectRatio preferredAspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageAnalysis Function({ @@ -1337,59 +1474,65 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) get newImageAnalysis => (super.noSuchMethod( - Invocation.getter(#newImageAnalysis), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => - _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - ) as _i2.ImageAnalysis Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) + get newImageAnalysis => + (super.noSuchMethod( + Invocation.getter(#newImageAnalysis), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + ) + as _i2.ImageAnalysis Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.Analyzer Function({ required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newAnalyzer => (super.noSuchMethod( - Invocation.getter(#newAnalyzer), - returnValue: ({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), - returnValueForMissingStub: ({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), - ) as _i2.Analyzer Function({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newAnalyzer => + (super.noSuchMethod( + Invocation.getter(#newAnalyzer), + returnValue: + ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + returnValueForMissingStub: + ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + ) + as _i2.Analyzer Function({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1397,34 +1540,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get fromQualitySelector => (super.noSuchMethod( - Invocation.getter(#fromQualitySelector), - returnValue: ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - returnValueForMissingStub: ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - ) as _i2.QualitySelector Function({ - required _i2.VideoQuality quality, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get fromQualitySelector => + (super.noSuchMethod( + Invocation.getter(#fromQualitySelector), + returnValue: + ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + returnValueForMissingStub: + ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + ) + as _i2.QualitySelector Function({ + required _i2.VideoQuality quality, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1432,189 +1578,207 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get fromOrderedListQualitySelector => (super.noSuchMethod( - Invocation.getter(#fromOrderedListQualitySelector), - returnValue: ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => - _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - returnValueForMissingStub: ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => - _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - ) as _i2.QualitySelector Function({ - required List<_i2.VideoQuality> qualities, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get fromOrderedListQualitySelector => + (super.noSuchMethod( + Invocation.getter(#fromOrderedListQualitySelector), + returnValue: + ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + returnValueForMissingStub: + ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + ) + as _i2.QualitySelector Function({ + required List<_i2.VideoQuality> qualities, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get higherQualityOrLowerThanFallbackStrategy => (super.noSuchMethod( - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - ) as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get higherQualityOrLowerThanFallbackStrategy => + (super.noSuchMethod( + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + ) + as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get higherQualityThanFallbackStrategy => (super.noSuchMethod( - Invocation.getter(#higherQualityThanFallbackStrategy), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - ) as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get higherQualityThanFallbackStrategy => + (super.noSuchMethod( + Invocation.getter(#higherQualityThanFallbackStrategy), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + ) + as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get lowerQualityOrHigherThanFallbackStrategy => (super.noSuchMethod( - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - ) as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get lowerQualityOrHigherThanFallbackStrategy => + (super.noSuchMethod( + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + ) + as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get lowerQualityThanFallbackStrategy => (super.noSuchMethod( - Invocation.getter(#lowerQualityThanFallbackStrategy), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => - _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - ) as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get lowerQualityThanFallbackStrategy => + (super.noSuchMethod( + Invocation.getter(#lowerQualityThanFallbackStrategy), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + ) + as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newFocusMeteringActionBuilder => (super.noSuchMethod( - Invocation.getter(#newFocusMeteringActionBuilder), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => - _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => - _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - ) as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newFocusMeteringActionBuilder => + (super.noSuchMethod( + Invocation.getter(#newFocusMeteringActionBuilder), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + ) + as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ @@ -1622,34 +1786,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get withModeFocusMeteringActionBuilder => (super.noSuchMethod( - Invocation.getter(#withModeFocusMeteringActionBuilder), - returnValue: ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => - _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - returnValueForMissingStub: ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => - _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - ) as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringMode mode, - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get withModeFocusMeteringActionBuilder => + (super.noSuchMethod( + Invocation.getter(#withModeFocusMeteringActionBuilder), + returnValue: + ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + returnValueForMissingStub: + ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + ) + as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringMode mode, + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set withModeFocusMeteringActionBuilder( @@ -1658,46 +1825,49 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? _withModeFocusMeteringActionBuilder, - ) => - super.noSuchMethod( - Invocation.setter( - #withModeFocusMeteringActionBuilder, - _withModeFocusMeteringActionBuilder, - ), - returnValueForMissingStub: null, - ); + })? + _withModeFocusMeteringActionBuilder, + ) => super.noSuchMethod( + Invocation.setter( + #withModeFocusMeteringActionBuilder, + _withModeFocusMeteringActionBuilder, + ), + returnValueForMissingStub: null, + ); @override _i2.CaptureRequestOptions Function({ required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newCaptureRequestOptions => (super.noSuchMethod( - Invocation.getter(#newCaptureRequestOptions), - returnValue: ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - returnValueForMissingStub: ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - ) as _i2.CaptureRequestOptions Function({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newCaptureRequestOptions => + (super.noSuchMethod( + Invocation.getter(#newCaptureRequestOptions), + returnValue: + ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + returnValueForMissingStub: + ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + ) + as _i2.CaptureRequestOptions Function({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set newCaptureRequestOptions( @@ -1705,43 +1875,46 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? _newCaptureRequestOptions, - ) => - super.noSuchMethod( - Invocation.setter(#newCaptureRequestOptions, _newCaptureRequestOptions), - returnValueForMissingStub: null, - ); + })? + _newCaptureRequestOptions, + ) => super.noSuchMethod( + Invocation.setter(#newCaptureRequestOptions, _newCaptureRequestOptions), + returnValueForMissingStub: null, + ); @override _i2.Camera2CameraControl Function({ required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get fromCamera2CameraControl => (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraControl), - returnValue: ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - returnValueForMissingStub: ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - ) as _i2.Camera2CameraControl Function({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get fromCamera2CameraControl => + (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraControl), + returnValue: + ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + returnValueForMissingStub: + ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + ) + as _i2.Camera2CameraControl Function({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set fromCamera2CameraControl( @@ -1749,78 +1922,84 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? _fromCamera2CameraControl, - ) => - super.noSuchMethod( - Invocation.setter(#fromCamera2CameraControl, _fromCamera2CameraControl), - returnValueForMissingStub: null, - ); + })? + _fromCamera2CameraControl, + ) => super.noSuchMethod( + Invocation.setter(#fromCamera2CameraControl, _fromCamera2CameraControl), + returnValueForMissingStub: null, + ); @override _i2.ResolutionFilter Function({ required _i2.CameraSize preferredSize, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get createWithOnePreferredSizeResolutionFilter => (super.noSuchMethod( - Invocation.getter(#createWithOnePreferredSizeResolutionFilter), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => - _FakeResolutionFilter_31( - this, - Invocation.getter( - #createWithOnePreferredSizeResolutionFilter, - ), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => - _FakeResolutionFilter_31( - this, - Invocation.getter( - #createWithOnePreferredSizeResolutionFilter, - ), - ), - ) as _i2.ResolutionFilter Function({ - required _i2.CameraSize preferredSize, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get createWithOnePreferredSizeResolutionFilter => + (super.noSuchMethod( + Invocation.getter(#createWithOnePreferredSizeResolutionFilter), + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + ) + as _i2.ResolutionFilter Function({ + required _i2.CameraSize preferredSize, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Camera2CameraInfo Function({ required _i3.CameraInfo cameraInfo, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get fromCamera2CameraInfo => (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraInfo), - returnValue: ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - returnValueForMissingStub: ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - ) as _i2.Camera2CameraInfo Function({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get fromCamera2CameraInfo => + (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraInfo), + returnValue: + ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + returnValueForMissingStub: + ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + ) + as _i2.Camera2CameraInfo Function({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DisplayOrientedMeteringPointFactory Function({ @@ -1829,37 +2008,40 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get newDisplayOrientedMeteringPointFactory => (super.noSuchMethod( - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - returnValue: ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => - _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - returnValueForMissingStub: ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => - _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - ) as _i2.DisplayOrientedMeteringPointFactory Function({ - required _i3.CameraInfo cameraInfo, - required double height, - required double width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get newDisplayOrientedMeteringPointFactory => + (super.noSuchMethod( + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + returnValue: + ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + returnValueForMissingStub: + ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + ) + as _i2.DisplayOrientedMeteringPointFactory Function({ + required _i3.CameraInfo cameraInfo, + required double height, + required double width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set newDisplayOrientedMeteringPointFactory( @@ -1869,46 +2051,49 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? _newDisplayOrientedMeteringPointFactory, - ) => - super.noSuchMethod( - Invocation.setter( - #newDisplayOrientedMeteringPointFactory, - _newDisplayOrientedMeteringPointFactory, - ), - returnValueForMissingStub: null, - ); + })? + _newDisplayOrientedMeteringPointFactory, + ) => super.noSuchMethod( + Invocation.setter( + #newDisplayOrientedMeteringPointFactory, + _newDisplayOrientedMeteringPointFactory, + ), + returnValueForMissingStub: null, + ); @override _i5.Future<_i2.ProcessCameraProvider> Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get getInstanceProcessCameraProvider => (super.noSuchMethod( - Invocation.getter(#getInstanceProcessCameraProvider), - returnValue: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, - Invocation.getter(#getInstanceProcessCameraProvider), - ), - ), - returnValueForMissingStub: ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, + }) + get getInstanceProcessCameraProvider => + (super.noSuchMethod( Invocation.getter(#getInstanceProcessCameraProvider), - ), - ), - ) as _i5.Future<_i2.ProcessCameraProvider> Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + returnValue: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, + Invocation.getter(#getInstanceProcessCameraProvider), + ), + ), + returnValueForMissingStub: + ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, + Invocation.getter(#getInstanceProcessCameraProvider), + ), + ), + ) + as _i5.Future<_i2.ProcessCameraProvider> Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i5.Future<_i2.CameraSize?> Function( @@ -1916,175 +2101,203 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.VideoQuality, { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) get getResolutionQualitySelector => (super.noSuchMethod( - Invocation.getter(#getResolutionQualitySelector), - returnValue: ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _i5.Future<_i2.CameraSize?>.value(), - ) as _i5.Future<_i2.CameraSize?> Function( - _i3.CameraInfo, - _i2.VideoQuality, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) + get getResolutionQualitySelector => + (super.noSuchMethod( + Invocation.getter(#getResolutionQualitySelector), + returnValue: + ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: + ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => _i5.Future<_i2.CameraSize?>.value(), + ) + as _i5.Future<_i2.CameraSize?> Function( + _i3.CameraInfo, + _i2.VideoQuality, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function() get defaultBackCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultBackCameraCameraSelector), - returnValue: () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - returnValueForMissingStub: () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - ) as _i2.CameraSelector Function()); + Invocation.getter(#defaultBackCameraCameraSelector), + returnValue: + () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + returnValueForMissingStub: + () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + ) + as _i2.CameraSelector Function()); @override _i2.CameraSelector Function() get defaultFrontCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultFrontCameraCameraSelector), - returnValue: () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - returnValueForMissingStub: () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - ) as _i2.CameraSelector Function()); + Invocation.getter(#defaultFrontCameraCameraSelector), + returnValue: + () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + returnValueForMissingStub: + () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + ) + as _i2.CameraSelector Function()); @override _i2.ResolutionStrategy Function() - get highestAvailableStrategyResolutionStrategy => (super.noSuchMethod( + get highestAvailableStrategyResolutionStrategy => + (super.noSuchMethod( Invocation.getter(#highestAvailableStrategyResolutionStrategy), - returnValue: () => _FakeResolutionStrategy_24( - this, - Invocation.getter( - #highestAvailableStrategyResolutionStrategy, - ), - ), - returnValueForMissingStub: () => _FakeResolutionStrategy_24( - this, - Invocation.getter( - #highestAvailableStrategyResolutionStrategy, - ), - ), - ) as _i2.ResolutionStrategy Function()); + returnValue: + () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + returnValueForMissingStub: + () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + ) + as _i2.ResolutionStrategy Function()); @override _i2.AspectRatioStrategy Function() - get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => - (super.noSuchMethod( + get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( Invocation.getter( #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, ), - returnValue: () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - ), - ), - returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - ), - ), - ) as _i2.AspectRatioStrategy Function()); + returnValue: + () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: + () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) + as _i2.AspectRatioStrategy Function()); @override _i2.AspectRatioStrategy Function() - get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => - (super.noSuchMethod( + get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( Invocation.getter( #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, ), - returnValue: () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - ), - ), - returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - ), - ), - ) as _i2.AspectRatioStrategy Function()); + returnValue: + () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: + () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) + as _i2.AspectRatioStrategy Function()); @override _i2.CaptureRequestKey Function() get controlAELockCaptureRequest => (super.noSuchMethod( - Invocation.getter(#controlAELockCaptureRequest), - returnValue: () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - returnValueForMissingStub: () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - ) as _i2.CaptureRequestKey Function()); + Invocation.getter(#controlAELockCaptureRequest), + returnValue: + () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + returnValueForMissingStub: + () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + ) + as _i2.CaptureRequestKey Function()); @override set controlAELockCaptureRequest( _i2.CaptureRequestKey Function()? _controlAELockCaptureRequest, - ) => - super.noSuchMethod( - Invocation.setter( - #controlAELockCaptureRequest, - _controlAELockCaptureRequest, - ), - returnValueForMissingStub: null, - ); + ) => super.noSuchMethod( + Invocation.setter( + #controlAELockCaptureRequest, + _controlAELockCaptureRequest, + ), + returnValueForMissingStub: null, + ); @override _i2.CameraCharacteristicsKey Function() - get infoSupportedHardwareLevelCameraCharacteristics => - (super.noSuchMethod( + get infoSupportedHardwareLevelCameraCharacteristics => + (super.noSuchMethod( Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), - returnValue: () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter( - #infoSupportedHardwareLevelCameraCharacteristics, - ), - ), - returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter( - #infoSupportedHardwareLevelCameraCharacteristics, - ), - ), - ) as _i2.CameraCharacteristicsKey Function()); + returnValue: + () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + returnValueForMissingStub: + () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + ) + as _i2.CameraCharacteristicsKey Function()); @override _i2.CameraCharacteristicsKey Function() - get sensorOrientationCameraCharacteristics => (super.noSuchMethod( + get sensorOrientationCameraCharacteristics => + (super.noSuchMethod( Invocation.getter(#sensorOrientationCameraCharacteristics), - returnValue: () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - ) as _i2.CameraCharacteristicsKey Function()); + returnValue: + () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + returnValueForMissingStub: + () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + ) + as _i2.CameraCharacteristicsKey Function()); } /// A class which mocks [CaptureRequestOptions]. @@ -2093,38 +2306,43 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { class MockCaptureRequestOptions extends _i1.Mock implements _i2.CaptureRequestOptions { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future getCaptureRequestOption(_i2.CaptureRequestKey? key) => (super.noSuchMethod( - Invocation.method(#getCaptureRequestOption, [key]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#getCaptureRequestOption, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i2.CaptureRequestOptions pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCaptureRequestOptions_30( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCaptureRequestOptions_30( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.CaptureRequestOptions); + _i2.CaptureRequestOptions pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCaptureRequestOptions_30( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCaptureRequestOptions_30( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.CaptureRequestOptions); } /// A class which mocks [DeviceOrientationManager]. @@ -2134,83 +2352,97 @@ class MockDeviceOrientationManager extends _i1.Mock implements _i2.DeviceOrientationManager { @override void Function(_i2.DeviceOrientationManager, String) - get onDeviceOrientationChanged => (super.noSuchMethod( + get onDeviceOrientationChanged => + (super.noSuchMethod( Invocation.getter(#onDeviceOrientationChanged), - returnValue: ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - returnValueForMissingStub: ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - ) as void Function(_i2.DeviceOrientationManager, String)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + returnValue: + ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + returnValueForMissingStub: + ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + ) + as void Function(_i2.DeviceOrientationManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future startListeningForDeviceOrientationChange() => (super.noSuchMethod( - Invocation.method(#startListeningForDeviceOrientationChange, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#startListeningForDeviceOrientationChange, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override _i5.Future stopListeningForDeviceOrientationChange() => (super.noSuchMethod( - Invocation.method(#stopListeningForDeviceOrientationChange, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#stopListeningForDeviceOrientationChange, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future getDefaultDisplayRotation() => (super.noSuchMethod( - Invocation.method(#getDefaultDisplayRotation, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) as _i5.Future); + _i5.Future getDefaultDisplayRotation() => + (super.noSuchMethod( + Invocation.method(#getDefaultDisplayRotation, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) + as _i5.Future); @override - _i5.Future getUiOrientation() => (super.noSuchMethod( - Invocation.method(#getUiOrientation, []), - returnValue: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getUiOrientation, []), - ), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue( - this, + _i5.Future getUiOrientation() => + (super.noSuchMethod( Invocation.method(#getUiOrientation, []), - ), - ), - ) as _i5.Future); + returnValue: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getUiOrientation, []), + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getUiOrientation, []), + ), + ), + ) + as _i5.Future); @override - _i2.DeviceOrientationManager pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeDeviceOrientationManager_18( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeDeviceOrientationManager_18( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.DeviceOrientationManager); + _i2.DeviceOrientationManager pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.DeviceOrientationManager); } /// A class which mocks [DisplayOrientedMeteringPointFactory]. @@ -2219,48 +2451,54 @@ class MockDeviceOrientationManager extends _i1.Mock class MockDisplayOrientedMeteringPointFactory extends _i1.Mock implements _i2.DisplayOrientedMeteringPointFactory { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.DisplayOrientedMeteringPointFactory); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: + _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.DisplayOrientedMeteringPointFactory); @override _i5.Future<_i2.MeteringPoint> createPoint(double? x, double? y) => (super.noSuchMethod( - Invocation.method(#createPoint, [x, y]), - returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPoint, [x, y]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, Invocation.method(#createPoint, [x, y]), - ), - ), - ) as _i5.Future<_i2.MeteringPoint>); + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPoint, [x, y]), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPoint, [x, y]), + ), + ), + ) + as _i5.Future<_i2.MeteringPoint>); @override _i5.Future<_i2.MeteringPoint> createPointWithSize( @@ -2269,20 +2507,21 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock double? size, ) => (super.noSuchMethod( - Invocation.method(#createPointWithSize, [x, y, size]), - returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPointWithSize, [x, y, size]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, Invocation.method(#createPointWithSize, [x, y, size]), - ), - ), - ) as _i5.Future<_i2.MeteringPoint>); + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPointWithSize, [x, y, size]), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPointWithSize, [x, y, size]), + ), + ), + ) + as _i5.Future<_i2.MeteringPoint>); } /// A class which mocks [ExposureState]. @@ -2290,50 +2529,58 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockExposureState extends _i1.Mock implements _i2.ExposureState { @override - _i2.CameraIntegerRange get exposureCompensationRange => (super.noSuchMethod( - Invocation.getter(#exposureCompensationRange), - returnValue: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - returnValueForMissingStub: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - ) as _i2.CameraIntegerRange); - - @override - double get exposureCompensationStep => (super.noSuchMethod( - Invocation.getter(#exposureCompensationStep), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.ExposureState pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeExposureState_6( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.ExposureState); + _i2.CameraIntegerRange get exposureCompensationRange => + (super.noSuchMethod( + Invocation.getter(#exposureCompensationRange), + returnValue: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + returnValueForMissingStub: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + ) + as _i2.CameraIntegerRange); + + @override + double get exposureCompensationStep => + (super.noSuchMethod( + Invocation.getter(#exposureCompensationStep), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) + as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.ExposureState pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ExposureState); } /// A class which mocks [FallbackStrategy]. @@ -2341,30 +2588,34 @@ class MockExposureState extends _i1.Mock implements _i2.ExposureState { /// See the documentation for Mockito's code generation for more information. class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.FallbackStrategy pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFallbackStrategy_28( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFallbackStrategy_28( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.FallbackStrategy); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.FallbackStrategy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.FallbackStrategy); } /// A class which mocks [FocusMeteringActionBuilder]. @@ -2373,24 +2624,28 @@ class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { class MockFocusMeteringActionBuilder extends _i1.Mock implements _i2.FocusMeteringActionBuilder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override - _i5.Future addPoint(_i2.MeteringPoint? point) => (super.noSuchMethod( - Invocation.method(#addPoint, [point]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future addPoint(_i2.MeteringPoint? point) => + (super.noSuchMethod( + Invocation.method(#addPoint, [point]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override _i5.Future addPointWithMode( @@ -2398,44 +2653,52 @@ class MockFocusMeteringActionBuilder extends _i1.Mock _i2.MeteringMode? mode, ) => (super.noSuchMethod( - Invocation.method(#addPointWithMode, [point, mode]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#addPointWithMode, [point, mode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future disableAutoCancel() => (super.noSuchMethod( - Invocation.method(#disableAutoCancel, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future disableAutoCancel() => + (super.noSuchMethod( + Invocation.method(#disableAutoCancel, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future<_i2.FocusMeteringAction> build() => (super.noSuchMethod( - Invocation.method(#build, []), - returnValue: _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), - ), - returnValueForMissingStub: _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36( - this, + _i5.Future<_i2.FocusMeteringAction> build() => + (super.noSuchMethod( Invocation.method(#build, []), - ), - ), - ) as _i5.Future<_i2.FocusMeteringAction>); - - @override - _i2.FocusMeteringActionBuilder pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.FocusMeteringActionBuilder); + returnValue: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), + ), + returnValueForMissingStub: + _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36( + this, + Invocation.method(#build, []), + ), + ), + ) + as _i5.Future<_i2.FocusMeteringAction>); + + @override + _i2.FocusMeteringActionBuilder pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.FocusMeteringActionBuilder); } /// A class which mocks [FocusMeteringResult]. @@ -2444,37 +2707,43 @@ class MockFocusMeteringActionBuilder extends _i1.Mock class MockFocusMeteringResult extends _i1.Mock implements _i2.FocusMeteringResult { @override - bool get isFocusSuccessful => (super.noSuchMethod( - Invocation.getter(#isFocusSuccessful), - returnValue: false, - returnValueForMissingStub: false, - ) as bool); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.FocusMeteringResult pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringResult_37( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFocusMeteringResult_37( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.FocusMeteringResult); + bool get isFocusSuccessful => + (super.noSuchMethod( + Invocation.getter(#isFocusSuccessful), + returnValue: false, + returnValueForMissingStub: false, + ) + as bool); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.FocusMeteringResult pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.FocusMeteringResult); } /// A class which mocks [ImageAnalysis]. @@ -2482,51 +2751,61 @@ class MockFocusMeteringResult extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => (super.noSuchMethod( - Invocation.method(#setAnalyzer, [analyzer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future clearAnalyzer() => (super.noSuchMethod( - Invocation.method(#clearAnalyzer, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.ImageAnalysis pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageAnalysis_26( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageAnalysis_26( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.ImageAnalysis); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => + (super.noSuchMethod( + Invocation.method(#setAnalyzer, [analyzer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future clearAnalyzer() => + (super.noSuchMethod( + Invocation.method(#clearAnalyzer, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i5.Future setTargetRotation(int? rotation) => + (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.ImageAnalysis pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ImageAnalysis); } /// A class which mocks [ImageCapture]. @@ -2534,56 +2813,65 @@ class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { /// See the documentation for Mockito's code generation for more information. class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future setFlashMode(_i2.CameraXFlashMode? flashMode) => (super.noSuchMethod( - Invocation.method(#setFlashMode, [flashMode]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + Invocation.method(#setFlashMode, [flashMode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future takePicture() => (super.noSuchMethod( - Invocation.method(#takePicture, []), - returnValue: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#takePicture, [])), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#takePicture, [])), - ), - ) as _i5.Future); + _i5.Future takePicture() => + (super.noSuchMethod( + Invocation.method(#takePicture, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + ) + as _i5.Future); @override - _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future setTargetRotation(int? rotation) => + (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i2.ImageCapture pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageCapture_23( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageCapture_23( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.ImageCapture); + _i2.ImageCapture pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ImageCapture); } /// A class which mocks [ImageProxy]. @@ -2591,69 +2879,83 @@ class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { /// See the documentation for Mockito's code generation for more information. class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { @override - int get format => (super.noSuchMethod( - Invocation.getter(#format), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - int get width => (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - int get height => (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future> getPlanes() => (super.noSuchMethod( - Invocation.method(#getPlanes, []), - returnValue: _i5.Future>.value( - <_i2.PlaneProxy>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.PlaneProxy>[], - ), - ) as _i5.Future>); - - @override - _i5.Future close() => (super.noSuchMethod( - Invocation.method(#close, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.ImageProxy pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageProxy_38( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageProxy_38( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.ImageProxy); + int get format => + (super.noSuchMethod( + Invocation.getter(#format), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + int get width => + (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + int get height => + (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future> getPlanes() => + (super.noSuchMethod( + Invocation.method(#getPlanes, []), + returnValue: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + ) + as _i5.Future>); + + @override + _i5.Future close() => + (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.ImageProxy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ImageProxy); } /// A class which mocks [Observer]. @@ -2661,38 +2963,44 @@ class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { /// See the documentation for Mockito's code generation for more information. class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { @override - void Function(_i2.Observer, Object) get onChanged => (super.noSuchMethod( - Invocation.getter(#onChanged), - returnValue: (_i2.Observer pigeon_instance, Object value) {}, - returnValueForMissingStub: - (_i2.Observer pigeon_instance, Object value) {}, - ) as void Function(_i2.Observer, Object)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i3.Observer<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i3.Observer<_i2.CameraState>); + void Function(_i2.Observer, Object) get onChanged => + (super.noSuchMethod( + Invocation.getter(#onChanged), + returnValue: (_i2.Observer pigeon_instance, Object value) {}, + returnValueForMissingStub: + (_i2.Observer pigeon_instance, Object value) {}, + ) + as void Function(_i2.Observer, Object)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i3.Observer<_i2.CameraState> pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i3.Observer<_i2.CameraState>); } /// A class which mocks [PendingRecording]. @@ -2700,42 +3008,47 @@ class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { /// See the documentation for Mockito's code generation for more information. class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future<_i2.Recording> start(_i2.VideoRecordEventListener? listener) => (super.noSuchMethod( - Invocation.method(#start, [listener]), - returnValue: _i5.Future<_i2.Recording>.value( - _FakeRecording_39(this, Invocation.method(#start, [listener])), - ), - returnValueForMissingStub: _i5.Future<_i2.Recording>.value( - _FakeRecording_39(this, Invocation.method(#start, [listener])), - ), - ) as _i5.Future<_i2.Recording>); - - @override - _i2.PendingRecording pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePendingRecording_40( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePendingRecording_40( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.PendingRecording); + Invocation.method(#start, [listener]), + returnValue: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + returnValueForMissingStub: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + ) + as _i5.Future<_i2.Recording>); + + @override + _i2.PendingRecording pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.PendingRecording); } /// A class which mocks [PlaneProxy]. @@ -2743,51 +3056,61 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { /// See the documentation for Mockito's code generation for more information. class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { @override - _i9.Uint8List get buffer => (super.noSuchMethod( - Invocation.getter(#buffer), - returnValue: _i9.Uint8List(0), - returnValueForMissingStub: _i9.Uint8List(0), - ) as _i9.Uint8List); - - @override - int get pixelStride => (super.noSuchMethod( - Invocation.getter(#pixelStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - int get rowStride => (super.noSuchMethod( - Invocation.getter(#rowStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.PlaneProxy pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePlaneProxy_41( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePlaneProxy_41( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.PlaneProxy); + _i9.Uint8List get buffer => + (super.noSuchMethod( + Invocation.getter(#buffer), + returnValue: _i9.Uint8List(0), + returnValueForMissingStub: _i9.Uint8List(0), + ) + as _i9.Uint8List); + + @override + int get pixelStride => + (super.noSuchMethod( + Invocation.getter(#pixelStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + int get rowStride => + (super.noSuchMethod( + Invocation.getter(#rowStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) + as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.PlaneProxy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.PlaneProxy); } /// A class which mocks [Preview]. @@ -2795,69 +3118,81 @@ class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { /// See the documentation for Mockito's code generation for more information. class MockPreview extends _i1.Mock implements _i2.Preview { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future setSurfaceProvider( _i2.SystemServicesManager? systemServicesManager, ) => (super.noSuchMethod( - Invocation.method(#setSurfaceProvider, [systemServicesManager]), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) as _i5.Future); + Invocation.method(#setSurfaceProvider, [systemServicesManager]), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) + as _i5.Future); @override - _i5.Future releaseSurfaceProvider() => (super.noSuchMethod( - Invocation.method(#releaseSurfaceProvider, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future releaseSurfaceProvider() => + (super.noSuchMethod( + Invocation.method(#releaseSurfaceProvider, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => (super.noSuchMethod( - Invocation.method(#getResolutionInfo, []), - returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), - returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), - ) as _i5.Future<_i2.ResolutionInfo?>); + _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => + (super.noSuchMethod( + Invocation.method(#getResolutionInfo, []), + returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), + returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), + ) + as _i5.Future<_i2.ResolutionInfo?>); @override - _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future setTargetRotation(int? rotation) => + (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override _i5.Future surfaceProducerHandlesCropAndRotation() => (super.noSuchMethod( - Invocation.method(#surfaceProducerHandlesCropAndRotation, []), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) as _i5.Future); + Invocation.method(#surfaceProducerHandlesCropAndRotation, []), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) + as _i5.Future); @override - _i2.Preview pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePreview_19( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePreview_19( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.Preview); + _i2.Preview pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Preview); } /// A class which mocks [ProcessCameraProvider]. @@ -2866,29 +3201,32 @@ class MockPreview extends _i1.Mock implements _i2.Preview { class MockProcessCameraProvider extends _i1.Mock implements _i2.ProcessCameraProvider { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future> getAvailableCameraInfos() => (super.noSuchMethod( - Invocation.method(#getAvailableCameraInfos, []), - returnValue: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - ) as _i5.Future>); + Invocation.method(#getAvailableCameraInfos, []), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) + as _i5.Future>); @override _i5.Future<_i2.Camera> bindToLifecycle( @@ -2896,54 +3234,63 @@ class MockProcessCameraProvider extends _i1.Mock List<_i2.UseCase>? useCases, ) => (super.noSuchMethod( - Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - returnValue: _i5.Future<_i2.Camera>.value( - _FakeCamera_5( - this, Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.Camera>.value( - _FakeCamera_5( - this, - Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - ), - ), - ) as _i5.Future<_i2.Camera>); + returnValue: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + ), + ), + ) + as _i5.Future<_i2.Camera>); @override - _i5.Future isBound(_i2.UseCase? useCase) => (super.noSuchMethod( - Invocation.method(#isBound, [useCase]), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) as _i5.Future); + _i5.Future isBound(_i2.UseCase? useCase) => + (super.noSuchMethod( + Invocation.method(#isBound, [useCase]), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) + as _i5.Future); @override - _i5.Future unbind(List<_i2.UseCase>? useCases) => (super.noSuchMethod( - Invocation.method(#unbind, [useCases]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future unbind(List<_i2.UseCase>? useCases) => + (super.noSuchMethod( + Invocation.method(#unbind, [useCases]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future unbindAll() => (super.noSuchMethod( - Invocation.method(#unbindAll, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future unbindAll() => + (super.noSuchMethod( + Invocation.method(#unbindAll, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i2.ProcessCameraProvider pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeProcessCameraProvider_33( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeProcessCameraProvider_33( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.ProcessCameraProvider); + _i2.ProcessCameraProvider pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ProcessCameraProvider); } /// A class which mocks [QualitySelector]. @@ -2951,30 +3298,34 @@ class MockProcessCameraProvider extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.QualitySelector pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeQualitySelector_27( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeQualitySelector_27( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.QualitySelector); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.QualitySelector pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.QualitySelector); } /// A class which mocks [Recorder]. @@ -2982,79 +3333,90 @@ class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { /// See the documentation for Mockito's code generation for more information. class MockRecorder extends _i1.Mock implements _i2.Recorder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future getAspectRatio() => (super.noSuchMethod( - Invocation.method(#getAspectRatio, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) as _i5.Future); - - @override - _i5.Future getTargetVideoEncodingBitRate() => (super.noSuchMethod( - Invocation.method(#getTargetVideoEncodingBitRate, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) as _i5.Future); - - @override - _i5.Future<_i2.QualitySelector> getQualitySelector() => (super.noSuchMethod( - Invocation.method(#getQualitySelector, []), - returnValue: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( - this, - Invocation.method(#getQualitySelector, []), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( - this, + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future getAspectRatio() => + (super.noSuchMethod( + Invocation.method(#getAspectRatio, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) + as _i5.Future); + + @override + _i5.Future getTargetVideoEncodingBitRate() => + (super.noSuchMethod( + Invocation.method(#getTargetVideoEncodingBitRate, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) + as _i5.Future); + + @override + _i5.Future<_i2.QualitySelector> getQualitySelector() => + (super.noSuchMethod( Invocation.method(#getQualitySelector, []), - ), - ), - ) as _i5.Future<_i2.QualitySelector>); + returnValue: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, + Invocation.method(#getQualitySelector, []), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, + Invocation.method(#getQualitySelector, []), + ), + ), + ) + as _i5.Future<_i2.QualitySelector>); @override _i5.Future<_i2.PendingRecording> prepareRecording(String? path) => (super.noSuchMethod( - Invocation.method(#prepareRecording, [path]), - returnValue: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_40( - this, - Invocation.method(#prepareRecording, [path]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_40( - this, Invocation.method(#prepareRecording, [path]), - ), - ), - ) as _i5.Future<_i2.PendingRecording>); + returnValue: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, + Invocation.method(#prepareRecording, [path]), + ), + ), + returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, + Invocation.method(#prepareRecording, [path]), + ), + ), + ) + as _i5.Future<_i2.PendingRecording>); @override - _i2.Recorder pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecorder_21( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeRecorder_21( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.Recorder); + _i2.Recorder pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Recorder); } /// A class which mocks [ResolutionFilter]. @@ -3062,30 +3424,34 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { /// See the documentation for Mockito's code generation for more information. class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.ResolutionFilter pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionFilter_31( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionFilter_31( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.ResolutionFilter); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.ResolutionFilter pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ResolutionFilter); } /// A class which mocks [ResolutionSelector]. @@ -3094,48 +3460,54 @@ class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { class MockResolutionSelector extends _i1.Mock implements _i2.ResolutionSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategy> getAspectRatioStrategy() => (super.noSuchMethod( - Invocation.method(#getAspectRatioStrategy, []), - returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, - Invocation.method(#getAspectRatioStrategy, []), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, Invocation.method(#getAspectRatioStrategy, []), - ), - ), - ) as _i5.Future<_i2.AspectRatioStrategy>); - - @override - _i2.ResolutionSelector pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionSelector_25( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionSelector_25( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.ResolutionSelector); + returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, + Invocation.method(#getAspectRatioStrategy, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, + Invocation.method(#getAspectRatioStrategy, []), + ), + ), + ) + as _i5.Future<_i2.AspectRatioStrategy>); + + @override + _i2.ResolutionSelector pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ResolutionSelector); } /// A class which mocks [ResolutionStrategy]. @@ -3144,50 +3516,57 @@ class MockResolutionSelector extends _i1.Mock class MockResolutionStrategy extends _i1.Mock implements _i2.ResolutionStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override - _i5.Future<_i2.CameraSize?> getBoundSize() => (super.noSuchMethod( - Invocation.method(#getBoundSize, []), - returnValue: _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), - ) as _i5.Future<_i2.CameraSize?>); + _i5.Future<_i2.CameraSize?> getBoundSize() => + (super.noSuchMethod( + Invocation.method(#getBoundSize, []), + returnValue: _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), + ) + as _i5.Future<_i2.CameraSize?>); @override _i5.Future<_i2.ResolutionStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method(#getFallbackRule, []), - returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher, - ), - returnValueForMissingStub: - _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher, - ), - ) as _i5.Future<_i2.ResolutionStrategyFallbackRule>); - - @override - _i2.ResolutionStrategy pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionStrategy_24( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionStrategy_24( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.ResolutionStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + returnValueForMissingStub: + _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + ) + as _i5.Future<_i2.ResolutionStrategyFallbackRule>); + + @override + _i2.ResolutionStrategy pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ResolutionStrategy); } /// A class which mocks [Recording]. @@ -3195,58 +3574,70 @@ class MockResolutionStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockRecording extends _i1.Mock implements _i2.Recording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override - _i5.Future close() => (super.noSuchMethod( - Invocation.method(#close, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future close() => + (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future pause() => (super.noSuchMethod( - Invocation.method(#pause, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future pause() => + (super.noSuchMethod( + Invocation.method(#pause, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future resume() => (super.noSuchMethod( - Invocation.method(#resume, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future resume() => + (super.noSuchMethod( + Invocation.method(#resume, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future stop() => (super.noSuchMethod( - Invocation.method(#stop, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future stop() => + (super.noSuchMethod( + Invocation.method(#stop, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i2.Recording pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecording_39( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeRecording_39( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.Recording); + _i2.Recording pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.Recording); } /// A class which mocks [SystemServicesManager]. @@ -3257,71 +3648,80 @@ class MockSystemServicesManager extends _i1.Mock @override void Function(_i2.SystemServicesManager, String) get onCameraError => (super.noSuchMethod( - Invocation.getter(#onCameraError), - returnValue: ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - returnValueForMissingStub: ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - ) as void Function(_i2.SystemServicesManager, String)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + Invocation.getter(#onCameraError), + returnValue: + ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + returnValueForMissingStub: + ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + ) + as void Function(_i2.SystemServicesManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override _i5.Future<_i2.CameraPermissionsError?> requestCameraPermissions( bool? enableAudio, ) => (super.noSuchMethod( - Invocation.method(#requestCameraPermissions, [enableAudio]), - returnValue: _i5.Future<_i2.CameraPermissionsError?>.value(), - returnValueForMissingStub: - _i5.Future<_i2.CameraPermissionsError?>.value(), - ) as _i5.Future<_i2.CameraPermissionsError?>); + Invocation.method(#requestCameraPermissions, [enableAudio]), + returnValue: _i5.Future<_i2.CameraPermissionsError?>.value(), + returnValueForMissingStub: + _i5.Future<_i2.CameraPermissionsError?>.value(), + ) + as _i5.Future<_i2.CameraPermissionsError?>); @override _i5.Future getTempFilePath(String? prefix, String? suffix) => (super.noSuchMethod( - Invocation.method(#getTempFilePath, [prefix, suffix]), - returnValue: _i5.Future.value( - _i6.dummyValue( - this, Invocation.method(#getTempFilePath, [prefix, suffix]), - ), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getTempFilePath, [prefix, suffix]), - ), - ), - ) as _i5.Future); + returnValue: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getTempFilePath, [prefix, suffix]), + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getTempFilePath, [prefix, suffix]), + ), + ), + ) + as _i5.Future); @override - _i2.SystemServicesManager pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeSystemServicesManager_17( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeSystemServicesManager_17( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.SystemServicesManager); + _i2.SystemServicesManager pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.SystemServicesManager); } /// A class which mocks [VideoCapture]. @@ -3329,48 +3729,56 @@ class MockSystemServicesManager extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.VideoOutput> getOutput() => (super.noSuchMethod( - Invocation.method(#getOutput, []), - returnValue: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), - ), - returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), - ), - ) as _i5.Future<_i2.VideoOutput>); - - @override - _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); - - @override - _i2.VideoCapture pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeVideoCapture_20( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeVideoCapture_20( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.VideoCapture); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.VideoOutput> getOutput() => + (super.noSuchMethod( + Invocation.method(#getOutput, []), + returnValue: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + ) + as _i5.Future<_i2.VideoOutput>); + + @override + _i5.Future setTargetRotation(int? rotation) => + (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); + + @override + _i2.VideoCapture pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.VideoCapture); } /// A class which mocks [ZoomState]. @@ -3378,44 +3786,52 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { /// See the documentation for Mockito's code generation for more information. class MockZoomState extends _i1.Mock implements _i2.ZoomState { @override - double get minZoomRatio => (super.noSuchMethod( - Invocation.getter(#minZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) as double); - - @override - double get maxZoomRatio => (super.noSuchMethod( - Invocation.getter(#maxZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); - - @override - _i2.ZoomState pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeZoomState_43( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeZoomState_43( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i2.ZoomState); + double get minZoomRatio => + (super.noSuchMethod( + Invocation.getter(#minZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) + as double); + + @override + double get maxZoomRatio => + (super.noSuchMethod( + Invocation.getter(#maxZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) + as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); + + @override + _i2.ZoomState pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i2.ZoomState); } /// A class which mocks [LiveData]. @@ -3428,48 +3844,60 @@ class MockLiveCameraState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) as _i2.LiveDataSupportedType); + _i2.LiveDataSupportedType get type => + (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) + as _i2.LiveDataSupportedType); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override - _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( - Invocation.method(#observe, [observer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future observe(_i2.Observer? observer) => + (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future<_i2.CameraState?> getValue() => (super.noSuchMethod( - Invocation.method(#getValue, []), - returnValue: _i5.Future<_i2.CameraState?>.value(), - ) as _i5.Future<_i2.CameraState?>); + _i5.Future<_i2.CameraState?> getValue() => + (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.CameraState?>.value(), + ) + as _i5.Future<_i2.CameraState?>); @override - _i3.LiveData<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i3.LiveData<_i2.CameraState>); + _i3.LiveData<_i2.CameraState> pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i3.LiveData<_i2.CameraState>); @override - _i5.Future removeObservers() => (super.noSuchMethod( - Invocation.method(#removeObservers, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future removeObservers() => + (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); } /// A class which mocks [LiveData]. @@ -3482,46 +3910,58 @@ class MockLiveZoomState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) as _i2.LiveDataSupportedType); + _i2.LiveDataSupportedType get type => + (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) + as _i2.LiveDataSupportedType); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => + (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) + as _i2.PigeonInstanceManager); @override - _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( - Invocation.method(#observe, [observer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future observe(_i2.Observer? observer) => + (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); @override - _i5.Future<_i2.ZoomState?> getValue() => (super.noSuchMethod( - Invocation.method(#getValue, []), - returnValue: _i5.Future<_i2.ZoomState?>.value(), - ) as _i5.Future<_i2.ZoomState?>); + _i5.Future<_i2.ZoomState?> getValue() => + (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.ZoomState?>.value(), + ) + as _i5.Future<_i2.ZoomState?>); @override - _i3.LiveData<_i2.ZoomState> pigeon_copy() => (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) as _i3.LiveData<_i2.ZoomState>); + _i3.LiveData<_i2.ZoomState> pigeon_copy() => + (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) + as _i3.LiveData<_i2.ZoomState>); @override - _i5.Future removeObservers() => (super.noSuchMethod( - Invocation.method(#removeObservers, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) as _i5.Future); + _i5.Future removeObservers() => + (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) + as _i5.Future); } diff --git a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart index 4ec364fcd5b..b4b047fa2a7 100644 --- a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart +++ b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart @@ -26,70 +26,78 @@ void main() { /// /// Returns mock ProcessCameraProvider that is used to select test camera. MockProcessCameraProvider - setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - {required MockCameraSelector mockCameraSelector, - required int sensorRotationDegrees}) { + setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera({ + required MockCameraSelector mockCameraSelector, + required int sensorRotationDegrees, + }) { final MockProcessCameraProvider mockProcessCameraProvider = MockProcessCameraProvider(); final MockCameraInfo mockCameraInfo = MockCameraInfo(); final MockCamera mockCamera = MockCamera(); // Mock retrieving available test camera. - when(mockProcessCameraProvider.bindToLifecycle(any, any)) - .thenAnswer((_) async => mockCamera); + when( + mockProcessCameraProvider.bindToLifecycle(any, any), + ).thenAnswer((_) async => mockCamera); when(mockCamera.getCameraInfo()).thenAnswer((_) async => mockCameraInfo); - when(mockProcessCameraProvider.getAvailableCameraInfos()) - .thenAnswer((_) async => [mockCameraInfo]); - when(mockCameraSelector.filter([mockCameraInfo])) - .thenAnswer((_) async => [mockCameraInfo]); - when(mockCameraInfo.sensorRotationDegrees) - .thenReturn(sensorRotationDegrees); + when( + mockProcessCameraProvider.getAvailableCameraInfos(), + ).thenAnswer((_) async => [mockCameraInfo]); + when( + mockCameraSelector.filter([mockCameraInfo]), + ).thenAnswer((_) async => [mockCameraInfo]); + when( + mockCameraInfo.sensorRotationDegrees, + ).thenReturn(sensorRotationDegrees); // Mock additional ProcessCameraProvider operation that is irrelevant // for the tests in this file. - when(mockCameraInfo.getCameraState()) - .thenAnswer((_) async => MockLiveCameraState()); + when( + mockCameraInfo.getCameraState(), + ).thenAnswer((_) async => MockLiveCameraState()); return mockProcessCameraProvider; } /// Returns CameraXProxy used to mock all calls to native Android in /// the `availableCameras` and `createCameraWithSettings` methods. - CameraXProxy getProxyForCreatingTestCamera( - {required MockProcessCameraProvider mockProcessCameraProvider, - required CameraSelector Function({ - LensFacing? requireLensFacing, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) createCameraSelector, - required bool handlesCropAndRotation, - required Future Function() getUiOrientation}) => - CameraXProxy( - getInstanceProcessCameraProvider: ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) async => - mockProcessCameraProvider, - newCameraSelector: createCameraSelector, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, + CameraXProxy getProxyForCreatingTestCamera({ + required MockProcessCameraProvider mockProcessCameraProvider, + required CameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) + createCameraSelector, + required bool handlesCropAndRotation, + required Future Function() getUiOrientation, + }) => CameraXProxy( + getInstanceProcessCameraProvider: + ({ // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockPreview preview = MockPreview(); - when(preview.surfaceProducerHandlesCropAndRotation()).thenAnswer( - (_) async => handlesCropAndRotation, - ); - return preview; - }, - newImageCapture: ({ + }) async => mockProcessCameraProvider, + newCameraSelector: createCameraSelector, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockPreview preview = MockPreview(); + when( + preview.surfaceProducerHandlesCropAndRotation(), + ).thenAnswer((_) async => handlesCropAndRotation); + return preview; + }, + newImageCapture: + ({ int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, @@ -97,9 +105,9 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) => - MockImageCapture(), - newRecorder: ({ + }) => MockImageCapture(), + newRecorder: + ({ int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, @@ -107,161 +115,152 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) => - MockRecorder(), - withOutputVideoCapture: ({ - required VideoOutput videoOutput, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockVideoCapture(); - }, - newImageAnalysis: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockImageAnalysis(); - }, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionStrategy(); - }, - newResolutionSelector: ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionSelector(); - }, - lowerQualityOrHigherThanFallbackStrategy: ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, - lowerQualityThanFallbackStrategy: ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockCamera2CameraInfo camera2cameraInfo = - MockCamera2CameraInfo(); - when( - camera2cameraInfo.getCameraCharacteristic(any), - ).thenAnswer((_) async => 90); - return camera2cameraInfo; - }, - fromQualitySelector: ({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockQualitySelector(); - }, - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - }, - newSystemServicesManager: ({ - required void Function( - SystemServicesManager, - String, - ) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockSystemServicesManager(); - }, - newDeviceOrientationManager: ({ - required void Function( - DeviceOrientationManager, - String, - ) onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDeviceOrientationManager manager = - MockDeviceOrientationManager(); - when(manager.getUiOrientation()).thenAnswer( - (_) => getUiOrientation(), - ); - return manager; - }, // 3 is a random Flutter SurfaceTexture ID for testing - newAspectRatioStrategy: ({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockAspectRatioStrategy mockAspectRatioStrategy = - MockAspectRatioStrategy(); - when(mockAspectRatioStrategy.getFallbackRule()).thenAnswer( - (_) async => fallbackRule, - ); - when(mockAspectRatioStrategy.getPreferredAspectRatio()).thenAnswer( - (_) async => preferredAspectRatio, - ); - return mockAspectRatioStrategy; - }, - createWithOnePreferredSizeResolutionFilter: ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }, + }) => MockRecorder(), + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockVideoCapture(); + }, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockImageAnalysis(); + }, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + lowerQualityThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockCamera2CameraInfo camera2cameraInfo = MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => 90); + return camera2cameraInfo; + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), ); + }, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); + }, + newDeviceOrientationManager: ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getUiOrientation()).thenAnswer((_) => getUiOrientation()); + return manager; + }, // 3 is a random Flutter SurfaceTexture ID for testing + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockAspectRatioStrategy mockAspectRatioStrategy = + MockAspectRatioStrategy(); + when( + mockAspectRatioStrategy.getFallbackRule(), + ).thenAnswer((_) async => fallbackRule); + when( + mockAspectRatioStrategy.getPreferredAspectRatio(), + ).thenAnswer((_) async => preferredAspectRatio); + return mockAspectRatioStrategy; + }, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, + ); /// Returns function that a CameraXProxy can use to select the front camera. MockCameraSelector Function({ @@ -270,7 +269,8 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) createCameraSelectorForFrontCamera(MockCameraSelector mockCameraSelector) { + }) + createCameraSelectorForFrontCamera(MockCameraSelector mockCameraSelector) { return ({ LensFacing? requireLensFacing, // ignore: non_constant_identifier_names @@ -297,7 +297,8 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) createCameraSelectorForBackCamera(MockCameraSelector mockCameraSelector) { + }) + createCameraSelectorForBackCamera(MockCameraSelector mockCameraSelector) { return ({ LensFacing? requireLensFacing, // ignore: non_constant_identifier_names @@ -319,56 +320,66 @@ void main() { /// Error message for detecting an incorrect preview rotation. String getExpectedRotationTestFailureReason( - int expectedQuarterTurns, int actualQuarterTurns) => + int expectedQuarterTurns, + int actualQuarterTurns, + ) => 'Expected the preview to be rotated by $expectedQuarterTurns quarter turns (which is ${expectedQuarterTurns * 90} degrees clockwise) but instead was rotated $actualQuarterTurns quarter turns.'; testWidgets( - 'when handlesCropAndRotation is true, the preview is an unrotated Texture', - (WidgetTester tester) async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 537; - const MediaSettings testMediaSettings = - MediaSettings(); // media settings irrelevant for test - - // Set up test camera (specifics irrelevant for this test) and - // tell camera that handlesCropAndRotation is true. - final MockCameraSelector mockCameraSelector = MockCameraSelector(); - final MockProcessCameraProvider mockProcessCameraProvider = - setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( + 'when handlesCropAndRotation is true, the preview is an unrotated Texture', + (WidgetTester tester) async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 537; + const MediaSettings testMediaSettings = + MediaSettings(); // media settings irrelevant for test + + // Set up test camera (specifics irrelevant for this test) and + // tell camera that handlesCropAndRotation is true. + final MockCameraSelector mockCameraSelector = MockCameraSelector(); + final MockProcessCameraProvider mockProcessCameraProvider = + setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( mockCameraSelector: mockCameraSelector, - sensorRotationDegrees: /* irrelevant for test */ 90); - camera.proxy = getProxyForCreatingTestCamera( + sensorRotationDegrees: /* irrelevant for test */ 90, + ); + camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, - createCameraSelector: ({ - LensFacing? requireLensFacing, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - mockCameraSelector, + createCameraSelector: + ({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => mockCameraSelector, handlesCropAndRotation: true, - /* irrelevant for test */ getUiOrientation: () async => - _serializeDeviceOrientation(DeviceOrientation.landscapeLeft)); - - // Get and create test camera. - final List availableCameras = - await camera.availableCameras(); - expect(availableCameras.length, 1); - await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); - - // Put camera preview in widget tree. - await tester.pumpWidget(camera.buildPreview(cameraId)); - - // Verify Texture was built. - final Texture texture = tester.widget(find.byType(Texture)); - expect(texture.textureId, cameraId); - - // Verify RotatedBox was not built and thus, the Texture is not rotated. - expect(() => tester.widget(find.byType(RotatedBox)), - throwsStateError); - }); + /* irrelevant for test */ getUiOrientation: + () async => + _serializeDeviceOrientation(DeviceOrientation.landscapeLeft), + ); + + // Get and create test camera. + final List availableCameras = + await camera.availableCameras(); + expect(availableCameras.length, 1); + await camera.createCameraWithSettings( + availableCameras.first, + testMediaSettings, + ); + + // Put camera preview in widget tree. + await tester.pumpWidget(camera.buildPreview(cameraId)); + + // Verify Texture was built. + final Texture texture = tester.widget(find.byType(Texture)); + expect(texture.textureId, cameraId); + + // Verify RotatedBox was not built and thus, the Texture is not rotated. + expect( + () => tester.widget(find.byType(RotatedBox)), + throwsStateError, + ); + }, + ); group('when handlesCropAndRotation is false,', () { // Test that preview rotation responds to initial device orientation: @@ -382,7 +393,8 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) proxyCreateCameraSelectorForFrontCamera; + }) + proxyCreateCameraSelectorForFrontCamera; late MockProcessCameraProvider mockProcessCameraProviderForFrontCamera; late MediaSettings testMediaSettings; @@ -397,465 +409,582 @@ void main() { createCameraSelectorForFrontCamera(mockFrontCameraSelector); mockProcessCameraProviderForFrontCamera = setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockFrontCameraSelector, - sensorRotationDegrees: 270); + mockCameraSelector: mockFrontCameraSelector, + sensorRotationDegrees: 270, + ); // Media settings to create camera; irrelevant for test. testMediaSettings = const MediaSettings(); }); testWidgets( - 'initial device orientation fixed to DeviceOrientation.portraitUp, then the preview Texture is rotated 270 degrees clockwise', - (WidgetTester tester) async { - // Set up test to use front camera, tell camera that handlesCropAndRotation is false, - // set camera initial device orientation to portrait up. - camera.proxy = getProxyForCreatingTestCamera( + 'initial device orientation fixed to DeviceOrientation.portraitUp, then the preview Texture is rotated 270 degrees clockwise', + (WidgetTester tester) async { + // Set up test to use front camera, tell camera that handlesCropAndRotation is false, + // set camera initial device orientation to portrait up. + camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () async => - _serializeDeviceOrientation(DeviceOrientation.portraitUp)); + getUiOrientation: + () async => + _serializeDeviceOrientation(DeviceOrientation.portraitUp), + ); - // Get and create test front camera. - final List availableCameras = - await camera.availableCameras(); - expect(availableCameras.length, 1); - await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); + // Get and create test front camera. + final List availableCameras = + await camera.availableCameras(); + expect(availableCameras.length, 1); + await camera.createCameraWithSettings( + availableCameras.first, + testMediaSettings, + ); - // Put camera preview in widget tree. - await tester.pumpWidget(camera.buildPreview(cameraId)); + // Put camera preview in widget tree. + await tester.pumpWidget(camera.buildPreview(cameraId)); - // Verify Texture is rotated by ((270 - 0 * 1 + 360) % 360) - 0 = 270 degrees. - const int expectedQuarterTurns = _270DegreesClockwise; - final RotatedBox rotatedBox = - tester.widget(find.byType(RotatedBox)); - expect(rotatedBox.child, isA()); - expect((rotatedBox.child! as Texture).textureId, cameraId); - expect(rotatedBox.quarterTurns, expectedQuarterTurns, + // Verify Texture is rotated by ((270 - 0 * 1 + 360) % 360) - 0 = 270 degrees. + const int expectedQuarterTurns = _270DegreesClockwise; + final RotatedBox rotatedBox = tester.widget( + find.byType(RotatedBox), + ); + expect(rotatedBox.child, isA()); + expect((rotatedBox.child! as Texture).textureId, cameraId); + expect( + rotatedBox.quarterTurns, + expectedQuarterTurns, reason: getExpectedRotationTestFailureReason( - expectedQuarterTurns, rotatedBox.quarterTurns)); - }); + expectedQuarterTurns, + rotatedBox.quarterTurns, + ), + ); + }, + ); testWidgets( - 'initial device orientation fixed to DeviceOrientation.landscapeRight, then the preview Texture is rotated 90 degrees clockwise', - (WidgetTester tester) async { - // Set up test to use front camera, tell camera that handlesCropAndRotation is false, - // set camera initial device orientation to landscape right. - camera.proxy = getProxyForCreatingTestCamera( + 'initial device orientation fixed to DeviceOrientation.landscapeRight, then the preview Texture is rotated 90 degrees clockwise', + (WidgetTester tester) async { + // Set up test to use front camera, tell camera that handlesCropAndRotation is false, + // set camera initial device orientation to landscape right. + camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () async => - _serializeDeviceOrientation(DeviceOrientation.landscapeRight)); + getUiOrientation: + () async => _serializeDeviceOrientation( + DeviceOrientation.landscapeRight, + ), + ); - // Get and create test front camera. - final List availableCameras = - await camera.availableCameras(); - expect(availableCameras.length, 1); - await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); + // Get and create test front camera. + final List availableCameras = + await camera.availableCameras(); + expect(availableCameras.length, 1); + await camera.createCameraWithSettings( + availableCameras.first, + testMediaSettings, + ); - // Put camera preview in widget tree. - await tester.pumpWidget(camera.buildPreview(cameraId)); + // Put camera preview in widget tree. + await tester.pumpWidget(camera.buildPreview(cameraId)); - // Verify Texture is rotated by ((90 - 270 * 1 + 360) % 360) - 90 = 90 degrees. - const int expectedQuarterTurns = _90DegreesClockwise; - final RotatedBox rotatedBox = - tester.widget(find.byType(RotatedBox)); - expect(rotatedBox.child, isA()); - expect((rotatedBox.child! as Texture).textureId, cameraId); - expect(rotatedBox.quarterTurns, expectedQuarterTurns, + // Verify Texture is rotated by ((90 - 270 * 1 + 360) % 360) - 90 = 90 degrees. + const int expectedQuarterTurns = _90DegreesClockwise; + final RotatedBox rotatedBox = tester.widget( + find.byType(RotatedBox), + ); + expect(rotatedBox.child, isA()); + expect((rotatedBox.child! as Texture).textureId, cameraId); + expect( + rotatedBox.quarterTurns, + expectedQuarterTurns, reason: getExpectedRotationTestFailureReason( - expectedQuarterTurns, rotatedBox.quarterTurns)); - }); + expectedQuarterTurns, + rotatedBox.quarterTurns, + ), + ); + }, + ); testWidgets( - 'initial device orientation fixed to DeviceOrientation.portraitDown, then the preview Texture is rotated 270 degrees clockwise', - (WidgetTester tester) async { - // Set up test to use front camera, tell camera that handlesCropAndRotation is false, - // set camera initial device orientation to portrait down. - camera.proxy = getProxyForCreatingTestCamera( + 'initial device orientation fixed to DeviceOrientation.portraitDown, then the preview Texture is rotated 270 degrees clockwise', + (WidgetTester tester) async { + // Set up test to use front camera, tell camera that handlesCropAndRotation is false, + // set camera initial device orientation to portrait down. + camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () async => - _serializeDeviceOrientation(DeviceOrientation.portraitDown)); + getUiOrientation: + () async => + _serializeDeviceOrientation(DeviceOrientation.portraitDown), + ); - // Get and create test front camera. - final List availableCameras = - await camera.availableCameras(); - expect(availableCameras.length, 1); - await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); + // Get and create test front camera. + final List availableCameras = + await camera.availableCameras(); + expect(availableCameras.length, 1); + await camera.createCameraWithSettings( + availableCameras.first, + testMediaSettings, + ); - // Put camera preview in widget tree. - await tester.pumpWidget(camera.buildPreview(cameraId)); + // Put camera preview in widget tree. + await tester.pumpWidget(camera.buildPreview(cameraId)); - // Verify Texture is rotated by ((270 - 180 * 1 + 360) % 360) - 180 = -90 degrees clockwise = 90 degrees counterclockwise = 270 degrees. - const int expectedQuarterTurns = _270DegreesClockwise; - final RotatedBox rotatedBox = - tester.widget(find.byType(RotatedBox)); - final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; - expect(rotatedBox.child, isA()); - expect((rotatedBox.child! as Texture).textureId, cameraId); - expect(clockwiseQuarterTurns, expectedQuarterTurns, + // Verify Texture is rotated by ((270 - 180 * 1 + 360) % 360) - 180 = -90 degrees clockwise = 90 degrees counterclockwise = 270 degrees. + const int expectedQuarterTurns = _270DegreesClockwise; + final RotatedBox rotatedBox = tester.widget( + find.byType(RotatedBox), + ); + final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; + expect(rotatedBox.child, isA()); + expect((rotatedBox.child! as Texture).textureId, cameraId); + expect( + clockwiseQuarterTurns, + expectedQuarterTurns, reason: getExpectedRotationTestFailureReason( - expectedQuarterTurns, rotatedBox.quarterTurns)); - }); + expectedQuarterTurns, + rotatedBox.quarterTurns, + ), + ); + }, + ); testWidgets( - 'initial device orientation fixed to DeviceOrientation.landscapeLeft, then the preview Texture is rotated 90 degrees clockwise', - (WidgetTester tester) async { - // Set up test to use front camera, tell camera that handlesCropAndRotation is false, - // set camera initial device orientation to landscape left. - camera.proxy = getProxyForCreatingTestCamera( + 'initial device orientation fixed to DeviceOrientation.landscapeLeft, then the preview Texture is rotated 90 degrees clockwise', + (WidgetTester tester) async { + // Set up test to use front camera, tell camera that handlesCropAndRotation is false, + // set camera initial device orientation to landscape left. + camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: () async => - _serializeDeviceOrientation(DeviceOrientation.landscapeLeft)); + getUiOrientation: + () async => _serializeDeviceOrientation( + DeviceOrientation.landscapeLeft, + ), + ); - // Get and create test front camera. - final List availableCameras = - await camera.availableCameras(); - expect(availableCameras.length, 1); - await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); + // Get and create test front camera. + final List availableCameras = + await camera.availableCameras(); + expect(availableCameras.length, 1); + await camera.createCameraWithSettings( + availableCameras.first, + testMediaSettings, + ); - // Put camera preview in widget tree. - await tester.pumpWidget(camera.buildPreview(cameraId)); + // Put camera preview in widget tree. + await tester.pumpWidget(camera.buildPreview(cameraId)); - // Verify Texture is rotated by ((270 - 270 * 1 + 360) % 360) - 270 = -270 degrees clockwise = 270 degrees counterclockwise = 90 degrees. - const int expectedQuarterTurns = _90DegreesClockwise; - final RotatedBox rotatedBox = - tester.widget(find.byType(RotatedBox)); - final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; - expect(rotatedBox.child, isA()); - expect((rotatedBox.child! as Texture).textureId, cameraId); - expect(clockwiseQuarterTurns, expectedQuarterTurns, + // Verify Texture is rotated by ((270 - 270 * 1 + 360) % 360) - 270 = -270 degrees clockwise = 270 degrees counterclockwise = 90 degrees. + const int expectedQuarterTurns = _90DegreesClockwise; + final RotatedBox rotatedBox = tester.widget( + find.byType(RotatedBox), + ); + final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; + expect(rotatedBox.child, isA()); + expect((rotatedBox.child! as Texture).textureId, cameraId); + expect( + clockwiseQuarterTurns, + expectedQuarterTurns, reason: getExpectedRotationTestFailureReason( - expectedQuarterTurns, rotatedBox.quarterTurns)); - }); + expectedQuarterTurns, + rotatedBox.quarterTurns, + ), + ); + }, + ); }); testWidgets( - 'sensor orientation degrees is 90, camera is front facing, then the preview Texture rotates correctly as the device orientation rotates', - (WidgetTester tester) async { - final AndroidCameraCameraX camera = AndroidCameraCameraX(); - const int cameraId = 3372; + 'sensor orientation degrees is 90, camera is front facing, then the preview Texture rotates correctly as the device orientation rotates', + (WidgetTester tester) async { + final AndroidCameraCameraX camera = AndroidCameraCameraX(); + const int cameraId = 3372; - // Create and set up mock CameraSelector and mock ProcessCameraProvider for test front camera - // with sensor orientation degrees 90. - final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); - final MockCameraSelector Function({ - LensFacing? requireLensFacing, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) proxyCreateCameraSelectorForFrontCamera = - createCameraSelectorForFrontCamera(mockFrontCameraSelector); - final MockProcessCameraProvider mockProcessCameraProviderForFrontCamera = - setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( + // Create and set up mock CameraSelector and mock ProcessCameraProvider for test front camera + // with sensor orientation degrees 90. + final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); + final MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) + proxyCreateCameraSelectorForFrontCamera = + createCameraSelectorForFrontCamera(mockFrontCameraSelector); + final MockProcessCameraProvider + mockProcessCameraProviderForFrontCamera = + setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( mockCameraSelector: mockFrontCameraSelector, - sensorRotationDegrees: 90); + sensorRotationDegrees: 90, + ); - // Media settings to create camera; irrelevant for test. - const MediaSettings testMediaSettings = MediaSettings(); + // Media settings to create camera; irrelevant for test. + const MediaSettings testMediaSettings = MediaSettings(); - // Set up test to use front camera and tell camera that handlesCropAndRotation is false, - // set camera initial device orientation to landscape left. - camera.proxy = getProxyForCreatingTestCamera( + // Set up test to use front camera and tell camera that handlesCropAndRotation is false, + // set camera initial device orientation to landscape left. + camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, getUiOrientation: /* initial device orientation irrelevant for test */ () async => - _serializeDeviceOrientation(DeviceOrientation.landscapeLeft)); - - // Get and create test front camera. - final List availableCameras = - await camera.availableCameras(); - expect(availableCameras.length, 1); - await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); - - // Calculated according to: - // ((90 - currentDeviceOrientation * 1 + 360) % 360) - currentDeviceOrientation. - final Map expectedRotationPerDeviceOrientation = - { - DeviceOrientation.portraitUp: _90DegreesClockwise, - DeviceOrientation.landscapeRight: _270DegreesClockwise, - DeviceOrientation.portraitDown: _90DegreesClockwise, - DeviceOrientation.landscapeLeft: _270DegreesClockwise, - }; - - // Put camera preview in widget tree. - await tester.pumpWidget(camera.buildPreview(cameraId)); + _serializeDeviceOrientation(DeviceOrientation.landscapeLeft), + ); - for (final DeviceOrientation currentDeviceOrientation - in expectedRotationPerDeviceOrientation.keys) { - final DeviceOrientationChangedEvent testEvent = - DeviceOrientationChangedEvent(currentDeviceOrientation); - AndroidCameraCameraX.deviceOrientationChangedStreamController - .add(testEvent); - - await tester.pumpAndSettle(); - - // Verify Texture is rotated by expected clockwise degrees. - final int expectedQuarterTurns = - expectedRotationPerDeviceOrientation[currentDeviceOrientation]!; - final RotatedBox rotatedBox = - tester.widget(find.byType(RotatedBox)); - final int clockwiseQuarterTurns = rotatedBox.quarterTurns < 0 - ? rotatedBox.quarterTurns + 4 - : rotatedBox.quarterTurns; - expect(rotatedBox.child, isA()); - expect((rotatedBox.child! as Texture).textureId, cameraId); - expect(clockwiseQuarterTurns, expectedQuarterTurns, - reason: - 'When the device orientation is $currentDeviceOrientation, expected the preview to be rotated by $expectedQuarterTurns quarter turns (which is ${expectedQuarterTurns * 90} degrees clockwise) but instead was rotated ${rotatedBox.quarterTurns} quarter turns.'); - } - - await AndroidCameraCameraX.deviceOrientationChangedStreamController - .close(); - }); - - // Test the preview rotation responds to the two most common sensor orientations for Android phone cameras; see - // https://developer.android.com/media/camera/camera2/camera-preview#camera_orientation. - group( - 'initial device orientation is DeviceOrientation.landscapeLeft, camera is back facing,', - () { - late AndroidCameraCameraX camera; - late int cameraId; - late MockCameraSelector mockBackCameraSelector; - late MockCameraSelector Function({ - LensFacing? requireLensFacing, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) proxyCreateCameraSelectorForBackCamera; - late MediaSettings testMediaSettings; - late DeviceOrientation testInitialDeviceOrientation; - - setUp(() { - camera = AndroidCameraCameraX(); - cameraId = 347; - - // Set test camera initial device orientation for test. - testInitialDeviceOrientation = DeviceOrientation.landscapeLeft; - - // Create and set up mock CameraSelector and mock ProcessCameraProvider for test back camera - // with sensor orientation degrees 270. - mockBackCameraSelector = MockCameraSelector(); - proxyCreateCameraSelectorForBackCamera = - createCameraSelectorForBackCamera(mockBackCameraSelector); - - testMediaSettings = const MediaSettings(); - }); - - testWidgets( - 'sensor orientation degrees is 90, then the preview Texture is rotated 90 degrees clockwise', - (WidgetTester tester) async { - // Create mock ProcessCameraProvider that will acknowledge that the test back camera with sensor orientation degrees - // 90 is available. - final MockProcessCameraProvider mockProcessCameraProviderForBackCamera = - setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockBackCameraSelector, - sensorRotationDegrees: 90); - - // Set up test to use back camera, tell camera that handlesCropAndRotation is false, - // set camera initial device orientation to landscape left. - camera.proxy = getProxyForCreatingTestCamera( - mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, - createCameraSelector: proxyCreateCameraSelectorForBackCamera, - handlesCropAndRotation: false, - getUiOrientation: () async => - _serializeDeviceOrientation(testInitialDeviceOrientation)); - - // Get and create test back camera. + // Get and create test front camera. final List availableCameras = await camera.availableCameras(); expect(availableCameras.length, 1); await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); + availableCameras.first, + testMediaSettings, + ); + + // Calculated according to: + // ((90 - currentDeviceOrientation * 1 + 360) % 360) - currentDeviceOrientation. + final Map expectedRotationPerDeviceOrientation = + { + DeviceOrientation.portraitUp: _90DegreesClockwise, + DeviceOrientation.landscapeRight: _270DegreesClockwise, + DeviceOrientation.portraitDown: _90DegreesClockwise, + DeviceOrientation.landscapeLeft: _270DegreesClockwise, + }; // Put camera preview in widget tree. await tester.pumpWidget(camera.buildPreview(cameraId)); - // Verify Texture is rotated by ((90 - 270 * -1 + 360) % 360) - 270 = -270 degrees clockwise = 270 degrees counterclockwise = 90 degrees clockwise. - const int expectedQuarterTurns = _90DegreesClockwise; - final RotatedBox rotatedBox = - tester.widget(find.byType(RotatedBox)); - final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; - expect(rotatedBox.child, isA()); - expect((rotatedBox.child! as Texture).textureId, cameraId); - expect(clockwiseQuarterTurns, expectedQuarterTurns, - reason: getExpectedRotationTestFailureReason( - expectedQuarterTurns, rotatedBox.quarterTurns)); - }); - - testWidgets( - 'sensor orientation degrees is 270, then the preview Texture is rotated 270 degrees clockwise', - (WidgetTester tester) async { - // Create mock ProcessCameraProvider that will acknowledge that the test back camera with sensor orientation degrees - // 270 is available. - final MockProcessCameraProvider mockProcessCameraProviderForBackCamera = - setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockBackCameraSelector, - sensorRotationDegrees: 270); - - // Set up test to use back camera, tell camera that handlesCropAndRotation is false, - // set camera initial device orientation to landscape left. - camera.proxy = getProxyForCreatingTestCamera( - mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, - createCameraSelector: proxyCreateCameraSelectorForBackCamera, - handlesCropAndRotation: false, - getUiOrientation: () async => - _serializeDeviceOrientation(testInitialDeviceOrientation)); + for (final DeviceOrientation currentDeviceOrientation + in expectedRotationPerDeviceOrientation.keys) { + final DeviceOrientationChangedEvent testEvent = + DeviceOrientationChangedEvent(currentDeviceOrientation); + AndroidCameraCameraX.deviceOrientationChangedStreamController.add( + testEvent, + ); - // Get and create test back camera. - final List availableCameras = - await camera.availableCameras(); - expect(availableCameras.length, 1); - await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); + await tester.pumpAndSettle(); - // Put camera preview in widget tree. - await tester.pumpWidget(camera.buildPreview(cameraId)); + // Verify Texture is rotated by expected clockwise degrees. + final int expectedQuarterTurns = + expectedRotationPerDeviceOrientation[currentDeviceOrientation]!; + final RotatedBox rotatedBox = tester.widget( + find.byType(RotatedBox), + ); + final int clockwiseQuarterTurns = + rotatedBox.quarterTurns < 0 + ? rotatedBox.quarterTurns + 4 + : rotatedBox.quarterTurns; + expect(rotatedBox.child, isA()); + expect((rotatedBox.child! as Texture).textureId, cameraId); + expect( + clockwiseQuarterTurns, + expectedQuarterTurns, + reason: + 'When the device orientation is $currentDeviceOrientation, expected the preview to be rotated by $expectedQuarterTurns quarter turns (which is ${expectedQuarterTurns * 90} degrees clockwise) but instead was rotated ${rotatedBox.quarterTurns} quarter turns.', + ); + } - // Verify Texture is rotated by ((270 - 270 * -1 + 360) % 360) - 270 = -90 degrees clockwise = 90 degrees counterclockwise = 270 degrees clockwise. - const int expectedQuarterTurns = _270DegreesClockwise; - final RotatedBox rotatedBox = - tester.widget(find.byType(RotatedBox)); - final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; - expect(rotatedBox.child, isA()); - expect((rotatedBox.child! as Texture).textureId, cameraId); - expect(clockwiseQuarterTurns, expectedQuarterTurns, - reason: getExpectedRotationTestFailureReason( - expectedQuarterTurns, rotatedBox.quarterTurns)); - }); - }); + await AndroidCameraCameraX.deviceOrientationChangedStreamController + .close(); + }, + ); - // Test the preview rotation responds to the camera being front or back facing: + // Test the preview rotation responds to the two most common sensor orientations for Android phone cameras; see + // https://developer.android.com/media/camera/camera2/camera-preview#camera_orientation. group( - 'initial device orientation is DeviceOrientation.landscapeRight, sensor orientation degrees is 90,', - () { - late AndroidCameraCameraX camera; - late int cameraId; - late MediaSettings testMediaSettings; - late DeviceOrientation testInitialDeviceOrientation; - late int testSensorOrientation; - - setUp(() { - camera = AndroidCameraCameraX(); - cameraId = 317; - - // Set test camera initial device orientation and sensor orientation for test. - testInitialDeviceOrientation = DeviceOrientation.landscapeRight; - testSensorOrientation = 90; - - // Media settings to create camera; irrelevant for test. - testMediaSettings = const MediaSettings(); - }); - - testWidgets( - 'camera is front facing, then the preview Texture is rotated 270 degrees clockwise', - (WidgetTester tester) async { - // Set up test front camera with sensor orientation degrees 90. - final MockCameraSelector mockFrontCameraSelector = MockCameraSelector(); - final MockProcessCameraProvider mockProcessCameraProvider = - setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockFrontCameraSelector, - sensorRotationDegrees: testSensorOrientation); - - // Set up front camera selection and initial device orientation as landscape right. - final MockCameraSelector Function({ + 'initial device orientation is DeviceOrientation.landscapeLeft, camera is back facing,', + () { + late AndroidCameraCameraX camera; + late int cameraId; + late MockCameraSelector mockBackCameraSelector; + late MockCameraSelector Function({ LensFacing? requireLensFacing, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) proxyCreateCameraSelectorForFrontCamera = - createCameraSelectorForFrontCamera(mockFrontCameraSelector); - camera.proxy = getProxyForCreatingTestCamera( - mockProcessCameraProvider: mockProcessCameraProvider, - createCameraSelector: proxyCreateCameraSelectorForFrontCamera, - handlesCropAndRotation: false, - getUiOrientation: () async => - _serializeDeviceOrientation(testInitialDeviceOrientation)); + }) + proxyCreateCameraSelectorForBackCamera; + late MediaSettings testMediaSettings; + late DeviceOrientation testInitialDeviceOrientation; - // Get and create test camera. - final List availableCameras = - await camera.availableCameras(); - expect(availableCameras.length, 1); - await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); + setUp(() { + camera = AndroidCameraCameraX(); + cameraId = 347; - // Put camera preview in widget tree. - await tester.pumpWidget(camera.buildPreview(cameraId)); + // Set test camera initial device orientation for test. + testInitialDeviceOrientation = DeviceOrientation.landscapeLeft; - // Verify Texture is rotated by ((90 - 90 * 1 + 360) % 360) - 90 = -90 degrees clockwise = 90 degrees counterclockwise = 270 degrees clockwise. - const int expectedQuarterTurns = _270DegreesClockwise; - final RotatedBox rotatedBox = - tester.widget(find.byType(RotatedBox)); - final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; - expect(rotatedBox.child, isA()); - expect((rotatedBox.child! as Texture).textureId, cameraId); - expect(clockwiseQuarterTurns, expectedQuarterTurns, - reason: getExpectedRotationTestFailureReason( - expectedQuarterTurns, rotatedBox.quarterTurns)); - }); + // Create and set up mock CameraSelector and mock ProcessCameraProvider for test back camera + // with sensor orientation degrees 270. + mockBackCameraSelector = MockCameraSelector(); + proxyCreateCameraSelectorForBackCamera = + createCameraSelectorForBackCamera(mockBackCameraSelector); - testWidgets( - 'camera is back facing, then the preview Texture is rotated 90 degrees clockwise', - (WidgetTester tester) async { - // Set up test front camera with sensor orientation degrees 90. - final MockCameraSelector mockBackCameraSelector = MockCameraSelector(); - final MockProcessCameraProvider mockProcessCameraProvider = - setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockBackCameraSelector, - sensorRotationDegrees: testSensorOrientation); + testMediaSettings = const MediaSettings(); + }); - // Set up front camera selection and initial device orientation as landscape right. - final MockCameraSelector Function({ - LensFacing? requireLensFacing, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) proxyCreateCameraSelectorForFrontCamera = - createCameraSelectorForBackCamera(mockBackCameraSelector); - camera.proxy = getProxyForCreatingTestCamera( - mockProcessCameraProvider: mockProcessCameraProvider, - createCameraSelector: proxyCreateCameraSelectorForFrontCamera, - handlesCropAndRotation: false, - getUiOrientation: () async => - _serializeDeviceOrientation(testInitialDeviceOrientation)); - - // Get and create test camera. - final List availableCameras = - await camera.availableCameras(); - expect(availableCameras.length, 1); - await camera.createCameraWithSettings( - availableCameras.first, testMediaSettings); - - // Put camera preview in widget tree. - await tester.pumpWidget(camera.buildPreview(cameraId)); + testWidgets( + 'sensor orientation degrees is 90, then the preview Texture is rotated 90 degrees clockwise', + (WidgetTester tester) async { + // Create mock ProcessCameraProvider that will acknowledge that the test back camera with sensor orientation degrees + // 90 is available. + final MockProcessCameraProvider + mockProcessCameraProviderForBackCamera = + setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( + mockCameraSelector: mockBackCameraSelector, + sensorRotationDegrees: 90, + ); + + // Set up test to use back camera, tell camera that handlesCropAndRotation is false, + // set camera initial device orientation to landscape left. + camera.proxy = getProxyForCreatingTestCamera( + mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, + createCameraSelector: proxyCreateCameraSelectorForBackCamera, + handlesCropAndRotation: false, + getUiOrientation: + () async => + _serializeDeviceOrientation(testInitialDeviceOrientation), + ); + + // Get and create test back camera. + final List availableCameras = + await camera.availableCameras(); + expect(availableCameras.length, 1); + await camera.createCameraWithSettings( + availableCameras.first, + testMediaSettings, + ); + + // Put camera preview in widget tree. + await tester.pumpWidget(camera.buildPreview(cameraId)); + + // Verify Texture is rotated by ((90 - 270 * -1 + 360) % 360) - 270 = -270 degrees clockwise = 270 degrees counterclockwise = 90 degrees clockwise. + const int expectedQuarterTurns = _90DegreesClockwise; + final RotatedBox rotatedBox = tester.widget( + find.byType(RotatedBox), + ); + final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; + expect(rotatedBox.child, isA()); + expect((rotatedBox.child! as Texture).textureId, cameraId); + expect( + clockwiseQuarterTurns, + expectedQuarterTurns, + reason: getExpectedRotationTestFailureReason( + expectedQuarterTurns, + rotatedBox.quarterTurns, + ), + ); + }, + ); + + testWidgets( + 'sensor orientation degrees is 270, then the preview Texture is rotated 270 degrees clockwise', + (WidgetTester tester) async { + // Create mock ProcessCameraProvider that will acknowledge that the test back camera with sensor orientation degrees + // 270 is available. + final MockProcessCameraProvider + mockProcessCameraProviderForBackCamera = + setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( + mockCameraSelector: mockBackCameraSelector, + sensorRotationDegrees: 270, + ); + + // Set up test to use back camera, tell camera that handlesCropAndRotation is false, + // set camera initial device orientation to landscape left. + camera.proxy = getProxyForCreatingTestCamera( + mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, + createCameraSelector: proxyCreateCameraSelectorForBackCamera, + handlesCropAndRotation: false, + getUiOrientation: + () async => + _serializeDeviceOrientation(testInitialDeviceOrientation), + ); + + // Get and create test back camera. + final List availableCameras = + await camera.availableCameras(); + expect(availableCameras.length, 1); + await camera.createCameraWithSettings( + availableCameras.first, + testMediaSettings, + ); + + // Put camera preview in widget tree. + await tester.pumpWidget(camera.buildPreview(cameraId)); + + // Verify Texture is rotated by ((270 - 270 * -1 + 360) % 360) - 270 = -90 degrees clockwise = 90 degrees counterclockwise = 270 degrees clockwise. + const int expectedQuarterTurns = _270DegreesClockwise; + final RotatedBox rotatedBox = tester.widget( + find.byType(RotatedBox), + ); + final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; + expect(rotatedBox.child, isA()); + expect((rotatedBox.child! as Texture).textureId, cameraId); + expect( + clockwiseQuarterTurns, + expectedQuarterTurns, + reason: getExpectedRotationTestFailureReason( + expectedQuarterTurns, + rotatedBox.quarterTurns, + ), + ); + }, + ); + }, + ); - // Verify Texture is rotated by ((90 - 90 * -1 + 360) % 360) - 90 = 90 degrees clockwise. - const int expectedQuarterTurns = _90DegreesClockwise; - final RotatedBox rotatedBox = - tester.widget(find.byType(RotatedBox)); - expect(rotatedBox.child, isA()); - expect((rotatedBox.child! as Texture).textureId, cameraId); - expect(rotatedBox.quarterTurns, expectedQuarterTurns, - reason: getExpectedRotationTestFailureReason( - expectedQuarterTurns, rotatedBox.quarterTurns)); - }); - }); + // Test the preview rotation responds to the camera being front or back facing: + group( + 'initial device orientation is DeviceOrientation.landscapeRight, sensor orientation degrees is 90,', + () { + late AndroidCameraCameraX camera; + late int cameraId; + late MediaSettings testMediaSettings; + late DeviceOrientation testInitialDeviceOrientation; + late int testSensorOrientation; + + setUp(() { + camera = AndroidCameraCameraX(); + cameraId = 317; + + // Set test camera initial device orientation and sensor orientation for test. + testInitialDeviceOrientation = DeviceOrientation.landscapeRight; + testSensorOrientation = 90; + + // Media settings to create camera; irrelevant for test. + testMediaSettings = const MediaSettings(); + }); + + testWidgets( + 'camera is front facing, then the preview Texture is rotated 270 degrees clockwise', + (WidgetTester tester) async { + // Set up test front camera with sensor orientation degrees 90. + final MockCameraSelector mockFrontCameraSelector = + MockCameraSelector(); + final MockProcessCameraProvider mockProcessCameraProvider = + setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( + mockCameraSelector: mockFrontCameraSelector, + sensorRotationDegrees: testSensorOrientation, + ); + + // Set up front camera selection and initial device orientation as landscape right. + final MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) + proxyCreateCameraSelectorForFrontCamera = + createCameraSelectorForFrontCamera(mockFrontCameraSelector); + camera.proxy = getProxyForCreatingTestCamera( + mockProcessCameraProvider: mockProcessCameraProvider, + createCameraSelector: proxyCreateCameraSelectorForFrontCamera, + handlesCropAndRotation: false, + getUiOrientation: + () async => + _serializeDeviceOrientation(testInitialDeviceOrientation), + ); + + // Get and create test camera. + final List availableCameras = + await camera.availableCameras(); + expect(availableCameras.length, 1); + await camera.createCameraWithSettings( + availableCameras.first, + testMediaSettings, + ); + + // Put camera preview in widget tree. + await tester.pumpWidget(camera.buildPreview(cameraId)); + + // Verify Texture is rotated by ((90 - 90 * 1 + 360) % 360) - 90 = -90 degrees clockwise = 90 degrees counterclockwise = 270 degrees clockwise. + const int expectedQuarterTurns = _270DegreesClockwise; + final RotatedBox rotatedBox = tester.widget( + find.byType(RotatedBox), + ); + final int clockwiseQuarterTurns = rotatedBox.quarterTurns + 4; + expect(rotatedBox.child, isA()); + expect((rotatedBox.child! as Texture).textureId, cameraId); + expect( + clockwiseQuarterTurns, + expectedQuarterTurns, + reason: getExpectedRotationTestFailureReason( + expectedQuarterTurns, + rotatedBox.quarterTurns, + ), + ); + }, + ); + + testWidgets( + 'camera is back facing, then the preview Texture is rotated 90 degrees clockwise', + (WidgetTester tester) async { + // Set up test front camera with sensor orientation degrees 90. + final MockCameraSelector mockBackCameraSelector = + MockCameraSelector(); + final MockProcessCameraProvider mockProcessCameraProvider = + setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( + mockCameraSelector: mockBackCameraSelector, + sensorRotationDegrees: testSensorOrientation, + ); + + // Set up front camera selection and initial device orientation as landscape right. + final MockCameraSelector Function({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) + proxyCreateCameraSelectorForFrontCamera = + createCameraSelectorForBackCamera(mockBackCameraSelector); + camera.proxy = getProxyForCreatingTestCamera( + mockProcessCameraProvider: mockProcessCameraProvider, + createCameraSelector: proxyCreateCameraSelectorForFrontCamera, + handlesCropAndRotation: false, + getUiOrientation: + () async => + _serializeDeviceOrientation(testInitialDeviceOrientation), + ); + + // Get and create test camera. + final List availableCameras = + await camera.availableCameras(); + expect(availableCameras.length, 1); + await camera.createCameraWithSettings( + availableCameras.first, + testMediaSettings, + ); + + // Put camera preview in widget tree. + await tester.pumpWidget(camera.buildPreview(cameraId)); + + // Verify Texture is rotated by ((90 - 90 * -1 + 360) % 360) - 90 = 90 degrees clockwise. + const int expectedQuarterTurns = _90DegreesClockwise; + final RotatedBox rotatedBox = tester.widget( + find.byType(RotatedBox), + ); + expect(rotatedBox.child, isA()); + expect((rotatedBox.child! as Texture).textureId, cameraId); + expect( + rotatedBox.quarterTurns, + expectedQuarterTurns, + reason: getExpectedRotationTestFailureReason( + expectedQuarterTurns, + rotatedBox.quarterTurns, + ), + ); + }, + ); + }, + ); }); } From 190a2b03ed879b52145691cd85a127829ea5e613 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 2 Apr 2025 16:34:56 -0400 Subject: [PATCH 135/148] maybe weird formatting --- .../plugins/camerax/CameraXLibrary.g.kt | 955 +-- .../lib/src/android_camera_camerax.dart | 198 +- .../lib/src/camerax_library.dart | 24 +- .../lib/src/camerax_library.g.dart | 4273 ++++++------- .../lib/src/camerax_proxy.dart | 120 +- .../lib/src/rotated_preview.dart | 2 +- .../pigeons/camerax_library.dart | 1 + .../test/android_camera_camerax_test.dart | 1082 ++-- .../android_camera_camerax_test.mocks.dart | 5444 ++++++++--------- .../test/preview_rotation_test.dart | 497 +- 10 files changed, 5779 insertions(+), 6817 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt index ff23ad6c244..ab1ed726680 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraXLibrary.g.kt @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v25.0.0), do not edit directly. +// Autogenerated from Pigeon (v25.2.0), do not edit directly. // See also: https://pub.dev/packages/pigeon @file:Suppress("UNCHECKED_CAST", "ArrayInDataClass", "UnsafeOptInUsageError", "SyntheticAccessor") @@ -1365,10 +1365,10 @@ abstract class PigeonApiCameraSize( abstract fun pigeon_defaultConstructor(width: Long, height: Long): android.util.Size /** The width of the size (in pixels). */ - abstract fun width(pigeonInstance: android.util.Size): Long + abstract fun width(pigeon_instance: android.util.Size): Long /** The height of the size (in pixels). */ - abstract fun height(pigeonInstance: android.util.Size): Long + abstract fun height(pigeon_instance: android.util.Size): Long companion object { @Suppress("LocalVariableName") @@ -1404,19 +1404,19 @@ abstract class PigeonApiCameraSize( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraSize and attaches it to [pigeonInstanceArg]. */ - fun pigeon_newInstance(pigeonInstanceArg: android.util.Size, callback: (Result) -> Unit) { + /** Creates a Dart instance of CameraSize and attaches it to [pigeon_instanceArg]. */ + fun pigeon_newInstance(pigeon_instanceArg: android.util.Size, callback: (Result) -> Unit) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val widthArg = width(pigeonInstanceArg) - val heightArg = height(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val widthArg = width(pigeon_instanceArg) + val heightArg = height(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance" @@ -1447,24 +1447,24 @@ abstract class PigeonApiResolutionInfo( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** Returns the output resolution used for the use case. */ - abstract fun resolution(pigeonInstance: androidx.camera.core.ResolutionInfo): android.util.Size + abstract fun resolution(pigeon_instance: androidx.camera.core.ResolutionInfo): android.util.Size @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ResolutionInfo and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.ResolutionInfo, + pigeon_instanceArg: androidx.camera.core.ResolutionInfo, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val resolutionArg = resolution(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionArg = resolution(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1499,10 +1499,10 @@ abstract class PigeonApiCameraIntegerRange( abstract fun pigeon_defaultConstructor(lower: Long, upper: Long): android.util.Range<*> /** The lower endpoint. */ - abstract fun lower(pigeonInstance: android.util.Range<*>): Long + abstract fun lower(pigeon_instance: android.util.Range<*>): Long /** The upper endpoint. */ - abstract fun upper(pigeonInstance: android.util.Range<*>): Long + abstract fun upper(pigeon_instance: android.util.Range<*>): Long companion object { @Suppress("LocalVariableName") @@ -1538,22 +1538,22 @@ abstract class PigeonApiCameraIntegerRange( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CameraIntegerRange and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: android.util.Range<*>, + pigeon_instanceArg: android.util.Range<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val lowerArg = lower(pigeonInstanceArg) - val upperArg = upper(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val lowerArg = lower(pigeon_instanceArg) + val upperArg = upper(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1584,20 +1584,20 @@ open class PigeonApiVideoRecordEvent( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of VideoRecordEvent and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.VideoRecordEvent, + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1628,20 +1628,20 @@ open class PigeonApiVideoRecordEventStart( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of VideoRecordEventStart and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.VideoRecordEvent.Start, + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Start, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1678,20 +1678,22 @@ open class PigeonApiVideoRecordEventFinalize( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeonInstanceArg]. */ + /** + * Creates a Dart instance of VideoRecordEventFinalize and attaches it to [pigeon_instanceArg]. + */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.VideoRecordEvent.Finalize, + pigeon_instanceArg: androidx.camera.video.VideoRecordEvent.Finalize, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -1734,7 +1736,7 @@ abstract class PigeonApiMeteringPoint( * It is the percentage of the sensor width/height (or crop region width/height if crop region is * set). */ - abstract fun getSize(pigeonInstance: androidx.camera.core.MeteringPoint): Double + abstract fun getSize(pigeon_instance: androidx.camera.core.MeteringPoint): Double companion object { @Suppress("LocalVariableName") @@ -1749,10 +1751,10 @@ abstract class PigeonApiMeteringPoint( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.MeteringPoint + val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPoint val wrapped: List = try { - listOf(api.getSize(pigeonInstanceArg)) + listOf(api.getSize(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -1766,20 +1768,20 @@ abstract class PigeonApiMeteringPoint( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of MeteringPoint and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of MeteringPoint and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.MeteringPoint, + pigeon_instanceArg: androidx.camera.core.MeteringPoint, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance" @@ -1840,16 +1842,16 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Observer and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of Observer and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.lifecycle.Observer<*>, + pigeon_instanceArg: androidx.lifecycle.Observer<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -1863,7 +1865,7 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP /** Called when the data is changed to value. */ fun onChanged( - pigeonInstanceArg: androidx.lifecycle.Observer<*>, + pigeon_instanceArg: androidx.lifecycle.Observer<*>, valueArg: Any, callback: (Result) -> Unit ) { @@ -1877,7 +1879,7 @@ abstract class PigeonApiObserver(open val pigeonRegistrar: CameraXLibraryPigeonP val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Observer.onChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeonInstanceArg, valueArg)) { + channel.send(listOf(pigeon_instanceArg, valueArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -1903,21 +1905,21 @@ abstract class PigeonApiCameraInfo( * Returns the sensor rotation in degrees, relative to the device's "natural" (default) * orientation. */ - abstract fun sensorRotationDegrees(pigeonInstance: androidx.camera.core.CameraInfo): Long + abstract fun sensorRotationDegrees(pigeon_instance: androidx.camera.core.CameraInfo): Long /** Returns a ExposureState. */ abstract fun exposureState( - pigeonInstance: androidx.camera.core.CameraInfo + pigeon_instance: androidx.camera.core.CameraInfo ): androidx.camera.core.ExposureState /** A LiveData of the camera's state. */ abstract fun getCameraState( - pigeonInstance: androidx.camera.core.CameraInfo + pigeon_instance: androidx.camera.core.CameraInfo ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper /** A LiveData of ZoomState. */ abstract fun getZoomState( - pigeonInstance: androidx.camera.core.CameraInfo + pigeon_instance: androidx.camera.core.CameraInfo ): io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper companion object { @@ -1933,10 +1935,10 @@ abstract class PigeonApiCameraInfo( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.CameraInfo + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo val wrapped: List = try { - listOf(api.getCameraState(pigeonInstanceArg)) + listOf(api.getCameraState(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -1955,10 +1957,10 @@ abstract class PigeonApiCameraInfo( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.CameraInfo + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraInfo val wrapped: List = try { - listOf(api.getZoomState(pigeonInstanceArg)) + listOf(api.getZoomState(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -1972,22 +1974,22 @@ abstract class PigeonApiCameraInfo( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraInfo and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CameraInfo and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.CameraInfo, + pigeon_instanceArg: androidx.camera.core.CameraInfo, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val sensorRotationDegreesArg = sensorRotationDegrees(pigeonInstanceArg) - val exposureStateArg = exposureState(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val sensorRotationDegreesArg = sensorRotationDegrees(pigeon_instanceArg) + val exposureStateArg = exposureState(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance" @@ -2028,7 +2030,7 @@ abstract class PigeonApiCameraSelector( /** Filters the input `CameraInfo`s using the `CameraFilter`s assigned to the selector. */ abstract fun filter( - pigeonInstance: androidx.camera.core.CameraSelector, + pigeon_instance: androidx.camera.core.CameraSelector, cameraInfos: List ): List @@ -2118,11 +2120,11 @@ abstract class PigeonApiCameraSelector( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.CameraSelector + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraSelector val cameraInfosArg = args[1] as List val wrapped: List = try { - listOf(api.filter(pigeonInstanceArg, cameraInfosArg)) + listOf(api.filter(pigeon_instanceArg, cameraInfosArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2136,20 +2138,20 @@ abstract class PigeonApiCameraSelector( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraSelector and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CameraSelector and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.CameraSelector, + pigeon_instanceArg: androidx.camera.core.CameraSelector, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -2187,30 +2189,30 @@ abstract class PigeonApiProcessCameraProvider( /** The `CameraInfo` instances of the available cameras. */ abstract fun getAvailableCameraInfos( - pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider ): List /** Binds the collection of `UseCase` to a `LifecycleOwner`. */ abstract fun bindToLifecycle( - pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider, + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, cameraSelector: androidx.camera.core.CameraSelector, useCases: List ): androidx.camera.core.Camera /** Returns true if the `UseCase` is bound to a lifecycle. */ abstract fun isBound( - pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider, + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCase: androidx.camera.core.UseCase ): Boolean /** Unbinds all specified use cases from the lifecycle provider. */ abstract fun unbind( - pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider, + pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider, useCases: List ) /** Unbinds all use cases from the lifecycle provider and removes them from CameraX. */ - abstract fun unbindAll(pigeonInstance: androidx.camera.lifecycle.ProcessCameraProvider) + abstract fun unbindAll(pigeon_instance: androidx.camera.lifecycle.ProcessCameraProvider) companion object { @Suppress("LocalVariableName") @@ -2250,10 +2252,10 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val wrapped: List = try { - listOf(api.getAvailableCameraInfos(pigeonInstanceArg)) + listOf(api.getAvailableCameraInfos(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2272,12 +2274,12 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val cameraSelectorArg = args[1] as androidx.camera.core.CameraSelector val useCasesArg = args[2] as List val wrapped: List = try { - listOf(api.bindToLifecycle(pigeonInstanceArg, cameraSelectorArg, useCasesArg)) + listOf(api.bindToLifecycle(pigeon_instanceArg, cameraSelectorArg, useCasesArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2296,11 +2298,11 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCaseArg = args[1] as androidx.camera.core.UseCase val wrapped: List = try { - listOf(api.isBound(pigeonInstanceArg, useCaseArg)) + listOf(api.isBound(pigeon_instanceArg, useCaseArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2319,11 +2321,11 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val useCasesArg = args[1] as List val wrapped: List = try { - api.unbind(pigeonInstanceArg, useCasesArg) + api.unbind(pigeon_instanceArg, useCasesArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2343,10 +2345,10 @@ abstract class PigeonApiProcessCameraProvider( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider + val pigeon_instanceArg = args[0] as androidx.camera.lifecycle.ProcessCameraProvider val wrapped: List = try { - api.unbindAll(pigeonInstanceArg) + api.unbindAll(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2361,20 +2363,20 @@ abstract class PigeonApiProcessCameraProvider( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ProcessCameraProvider and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.lifecycle.ProcessCameraProvider, + pigeon_instanceArg: androidx.camera.lifecycle.ProcessCameraProvider, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -2403,20 +2405,20 @@ abstract class PigeonApiProcessCameraProvider( @Suppress("UNCHECKED_CAST") open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of UseCase and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of UseCase and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.UseCase, + pigeon_instanceArg: androidx.camera.core.UseCase, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance" @@ -2446,12 +2448,12 @@ open class PigeonApiUseCase(open val pigeonRegistrar: CameraXLibraryPigeonProxyA abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The `CameraControl` for the Camera. */ abstract fun cameraControl( - pigeonInstance: androidx.camera.core.Camera + pigeon_instance: androidx.camera.core.Camera ): androidx.camera.core.CameraControl /** Returns information about this camera. */ abstract fun getCameraInfo( - pigeonInstance: androidx.camera.core.Camera + pigeon_instance: androidx.camera.core.Camera ): androidx.camera.core.CameraInfo companion object { @@ -2467,10 +2469,10 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.Camera + val pigeon_instanceArg = args[0] as androidx.camera.core.Camera val wrapped: List = try { - listOf(api.getCameraInfo(pigeonInstanceArg)) + listOf(api.getCameraInfo(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2484,21 +2486,21 @@ abstract class PigeonApiCamera(open val pigeonRegistrar: CameraXLibraryPigeonPro } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Camera and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of Camera and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.Camera, + pigeon_instanceArg: androidx.camera.core.Camera, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val cameraControlArg = cameraControl(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val cameraControlArg = cameraControl(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance" @@ -2526,14 +2528,14 @@ abstract class PigeonApiSystemServicesManager( abstract fun pigeon_defaultConstructor(): SystemServicesManager abstract fun requestCameraPermissions( - pigeonInstance: SystemServicesManager, + pigeon_instance: SystemServicesManager, enableAudio: Boolean, callback: (Result) -> Unit ) /** Returns a path to be used to create a temp file in the current cache directory. */ abstract fun getTempFilePath( - pigeonInstance: SystemServicesManager, + pigeon_instance: SystemServicesManager, prefix: String, suffix: String ): String @@ -2578,9 +2580,9 @@ abstract class PigeonApiSystemServicesManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as SystemServicesManager + val pigeon_instanceArg = args[0] as SystemServicesManager val enableAudioArg = args[1] as Boolean - api.requestCameraPermissions(pigeonInstanceArg, enableAudioArg) { + api.requestCameraPermissions(pigeon_instanceArg, enableAudioArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { @@ -2604,12 +2606,12 @@ abstract class PigeonApiSystemServicesManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as SystemServicesManager + val pigeon_instanceArg = args[0] as SystemServicesManager val prefixArg = args[1] as String val suffixArg = args[2] as String val wrapped: List = try { - listOf(api.getTempFilePath(pigeonInstanceArg, prefixArg, suffixArg)) + listOf(api.getTempFilePath(pigeon_instanceArg, prefixArg, suffixArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2623,16 +2625,16 @@ abstract class PigeonApiSystemServicesManager( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of SystemServicesManager and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: SystemServicesManager, + pigeon_instanceArg: SystemServicesManager, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -2645,7 +2647,7 @@ abstract class PigeonApiSystemServicesManager( } fun onCameraError( - pigeonInstanceArg: SystemServicesManager, + pigeon_instanceArg: SystemServicesManager, errorDescriptionArg: String, callback: (Result) -> Unit ) { @@ -2660,7 +2662,7 @@ abstract class PigeonApiSystemServicesManager( val channelName = "dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeonInstanceArg, errorDescriptionArg)) { + channel.send(listOf(pigeon_instanceArg, errorDescriptionArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -2678,27 +2680,27 @@ abstract class PigeonApiSystemServicesManager( abstract class PigeonApiCameraPermissionsError( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { - abstract fun errorCode(pigeonInstance: CameraPermissionsError): String + abstract fun errorCode(pigeon_instance: CameraPermissionsError): String - abstract fun description(pigeonInstance: CameraPermissionsError): String + abstract fun description(pigeon_instance: CameraPermissionsError): String @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraPermissionsError and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CameraPermissionsError and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: CameraPermissionsError, + pigeon_instanceArg: CameraPermissionsError, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val errorCodeArg = errorCode(pigeonInstanceArg) - val descriptionArg = description(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val errorCodeArg = errorCode(pigeon_instanceArg) + val descriptionArg = description(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -2728,13 +2730,13 @@ abstract class PigeonApiDeviceOrientationManager( ) { abstract fun pigeon_defaultConstructor(): DeviceOrientationManager - abstract fun startListeningForDeviceOrientationChange(pigeonInstance: DeviceOrientationManager) + abstract fun startListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) - abstract fun stopListeningForDeviceOrientationChange(pigeonInstance: DeviceOrientationManager) + abstract fun stopListeningForDeviceOrientationChange(pigeon_instance: DeviceOrientationManager) - abstract fun getDefaultDisplayRotation(pigeonInstance: DeviceOrientationManager): Long + abstract fun getDefaultDisplayRotation(pigeon_instance: DeviceOrientationManager): Long - abstract fun getUiOrientation(pigeonInstance: DeviceOrientationManager): String + abstract fun getUiOrientation(pigeon_instance: DeviceOrientationManager): String companion object { @Suppress("LocalVariableName") @@ -2776,10 +2778,10 @@ abstract class PigeonApiDeviceOrientationManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as DeviceOrientationManager + val pigeon_instanceArg = args[0] as DeviceOrientationManager val wrapped: List = try { - api.startListeningForDeviceOrientationChange(pigeonInstanceArg) + api.startListeningForDeviceOrientationChange(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2799,10 +2801,10 @@ abstract class PigeonApiDeviceOrientationManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as DeviceOrientationManager + val pigeon_instanceArg = args[0] as DeviceOrientationManager val wrapped: List = try { - api.stopListeningForDeviceOrientationChange(pigeonInstanceArg) + api.stopListeningForDeviceOrientationChange(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -2822,10 +2824,10 @@ abstract class PigeonApiDeviceOrientationManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as DeviceOrientationManager + val pigeon_instanceArg = args[0] as DeviceOrientationManager val wrapped: List = try { - listOf(api.getDefaultDisplayRotation(pigeonInstanceArg)) + listOf(api.getDefaultDisplayRotation(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2844,10 +2846,10 @@ abstract class PigeonApiDeviceOrientationManager( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as DeviceOrientationManager + val pigeon_instanceArg = args[0] as DeviceOrientationManager val wrapped: List = try { - listOf(api.getUiOrientation(pigeonInstanceArg)) + listOf(api.getUiOrientation(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -2861,16 +2863,18 @@ abstract class PigeonApiDeviceOrientationManager( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeonInstanceArg]. */ + /** + * Creates a Dart instance of DeviceOrientationManager and attaches it to [pigeon_instanceArg]. + */ fun pigeon_newInstance( - pigeonInstanceArg: DeviceOrientationManager, + pigeon_instanceArg: DeviceOrientationManager, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -2883,7 +2887,7 @@ abstract class PigeonApiDeviceOrientationManager( } fun onDeviceOrientationChanged( - pigeonInstanceArg: DeviceOrientationManager, + pigeon_instanceArg: DeviceOrientationManager, orientationArg: String, callback: (Result) -> Unit ) { @@ -2898,7 +2902,7 @@ abstract class PigeonApiDeviceOrientationManager( val channelName = "dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeonInstanceArg, orientationArg)) { + channel.send(listOf(pigeon_instanceArg, orientationArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -2924,7 +2928,7 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr ): androidx.camera.core.Preview abstract fun resolutionSelector( - pigeonInstance: androidx.camera.core.Preview + pigeon_instance: androidx.camera.core.Preview ): androidx.camera.core.resolutionselector.ResolutionSelector? /** @@ -2936,27 +2940,27 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr * 3. Returns the texture id of the `TextureEntry` that provided the `SurfaceProducer`. */ abstract fun setSurfaceProvider( - pigeonInstance: androidx.camera.core.Preview, + pigeon_instance: androidx.camera.core.Preview, systemServicesManager: SystemServicesManager ): Long /** Releases the `SurfaceProducer` created in `setSurfaceProvider` if one was created. */ - abstract fun releaseSurfaceProvider(pigeonInstance: androidx.camera.core.Preview) + abstract fun releaseSurfaceProvider(pigeon_instance: androidx.camera.core.Preview) /** Gets selected resolution information of the `Preview`. */ abstract fun getResolutionInfo( - pigeonInstance: androidx.camera.core.Preview + pigeon_instance: androidx.camera.core.Preview ): androidx.camera.core.ResolutionInfo? /** Sets the target rotation. */ - abstract fun setTargetRotation(pigeonInstance: androidx.camera.core.Preview, rotation: Long) + abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.Preview, rotation: Long) /** * Returns whether or not the preview's surface producer handles correctly rotating the camera * preview automatically. */ abstract fun surfaceProducerHandlesCropAndRotation( - pigeonInstance: androidx.camera.core.Preview + pigeon_instance: androidx.camera.core.Preview ): Boolean companion object { @@ -3000,11 +3004,11 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.Preview + val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val systemServicesManagerArg = args[1] as SystemServicesManager val wrapped: List = try { - listOf(api.setSurfaceProvider(pigeonInstanceArg, systemServicesManagerArg)) + listOf(api.setSurfaceProvider(pigeon_instanceArg, systemServicesManagerArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3023,10 +3027,10 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.Preview + val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val wrapped: List = try { - api.releaseSurfaceProvider(pigeonInstanceArg) + api.releaseSurfaceProvider(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3046,10 +3050,10 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.Preview + val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val wrapped: List = try { - listOf(api.getResolutionInfo(pigeonInstanceArg)) + listOf(api.getResolutionInfo(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3068,11 +3072,11 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.Preview + val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val rotationArg = args[1] as Long val wrapped: List = try { - api.setTargetRotation(pigeonInstanceArg, rotationArg) + api.setTargetRotation(pigeon_instanceArg, rotationArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3092,10 +3096,10 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.Preview + val pigeon_instanceArg = args[0] as androidx.camera.core.Preview val wrapped: List = try { - listOf(api.surfaceProducerHandlesCropAndRotation(pigeonInstanceArg)) + listOf(api.surfaceProducerHandlesCropAndRotation(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3109,21 +3113,21 @@ abstract class PigeonApiPreview(open val pigeonRegistrar: CameraXLibraryPigeonPr } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Preview and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of Preview and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.Preview, + pigeon_instanceArg: androidx.camera.core.Preview, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val resolutionSelectorArg = resolutionSelector(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance" @@ -3165,12 +3169,12 @@ abstract class PigeonApiVideoCapture( /** Gets the VideoOutput associated with this VideoCapture. */ abstract fun getOutput( - pigeonInstance: androidx.camera.video.VideoCapture<*> + pigeon_instance: androidx.camera.video.VideoCapture<*> ): androidx.camera.video.VideoOutput /** Sets the desired rotation of the output video. */ abstract fun setTargetRotation( - pigeonInstance: androidx.camera.video.VideoCapture<*>, + pigeon_instance: androidx.camera.video.VideoCapture<*>, rotation: Long ) @@ -3212,10 +3216,10 @@ abstract class PigeonApiVideoCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.VideoCapture<*> + val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> val wrapped: List = try { - listOf(api.getOutput(pigeonInstanceArg)) + listOf(api.getOutput(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3234,11 +3238,11 @@ abstract class PigeonApiVideoCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.VideoCapture<*> + val pigeon_instanceArg = args[0] as androidx.camera.video.VideoCapture<*> val rotationArg = args[1] as Long val wrapped: List = try { - api.setTargetRotation(pigeonInstanceArg, rotationArg) + api.setTargetRotation(pigeon_instanceArg, rotationArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3253,20 +3257,20 @@ abstract class PigeonApiVideoCapture( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoCapture and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of VideoCapture and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.VideoCapture<*>, + pigeon_instanceArg: androidx.camera.video.VideoCapture<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance" @@ -3300,20 +3304,20 @@ abstract class PigeonApiVideoCapture( @Suppress("UNCHECKED_CAST") open class PigeonApiVideoOutput(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoOutput and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of VideoOutput and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.VideoOutput, + pigeon_instanceArg: androidx.camera.video.VideoOutput, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance" @@ -3348,19 +3352,19 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP ): androidx.camera.video.Recorder /** Gets the aspect ratio of this Recorder. */ - abstract fun getAspectRatio(pigeonInstance: androidx.camera.video.Recorder): Long + abstract fun getAspectRatio(pigeon_instance: androidx.camera.video.Recorder): Long /** Gets the target video encoding bitrate of this Recorder. */ - abstract fun getTargetVideoEncodingBitRate(pigeonInstance: androidx.camera.video.Recorder): Long + abstract fun getTargetVideoEncodingBitRate(pigeon_instance: androidx.camera.video.Recorder): Long /** The quality selector of this Recorder. */ abstract fun getQualitySelector( - pigeonInstance: androidx.camera.video.Recorder + pigeon_instance: androidx.camera.video.Recorder ): androidx.camera.video.QualitySelector /** Prepares a recording that will be saved to a File. */ abstract fun prepareRecording( - pigeonInstance: androidx.camera.video.Recorder, + pigeon_instance: androidx.camera.video.Recorder, path: String ): androidx.camera.video.PendingRecording @@ -3406,10 +3410,10 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.Recorder + val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val wrapped: List = try { - listOf(api.getAspectRatio(pigeonInstanceArg)) + listOf(api.getAspectRatio(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3428,10 +3432,10 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.Recorder + val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val wrapped: List = try { - listOf(api.getTargetVideoEncodingBitRate(pigeonInstanceArg)) + listOf(api.getTargetVideoEncodingBitRate(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3450,10 +3454,10 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.Recorder + val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val wrapped: List = try { - listOf(api.getQualitySelector(pigeonInstanceArg)) + listOf(api.getQualitySelector(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3472,11 +3476,11 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.Recorder + val pigeon_instanceArg = args[0] as androidx.camera.video.Recorder val pathArg = args[1] as String val wrapped: List = try { - listOf(api.prepareRecording(pigeonInstanceArg, pathArg)) + listOf(api.prepareRecording(pigeon_instanceArg, pathArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3490,20 +3494,20 @@ abstract class PigeonApiRecorder(open val pigeonRegistrar: CameraXLibraryPigeonP } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Recorder and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of Recorder and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.Recorder, + pigeon_instanceArg: androidx.camera.video.Recorder, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance" @@ -3571,16 +3575,18 @@ abstract class PigeonApiVideoRecordEventListener( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeonInstanceArg]. */ + /** + * Creates a Dart instance of VideoRecordEventListener and attaches it to [pigeon_instanceArg]. + */ fun pigeon_newInstance( - pigeonInstanceArg: VideoRecordEventListener, + pigeon_instanceArg: VideoRecordEventListener, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -3593,7 +3599,7 @@ abstract class PigeonApiVideoRecordEventListener( } fun onEvent( - pigeonInstanceArg: VideoRecordEventListener, + pigeon_instanceArg: VideoRecordEventListener, eventArg: androidx.camera.video.VideoRecordEvent, callback: (Result) -> Unit ) { @@ -3607,7 +3613,7 @@ abstract class PigeonApiVideoRecordEventListener( val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeonInstanceArg, eventArg)) { + channel.send(listOf(pigeon_instanceArg, eventArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -3631,7 +3637,7 @@ abstract class PigeonApiPendingRecording( ) { /** Starts the recording, making it an active recording. */ abstract fun start( - pigeonInstance: androidx.camera.video.PendingRecording, + pigeon_instance: androidx.camera.video.PendingRecording, listener: VideoRecordEventListener ): androidx.camera.video.Recording @@ -3648,11 +3654,11 @@ abstract class PigeonApiPendingRecording( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.PendingRecording + val pigeon_instanceArg = args[0] as androidx.camera.video.PendingRecording val listenerArg = args[1] as VideoRecordEventListener val wrapped: List = try { - listOf(api.start(pigeonInstanceArg, listenerArg)) + listOf(api.start(pigeon_instanceArg, listenerArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -3666,20 +3672,20 @@ abstract class PigeonApiPendingRecording( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of PendingRecording and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of PendingRecording and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.PendingRecording, + pigeon_instanceArg: androidx.camera.video.PendingRecording, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -3708,20 +3714,20 @@ abstract class PigeonApiPendingRecording( @Suppress("UNCHECKED_CAST") abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** Close this recording. */ - abstract fun close(pigeonInstance: androidx.camera.video.Recording) + abstract fun close(pigeon_instance: androidx.camera.video.Recording) /** Pauses the current recording if active. */ - abstract fun pause(pigeonInstance: androidx.camera.video.Recording) + abstract fun pause(pigeon_instance: androidx.camera.video.Recording) /** Resumes the current recording if paused. */ - abstract fun resume(pigeonInstance: androidx.camera.video.Recording) + abstract fun resume(pigeon_instance: androidx.camera.video.Recording) /** * Stops the recording, as if calling `close`. * * This method is equivalent to calling `close`. */ - abstract fun stop(pigeonInstance: androidx.camera.video.Recording) + abstract fun stop(pigeon_instance: androidx.camera.video.Recording) companion object { @Suppress("LocalVariableName") @@ -3734,10 +3740,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.Recording + val pigeon_instanceArg = args[0] as androidx.camera.video.Recording val wrapped: List = try { - api.close(pigeonInstanceArg) + api.close(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3755,10 +3761,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.Recording + val pigeon_instanceArg = args[0] as androidx.camera.video.Recording val wrapped: List = try { - api.pause(pigeonInstanceArg) + api.pause(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3778,10 +3784,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.Recording + val pigeon_instanceArg = args[0] as androidx.camera.video.Recording val wrapped: List = try { - api.resume(pigeonInstanceArg) + api.resume(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3799,10 +3805,10 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.video.Recording + val pigeon_instanceArg = args[0] as androidx.camera.video.Recording val wrapped: List = try { - api.stop(pigeonInstanceArg) + api.stop(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3817,20 +3823,20 @@ abstract class PigeonApiRecording(open val pigeonRegistrar: CameraXLibraryPigeon } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Recording and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of Recording and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.Recording, + pigeon_instanceArg: androidx.camera.video.Recording, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance" @@ -3866,23 +3872,23 @@ abstract class PigeonApiImageCapture( ): androidx.camera.core.ImageCapture abstract fun resolutionSelector( - pigeonInstance: androidx.camera.core.ImageCapture + pigeon_instance: androidx.camera.core.ImageCapture ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Set the flash mode. */ abstract fun setFlashMode( - pigeonInstance: androidx.camera.core.ImageCapture, + pigeon_instance: androidx.camera.core.ImageCapture, flashMode: CameraXFlashMode ) /** Captures a new still image for in memory access. */ abstract fun takePicture( - pigeonInstance: androidx.camera.core.ImageCapture, + pigeon_instance: androidx.camera.core.ImageCapture, callback: (Result) -> Unit ) /** Sets the desired rotation of the output image. */ - abstract fun setTargetRotation(pigeonInstance: androidx.camera.core.ImageCapture, rotation: Long) + abstract fun setTargetRotation(pigeon_instance: androidx.camera.core.ImageCapture, rotation: Long) companion object { @Suppress("LocalVariableName") @@ -3927,11 +3933,11 @@ abstract class PigeonApiImageCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.ImageCapture + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val flashModeArg = args[1] as CameraXFlashMode val wrapped: List = try { - api.setFlashMode(pigeonInstanceArg, flashModeArg) + api.setFlashMode(pigeon_instanceArg, flashModeArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3951,8 +3957,8 @@ abstract class PigeonApiImageCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.ImageCapture - api.takePicture(pigeonInstanceArg) { result: Result -> + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture + api.takePicture(pigeon_instanceArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -3975,11 +3981,11 @@ abstract class PigeonApiImageCapture( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.ImageCapture + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageCapture val rotationArg = args[1] as Long val wrapped: List = try { - api.setTargetRotation(pigeonInstanceArg, rotationArg) + api.setTargetRotation(pigeon_instanceArg, rotationArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -3994,21 +4000,21 @@ abstract class PigeonApiImageCapture( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ImageCapture and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ImageCapture and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.ImageCapture, + pigeon_instanceArg: androidx.camera.core.ImageCapture, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val resolutionSelectorArg = resolutionSelector(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance" @@ -4055,14 +4061,14 @@ abstract class PigeonApiResolutionStrategy( /** The specified bound size. */ abstract fun getBoundSize( - pigeonInstance: androidx.camera.core.resolutionselector.ResolutionStrategy + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy ): android.util.Size? /** * The fallback rule for choosing an alternate size when the specified bound size is unavailable. */ abstract fun getFallbackRule( - pigeonInstance: androidx.camera.core.resolutionselector.ResolutionStrategy + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionStrategy ): ResolutionStrategyFallbackRule companion object { @@ -4129,11 +4135,11 @@ abstract class PigeonApiResolutionStrategy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy val wrapped: List = try { - listOf(api.getBoundSize(pigeonInstanceArg)) + listOf(api.getBoundSize(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4152,11 +4158,11 @@ abstract class PigeonApiResolutionStrategy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionStrategy val wrapped: List = try { - listOf(api.getFallbackRule(pigeonInstanceArg)) + listOf(api.getFallbackRule(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4170,20 +4176,20 @@ abstract class PigeonApiResolutionStrategy( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ResolutionStrategy and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionStrategy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -4222,12 +4228,12 @@ abstract class PigeonApiResolutionSelector( /** The resolution filter to output the final desired sizes list. */ abstract fun resolutionFilter( - pigeonInstance: androidx.camera.core.resolutionselector.ResolutionSelector + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector ): androidx.camera.core.resolutionselector.ResolutionFilter? /** The resolution selection strategy for the `UseCase`. */ abstract fun resolutionStrategy( - pigeonInstance: androidx.camera.core.resolutionselector.ResolutionSelector + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector ): androidx.camera.core.resolutionselector.ResolutionStrategy? /** @@ -4236,7 +4242,7 @@ abstract class PigeonApiResolutionSelector( * ResolutionSelector. */ abstract fun getAspectRatioStrategy( - pigeonInstance: androidx.camera.core.resolutionselector.ResolutionSelector + pigeon_instance: androidx.camera.core.resolutionselector.ResolutionSelector ): androidx.camera.core.resolutionselector.AspectRatioStrategy companion object { @@ -4284,11 +4290,11 @@ abstract class PigeonApiResolutionSelector( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.ResolutionSelector val wrapped: List = try { - listOf(api.getAspectRatioStrategy(pigeonInstanceArg)) + listOf(api.getAspectRatioStrategy(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4302,22 +4308,22 @@ abstract class PigeonApiResolutionSelector( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ResolutionSelector and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionSelector, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val resolutionFilterArg = resolutionFilter(pigeonInstanceArg) - val resolutionStrategyArg = resolutionStrategy(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionFilterArg = resolutionFilter(pigeon_instanceArg) + val resolutionStrategyArg = resolutionStrategy(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -4373,12 +4379,12 @@ abstract class PigeonApiAspectRatioStrategy( * not available. */ abstract fun getFallbackRule( - pigeonInstance: androidx.camera.core.resolutionselector.AspectRatioStrategy + pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy ): AspectRatioStrategyFallbackRule /** The specified preferred aspect ratio. */ abstract fun getPreferredAspectRatio( - pigeonInstance: androidx.camera.core.resolutionselector.AspectRatioStrategy + pigeon_instance: androidx.camera.core.resolutionselector.AspectRatioStrategy ): AspectRatio companion object { @@ -4469,11 +4475,11 @@ abstract class PigeonApiAspectRatioStrategy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy val wrapped: List = try { - listOf(api.getFallbackRule(pigeonInstanceArg)) + listOf(api.getFallbackRule(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4492,11 +4498,11 @@ abstract class PigeonApiAspectRatioStrategy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = + val pigeon_instanceArg = args[0] as androidx.camera.core.resolutionselector.AspectRatioStrategy val wrapped: List = try { - listOf(api.getPreferredAspectRatio(pigeonInstanceArg)) + listOf(api.getPreferredAspectRatio(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -4510,20 +4516,20 @@ abstract class PigeonApiAspectRatioStrategy( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of AspectRatioStrategy and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, + pigeon_instanceArg: androidx.camera.core.resolutionselector.AspectRatioStrategy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -4554,30 +4560,30 @@ abstract class PigeonApiCameraState( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** The camera's state. */ - abstract fun type(pigeonInstance: androidx.camera.core.CameraState): CameraStateType + abstract fun type(pigeon_instance: androidx.camera.core.CameraState): CameraStateType /** Potentially returns an error the camera encountered. */ abstract fun error( - pigeonInstance: androidx.camera.core.CameraState + pigeon_instance: androidx.camera.core.CameraState ): androidx.camera.core.CameraState.StateError? @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraState and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CameraState and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.CameraState, + pigeon_instanceArg: androidx.camera.core.CameraState, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val typeArg = type(pigeonInstanceArg) - val errorArg = error(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val typeArg = type(pigeon_instanceArg) + val errorArg = error(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance" @@ -4611,29 +4617,29 @@ abstract class PigeonApiExposureState( * `CameraControl.setExposureCompensationIndex`. */ abstract fun exposureCompensationRange( - pigeonInstance: androidx.camera.core.ExposureState + pigeon_instance: androidx.camera.core.ExposureState ): android.util.Range<*> /** Get the smallest step by which the exposure compensation can be changed. */ - abstract fun exposureCompensationStep(pigeonInstance: androidx.camera.core.ExposureState): Double + abstract fun exposureCompensationStep(pigeon_instance: androidx.camera.core.ExposureState): Double @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ExposureState and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ExposureState and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.ExposureState, + pigeon_instanceArg: androidx.camera.core.ExposureState, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val exposureCompensationRangeArg = exposureCompensationRange(pigeonInstanceArg) - val exposureCompensationStepArg = exposureCompensationStep(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val exposureCompensationRangeArg = exposureCompensationRange(pigeon_instanceArg) + val exposureCompensationStepArg = exposureCompensationStep(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance" @@ -4663,28 +4669,28 @@ abstract class PigeonApiExposureState( @Suppress("UNCHECKED_CAST") abstract class PigeonApiZoomState(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The minimum zoom ratio. */ - abstract fun minZoomRatio(pigeonInstance: androidx.camera.core.ZoomState): Double + abstract fun minZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double /** The maximum zoom ratio. */ - abstract fun maxZoomRatio(pigeonInstance: androidx.camera.core.ZoomState): Double + abstract fun maxZoomRatio(pigeon_instance: androidx.camera.core.ZoomState): Double @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ZoomState and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ZoomState and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.ZoomState, + pigeon_instanceArg: androidx.camera.core.ZoomState, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val minZoomRatioArg = minZoomRatio(pigeonInstanceArg) - val maxZoomRatioArg = maxZoomRatio(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val minZoomRatioArg = minZoomRatio(pigeon_instanceArg) + val maxZoomRatioArg = maxZoomRatio(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance" @@ -4719,20 +4725,23 @@ abstract class PigeonApiImageAnalysis( ): androidx.camera.core.ImageAnalysis abstract fun resolutionSelector( - pigeonInstance: androidx.camera.core.ImageAnalysis + pigeon_instance: androidx.camera.core.ImageAnalysis ): androidx.camera.core.resolutionselector.ResolutionSelector? /** Sets an analyzer to receive and analyze images. */ abstract fun setAnalyzer( - pigeonInstance: androidx.camera.core.ImageAnalysis, + pigeon_instance: androidx.camera.core.ImageAnalysis, analyzer: androidx.camera.core.ImageAnalysis.Analyzer ) /** Removes a previously set analyzer. */ - abstract fun clearAnalyzer(pigeonInstance: androidx.camera.core.ImageAnalysis) + abstract fun clearAnalyzer(pigeon_instance: androidx.camera.core.ImageAnalysis) /** Sets the target rotation. */ - abstract fun setTargetRotation(pigeonInstance: androidx.camera.core.ImageAnalysis, rotation: Long) + abstract fun setTargetRotation( + pigeon_instance: androidx.camera.core.ImageAnalysis, + rotation: Long + ) companion object { @Suppress("LocalVariableName") @@ -4775,11 +4784,11 @@ abstract class PigeonApiImageAnalysis( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.ImageAnalysis + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val analyzerArg = args[1] as androidx.camera.core.ImageAnalysis.Analyzer val wrapped: List = try { - api.setAnalyzer(pigeonInstanceArg, analyzerArg) + api.setAnalyzer(pigeon_instanceArg, analyzerArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -4799,10 +4808,10 @@ abstract class PigeonApiImageAnalysis( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.ImageAnalysis + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val wrapped: List = try { - api.clearAnalyzer(pigeonInstanceArg) + api.clearAnalyzer(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -4822,11 +4831,11 @@ abstract class PigeonApiImageAnalysis( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.ImageAnalysis + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageAnalysis val rotationArg = args[1] as Long val wrapped: List = try { - api.setTargetRotation(pigeonInstanceArg, rotationArg) + api.setTargetRotation(pigeon_instanceArg, rotationArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -4841,21 +4850,21 @@ abstract class PigeonApiImageAnalysis( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ImageAnalysis and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.ImageAnalysis, + pigeon_instanceArg: androidx.camera.core.ImageAnalysis, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val resolutionSelectorArg = resolutionSelector(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val resolutionSelectorArg = resolutionSelector(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance" @@ -4922,16 +4931,16 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Analyzer and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of Analyzer and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { callback( @@ -4945,7 +4954,7 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP /** Analyzes an image to produce a result. */ fun analyze( - pigeonInstanceArg: androidx.camera.core.ImageAnalysis.Analyzer, + pigeon_instanceArg: androidx.camera.core.ImageAnalysis.Analyzer, imageArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit ) { @@ -4959,7 +4968,7 @@ abstract class PigeonApiAnalyzer(open val pigeonRegistrar: CameraXLibraryPigeonP val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze" val channel = BasicMessageChannel(binaryMessenger, channelName, codec) - channel.send(listOf(pigeonInstanceArg, imageArg)) { + channel.send(listOf(pigeon_instanceArg, imageArg)) { if (it is List<*>) { if (it.size > 1) { callback(Result.failure(CameraXError(it[0] as String, it[1] as String, it[2] as String?))) @@ -4983,25 +4992,25 @@ abstract class PigeonApiCameraStateStateError( ) { /** The code of this error. */ abstract fun code( - pigeonInstance: androidx.camera.core.CameraState.StateError + pigeon_instance: androidx.camera.core.CameraState.StateError ): CameraStateErrorCode @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CameraStateStateError and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.CameraState.StateError, + pigeon_instanceArg: androidx.camera.core.CameraState.StateError, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val codeArg = code(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val codeArg = code(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -5034,23 +5043,23 @@ abstract class PigeonApiCameraStateStateError( abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar) { /** The generic type used by this instance. */ abstract fun type( - pigeonInstance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper ): LiveDataSupportedType /** Adds the given observer to the observers list within the lifespan of the given owner. */ abstract fun observe( - pigeonInstance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, observer: androidx.lifecycle.Observer<*> ) /** Removes all observers that are tied to the given `LifecycleOwner`. */ abstract fun removeObservers( - pigeonInstance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper ) /** Returns the current value. */ abstract fun getValue( - pigeonInstance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper + pigeon_instance: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper ): Any? companion object { @@ -5066,12 +5075,12 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val observerArg = args[1] as androidx.lifecycle.Observer<*> val wrapped: List = try { - api.observe(pigeonInstanceArg, observerArg) + api.observe(pigeon_instanceArg, observerArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -5091,11 +5100,11 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val wrapped: List = try { - api.removeObservers(pigeonInstanceArg) + api.removeObservers(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -5115,11 +5124,11 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = + val pigeon_instanceArg = args[0] as io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper val wrapped: List = try { - listOf(api.getValue(pigeonInstanceArg)) + listOf(api.getValue(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -5133,21 +5142,21 @@ abstract class PigeonApiLiveData(open val pigeonRegistrar: CameraXLibraryPigeonP } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of LiveData and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of LiveData and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, + pigeon_instanceArg: io.flutter.plugins.camerax.LiveDataProxyApi.LiveDataWrapper, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val typeArg = type(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val typeArg = type(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance" @@ -5177,21 +5186,21 @@ abstract class PigeonApiImageProxy( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** The image format. */ - abstract fun format(pigeonInstance: androidx.camera.core.ImageProxy): Long + abstract fun format(pigeon_instance: androidx.camera.core.ImageProxy): Long /** The image width. */ - abstract fun width(pigeonInstance: androidx.camera.core.ImageProxy): Long + abstract fun width(pigeon_instance: androidx.camera.core.ImageProxy): Long /** The image height. */ - abstract fun height(pigeonInstance: androidx.camera.core.ImageProxy): Long + abstract fun height(pigeon_instance: androidx.camera.core.ImageProxy): Long /** Returns the array of planes. */ abstract fun getPlanes( - pigeonInstance: androidx.camera.core.ImageProxy + pigeon_instance: androidx.camera.core.ImageProxy ): List /** Closes the underlying `android.media.Image`. */ - abstract fun close(pigeonInstance: androidx.camera.core.ImageProxy) + abstract fun close(pigeon_instance: androidx.camera.core.ImageProxy) companion object { @Suppress("LocalVariableName") @@ -5206,10 +5215,10 @@ abstract class PigeonApiImageProxy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.ImageProxy + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy val wrapped: List = try { - listOf(api.getPlanes(pigeonInstanceArg)) + listOf(api.getPlanes(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -5228,10 +5237,10 @@ abstract class PigeonApiImageProxy( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.ImageProxy + val pigeon_instanceArg = args[0] as androidx.camera.core.ImageProxy val wrapped: List = try { - api.close(pigeonInstanceArg) + api.close(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -5246,23 +5255,23 @@ abstract class PigeonApiImageProxy( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ImageProxy and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ImageProxy and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.ImageProxy, + pigeon_instanceArg: androidx.camera.core.ImageProxy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val formatArg = format(pigeonInstanceArg) - val widthArg = width(pigeonInstanceArg) - val heightArg = height(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val formatArg = format(pigeon_instanceArg) + val widthArg = width(pigeon_instanceArg) + val heightArg = height(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance" @@ -5292,32 +5301,32 @@ abstract class PigeonApiPlaneProxy( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** The pixels buffer. */ - abstract fun buffer(pigeonInstance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray + abstract fun buffer(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): ByteArray /** The pixel stride. */ - abstract fun pixelStride(pigeonInstance: androidx.camera.core.ImageProxy.PlaneProxy): Long + abstract fun pixelStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long /** The row stride. */ - abstract fun rowStride(pigeonInstance: androidx.camera.core.ImageProxy.PlaneProxy): Long + abstract fun rowStride(pigeon_instance: androidx.camera.core.ImageProxy.PlaneProxy): Long @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of PlaneProxy and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of PlaneProxy and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.ImageProxy.PlaneProxy, + pigeon_instanceArg: androidx.camera.core.ImageProxy.PlaneProxy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val bufferArg = buffer(pigeonInstanceArg) - val pixelStrideArg = pixelStride(pigeonInstanceArg) - val rowStrideArg = rowStride(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val bufferArg = buffer(pigeon_instanceArg) + val pixelStrideArg = pixelStride(pigeon_instanceArg) + val rowStrideArg = rowStride(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance" @@ -5448,20 +5457,20 @@ abstract class PigeonApiQualitySelector( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of QualitySelector and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of QualitySelector and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.QualitySelector, + pigeon_instanceArg: androidx.camera.video.QualitySelector, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -5628,20 +5637,20 @@ abstract class PigeonApiFallbackStrategy( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of FallbackStrategy and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.video.FallbackStrategy, + pigeon_instanceArg: androidx.camera.video.FallbackStrategy, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -5674,34 +5683,34 @@ abstract class PigeonApiCameraControl( ) { /** Enable the torch or disable the torch. */ abstract fun enableTorch( - pigeonInstance: androidx.camera.core.CameraControl, + pigeon_instance: androidx.camera.core.CameraControl, torch: Boolean, callback: (Result) -> Unit ) /** Sets current zoom by ratio. */ abstract fun setZoomRatio( - pigeonInstance: androidx.camera.core.CameraControl, + pigeon_instance: androidx.camera.core.CameraControl, ratio: Double, callback: (Result) -> Unit ) /** Starts a focus and metering action configured by the `FocusMeteringAction`. */ abstract fun startFocusAndMetering( - pigeonInstance: androidx.camera.core.CameraControl, + pigeon_instance: androidx.camera.core.CameraControl, action: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit ) /** Cancels current FocusMeteringAction and clears AF/AE/AWB regions. */ abstract fun cancelFocusAndMetering( - pigeonInstance: androidx.camera.core.CameraControl, + pigeon_instance: androidx.camera.core.CameraControl, callback: (Result) -> Unit ) /** Set the exposure compensation value for the camera. */ abstract fun setExposureCompensationIndex( - pigeonInstance: androidx.camera.core.CameraControl, + pigeon_instance: androidx.camera.core.CameraControl, index: Long, callback: (Result) -> Unit ) @@ -5719,9 +5728,9 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val torchArg = args[1] as Boolean - api.enableTorch(pigeonInstanceArg, torchArg) { result: Result -> + api.enableTorch(pigeon_instanceArg, torchArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5743,9 +5752,9 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val ratioArg = args[1] as Double - api.setZoomRatio(pigeonInstanceArg, ratioArg) { result: Result -> + api.setZoomRatio(pigeon_instanceArg, ratioArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5767,9 +5776,9 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val actionArg = args[1] as androidx.camera.core.FocusMeteringAction - api.startFocusAndMetering(pigeonInstanceArg, actionArg) { + api.startFocusAndMetering(pigeon_instanceArg, actionArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { @@ -5793,8 +5802,8 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl - api.cancelFocusAndMetering(pigeonInstanceArg) { result: Result -> + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl + api.cancelFocusAndMetering(pigeon_instanceArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5816,9 +5825,10 @@ abstract class PigeonApiCameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.CameraControl + val pigeon_instanceArg = args[0] as androidx.camera.core.CameraControl val indexArg = args[1] as Long - api.setExposureCompensationIndex(pigeonInstanceArg, indexArg) { result: Result -> + api.setExposureCompensationIndex(pigeon_instanceArg, indexArg) { result: Result + -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -5836,20 +5846,20 @@ abstract class PigeonApiCameraControl( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraControl and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CameraControl and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.CameraControl, + pigeon_instanceArg: androidx.camera.core.CameraControl, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = "dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance" @@ -5892,23 +5902,23 @@ abstract class PigeonApiFocusMeteringActionBuilder( /** Adds another MeteringPoint with default metering mode. */ abstract fun addPoint( - pigeonInstance: androidx.camera.core.FocusMeteringAction.Builder, + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint ) /** Adds another MeteringPoint with specified meteringMode. */ abstract fun addPointWithMode( - pigeonInstance: androidx.camera.core.FocusMeteringAction.Builder, + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder, point: androidx.camera.core.MeteringPoint, mode: MeteringMode ) /** Disables the auto-cancel. */ - abstract fun disableAutoCancel(pigeonInstance: androidx.camera.core.FocusMeteringAction.Builder) + abstract fun disableAutoCancel(pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder) /** Builds the `FocusMeteringAction` instance. */ abstract fun build( - pigeonInstance: androidx.camera.core.FocusMeteringAction.Builder + pigeon_instance: androidx.camera.core.FocusMeteringAction.Builder ): androidx.camera.core.FocusMeteringAction companion object { @@ -5978,11 +5988,11 @@ abstract class PigeonApiFocusMeteringActionBuilder( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val wrapped: List = try { - api.addPoint(pigeonInstanceArg, pointArg) + api.addPoint(pigeon_instanceArg, pointArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -6002,12 +6012,12 @@ abstract class PigeonApiFocusMeteringActionBuilder( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val pointArg = args[1] as androidx.camera.core.MeteringPoint val modeArg = args[2] as MeteringMode val wrapped: List = try { - api.addPointWithMode(pigeonInstanceArg, pointArg, modeArg) + api.addPointWithMode(pigeon_instanceArg, pointArg, modeArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -6027,10 +6037,10 @@ abstract class PigeonApiFocusMeteringActionBuilder( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val wrapped: List = try { - api.disableAutoCancel(pigeonInstanceArg) + api.disableAutoCancel(pigeon_instanceArg) listOf(null) } catch (exception: Throwable) { wrapError(exception) @@ -6050,10 +6060,10 @@ abstract class PigeonApiFocusMeteringActionBuilder( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder + val pigeon_instanceArg = args[0] as androidx.camera.core.FocusMeteringAction.Builder val wrapped: List = try { - listOf(api.build(pigeonInstanceArg)) + listOf(api.build(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -6068,21 +6078,21 @@ abstract class PigeonApiFocusMeteringActionBuilder( @Suppress("LocalVariableName", "FunctionName") /** - * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeonInstanceArg]. + * Creates a Dart instance of FocusMeteringActionBuilder and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.FocusMeteringAction.Builder, + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction.Builder, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6114,43 +6124,43 @@ abstract class PigeonApiFocusMeteringAction( ) { /** All MeteringPoints used for AE regions. */ abstract fun meteringPointsAe( - pigeonInstance: androidx.camera.core.FocusMeteringAction + pigeon_instance: androidx.camera.core.FocusMeteringAction ): List /** All MeteringPoints used for AF regions. */ abstract fun meteringPointsAf( - pigeonInstance: androidx.camera.core.FocusMeteringAction + pigeon_instance: androidx.camera.core.FocusMeteringAction ): List /** All MeteringPoints used for AWB regions. */ abstract fun meteringPointsAwb( - pigeonInstance: androidx.camera.core.FocusMeteringAction + pigeon_instance: androidx.camera.core.FocusMeteringAction ): List /** If auto-cancel is enabled or not. */ abstract fun isAutoCancelEnabled( - pigeonInstance: androidx.camera.core.FocusMeteringAction + pigeon_instance: androidx.camera.core.FocusMeteringAction ): Boolean @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of FocusMeteringAction and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.FocusMeteringAction, + pigeon_instanceArg: androidx.camera.core.FocusMeteringAction, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val meteringPointsAeArg = meteringPointsAe(pigeonInstanceArg) - val meteringPointsAfArg = meteringPointsAf(pigeonInstanceArg) - val meteringPointsAwbArg = meteringPointsAwb(pigeonInstanceArg) - val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val meteringPointsAeArg = meteringPointsAe(pigeon_instanceArg) + val meteringPointsAfArg = meteringPointsAf(pigeon_instanceArg) + val meteringPointsAwbArg = meteringPointsAwb(pigeon_instanceArg) + val isAutoCancelEnabledArg = isAutoCancelEnabled(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6188,24 +6198,24 @@ abstract class PigeonApiFocusMeteringResult( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { /** If auto focus is successful. */ - abstract fun isFocusSuccessful(pigeonInstance: androidx.camera.core.FocusMeteringResult): Boolean + abstract fun isFocusSuccessful(pigeon_instance: androidx.camera.core.FocusMeteringResult): Boolean @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of FocusMeteringResult and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.FocusMeteringResult, + pigeon_instanceArg: androidx.camera.core.FocusMeteringResult, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) - val isFocusSuccessfulArg = isFocusSuccessful(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) + val isFocusSuccessfulArg = isFocusSuccessful(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6277,20 +6287,20 @@ abstract class PigeonApiCaptureRequest( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CaptureRequest and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CaptureRequest and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: android.hardware.camera2.CaptureRequest, + pigeon_instanceArg: android.hardware.camera2.CaptureRequest, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6322,20 +6332,20 @@ open class PigeonApiCaptureRequestKey( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CaptureRequestKey and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: android.hardware.camera2.CaptureRequest.Key<*>, + pigeon_instanceArg: android.hardware.camera2.CaptureRequest.Key<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6372,7 +6382,7 @@ abstract class PigeonApiCaptureRequestOptions( /** Returns a value for the given CaptureRequestKey or null if it hasn't been set. */ abstract fun getCaptureRequestOption( - pigeonInstance: androidx.camera.camera2.interop.CaptureRequestOptions, + pigeon_instance: androidx.camera.camera2.interop.CaptureRequestOptions, key: android.hardware.camera2.CaptureRequest.Key<*> ): Any? @@ -6417,11 +6427,12 @@ abstract class PigeonApiCaptureRequestOptions( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.camera2.interop.CaptureRequestOptions + val pigeon_instanceArg = + args[0] as androidx.camera.camera2.interop.CaptureRequestOptions val keyArg = args[1] as android.hardware.camera2.CaptureRequest.Key<*> val wrapped: List = try { - listOf(api.getCaptureRequestOption(pigeonInstanceArg, keyArg)) + listOf(api.getCaptureRequestOption(pigeon_instanceArg, keyArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -6435,20 +6446,20 @@ abstract class PigeonApiCaptureRequestOptions( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CaptureRequestOptions and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, + pigeon_instanceArg: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6486,7 +6497,7 @@ abstract class PigeonApiCamera2CameraControl( /** Adds a `CaptureRequestOptions` updates the session with the options it contains. */ abstract fun addCaptureRequestOptions( - pigeonInstance: androidx.camera.camera2.interop.Camera2CameraControl, + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraControl, bundle: androidx.camera.camera2.interop.CaptureRequestOptions, callback: (Result) -> Unit ) @@ -6532,9 +6543,9 @@ abstract class PigeonApiCamera2CameraControl( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraControl + val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraControl val bundleArg = args[1] as androidx.camera.camera2.interop.CaptureRequestOptions - api.addCaptureRequestOptions(pigeonInstanceArg, bundleArg) { result: Result -> + api.addCaptureRequestOptions(pigeon_instanceArg, bundleArg) { result: Result -> val error = result.exceptionOrNull() if (error != null) { reply.reply(wrapError(error)) @@ -6551,20 +6562,20 @@ abstract class PigeonApiCamera2CameraControl( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of Camera2CameraControl and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.camera2.interop.Camera2CameraControl, + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraControl, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6633,20 +6644,20 @@ abstract class PigeonApiResolutionFilter( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of ResolutionFilter and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, + pigeon_instanceArg: androidx.camera.core.resolutionselector.ResolutionFilter, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6678,20 +6689,22 @@ open class PigeonApiCameraCharacteristicsKey( open val pigeonRegistrar: CameraXLibraryPigeonProxyApiRegistrar ) { @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeonInstanceArg]. */ + /** + * Creates a Dart instance of CameraCharacteristicsKey and attaches it to [pigeon_instanceArg]. + */ fun pigeon_newInstance( - pigeonInstanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics.Key<*>, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6799,20 +6812,20 @@ abstract class PigeonApiCameraCharacteristics( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of CameraCharacteristics and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: android.hardware.camera2.CameraCharacteristics, + pigeon_instanceArg: android.hardware.camera2.CameraCharacteristics, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6850,12 +6863,12 @@ abstract class PigeonApiCamera2CameraInfo( /** Gets the string camera ID. */ abstract fun getCameraId( - pigeonInstance: androidx.camera.camera2.interop.Camera2CameraInfo + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo ): String /** Gets a camera characteristic value. */ abstract fun getCameraCharacteristic( - pigeonInstance: androidx.camera.camera2.interop.Camera2CameraInfo, + pigeon_instance: androidx.camera.camera2.interop.Camera2CameraInfo, key: android.hardware.camera2.CameraCharacteristics.Key<*> ): Any? @@ -6897,10 +6910,10 @@ abstract class PigeonApiCamera2CameraInfo( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo + val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val wrapped: List = try { - listOf(api.getCameraId(pigeonInstanceArg)) + listOf(api.getCameraId(pigeon_instanceArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -6919,11 +6932,11 @@ abstract class PigeonApiCamera2CameraInfo( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo + val pigeon_instanceArg = args[0] as androidx.camera.camera2.interop.Camera2CameraInfo val keyArg = args[1] as android.hardware.camera2.CameraCharacteristics.Key<*> val wrapped: List = try { - listOf(api.getCameraCharacteristic(pigeonInstanceArg, keyArg)) + listOf(api.getCameraCharacteristic(pigeon_instanceArg, keyArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -6937,20 +6950,20 @@ abstract class PigeonApiCamera2CameraInfo( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of Camera2CameraInfo and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, + pigeon_instanceArg: androidx.camera.camera2.interop.Camera2CameraInfo, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -6982,14 +6995,14 @@ abstract class PigeonApiMeteringPointFactory( ) { /** Creates a MeteringPoint by x, y. */ abstract fun createPoint( - pigeonInstance: androidx.camera.core.MeteringPointFactory, + pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double ): androidx.camera.core.MeteringPoint /** Creates a MeteringPoint by x, y, size. */ abstract fun createPointWithSize( - pigeonInstance: androidx.camera.core.MeteringPointFactory, + pigeon_instance: androidx.camera.core.MeteringPointFactory, x: Double, y: Double, size: Double @@ -7011,12 +7024,12 @@ abstract class PigeonApiMeteringPointFactory( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.MeteringPointFactory + val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double val wrapped: List = try { - listOf(api.createPoint(pigeonInstanceArg, xArg, yArg)) + listOf(api.createPoint(pigeon_instanceArg, xArg, yArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -7035,13 +7048,13 @@ abstract class PigeonApiMeteringPointFactory( if (api != null) { channel.setMessageHandler { message, reply -> val args = message as List - val pigeonInstanceArg = args[0] as androidx.camera.core.MeteringPointFactory + val pigeon_instanceArg = args[0] as androidx.camera.core.MeteringPointFactory val xArg = args[1] as Double val yArg = args[2] as Double val sizeArg = args[3] as Double val wrapped: List = try { - listOf(api.createPointWithSize(pigeonInstanceArg, xArg, yArg, sizeArg)) + listOf(api.createPointWithSize(pigeon_instanceArg, xArg, yArg, sizeArg)) } catch (exception: Throwable) { wrapError(exception) } @@ -7055,20 +7068,20 @@ abstract class PigeonApiMeteringPointFactory( } @Suppress("LocalVariableName", "FunctionName") - /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeonInstanceArg]. */ + /** Creates a Dart instance of MeteringPointFactory and attaches it to [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.MeteringPointFactory, + pigeon_instanceArg: androidx.camera.core.MeteringPointFactory, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = @@ -7151,21 +7164,21 @@ abstract class PigeonApiDisplayOrientedMeteringPointFactory( @Suppress("LocalVariableName", "FunctionName") /** * Creates a Dart instance of DisplayOrientedMeteringPointFactory and attaches it to - * [pigeonInstanceArg]. + * [pigeon_instanceArg]. */ fun pigeon_newInstance( - pigeonInstanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, + pigeon_instanceArg: androidx.camera.core.DisplayOrientedMeteringPointFactory, callback: (Result) -> Unit ) { if (pigeonRegistrar.ignoreCallsToDart) { callback( Result.failure( CameraXError("ignore-calls-error", "Calls to Dart are being ignored.", ""))) - } else if (pigeonRegistrar.instanceManager.containsInstance(pigeonInstanceArg)) { + } else if (pigeonRegistrar.instanceManager.containsInstance(pigeon_instanceArg)) { callback(Result.success(Unit)) } else { val pigeon_identifierArg = - pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeonInstanceArg) + pigeonRegistrar.instanceManager.addHostCreatedInstance(pigeon_instanceArg) val binaryMessenger = pigeonRegistrar.binaryMessenger val codec = pigeonRegistrar.codec val channelName = diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 3dcfdc603ac..ddec22c681a 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -76,28 +76,28 @@ class AndroidCameraCameraX extends CameraPlatform { String? videoOutputPath; /// Handles access to system resources. - late final SystemServicesManager systemServicesManager = proxy - .newSystemServicesManager( - onCameraError: (_, String errorDescription) { - cameraErrorStreamController.add(errorDescription); - }, - ); + late final SystemServicesManager systemServicesManager = + proxy.newSystemServicesManager( + onCameraError: (_, String errorDescription) { + cameraErrorStreamController.add(errorDescription); + }, + ); /// Handles retrieving media orientation for a device. - late final DeviceOrientationManager deviceOrientationManager = proxy - .newDeviceOrientationManager( - onDeviceOrientationChanged: (_, String orientation) { - final DeviceOrientation deviceOrientation = - _deserializeDeviceOrientation(orientation); - deviceOrientationChangedStreamController.add( - DeviceOrientationChangedEvent(deviceOrientation), - ); - }, + late final DeviceOrientationManager deviceOrientationManager = + proxy.newDeviceOrientationManager( + onDeviceOrientationChanged: (_, String orientation) { + final DeviceOrientation deviceOrientation = + _deserializeDeviceOrientation(orientation); + deviceOrientationChangedStreamController.add( + DeviceOrientationChangedEvent(deviceOrientation), ); + }, + ); /// Stream that emits an event when the corresponding video recording is finalized. static final StreamController - videoRecordingEventStreamController = + videoRecordingEventStreamController = StreamController.broadcast(); /// Stream that emits the errors caused by camera usage on the native side. @@ -109,7 +109,7 @@ class AndroidCameraCameraX extends CameraPlatform { /// Values may start being added to the stream once /// `startListeningForDeviceOrientationChange(...)` is called. static final StreamController - deviceOrientationChangedStreamController = + deviceOrientationChangedStreamController = StreamController.broadcast(); /// Stream queue to pick up finalized viceo recording events in @@ -117,12 +117,12 @@ class AndroidCameraCameraX extends CameraPlatform { final StreamQueue videoRecordingEventStreamQueue = StreamQueue(videoRecordingEventStreamController.stream); - late final VideoRecordEventListener _videoRecordingEventListener = proxy - .newVideoRecordEventListener( - onEvent: (_, VideoRecordEvent event) { - videoRecordingEventStreamController.add(event); - }, - ); + late final VideoRecordEventListener _videoRecordingEventListener = + proxy.newVideoRecordEventListener( + onEvent: (_, VideoRecordEvent event) { + videoRecordingEventStreamController.add(event); + }, + ); /// Whether or not [preview] has been bound to the lifecycle of the camera by /// [createCamera]. @@ -166,9 +166,9 @@ class AndroidCameraCameraX extends CameraPlatform { StreamController.broadcast(); /// The stream of camera events. - Stream _cameraEvents(int cameraId) => cameraEventStreamController - .stream - .where((CameraEvent event) => event.cameraId == cameraId); + Stream _cameraEvents(int cameraId) => + cameraEventStreamController.stream + .where((CameraEvent event) => event.cameraId == cameraId); /// The controller we need to stream image data. @visibleForTesting @@ -276,12 +276,14 @@ class AndroidCameraCameraX extends CameraPlatform { // Determine the lens direction by filtering the CameraInfo // TODO(gmackall): replace this with call to CameraInfo.getLensFacing when changes containing that method are available if ((await proxy - .newCameraSelector(requireLensFacing: LensFacing.back) - .filter([cameraInfo])).isNotEmpty) { + .newCameraSelector(requireLensFacing: LensFacing.back) + .filter([cameraInfo])) + .isNotEmpty) { cameraLensDirection = CameraLensDirection.back; } else if ((await proxy - .newCameraSelector(requireLensFacing: LensFacing.front) - .filter([cameraInfo])).isNotEmpty) { + .newCameraSelector(requireLensFacing: LensFacing.front) + .filter([cameraInfo])) + .isNotEmpty) { cameraLensDirection = CameraLensDirection.front; } else { //Skip this CameraInfo as its lens direction is unknown @@ -314,10 +316,12 @@ class AndroidCameraCameraX extends CameraPlatform { CameraDescription description, ResolutionPreset? resolutionPreset, { bool enableAudio = false, - }) => createCameraWithSettings( - description, - MediaSettings(resolutionPreset: resolutionPreset, enableAudio: enableAudio), - ); + }) => + createCameraWithSettings( + description, + MediaSettings( + resolutionPreset: resolutionPreset, enableAudio: enableAudio), + ); /// Creates an uninitialized camera instance and returns the camera ID. /// @@ -413,9 +417,8 @@ class AndroidCameraCameraX extends CameraPlatform { ); sensorOrientationDegrees = ((await camera2CameraInfo.getCameraCharacteristic( - proxy.sensorOrientationCameraCharacteristics(), - ))! - as int) + proxy.sensorOrientationCameraCharacteristics(), + ))! as int) .toDouble(); sensorOrientationDegrees = cameraDescription.sensorOrientation.toDouble(); @@ -624,10 +627,9 @@ class AndroidCameraCameraX extends CameraPlatform { case FocusMode.auto: // Determine auto-focus point to restore, if any. We do not restore // default auto-focus point if set previously to lock focus. - final MeteringPoint? unLockedFocusPoint = - _defaultFocusPointLocked - ? null - : currentFocusMeteringAction!.meteringPointsAf.first; + final MeteringPoint? unLockedFocusPoint = _defaultFocusPointLocked + ? null + : currentFocusMeteringAction!.meteringPointsAf.first; _defaultFocusPointLocked = false; autoFocusPoint = unLockedFocusPoint; disableAutoCancel = false; @@ -638,20 +640,19 @@ class AndroidCameraCameraX extends CameraPlatform { if (currentFocusMeteringAction != null) { final List possibleCurrentAfPoints = currentFocusMeteringAction!.meteringPointsAf; - lockedFocusPoint = - possibleCurrentAfPoints.isEmpty - ? null - : possibleCurrentAfPoints.first; + lockedFocusPoint = possibleCurrentAfPoints.isEmpty + ? null + : possibleCurrentAfPoints.first; } // If there isn't, lock center of entire sensor area by default. if (lockedFocusPoint == null) { - final DisplayOrientedMeteringPointFactory meteringPointFactory = proxy - .newDisplayOrientedMeteringPointFactory( - cameraInfo: cameraInfo!, - width: 1, - height: 1, - ); + final DisplayOrientedMeteringPointFactory meteringPointFactory = + proxy.newDisplayOrientedMeteringPointFactory( + cameraInfo: cameraInfo!, + width: 1, + height: 1, + ); lockedFocusPoint = await meteringPointFactory.createPointWithSize( 0.5, 0.5, @@ -790,12 +791,12 @@ class AndroidCameraCameraX extends CameraPlatform { ); final bool lockExposureMode = mode == ExposureMode.locked; - final CaptureRequestOptions captureRequestOptions = proxy - .newCaptureRequestOptions( - options: { - proxy.controlAELockCaptureRequest(): lockExposureMode, - }, - ); + final CaptureRequestOptions captureRequestOptions = + proxy.newCaptureRequestOptions( + options: { + proxy.controlAELockCaptureRequest(): lockExposureMode, + }, + ); await camera2Control.addCaptureRequestOptions(captureRequestOptions); _currentExposureMode = mode; @@ -901,8 +902,8 @@ class AndroidCameraCameraX extends CameraPlatform { final Stream deviceOrientationStream = onDeviceOrientationChanged().map( - (DeviceOrientationChangedEvent e) => e.orientation, - ); + (DeviceOrientationChangedEvent e) => e.orientation, + ); if (cameraIsFrontFacing) { return RotatedPreview.frontFacingCamera( _initialDeviceOrientation, @@ -1038,9 +1039,8 @@ class AndroidCameraCameraX extends CameraPlatform { ); final InfoSupportedHardwareLevel cameraInfoSupportedHardwareLevel = (await camera2CameraInfo.getCameraCharacteristic( - proxy.infoSupportedHardwareLevelCameraCharacteristics(), - ))! - as InfoSupportedHardwareLevel; + proxy.infoSupportedHardwareLevelCameraCharacteristics(), + ))! as InfoSupportedHardwareLevel; // Handle limited level device restrictions: final bool cameraSupportsConcurrentImageCapture = @@ -1447,13 +1447,12 @@ class AndroidCameraCameraX extends CameraPlatform { ); final ResolutionFilter resolutionFilter = proxy .createWithOnePreferredSizeResolutionFilter(preferredSize: boundSize); - final AspectRatioStrategy? aspectRatioStrategy = - aspectRatio == null - ? null - : proxy.newAspectRatioStrategy( - preferredAspectRatio: aspectRatio, - fallbackRule: AspectRatioStrategyFallbackRule.auto, - ); + final AspectRatioStrategy? aspectRatioStrategy = aspectRatio == null + ? null + : proxy.newAspectRatioStrategy( + preferredAspectRatio: aspectRatio, + fallbackRule: AspectRatioStrategyFallbackRule.auto, + ); return proxy.newResolutionSelector( resolutionStrategy: resolutionStrategy, resolutionFilter: resolutionFilter, @@ -1489,8 +1488,8 @@ class AndroidCameraCameraX extends CameraPlatform { // We will choose the next highest video quality if the one desired // is unavailable. - final FallbackStrategy fallbackStrategy = proxy - .lowerQualityOrHigherThanFallbackStrategy(quality: videoQuality); + final FallbackStrategy fallbackStrategy = + proxy.lowerQualityOrHigherThanFallbackStrategy(quality: videoQuality); return proxy.fromQualitySelector( quality: videoQuality, @@ -1514,12 +1513,12 @@ class AndroidCameraCameraX extends CameraPlatform { ); } - final DisplayOrientedMeteringPointFactory meteringPointFactory = proxy - .newDisplayOrientedMeteringPointFactory( - width: 1.0, - height: 1.0, - cameraInfo: cameraInfo!, - ); + final DisplayOrientedMeteringPointFactory meteringPointFactory = + proxy.newDisplayOrientedMeteringPointFactory( + width: 1.0, + height: 1.0, + cameraInfo: cameraInfo!, + ); meteringPoint = await meteringPointFactory.createPoint(point.x, point.y); } return _startFocusAndMeteringFor( @@ -1590,11 +1589,11 @@ class AndroidCameraCameraX extends CameraPlatform { return true; } // Create builder to potentially add more MeteringPoints to. - final FocusMeteringActionBuilder actionBuilder = proxy - .withModeFocusMeteringActionBuilder( - point: newMeteringPointInfos.first.$1, - mode: newMeteringPointInfos.first.$2, - ); + final FocusMeteringActionBuilder actionBuilder = + proxy.withModeFocusMeteringActionBuilder( + point: newMeteringPointInfos.first.$1, + mode: newMeteringPointInfos.first.$2, + ); if (disableAutoCancel) { unawaited(actionBuilder.disableAutoCancel()); } @@ -1617,26 +1616,25 @@ class AndroidCameraCameraX extends CameraPlatform { final Iterable<(MeteringPoint, MeteringMode)> originalMeteringPoints = _combineMeteringPoints(currentFocusMeteringAction!); - newMeteringPointInfos = - originalMeteringPoints - .where( - ((MeteringPoint, MeteringMode) meteringPointInfo) => - // meteringPointInfo may technically include points without a - // mode specified, but this logic is safe because this plugin - // only uses points that explicitly have mode - // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. - meteringPointInfo.$2 != meteringMode, - ) - .toList(); + newMeteringPointInfos = originalMeteringPoints + .where( + ((MeteringPoint, MeteringMode) meteringPointInfo) => + // meteringPointInfo may technically include points without a + // mode specified, but this logic is safe because this plugin + // only uses points that explicitly have mode + // FocusMeteringAction.flagAe or FocusMeteringAction.flagAf. + meteringPointInfo.$2 != meteringMode, + ) + .toList(); } newMeteringPointInfos.add((meteringPoint, meteringMode)); - final FocusMeteringActionBuilder actionBuilder = proxy - .withModeFocusMeteringActionBuilder( - point: newMeteringPointInfos.first.$1, - mode: newMeteringPointInfos.first.$2, - ); + final FocusMeteringActionBuilder actionBuilder = + proxy.withModeFocusMeteringActionBuilder( + point: newMeteringPointInfos.first.$1, + mode: newMeteringPointInfos.first.$2, + ); if (disableAutoCancel) { unawaited(actionBuilder.disableAutoCancel()); @@ -1650,8 +1648,8 @@ class AndroidCameraCameraX extends CameraPlatform { currentFocusMeteringAction = await actionBuilder.build(); } - final FocusMeteringResult? result = await cameraControl - .startFocusAndMetering(currentFocusMeteringAction!); + final FocusMeteringResult? result = + await cameraControl.startFocusAndMetering(currentFocusMeteringAction!); return result?.isFocusSuccessful ?? false; } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart index 2c0d0a43747..bf1f4d2dd5d 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.dart @@ -168,12 +168,12 @@ class Observer extends camerax.Observer { super.pigeon_binaryMessenger, // ignore: non_constant_identifier_names super.pigeon_instanceManager, - }) : _genericOnChanged = onChanged, - super( - onChanged: (camerax.Observer instance, Object value) { - onChanged(instance as Observer, value as T); - }, - ); + }) : _genericOnChanged = onChanged, + super( + onChanged: (camerax.Observer instance, Object value) { + onChanged(instance as Observer, value as T); + }, + ); /// Constructs [Observer] without creating the associated native object. /// @@ -185,12 +185,12 @@ class Observer extends camerax.Observer { super.pigeon_binaryMessenger, // ignore: non_constant_identifier_names super.pigeon_instanceManager, - }) : _genericOnChanged = onChanged, - super.pigeon_detached( - onChanged: (camerax.Observer instance, Object value) { - onChanged(instance as Observer, value as T); - }, - ); + }) : _genericOnChanged = onChanged, + super.pigeon_detached( + onChanged: (camerax.Observer instance, Object value) { + onChanged(instance as Observer, value as T); + }, + ); final void Function(Observer instance, T value) _genericOnChanged; diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart index 1d18c357d79..d641289808e 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_library.g.dart @@ -1,7 +1,7 @@ // Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Autogenerated from Pigeon (v25.0.0), do not edit directly. +// Autogenerated from Pigeon (v25.2.0), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers @@ -20,11 +20,8 @@ PlatformException _createConnectionError(String channelName) { ); } -List wrapResponse({ - Object? result, - PlatformException? error, - bool empty = false, -}) { +List wrapResponse( + {Object? result, PlatformException? error, bool empty = false}) { if (empty) { return []; } @@ -46,7 +43,7 @@ abstract class PigeonInternalProxyApiBaseClass { this.pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, }) : pigeon_instanceManager = - pigeon_instanceManager ?? PigeonInstanceManager.instance; + pigeon_instanceManager ?? PigeonInstanceManager.instance; /// Sends and receives binary data across the Flutter platform barrier. /// @@ -117,7 +114,7 @@ class PigeonInstanceManager { // HashMap). final Expando _identifiers = Expando(); final Map> - _weakInstances = >{}; + _weakInstances = >{}; final Map _strongInstances = {}; late final Finalizer _finalizer; @@ -139,162 +136,110 @@ class PigeonInstanceManager { }, ); _PigeonInternalInstanceManagerApi.setUpMessageHandlers( - instanceManager: instanceManager, - ); + instanceManager: instanceManager); CameraSize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ResolutionInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CameraIntegerRange.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); VideoRecordEvent.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); VideoRecordEventStart.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); VideoRecordEventFinalize.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); MeteringPoint.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); Observer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CameraSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ProcessCameraProvider.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); UseCase.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); Camera.pigeon_setUpMessageHandlers(pigeon_instanceManager: instanceManager); SystemServicesManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CameraPermissionsError.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); DeviceOrientationManager.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); Preview.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); VideoCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); VideoOutput.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); Recorder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); VideoRecordEventListener.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); PendingRecording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); Recording.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ImageCapture.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ResolutionStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ResolutionSelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); AspectRatioStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CameraState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ExposureState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ZoomState.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ImageAnalysis.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); Analyzer.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CameraStateStateError.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); LiveData.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ImageProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); PlaneProxy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); QualitySelector.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); FallbackStrategy.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); FocusMeteringActionBuilder.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); FocusMeteringAction.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); FocusMeteringResult.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CaptureRequest.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CaptureRequestKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CaptureRequestOptions.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); Camera2CameraControl.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); ResolutionFilter.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CameraCharacteristicsKey.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); CameraCharacteristics.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); Camera2CameraInfo.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); MeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); DisplayOrientedMeteringPointFactory.pigeon_setUpMessageHandlers( - pigeon_instanceManager: instanceManager, - ); + pigeon_instanceManager: instanceManager); return instanceManager; } @@ -359,8 +304,7 @@ class PigeonInstanceManager { /// This method also expects the host `InstanceManager` to have a strong /// reference to the instance the identifier is associated with. T? getInstanceWithWeakReference( - int identifier, - ) { + int identifier) { final PigeonInternalProxyApiBaseClass? weakInstance = _weakInstances[identifier]?.target; @@ -397,24 +341,19 @@ class PigeonInstanceManager { /// /// Returns unique identifier of the [instance] added. void addHostCreatedInstance( - PigeonInternalProxyApiBaseClass instance, - int identifier, - ) { + PigeonInternalProxyApiBaseClass instance, int identifier) { _addInstanceWithIdentifier(instance, identifier); } void _addInstanceWithIdentifier( - PigeonInternalProxyApiBaseClass instance, - int identifier, - ) { + PigeonInternalProxyApiBaseClass instance, int identifier) { assert(!containsIdentifier(identifier)); assert(getIdentifier(instance) == null); assert(identifier >= 0); _identifiers[instance] = identifier; - _weakInstances[identifier] = WeakReference( - instance, - ); + _weakInstances[identifier] = + WeakReference(instance); _finalizer.attach(instance, identifier, detach: instance); final PigeonInternalProxyApiBaseClass copy = instance.pigeon_copy(); @@ -442,7 +381,7 @@ class PigeonInstanceManager { class _PigeonInternalInstanceManagerApi { /// Constructor for [_PigeonInternalInstanceManagerApi]. _PigeonInternalInstanceManagerApi({BinaryMessenger? binaryMessenger}) - : pigeonVar_binaryMessenger = binaryMessenger; + : pigeonVar_binaryMessenger = binaryMessenger; final BinaryMessenger? pigeonVar_binaryMessenger; @@ -454,37 +393,31 @@ class _PigeonInternalInstanceManagerApi { PigeonInstanceManager? instanceManager, }) { { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null.'); final List args = (message as List?)!; final int? arg_identifier = (args[0] as int?); - assert( - arg_identifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null, expected non-null int.', - ); + assert(arg_identifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference was null, expected non-null int.'); try { - (instanceManager ?? PigeonInstanceManager.instance).remove( - arg_identifier!, - ); + (instanceManager ?? PigeonInstanceManager.instance) + .remove(arg_identifier!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -496,13 +429,12 @@ class _PigeonInternalInstanceManagerApi { 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.removeStrongReference'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [identifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([identifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -526,10 +458,10 @@ class _PigeonInternalInstanceManagerApi { 'dev.flutter.pigeon.camera_android_camerax.PigeonInternalInstanceManager.clear'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -564,9 +496,8 @@ class _PigeonInternalProxyApiBaseCodec extends _PigeonCodec { Object? readValueOfType(int type, ReadBuffer buffer) { switch (type) { case 128: - return instanceManager.getInstanceWithWeakReference( - readValue(buffer)! as int, - ); + return instanceManager + .getInstanceWithWeakReference(readValue(buffer)! as int); default: return super.readValueOfType(type, buffer); } @@ -638,7 +569,10 @@ enum CameraStateType { } /// The types (T) properly wrapped to be used as a LiveData. -enum LiveDataSupportedType { cameraState, zoomState } +enum LiveDataSupportedType { + cameraState, + zoomState, +} /// Video quality constraints that will be used by a QualitySelector to choose /// an appropriate video resolution. @@ -910,8 +844,8 @@ class CameraSize extends PigeonInternalProxyApiBaseClass { required this.width, required this.height, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraSize; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -919,13 +853,12 @@ class CameraSize extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, width, height], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, width, height]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -968,63 +901,56 @@ class CameraSize extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraSize Function(int width, int height)? pigeon_newInstance, + CameraSize Function( + int width, + int height, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.'); final int? arg_width = (args[1] as int?); - assert( - arg_width != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_width != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.'); final int? arg_height = (args[2] as int?); - assert( - arg_height != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_height != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSize.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_width!, arg_height!) ?? - CameraSize.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - width: arg_width!, - height: arg_height!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_width!, arg_height!) ?? + CameraSize.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + width: arg_width!, + height: arg_height!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -1069,53 +995,45 @@ class ResolutionInfo extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null int.'); final CameraSize? arg_resolution = (args[1] as CameraSize?); - assert( - arg_resolution != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null CameraSize.', - ); + assert(arg_resolution != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionInfo.pigeon_newInstance was null, expected non-null CameraSize.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_resolution!) ?? - ResolutionInfo.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolution: arg_resolution!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_resolution!) ?? + ResolutionInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolution: arg_resolution!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -1144,8 +1062,8 @@ class CameraIntegerRange extends PigeonInternalProxyApiBaseClass { required this.lower, required this.upper, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraIntegerRange; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -1153,13 +1071,12 @@ class CameraIntegerRange extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, lower, upper], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, lower, upper]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -1190,9 +1107,8 @@ class CameraIntegerRange extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecCameraIntegerRange = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecCameraIntegerRange = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); /// The lower endpoint. final int lower; @@ -1204,63 +1120,56 @@ class CameraIntegerRange extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraIntegerRange Function(int lower, int upper)? pigeon_newInstance, + CameraIntegerRange Function( + int lower, + int upper, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.'); final int? arg_lower = (args[1] as int?); - assert( - arg_lower != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_lower != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.'); final int? arg_upper = (args[2] as int?); - assert( - arg_upper != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_upper != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraIntegerRange.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_lower!, arg_upper!) ?? - CameraIntegerRange.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - lower: arg_lower!, - upper: arg_upper!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_lower!, arg_upper!) ?? + CameraIntegerRange.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + lower: arg_lower!, + upper: arg_upper!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -1300,47 +1209,41 @@ class VideoRecordEvent extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEvent.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoRecordEvent.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoRecordEvent.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -1378,47 +1281,41 @@ class VideoRecordEventStart extends VideoRecordEvent { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventStart.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoRecordEventStart.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoRecordEventStart.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -1456,47 +1353,41 @@ class VideoRecordEventFinalize extends VideoRecordEvent { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventFinalize.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoRecordEventFinalize.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoRecordEventFinalize.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -1538,47 +1429,41 @@ class MeteringPoint extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPoint.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - MeteringPoint.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + MeteringPoint.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -1597,13 +1482,12 @@ class MeteringPoint extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.MeteringPoint.getSize'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -1642,8 +1526,8 @@ class Observer extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.onChanged, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecObserver; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -1651,13 +1535,12 @@ class Observer extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Observer.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -1708,57 +1591,52 @@ class Observer extends PigeonInternalProxyApiBaseClass { /// /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to /// release the associated Native object manually. - final void Function(Observer pigeon_instance, Object value) onChanged; + final void Function( + Observer pigeon_instance, + Object value, + ) onChanged; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - void Function(Observer pigeon_instance, Object value)? onChanged, + void Function( + Observer pigeon_instance, + Object value, + )? onChanged, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Observer.onChanged', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + 'dev.flutter.pigeon.camera_android_camerax.Observer.onChanged', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null.'); final List args = (message as List?)!; final Observer? arg_pigeon_instance = (args[0] as Observer?); - assert( - arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Observer.', - ); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Observer.'); final Object? arg_value = (args[1] as Object?); - assert( - arg_value != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Object.', - ); + assert(arg_value != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Observer.onChanged was null, expected non-null Object.'); try { - (onChanged ?? arg_pigeon_instance!.onChanged).call( - arg_pigeon_instance!, - arg_value!, - ); + (onChanged ?? arg_pigeon_instance!.onChanged) + .call(arg_pigeon_instance!, arg_value!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -1805,67 +1683,57 @@ class CameraInfo extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraInfo Function(int sensorRotationDegrees, ExposureState exposureState)? - pigeon_newInstance, + CameraInfo Function( + int sensorRotationDegrees, + ExposureState exposureState, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.'); final int? arg_sensorRotationDegrees = (args[1] as int?); - assert( - arg_sensorRotationDegrees != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_sensorRotationDegrees != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null int.'); final ExposureState? arg_exposureState = (args[2] as ExposureState?); - assert( - arg_exposureState != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null ExposureState.', - ); + assert(arg_exposureState != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraInfo.pigeon_newInstance was null, expected non-null ExposureState.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_sensorRotationDegrees!, - arg_exposureState!, - ) ?? - CameraInfo.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - sensorRotationDegrees: arg_sensorRotationDegrees!, - exposureState: arg_exposureState!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_sensorRotationDegrees!, arg_exposureState!) ?? + CameraInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + sensorRotationDegrees: arg_sensorRotationDegrees!, + exposureState: arg_exposureState!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -1881,13 +1749,12 @@ class CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.getCameraState'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -1917,13 +1784,12 @@ class CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraInfo.getZoomState'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -1965,8 +1831,8 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, LensFacing? requireLensFacing, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraSelector; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -1974,13 +1840,12 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, requireLensFacing], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, requireLensFacing]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -2026,47 +1891,41 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraSelector.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CameraSelector.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CameraSelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -2086,13 +1945,12 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultBackCamera'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2123,13 +1981,12 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.defaultFrontCamera'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2157,13 +2014,12 @@ class CameraSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraSelector.filter'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, cameraInfos], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, cameraInfos]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2209,9 +2065,8 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecProcessCameraProvider = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecProcessCameraProvider = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -2221,47 +2076,41 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - ProcessCameraProvider.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + ProcessCameraProvider.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -2275,17 +2124,16 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { }) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; const String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getInstance'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); final Future pigeonVar_sendFuture = pigeonVar_channel.send(null); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -2316,13 +2164,12 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.getAvailableCameraInfos'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2355,13 +2202,12 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.bindToLifecycle'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, cameraSelector, useCases], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, cameraSelector, useCases]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2391,13 +2237,12 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.isBound'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, useCase], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, useCase]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2427,13 +2272,12 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbind'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, useCases], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, useCases]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2459,13 +2303,12 @@ class ProcessCameraProvider extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ProcessCameraProvider.unbindAll'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2512,47 +2355,41 @@ class UseCase extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.UseCase.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - UseCase.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + UseCase.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -2599,53 +2436,45 @@ class Camera extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null int.'); final CameraControl? arg_cameraControl = (args[1] as CameraControl?); - assert( - arg_cameraControl != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null CameraControl.', - ); + assert(arg_cameraControl != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera.pigeon_newInstance was null, expected non-null CameraControl.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_cameraControl!) ?? - Camera.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - cameraControl: arg_cameraControl!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_cameraControl!) ?? + Camera.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + cameraControl: arg_cameraControl!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -2661,13 +2490,12 @@ class Camera extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera.getCameraInfo'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2705,8 +2533,8 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.onCameraError, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecSystemServicesManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2714,13 +2542,12 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -2750,9 +2577,8 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecSystemServicesManager = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecSystemServicesManager = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); /// Callback method. /// @@ -2776,8 +2602,7 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { final void Function( SystemServicesManager pigeon_instance, String errorDescription, - ) - onCameraError; + ) onCameraError; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -2786,53 +2611,42 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { void Function( SystemServicesManager pigeon_instance, String errorDescription, - )? - onCameraError, + )? onCameraError, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null.'); final List args = (message as List?)!; final SystemServicesManager? arg_pigeon_instance = (args[0] as SystemServicesManager?); - assert( - arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null SystemServicesManager.', - ); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null SystemServicesManager.'); final String? arg_errorDescription = (args[1] as String?); - assert( - arg_errorDescription != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null String.', - ); + assert(arg_errorDescription != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.onCameraError was null, expected non-null String.'); try { - (onCameraError ?? arg_pigeon_instance!.onCameraError).call( - arg_pigeon_instance!, - arg_errorDescription!, - ); + (onCameraError ?? arg_pigeon_instance!.onCameraError) + .call(arg_pigeon_instance!, arg_errorDescription!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -2840,8 +2654,7 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { } Future requestCameraPermissions( - bool enableAudio, - ) async { + bool enableAudio) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecSystemServicesManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2849,13 +2662,12 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.requestCameraPermissions'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, enableAudio], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, enableAudio]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2873,7 +2685,10 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { /// Returns a path to be used to create a temp file in the current cache /// directory. - Future getTempFilePath(String prefix, String suffix) async { + Future getTempFilePath( + String prefix, + String suffix, + ) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecSystemServicesManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -2881,13 +2696,12 @@ class SystemServicesManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.SystemServicesManager.getTempFilePath'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, prefix, suffix], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, prefix, suffix]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -2940,64 +2754,56 @@ class CameraPermissionsError extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraPermissionsError Function(String errorCode, String description)? - pigeon_newInstance, + CameraPermissionsError Function( + String errorCode, + String description, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null int.'); final String? arg_errorCode = (args[1] as String?); - assert( - arg_errorCode != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.', - ); + assert(arg_errorCode != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.'); final String? arg_description = (args[2] as String?); - assert( - arg_description != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.', - ); + assert(arg_description != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraPermissionsError.pigeon_newInstance was null, expected non-null String.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_errorCode!, arg_description!) ?? - CameraPermissionsError.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - errorCode: arg_errorCode!, - description: arg_description!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_errorCode!, arg_description!) ?? + CameraPermissionsError.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + errorCode: arg_errorCode!, + description: arg_description!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -3023,8 +2829,8 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.onDeviceOrientationChanged, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecDeviceOrientationManager; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3032,13 +2838,12 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -3068,9 +2873,8 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecDeviceOrientationManager = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecDeviceOrientationManager = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); /// Callback method. /// @@ -3094,48 +2898,42 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { final void Function( DeviceOrientationManager pigeon_instance, String orientation, - ) - onDeviceOrientationChanged; + ) onDeviceOrientationChanged; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - void Function(DeviceOrientationManager pigeon_instance, String orientation)? - onDeviceOrientationChanged, + void Function( + DeviceOrientationManager pigeon_instance, + String orientation, + )? onDeviceOrientationChanged, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null.'); final List args = (message as List?)!; final DeviceOrientationManager? arg_pigeon_instance = (args[0] as DeviceOrientationManager?); - assert( - arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null DeviceOrientationManager.', - ); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null DeviceOrientationManager.'); final String? arg_orientation = (args[1] as String?); - assert( - arg_orientation != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null String.', - ); + assert(arg_orientation != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.onDeviceOrientationChanged was null, expected non-null String.'); try { (onDeviceOrientationChanged ?? arg_pigeon_instance!.onDeviceOrientationChanged) @@ -3145,8 +2943,7 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -3161,13 +2958,12 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.startListeningForDeviceOrientationChange'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3191,13 +2987,12 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.stopListeningForDeviceOrientationChange'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3221,13 +3016,12 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getDefaultDisplayRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3256,13 +3050,12 @@ class DeviceOrientationManager extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.DeviceOrientationManager.getUiOrientation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3303,8 +3096,8 @@ class Preview extends UseCase { this.resolutionSelector, int? targetRotation, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecPreview; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3312,17 +3105,16 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [ - pigeonVar_instanceIdentifier, - resolutionSelector, - targetRotation, - ], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + resolutionSelector, + targetRotation + ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -3361,54 +3153,48 @@ class Preview extends UseCase { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, Preview Function(ResolutionSelector? resolutionSelector)? - pigeon_newInstance, + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Preview.pigeon_newInstance was null, expected non-null int.'); final ResolutionSelector? arg_resolutionSelector = (args[1] as ResolutionSelector?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_resolutionSelector) ?? - Preview.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolutionSelector: arg_resolutionSelector, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_resolutionSelector) ?? + Preview.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: arg_resolutionSelector, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -3424,8 +3210,7 @@ class Preview extends UseCase { /// 3. Returns the texture id of the `TextureEntry` that provided the /// `SurfaceProducer`. Future setSurfaceProvider( - SystemServicesManager systemServicesManager, - ) async { + SystemServicesManager systemServicesManager) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecPreview; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3433,13 +3218,12 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.setSurfaceProvider'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, systemServicesManager], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, systemServicesManager]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3470,13 +3254,12 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.releaseSurfaceProvider'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3501,13 +3284,12 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.getResolutionInfo'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3532,13 +3314,12 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.setTargetRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, rotation], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, rotation]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3564,13 +3345,12 @@ class Preview extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.Preview.surfaceProducerHandlesCropAndRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3611,8 +3391,8 @@ class VideoCapture extends UseCase { super.pigeon_instanceManager, required VideoOutput videoOutput, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecVideoCapture; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3620,13 +3400,12 @@ class VideoCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.withOutput'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, videoOutput], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, videoOutput]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -3665,47 +3444,41 @@ class VideoCapture extends UseCase { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoCapture.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoCapture.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoCapture.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -3721,13 +3494,12 @@ class VideoCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.getOutput'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3757,13 +3529,12 @@ class VideoCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.VideoCapture.setTargetRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, rotation], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, rotation]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -3810,47 +3581,41 @@ class VideoOutput extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoOutput.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - VideoOutput.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + VideoOutput.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -3878,8 +3643,8 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecRecorder; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -3887,17 +3652,17 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([ - pigeonVar_instanceIdentifier, - aspectRatio, - targetVideoEncodingBitRate, - qualitySelector, - ]); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([ + pigeonVar_instanceIdentifier, + aspectRatio, + targetVideoEncodingBitRate, + qualitySelector + ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -3936,47 +3701,41 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recorder.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - Recorder.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + Recorder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -3992,13 +3751,12 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.getAspectRatio'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4028,13 +3786,12 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.getTargetVideoEncodingBitRate'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4064,13 +3821,12 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.getQualitySelector'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4100,13 +3856,12 @@ class Recorder extends PigeonInternalProxyApiBaseClass implements VideoOutput { 'dev.flutter.pigeon.camera_android_camerax.Recorder.prepareRecording'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, path], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, path]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4143,8 +3898,8 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.onEvent, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecVideoRecordEventListener; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -4152,13 +3907,12 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -4188,9 +3942,8 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecVideoRecordEventListener = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecVideoRecordEventListener = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); /// Callback method. /// @@ -4214,8 +3967,7 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { final void Function( VideoRecordEventListener pigeon_instance, VideoRecordEvent event, - ) - onEvent; + ) onEvent; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -4224,53 +3976,42 @@ class VideoRecordEventListener extends PigeonInternalProxyApiBaseClass { void Function( VideoRecordEventListener pigeon_instance, VideoRecordEvent event, - )? - onEvent, + )? onEvent, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null.'); final List args = (message as List?)!; final VideoRecordEventListener? arg_pigeon_instance = (args[0] as VideoRecordEventListener?); - assert( - arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEventListener.', - ); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEventListener.'); final VideoRecordEvent? arg_event = (args[1] as VideoRecordEvent?); - assert( - arg_event != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEvent.', - ); + assert(arg_event != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.VideoRecordEventListener.onEvent was null, expected non-null VideoRecordEvent.'); try { - (onEvent ?? arg_pigeon_instance!.onEvent).call( - arg_pigeon_instance!, - arg_event!, - ); + (onEvent ?? arg_pigeon_instance!.onEvent) + .call(arg_pigeon_instance!, arg_event!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -4312,47 +4053,41 @@ class PendingRecording extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PendingRecording.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - PendingRecording.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + PendingRecording.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -4368,13 +4103,12 @@ class PendingRecording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.PendingRecording.start'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, listener], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, listener]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4429,47 +4163,41 @@ class Recording extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Recording.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - Recording.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + Recording.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -4485,13 +4213,12 @@ class Recording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Recording.close'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4516,13 +4243,12 @@ class Recording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Recording.pause'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4547,13 +4273,12 @@ class Recording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Recording.resume'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4580,13 +4305,12 @@ class Recording extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Recording.stop'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4622,8 +4346,8 @@ class ImageCapture extends UseCase { int? targetRotation, CameraXFlashMode? flashMode, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecImageCapture; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -4631,18 +4355,17 @@ class ImageCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [ - pigeonVar_instanceIdentifier, - resolutionSelector, - targetRotation, - flashMode, - ], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + resolutionSelector, + targetRotation, + flashMode + ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -4681,54 +4404,48 @@ class ImageCapture extends UseCase { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, ImageCapture Function(ResolutionSelector? resolutionSelector)? - pigeon_newInstance, + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageCapture.pigeon_newInstance was null, expected non-null int.'); final ResolutionSelector? arg_resolutionSelector = (args[1] as ResolutionSelector?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_resolutionSelector) ?? - ImageCapture.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolutionSelector: arg_resolutionSelector, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_resolutionSelector) ?? + ImageCapture.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: arg_resolutionSelector, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -4744,13 +4461,12 @@ class ImageCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.setFlashMode'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, flashMode], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, flashMode]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4775,13 +4491,12 @@ class ImageCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.takePicture'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4811,13 +4526,12 @@ class ImageCapture extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageCapture.setTargetRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, rotation], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, rotation]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -4854,8 +4568,8 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { required CameraSize boundSize, required ResolutionStrategyFallbackRule fallbackRule, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecResolutionStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -4863,13 +4577,12 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, boundSize, fallbackRule], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, boundSize, fallbackRule]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -4898,9 +4611,8 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecResolutionStrategy = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecResolutionStrategy = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); /// A resolution strategy chooses the highest available resolution. static final ResolutionStrategy highestAvailableStrategy = @@ -4914,47 +4626,41 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - ResolutionStrategy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + ResolutionStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -4975,13 +4681,12 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.highestAvailableStrategy'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5008,13 +4713,12 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getBoundSize'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5040,13 +4744,12 @@ class ResolutionStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionStrategy.getFallbackRule'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5088,8 +4791,8 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { this.resolutionStrategy, AspectRatioStrategy? aspectRatioStrategy, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecResolutionSelector; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -5097,17 +4800,17 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel - .send([ - pigeonVar_instanceIdentifier, - resolutionFilter, - resolutionStrategy, - aspectRatioStrategy, - ]); + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, + ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([ + pigeonVar_instanceIdentifier, + resolutionFilter, + resolutionStrategy, + aspectRatioStrategy + ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -5138,9 +4841,8 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecResolutionSelector = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecResolutionSelector = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); /// The resolution filter to output the final desired sizes list. final ResolutionFilter? resolutionFilter; @@ -5155,35 +4857,29 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { ResolutionSelector Function( ResolutionFilter? resolutionFilter, ResolutionStrategy? resolutionStrategy, - )? - pigeon_newInstance, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.pigeon_newInstance was null, expected non-null int.'); final ResolutionFilter? arg_resolutionFilter = (args[1] as ResolutionFilter?); final ResolutionStrategy? arg_resolutionStrategy = @@ -5191,25 +4887,22 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_resolutionFilter, - arg_resolutionStrategy, - ) ?? - ResolutionSelector.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolutionFilter: arg_resolutionFilter, - resolutionStrategy: arg_resolutionStrategy, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_resolutionFilter, arg_resolutionStrategy) ?? + ResolutionSelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolutionFilter: arg_resolutionFilter, + resolutionStrategy: arg_resolutionStrategy, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -5227,13 +4920,12 @@ class ResolutionSelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionSelector.getAspectRatioStrategy'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5278,8 +4970,8 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { required AspectRatio preferredAspectRatio, required AspectRatioStrategyFallbackRule fallbackRule, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecAspectRatioStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -5287,17 +4979,16 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [ - pigeonVar_instanceIdentifier, - preferredAspectRatio, - fallbackRule, - ], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + preferredAspectRatio, + fallbackRule + ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -5326,9 +5017,8 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecAspectRatioStrategy = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecAspectRatioStrategy = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); /// The pre-defined aspect ratio strategy that selects sizes with RATIO_16_9 /// in priority. @@ -5348,47 +5038,41 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - AspectRatioStrategy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + AspectRatioStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -5409,13 +5093,12 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_16_9FallbackAutoStrategy'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5447,13 +5130,12 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.ratio_4_3FallbackAutoStrategy'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5481,13 +5163,12 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getFallbackRule'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5517,13 +5198,12 @@ class AspectRatioStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.AspectRatioStrategy.getPreferredAspectRatio'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -5579,61 +5259,55 @@ class CameraState extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - CameraState Function(CameraStateType type, CameraStateStateError? error)? - pigeon_newInstance, + CameraState Function( + CameraStateType type, + CameraStateStateError? error, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null int.'); final CameraStateType? arg_type = (args[1] as CameraStateType?); - assert( - arg_type != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null CameraStateType.', - ); + assert(arg_type != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraState.pigeon_newInstance was null, expected non-null CameraStateType.'); final CameraStateStateError? arg_error = (args[2] as CameraStateStateError?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_type!, arg_error) ?? - CameraState.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - type: arg_type!, - error: arg_error, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_type!, arg_error) ?? + CameraState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + type: arg_type!, + error: arg_error, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -5681,69 +5355,55 @@ class ExposureState extends PigeonInternalProxyApiBaseClass { ExposureState Function( CameraIntegerRange exposureCompensationRange, double exposureCompensationStep, - )? - pigeon_newInstance, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null int.'); final CameraIntegerRange? arg_exposureCompensationRange = (args[1] as CameraIntegerRange?); - assert( - arg_exposureCompensationRange != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null CameraIntegerRange.', - ); + assert(arg_exposureCompensationRange != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null CameraIntegerRange.'); final double? arg_exposureCompensationStep = (args[2] as double?); - assert( - arg_exposureCompensationStep != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null double.', - ); + assert(arg_exposureCompensationStep != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ExposureState.pigeon_newInstance was null, expected non-null double.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_exposureCompensationRange!, - arg_exposureCompensationStep!, - ) ?? - ExposureState.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - exposureCompensationRange: - arg_exposureCompensationRange!, - exposureCompensationStep: arg_exposureCompensationStep!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_exposureCompensationRange!, + arg_exposureCompensationStep!) ?? + ExposureState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + exposureCompensationRange: arg_exposureCompensationRange!, + exposureCompensationStep: arg_exposureCompensationStep!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -5787,67 +5447,56 @@ class ZoomState extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - ZoomState Function(double minZoomRatio, double maxZoomRatio)? - pigeon_newInstance, + ZoomState Function( + double minZoomRatio, + double maxZoomRatio, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null int.'); final double? arg_minZoomRatio = (args[1] as double?); - assert( - arg_minZoomRatio != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.', - ); + assert(arg_minZoomRatio != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.'); final double? arg_maxZoomRatio = (args[2] as double?); - assert( - arg_maxZoomRatio != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.', - ); + assert(arg_maxZoomRatio != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ZoomState.pigeon_newInstance was null, expected non-null double.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_minZoomRatio!, - arg_maxZoomRatio!, - ) ?? - ZoomState.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - minZoomRatio: arg_minZoomRatio!, - maxZoomRatio: arg_maxZoomRatio!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_minZoomRatio!, arg_maxZoomRatio!) ?? + ZoomState.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + minZoomRatio: arg_minZoomRatio!, + maxZoomRatio: arg_maxZoomRatio!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -5876,8 +5525,8 @@ class ImageAnalysis extends UseCase { this.resolutionSelector, int? targetRotation, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecImageAnalysis; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -5885,17 +5534,16 @@ class ImageAnalysis extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [ - pigeonVar_instanceIdentifier, - resolutionSelector, - targetRotation, - ], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([ + pigeonVar_instanceIdentifier, + resolutionSelector, + targetRotation + ]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -5934,54 +5582,48 @@ class ImageAnalysis extends UseCase { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, ImageAnalysis Function(ResolutionSelector? resolutionSelector)? - pigeon_newInstance, + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.pigeon_newInstance was null, expected non-null int.'); final ResolutionSelector? arg_resolutionSelector = (args[1] as ResolutionSelector?); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_resolutionSelector) ?? - ImageAnalysis.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - resolutionSelector: arg_resolutionSelector, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_resolutionSelector) ?? + ImageAnalysis.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + resolutionSelector: arg_resolutionSelector, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -5997,13 +5639,12 @@ class ImageAnalysis extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setAnalyzer'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, analyzer], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, analyzer]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6028,13 +5669,12 @@ class ImageAnalysis extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.clearAnalyzer'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6059,13 +5699,12 @@ class ImageAnalysis extends UseCase { 'dev.flutter.pigeon.camera_android_camerax.ImageAnalysis.setTargetRotation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, rotation], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, rotation]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6100,8 +5739,8 @@ class Analyzer extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required this.analyze, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecAnalyzer; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6109,13 +5748,12 @@ class Analyzer extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Analyzer.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -6166,57 +5804,52 @@ class Analyzer extends PigeonInternalProxyApiBaseClass { /// /// Alternatively, [PigeonInstanceManager.removeWeakReference] can be used to /// release the associated Native object manually. - final void Function(Analyzer pigeon_instance, ImageProxy image) analyze; + final void Function( + Analyzer pigeon_instance, + ImageProxy image, + ) analyze; static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - void Function(Analyzer pigeon_instance, ImageProxy image)? analyze, + void Function( + Analyzer pigeon_instance, + ImageProxy image, + )? analyze, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + 'dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null.'); final List args = (message as List?)!; final Analyzer? arg_pigeon_instance = (args[0] as Analyzer?); - assert( - arg_pigeon_instance != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null Analyzer.', - ); + assert(arg_pigeon_instance != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null Analyzer.'); final ImageProxy? arg_image = (args[1] as ImageProxy?); - assert( - arg_image != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null ImageProxy.', - ); + assert(arg_image != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Analyzer.analyze was null, expected non-null ImageProxy.'); try { - (analyze ?? arg_pigeon_instance!.analyze).call( - arg_pigeon_instance!, - arg_image!, - ); + (analyze ?? arg_pigeon_instance!.analyze) + .call(arg_pigeon_instance!, arg_image!); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -6256,58 +5889,50 @@ class CameraStateStateError extends PigeonInternalProxyApiBaseClass { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, CameraStateStateError Function(CameraStateErrorCode code)? - pigeon_newInstance, + pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null int.'); final CameraStateErrorCode? arg_code = (args[1] as CameraStateErrorCode?); - assert( - arg_code != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null CameraStateErrorCode.', - ); + assert(arg_code != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraStateStateError.pigeon_newInstance was null, expected non-null CameraStateErrorCode.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_code!) ?? - CameraStateStateError.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - code: arg_code!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_code!) ?? + CameraStateStateError.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + code: arg_code!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -6357,54 +5982,46 @@ class LiveData extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null int.'); final LiveDataSupportedType? arg_type = (args[1] as LiveDataSupportedType?); - assert( - arg_type != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null LiveDataSupportedType.', - ); + assert(arg_type != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.LiveData.pigeon_newInstance was null, expected non-null LiveDataSupportedType.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_type!) ?? - LiveData.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - type: arg_type!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_type!) ?? + LiveData.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + type: arg_type!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -6421,13 +6038,12 @@ class LiveData extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.LiveData.observe'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, observer], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, observer]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6452,13 +6068,12 @@ class LiveData extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.LiveData.removeObservers'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6483,13 +6098,12 @@ class LiveData extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.LiveData.getValue'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6548,73 +6162,61 @@ class ImageProxy extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - ImageProxy Function(int format, int width, int height)? pigeon_newInstance, + ImageProxy Function( + int format, + int width, + int height, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); final int? arg_format = (args[1] as int?); - assert( - arg_format != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_format != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); final int? arg_width = (args[2] as int?); - assert( - arg_width != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_width != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); final int? arg_height = (args[3] as int?); - assert( - arg_height != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_height != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ImageProxy.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_format!, - arg_width!, - arg_height!, - ) ?? - ImageProxy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - format: arg_format!, - width: arg_width!, - height: arg_height!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_format!, arg_width!, arg_height!) ?? + ImageProxy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + format: arg_format!, + width: arg_width!, + height: arg_height!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -6630,13 +6232,12 @@ class ImageProxy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.getPlanes'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6666,13 +6267,12 @@ class ImageProxy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ImageProxy.close'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -6731,74 +6331,62 @@ class PlaneProxy extends PigeonInternalProxyApiBaseClass { bool pigeon_clearHandlers = false, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - PlaneProxy Function(Uint8List buffer, int pixelStride, int rowStride)? - pigeon_newInstance, + PlaneProxy Function( + Uint8List buffer, + int pixelStride, + int rowStride, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.'); final Uint8List? arg_buffer = (args[1] as Uint8List?); - assert( - arg_buffer != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null Uint8List.', - ); + assert(arg_buffer != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null Uint8List.'); final int? arg_pixelStride = (args[2] as int?); - assert( - arg_pixelStride != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pixelStride != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.'); final int? arg_rowStride = (args[3] as int?); - assert( - arg_rowStride != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_rowStride != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.PlaneProxy.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_buffer!, - arg_pixelStride!, - arg_rowStride!, - ) ?? - PlaneProxy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - buffer: arg_buffer!, - pixelStride: arg_pixelStride!, - rowStride: arg_rowStride!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_buffer!, arg_pixelStride!, arg_rowStride!) ?? + PlaneProxy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + buffer: arg_buffer!, + pixelStride: arg_pixelStride!, + rowStride: arg_rowStride!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -6829,8 +6417,8 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { required VideoQuality quality, FallbackStrategy? fallbackStrategy, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecQualitySelector; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6838,13 +6426,12 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.from'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, quality, fallbackStrategy], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, quality, fallbackStrategy]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -6869,8 +6456,8 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { required List qualities, FallbackStrategy? fallbackStrategy, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecQualitySelector; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -6878,13 +6465,12 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.fromOrderedList'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, qualities, fallbackStrategy], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, qualities, fallbackStrategy]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -6923,47 +6509,41 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.QualitySelector.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - QualitySelector.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + QualitySelector.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -6979,20 +6559,18 @@ class QualitySelector extends PigeonInternalProxyApiBaseClass { }) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; const String pigeonVar_channelName = 'dev.flutter.pigeon.camera_android_camerax.QualitySelector.getResolution'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [cameraInfo, quality], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([cameraInfo, quality]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7030,8 +6608,8 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required VideoQuality quality, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFallbackStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7039,13 +6617,12 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityOrLowerThan'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, quality], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, quality]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7070,8 +6647,8 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required VideoQuality quality, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFallbackStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7079,13 +6656,12 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.higherQualityThan'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, quality], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, quality]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7110,8 +6686,8 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required VideoQuality quality, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFallbackStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7119,13 +6695,12 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityOrHigherThan'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, quality], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, quality]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7150,8 +6725,8 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required VideoQuality quality, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFallbackStrategy; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7159,13 +6734,12 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.lowerQualityThan'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, quality], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, quality]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7204,47 +6778,41 @@ class FallbackStrategy extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FallbackStrategy.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - FallbackStrategy.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + FallbackStrategy.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -7287,47 +6855,41 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraControl.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CameraControl.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CameraControl.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -7343,13 +6905,12 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.enableTorch'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, torch], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, torch]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7374,13 +6935,12 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.setZoomRatio'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, ratio], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, ratio]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7399,8 +6959,7 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { /// Starts a focus and metering action configured by the /// `FocusMeteringAction`. Future startFocusAndMetering( - FocusMeteringAction action, - ) async { + FocusMeteringAction action) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCameraControl; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7408,13 +6967,12 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.startFocusAndMetering'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, action], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, action]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7439,13 +6997,12 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.cancelFocusAndMetering'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7470,13 +7027,12 @@ class CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraControl.setExposureCompensationIndex'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, index], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, index]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7512,8 +7068,8 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required MeteringPoint point, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFocusMeteringActionBuilder; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7521,13 +7077,12 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, point], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier, point]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7552,8 +7107,8 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { required MeteringPoint point, required MeteringMode mode, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFocusMeteringActionBuilder; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7561,13 +7116,12 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.withMode'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, point, mode], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, point, mode]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -7596,9 +7150,8 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecFocusMeteringActionBuilder = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecFocusMeteringActionBuilder = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -7608,47 +7161,41 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - FocusMeteringActionBuilder.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + FocusMeteringActionBuilder.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -7664,13 +7211,12 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPoint'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, point], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, point]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7687,7 +7233,10 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { } /// Adds another MeteringPoint with specified meteringMode. - Future addPointWithMode(MeteringPoint point, MeteringMode mode) async { + Future addPointWithMode( + MeteringPoint point, + MeteringMode mode, + ) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecFocusMeteringActionBuilder; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -7695,13 +7244,12 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.addPointWithMode'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, point, mode], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, point, mode]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7726,13 +7274,12 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.disableAutoCancel'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7757,13 +7304,12 @@ class FocusMeteringActionBuilder extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringActionBuilder.build'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -7832,84 +7378,68 @@ class FocusMeteringAction extends PigeonInternalProxyApiBaseClass { List meteringPointsAf, List meteringPointsAwb, bool isAutoCancelEnabled, - )? - pigeon_newInstance, + )? pigeon_newInstance, }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null int.'); final List? arg_meteringPointsAe = (args[1] as List?)?.cast(); - assert( - arg_meteringPointsAe != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.', - ); + assert(arg_meteringPointsAe != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.'); final List? arg_meteringPointsAf = (args[2] as List?)?.cast(); - assert( - arg_meteringPointsAf != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.', - ); + assert(arg_meteringPointsAf != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.'); final List? arg_meteringPointsAwb = (args[3] as List?)?.cast(); - assert( - arg_meteringPointsAwb != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.', - ); + assert(arg_meteringPointsAwb != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null List.'); final bool? arg_isAutoCancelEnabled = (args[4] as bool?); - assert( - arg_isAutoCancelEnabled != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null bool.', - ); + assert(arg_isAutoCancelEnabled != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringAction.pigeon_newInstance was null, expected non-null bool.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call( - arg_meteringPointsAe!, - arg_meteringPointsAf!, - arg_meteringPointsAwb!, - arg_isAutoCancelEnabled!, - ) ?? - FocusMeteringAction.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - meteringPointsAe: arg_meteringPointsAe!, - meteringPointsAf: arg_meteringPointsAf!, - meteringPointsAwb: arg_meteringPointsAwb!, - isAutoCancelEnabled: arg_isAutoCancelEnabled!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call( + arg_meteringPointsAe!, + arg_meteringPointsAf!, + arg_meteringPointsAwb!, + arg_isAutoCancelEnabled!) ?? + FocusMeteringAction.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + meteringPointsAe: arg_meteringPointsAe!, + meteringPointsAf: arg_meteringPointsAf!, + meteringPointsAwb: arg_meteringPointsAwb!, + isAutoCancelEnabled: arg_isAutoCancelEnabled!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -7955,53 +7485,45 @@ class FocusMeteringResult extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null int.'); final bool? arg_isFocusSuccessful = (args[1] as bool?); - assert( - arg_isFocusSuccessful != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null bool.', - ); + assert(arg_isFocusSuccessful != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.FocusMeteringResult.pigeon_newInstance was null, expected non-null bool.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call(arg_isFocusSuccessful!) ?? - FocusMeteringResult.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - isFocusSuccessful: arg_isFocusSuccessful!, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call(arg_isFocusSuccessful!) ?? + FocusMeteringResult.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + isFocusSuccessful: arg_isFocusSuccessful!, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -8049,47 +7571,41 @@ class CaptureRequest extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequest.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CaptureRequest.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CaptureRequest.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -8110,13 +7626,12 @@ class CaptureRequest extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CaptureRequest.controlAELock'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8166,47 +7681,41 @@ class CaptureRequestKey extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestKey.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CaptureRequestKey.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CaptureRequestKey.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -8231,8 +7740,8 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required Map options, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCaptureRequestOptions; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -8240,13 +7749,12 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, options], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, options]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -8275,9 +7783,8 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecCaptureRequestOptions = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecCaptureRequestOptions = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -8287,47 +7794,41 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CaptureRequestOptions.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CaptureRequestOptions.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -8344,13 +7845,12 @@ class CaptureRequestOptions extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CaptureRequestOptions.getCaptureRequestOption'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, key], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, key]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8386,8 +7886,8 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required CameraControl cameraControl, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCamera2CameraControl; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -8395,13 +7895,12 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.from'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, cameraControl], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, cameraControl]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -8430,9 +7929,8 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecCamera2CameraControl = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecCamera2CameraControl = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -8442,47 +7940,41 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - Camera2CameraControl.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + Camera2CameraControl.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -8499,13 +7991,12 @@ class Camera2CameraControl extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraControl.addCaptureRequestOptions'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, bundle], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, bundle]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8540,8 +8031,8 @@ class ResolutionFilter extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required CameraSize preferredSize, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecResolutionFilter; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -8549,13 +8040,12 @@ class ResolutionFilter extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.createWithOnePreferredSize'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, preferredSize], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, preferredSize]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -8594,47 +8084,41 @@ class ResolutionFilter extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.ResolutionFilter.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - ResolutionFilter.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + ResolutionFilter.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -8673,47 +8157,41 @@ class CameraCharacteristicsKey extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristicsKey.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CameraCharacteristicsKey.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CameraCharacteristicsKey.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -8768,47 +8246,41 @@ class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - CameraCharacteristics.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + CameraCharacteristics.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -8829,13 +8301,12 @@ class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.infoSupportedHardwareLevel'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8867,13 +8338,12 @@ class CameraCharacteristics extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.CameraCharacteristics.sensorOrientation'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([pigeonVar_instanceIdentifier]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -8910,8 +8380,8 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { super.pigeon_instanceManager, required CameraInfo cameraInfo, }) { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecCamera2CameraInfo; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -8919,13 +8389,12 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.from'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, cameraInfo], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel + .send([pigeonVar_instanceIdentifier, cameraInfo]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -8954,9 +8423,8 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecCamera2CameraInfo = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecCamera2CameraInfo = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -8966,47 +8434,41 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - Camera2CameraInfo.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + Camera2CameraInfo.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -9022,13 +8484,12 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraId'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -9058,13 +8519,12 @@ class Camera2CameraInfo extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.Camera2CameraInfo.getCameraCharacteristic'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, key], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, key]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -9104,9 +8564,8 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { }); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecMeteringPointFactory = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager, - ); + _pigeonVar_codecMeteringPointFactory = + _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); static void pigeon_setUpMessageHandlers({ bool pigeon_clearHandlers = false, @@ -9116,47 +8575,41 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - MeteringPointFactory.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + MeteringPointFactory.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } @@ -9164,7 +8617,10 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { } /// Creates a MeteringPoint by x, y. - Future createPoint(double x, double y) async { + Future createPoint( + double x, + double y, + ) async { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecMeteringPointFactory; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -9172,13 +8628,12 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPoint'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, x, y], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, x, y]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -9212,13 +8667,12 @@ class MeteringPointFactory extends PigeonInternalProxyApiBaseClass { 'dev.flutter.pigeon.camera_android_camerax.MeteringPointFactory.createPointWithSize'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [this, x, y, size], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = + pigeonVar_channel.send([this, x, y, size]); final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; if (pigeonVar_replyList == null) { @@ -9264,8 +8718,8 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { required double width, required double height, }) : super.pigeon_detached() { - final int pigeonVar_instanceIdentifier = pigeon_instanceManager - .addDartCreatedInstance(this); + final int pigeonVar_instanceIdentifier = + pigeon_instanceManager.addDartCreatedInstance(this); final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _pigeonVar_codecDisplayOrientedMeteringPointFactory; final BinaryMessenger? pigeonVar_binaryMessenger = pigeon_binaryMessenger; @@ -9273,13 +8727,12 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { 'dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_defaultConstructor'; final BasicMessageChannel pigeonVar_channel = BasicMessageChannel( - pigeonVar_channelName, - pigeonChannelCodec, - binaryMessenger: pigeonVar_binaryMessenger, - ); - final Future pigeonVar_sendFuture = pigeonVar_channel.send( - [pigeonVar_instanceIdentifier, cameraInfo, width, height], + pigeonVar_channelName, + pigeonChannelCodec, + binaryMessenger: pigeonVar_binaryMessenger, ); + final Future pigeonVar_sendFuture = pigeonVar_channel.send( + [pigeonVar_instanceIdentifier, cameraInfo, width, height]); () async { final List? pigeonVar_replyList = await pigeonVar_sendFuture as List?; @@ -9308,7 +8761,7 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { }) : super.pigeon_detached(); late final _PigeonInternalProxyApiBaseCodec - _pigeonVar_codecDisplayOrientedMeteringPointFactory = + _pigeonVar_codecDisplayOrientedMeteringPointFactory = _PigeonInternalProxyApiBaseCodec(pigeon_instanceManager); static void pigeon_setUpMessageHandlers({ @@ -9319,47 +8772,41 @@ class DisplayOrientedMeteringPointFactory extends MeteringPointFactory { }) { final _PigeonInternalProxyApiBaseCodec pigeonChannelCodec = _PigeonInternalProxyApiBaseCodec( - pigeon_instanceManager ?? PigeonInstanceManager.instance, - ); + pigeon_instanceManager ?? PigeonInstanceManager.instance); final BinaryMessenger? binaryMessenger = pigeon_binaryMessenger; { - final BasicMessageChannel - pigeonVar_channel = BasicMessageChannel( - 'dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance', - pigeonChannelCodec, - binaryMessenger: binaryMessenger, - ); + final BasicMessageChannel< + Object?> pigeonVar_channel = BasicMessageChannel< + Object?>( + 'dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance', + pigeonChannelCodec, + binaryMessenger: binaryMessenger); if (pigeon_clearHandlers) { pigeonVar_channel.setMessageHandler(null); } else { pigeonVar_channel.setMessageHandler((Object? message) async { - assert( - message != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null.', - ); + assert(message != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null.'); final List args = (message as List?)!; final int? arg_pigeon_instanceIdentifier = (args[0] as int?); - assert( - arg_pigeon_instanceIdentifier != null, - 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null, expected non-null int.', - ); + assert(arg_pigeon_instanceIdentifier != null, + 'Argument for dev.flutter.pigeon.camera_android_camerax.DisplayOrientedMeteringPointFactory.pigeon_newInstance was null, expected non-null int.'); try { (pigeon_instanceManager ?? PigeonInstanceManager.instance) .addHostCreatedInstance( - pigeon_newInstance?.call() ?? - DisplayOrientedMeteringPointFactory.pigeon_detached( - pigeon_binaryMessenger: pigeon_binaryMessenger, - pigeon_instanceManager: pigeon_instanceManager, - ), - arg_pigeon_instanceIdentifier!, - ); + pigeon_newInstance?.call() ?? + DisplayOrientedMeteringPointFactory.pigeon_detached( + pigeon_binaryMessenger: pigeon_binaryMessenger, + pigeon_instanceManager: pigeon_instanceManager, + ), + arg_pigeon_instanceIdentifier!, + ); return wrapResponse(empty: true); } on PlatformException catch (e) { return wrapResponse(error: e); } catch (e) { return wrapResponse( - error: PlatformException(code: 'error', message: e.toString()), - ); + error: PlatformException(code: 'error', message: e.toString())); } }); } diff --git a/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart b/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart index 123a2f6804f..055e8898886 100644 --- a/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart +++ b/packages/camera/camera_android_camerax/lib/src/camerax_proxy.dart @@ -76,8 +76,7 @@ class CameraXProxy { final void Function({ BinaryMessenger? pigeonBinaryMessenger, PigeonInstanceManager? pigeonInstanceManager, - }) - setUpGenericsProxy; + }) setUpGenericsProxy; /// Constructs [CameraSize]. final CameraSize Function({ @@ -85,8 +84,7 @@ class CameraXProxy { required int height, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newCameraSize; + }) newCameraSize; /// Constructs [CameraIntegerRange]. final CameraIntegerRange Function({ @@ -94,41 +92,36 @@ class CameraXProxy { required int upper, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newCameraIntegerRange; + }) newCameraIntegerRange; /// Constructs [Observer]. final Observer Function({ required void Function(Observer, T) onChanged, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newObserver; + }) newObserver; /// Constructs [CameraSelector]. final CameraSelector Function({ LensFacing? requireLensFacing, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newCameraSelector; + }) newCameraSelector; /// Constructs [SystemServicesManager]. final SystemServicesManager Function({ required void Function(SystemServicesManager, String) onCameraError, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newSystemServicesManager; + }) newSystemServicesManager; /// Constructs [DeviceOrientationManager]. final DeviceOrientationManager Function({ required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newDeviceOrientationManager; + }) newDeviceOrientationManager; /// Constructs [Preview]. final Preview Function({ @@ -136,16 +129,14 @@ class CameraXProxy { ResolutionSelector? resolutionSelector, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newPreview; + }) newPreview; /// Constructs [VideoCapture]. final VideoCapture Function({ required VideoOutput videoOutput, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - withOutputVideoCapture; + }) withOutputVideoCapture; /// Constructs [Recorder]. final Recorder Function({ @@ -154,16 +145,14 @@ class CameraXProxy { QualitySelector? qualitySelector, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newRecorder; + }) newRecorder; /// Constructs [VideoRecordEventListener]. final VideoRecordEventListener Function({ required void Function(VideoRecordEventListener, VideoRecordEvent) onEvent, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newVideoRecordEventListener; + }) newVideoRecordEventListener; /// Constructs [ImageCapture]. final ImageCapture Function({ @@ -172,8 +161,7 @@ class CameraXProxy { ResolutionSelector? resolutionSelector, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newImageCapture; + }) newImageCapture; /// Constructs [ResolutionStrategy]. final ResolutionStrategy Function({ @@ -181,8 +169,7 @@ class CameraXProxy { required ResolutionStrategyFallbackRule fallbackRule, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newResolutionStrategy; + }) newResolutionStrategy; /// Constructs [ResolutionSelector]. final ResolutionSelector Function({ @@ -191,8 +178,7 @@ class CameraXProxy { ResolutionFilter? resolutionFilter, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newResolutionSelector; + }) newResolutionSelector; /// Constructs [AspectRatioStrategy]. final AspectRatioStrategy Function({ @@ -200,8 +186,7 @@ class CameraXProxy { required AspectRatioStrategyFallbackRule fallbackRule, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newAspectRatioStrategy; + }) newAspectRatioStrategy; /// Constructs [ImageAnalysis]. final ImageAnalysis Function({ @@ -209,16 +194,14 @@ class CameraXProxy { ResolutionSelector? resolutionSelector, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newImageAnalysis; + }) newImageAnalysis; /// Constructs [Analyzer]. final Analyzer Function({ required void Function(Analyzer, ImageProxy) analyze, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newAnalyzer; + }) newAnalyzer; /// Constructs [QualitySelector]. final QualitySelector Function({ @@ -226,8 +209,7 @@ class CameraXProxy { FallbackStrategy? fallbackStrategy, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - fromQualitySelector; + }) fromQualitySelector; /// Constructs [QualitySelector]. final QualitySelector Function({ @@ -235,48 +217,42 @@ class CameraXProxy { FallbackStrategy? fallbackStrategy, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - fromOrderedListQualitySelector; + }) fromOrderedListQualitySelector; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({ required VideoQuality quality, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - higherQualityOrLowerThanFallbackStrategy; + }) higherQualityOrLowerThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({ required VideoQuality quality, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - higherQualityThanFallbackStrategy; + }) higherQualityThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({ required VideoQuality quality, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - lowerQualityOrHigherThanFallbackStrategy; + }) lowerQualityOrHigherThanFallbackStrategy; /// Constructs [FallbackStrategy]. final FallbackStrategy Function({ required VideoQuality quality, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - lowerQualityThanFallbackStrategy; + }) lowerQualityThanFallbackStrategy; /// Constructs [FocusMeteringActionBuilder]. final FocusMeteringActionBuilder Function({ required MeteringPoint point, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newFocusMeteringActionBuilder; + }) newFocusMeteringActionBuilder; /// Constructs [FocusMeteringActionBuilder]. FocusMeteringActionBuilder Function({ @@ -284,40 +260,35 @@ class CameraXProxy { required MeteringMode mode, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - withModeFocusMeteringActionBuilder; + }) withModeFocusMeteringActionBuilder; /// Constructs [CaptureRequestOptions]. CaptureRequestOptions Function({ required Map options, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newCaptureRequestOptions; + }) newCaptureRequestOptions; /// Constructs [Camera2CameraControl]. Camera2CameraControl Function({ required CameraControl cameraControl, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - fromCamera2CameraControl; + }) fromCamera2CameraControl; /// Constructs [ResolutionFilter]. final ResolutionFilter Function({ required CameraSize preferredSize, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - createWithOnePreferredSizeResolutionFilter; + }) createWithOnePreferredSizeResolutionFilter; /// Constructs [Camera2CameraInfo]. final Camera2CameraInfo Function({ required CameraInfo cameraInfo, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - fromCamera2CameraInfo; + }) fromCamera2CameraInfo; /// Constructs [DisplayOrientedMeteringPointFactory]. DisplayOrientedMeteringPointFactory Function({ @@ -326,15 +297,13 @@ class CameraXProxy { required double height, BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - newDisplayOrientedMeteringPointFactory; + }) newDisplayOrientedMeteringPointFactory; /// Calls to [ProcessCameraProvider.getInstance]. final Future Function({ BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - getInstanceProcessCameraProvider; + }) getInstanceProcessCameraProvider; /// Calls to [QualitySelector.getResolution]. final Future Function( @@ -342,8 +311,7 @@ class CameraXProxy { VideoQuality, { BinaryMessenger? pigeon_binaryMessenger, PigeonInstanceManager? pigeon_instanceManager, - }) - getResolutionQualitySelector; + }) getResolutionQualitySelector; /// Calls to [CameraSelector.defaultBackCamera]. final CameraSelector Function() defaultBackCameraCameraSelector; @@ -353,26 +321,26 @@ class CameraXProxy { /// Calls to [ResolutionStrategy.highestAvailableStrategy]. final ResolutionStrategy Function() - highestAvailableStrategyResolutionStrategy; + highestAvailableStrategyResolutionStrategy; /// Calls to [AspectRatioStrategy.ratio_16_9FallbackAutoStrategy]. final AspectRatioStrategy Function() - ratio_16_9FallbackAutoStrategyAspectRatioStrategy; + ratio_16_9FallbackAutoStrategyAspectRatioStrategy; /// Calls to [AspectRatioStrategy.ratio_4_3FallbackAutoStrategy]. final AspectRatioStrategy Function() - ratio_4_3FallbackAutoStrategyAspectRatioStrategy; + ratio_4_3FallbackAutoStrategyAspectRatioStrategy; /// Calls to [CaptureRequest.controlAELock]. CaptureRequestKey Function() controlAELockCaptureRequest; /// Calls to [CameraCharacteristics.infoSupportedHardwareLevel]. final CameraCharacteristicsKey Function() - infoSupportedHardwareLevelCameraCharacteristics; + infoSupportedHardwareLevelCameraCharacteristics; /// Calls to [CameraCharacteristics.sensorOrientation]. final CameraCharacteristicsKey Function() - sensorOrientationCameraCharacteristics; + sensorOrientationCameraCharacteristics; static CameraSelector _defaultBackCameraCameraSelector() => CameraSelector.defaultBackCamera; @@ -384,19 +352,19 @@ class CameraXProxy { ResolutionStrategy.highestAvailableStrategy; static AspectRatioStrategy - _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; + _ratio_16_9FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_16_9FallbackAutoStrategy; static AspectRatioStrategy - _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => - AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; + _ratio_4_3FallbackAutoStrategyAspectRatioStrategy() => + AspectRatioStrategy.ratio_4_3FallbackAutoStrategy; static CaptureRequestKey _controlAELockCaptureRequest() => CaptureRequest.controlAELock; static CameraCharacteristicsKey - _infoSupportedHardwareLevelCameraCharacteristics() => - CameraCharacteristics.infoSupportedHardwareLevel; + _infoSupportedHardwareLevelCameraCharacteristics() => + CameraCharacteristics.infoSupportedHardwareLevel; static CameraCharacteristicsKey _sensorOrientationCameraCharacteristics() => CameraCharacteristics.sensorOrientation; diff --git a/packages/camera/camera_android_camerax/lib/src/rotated_preview.dart b/packages/camera/camera_android_camerax/lib/src/rotated_preview.dart index 6ef054a007f..f757b77366b 100644 --- a/packages/camera/camera_android_camerax/lib/src/rotated_preview.dart +++ b/packages/camera/camera_android_camerax/lib/src/rotated_preview.dart @@ -90,7 +90,7 @@ final class _RotatedPreviewState extends State { // https://developer.android.com/media/camera/camera2/camera-preview#orientation_calculation. double rotationDegrees = (sensorOrientationDegrees - deviceOrientationDegrees * sign + 360) % - 360; + 360; // Then, subtract the rotation already applied in the CameraPreview widget // (see camera/camera/lib/src/camera_preview.dart). diff --git a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart index 4f7377af93d..41430df0d06 100644 --- a/packages/camera/camera_android_camerax/pigeons/camerax_library.dart +++ b/packages/camera/camera_android_camerax/pigeons/camerax_library.dart @@ -18,6 +18,7 @@ import 'package:pigeon/pigeon.dart'; ), ), ) + /// Immutable class for describing width and height dimensions in pixels. /// /// See https://developer.android.com/reference/android/util/Size.html. diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index d1e4f9e6879..aef226c00dd 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -74,17 +74,17 @@ void main() { ) async { final CameraStateStateError testCameraStateError = CameraStateStateError.pigeon_detached( - code: CameraStateErrorCode.doNotDisturbModeEnabled, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); - final Stream cameraClosingEventStream = camera - .onCameraClosing(cameraId); + code: CameraStateErrorCode.doNotDisturbModeEnabled, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + final Stream cameraClosingEventStream = + camera.onCameraClosing(cameraId); final StreamQueue cameraClosingStreamQueue = StreamQueue(cameraClosingEventStream); - final Stream cameraErrorEventStream = camera - .onCameraError(cameraId); + final Stream cameraErrorEventStream = + camera.onCameraError(cameraId); final StreamQueue cameraErrorStreamQueue = StreamQueue(cameraErrorEventStream); @@ -101,8 +101,7 @@ void main() { final bool cameraClosingEventSent = await cameraClosingStreamQueue.next == CameraClosingEvent(cameraId); - final bool cameraErrorSent = - await cameraErrorStreamQueue.next == + final bool cameraErrorSent = await cameraErrorStreamQueue.next == CameraErrorEvent( cameraId, 'The camera could not be opened because "Do Not Disturb" mode is enabled. Please disable this mode, and try opening the camera again.', @@ -124,16 +123,14 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? - createWithOnePreferredSizeResolutionFilter, + })? createWithOnePreferredSizeResolutionFilter, FallbackStrategy Function({ required VideoQuality quality, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? - lowerQualityOrHigherThanFallbackStrategy, + })? lowerQualityOrHigherThanFallbackStrategy, QualitySelector Function({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, @@ -141,8 +138,7 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? - fromQualitySelector, + })? fromQualitySelector, Preview Function({ int? targetRotation, ResolutionSelector? resolutionSelector, @@ -150,8 +146,7 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? - newPreview, + })? newPreview, }) { late final CameraXProxy proxy; final AspectRatioStrategy ratio_4_3FallbackAutoStrategyAspectRatioStrategy = @@ -185,8 +180,7 @@ void main() { return MockCameraSelector(); }, - newPreview: - newPreview ?? + newPreview: newPreview ?? ({ int? targetRotation, ResolutionSelector? resolutionSelector, @@ -297,8 +291,7 @@ void main() { ).thenReturn(resolutionFilter); return mockResolutionSelector; }, - fromQualitySelector: - fromQualitySelector ?? + fromQualitySelector: fromQualitySelector ?? ({ required VideoQuality quality, FallbackStrategy? fallbackStrategy, @@ -334,7 +327,7 @@ void main() { }, newDeviceOrientationManager: ({ required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -367,15 +360,15 @@ void main() { }, createWithOnePreferredSizeResolutionFilter: createWithOnePreferredSizeResolutionFilter ?? - ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }, + ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, // ignore: non_constant_identifier_names @@ -410,20 +403,20 @@ void main() { }, lowerQualityOrHigherThanFallbackStrategy: lowerQualityOrHigherThanFallbackStrategy ?? - ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, + ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, highestAvailableStrategyResolutionStrategy: () { return highestAvailableStrategyResolutionStrategy; }, - ratio_4_3FallbackAutoStrategyAspectRatioStrategy: - () => ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ratio_4_3FallbackAutoStrategyAspectRatioStrategy: () => + ratio_4_3FallbackAutoStrategyAspectRatioStrategy, lowerQualityThanFallbackStrategy: ({ required VideoQuality quality, // ignore: non_constant_identifier_names @@ -450,8 +443,7 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? - withModeFocusMeteringActionBuilder, + })? withModeFocusMeteringActionBuilder, DisplayOrientedMeteringPointFactory Function({ required CameraInfo cameraInfo, required double width, @@ -460,99 +452,103 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? - newDisplayOrientedMeteringPointFactory, - }) => CameraXProxy( - newDisplayOrientedMeteringPointFactory: - newDisplayOrientedMeteringPointFactory ?? - ({ - required CameraInfo cameraInfo, - required double width, - required double height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDisplayOrientedMeteringPointFactory mockFactory = - MockDisplayOrientedMeteringPointFactory(); - when(mockFactory.createPoint(any, any)).thenAnswer( - (Invocation invocation) async => TestMeteringPoint.detached( - x: invocation.positionalArguments[0]! as double, - y: invocation.positionalArguments[1]! as double, - ), - ); - when(mockFactory.createPointWithSize(any, any, any)).thenAnswer( - (Invocation invocation) async => TestMeteringPoint.detached( - x: invocation.positionalArguments[0]! as double, - y: invocation.positionalArguments[1]! as double, - size: invocation.positionalArguments[2]! as double, - ), - ); - return mockFactory; - }, - withModeFocusMeteringActionBuilder: - withModeFocusMeteringActionBuilder ?? - ({ - required MeteringPoint point, - required MeteringMode mode, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final PigeonInstanceManager testInstanceManager = - PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); - final MockFocusMeteringActionBuilder mockBuilder = - MockFocusMeteringActionBuilder(); - bool disableAutoCancelCalled = false; - when(mockBuilder.disableAutoCancel()).thenAnswer((_) async { - disableAutoCancelCalled = true; - }); - final List meteringPointsAe = []; - final List meteringPointsAf = []; - final List meteringPointsAwb = []; - - switch (mode) { - case MeteringMode.ae: - meteringPointsAe.add(point); - case MeteringMode.af: - meteringPointsAf.add(point); - case MeteringMode.awb: - meteringPointsAwb.add(point); - } - - when(mockBuilder.addPointWithMode(any, any)).thenAnswer(( - Invocation invocation, - ) async { - switch (invocation.positionalArguments[1]) { - case MeteringMode.ae: - meteringPointsAe.add( - invocation.positionalArguments.first as MeteringPoint, - ); - case MeteringMode.af: - meteringPointsAf.add( - invocation.positionalArguments.first as MeteringPoint, - ); - case MeteringMode.awb: - meteringPointsAwb.add( - invocation.positionalArguments.first as MeteringPoint, - ); - } - }); - - when(mockBuilder.build()).thenAnswer( - (_) async => FocusMeteringAction.pigeon_detached( - meteringPointsAe: meteringPointsAe, - meteringPointsAf: meteringPointsAf, - meteringPointsAwb: meteringPointsAwb, - isAutoCancelEnabled: !disableAutoCancelCalled, - pigeon_instanceManager: testInstanceManager, - ), - ); - return mockBuilder; - }, - ); + })? newDisplayOrientedMeteringPointFactory, + }) => + CameraXProxy( + newDisplayOrientedMeteringPointFactory: + newDisplayOrientedMeteringPointFactory ?? + ({ + required CameraInfo cameraInfo, + required double width, + required double height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDisplayOrientedMeteringPointFactory mockFactory = + MockDisplayOrientedMeteringPointFactory(); + when(mockFactory.createPoint(any, any)).thenAnswer( + (Invocation invocation) async => TestMeteringPoint.detached( + x: invocation.positionalArguments[0]! as double, + y: invocation.positionalArguments[1]! as double, + ), + ); + when(mockFactory.createPointWithSize(any, any, any)) + .thenAnswer( + (Invocation invocation) async => TestMeteringPoint.detached( + x: invocation.positionalArguments[0]! as double, + y: invocation.positionalArguments[1]! as double, + size: invocation.positionalArguments[2]! as double, + ), + ); + return mockFactory; + }, + withModeFocusMeteringActionBuilder: + withModeFocusMeteringActionBuilder ?? + ({ + required MeteringPoint point, + required MeteringMode mode, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final PigeonInstanceManager testInstanceManager = + PigeonInstanceManager(onWeakReferenceRemoved: (_) {}); + final MockFocusMeteringActionBuilder mockBuilder = + MockFocusMeteringActionBuilder(); + bool disableAutoCancelCalled = false; + when(mockBuilder.disableAutoCancel()).thenAnswer((_) async { + disableAutoCancelCalled = true; + }); + final List meteringPointsAe = + []; + final List meteringPointsAf = + []; + final List meteringPointsAwb = + []; + + switch (mode) { + case MeteringMode.ae: + meteringPointsAe.add(point); + case MeteringMode.af: + meteringPointsAf.add(point); + case MeteringMode.awb: + meteringPointsAwb.add(point); + } + + when(mockBuilder.addPointWithMode(any, any)).thenAnswer(( + Invocation invocation, + ) async { + switch (invocation.positionalArguments[1]) { + case MeteringMode.ae: + meteringPointsAe.add( + invocation.positionalArguments.first as MeteringPoint, + ); + case MeteringMode.af: + meteringPointsAf.add( + invocation.positionalArguments.first as MeteringPoint, + ); + case MeteringMode.awb: + meteringPointsAwb.add( + invocation.positionalArguments.first as MeteringPoint, + ); + } + }); + + when(mockBuilder.build()).thenAnswer( + (_) async => FocusMeteringAction.pigeon_detached( + meteringPointsAe: meteringPointsAe, + meteringPointsAf: meteringPointsAf, + meteringPointsAwb: meteringPointsAwb, + isAutoCancelEnabled: !disableAutoCancelCalled, + pigeon_instanceManager: testInstanceManager, + ), + ); + return mockBuilder; + }, + ); /// CameraXProxy for testing setting focus and exposure points. /// @@ -569,8 +565,7 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? - withModeFocusMeteringActionBuilder, + })? withModeFocusMeteringActionBuilder, DisplayOrientedMeteringPointFactory Function({ required CameraInfo cameraInfo, required double width, @@ -579,8 +574,7 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - })? - newDisplayOrientedMeteringPointFactory, + })? newDisplayOrientedMeteringPointFactory, }) { final CameraXProxy proxy = getProxyForExposureAndFocus(); @@ -595,19 +589,18 @@ void main() { proxy.newDisplayOrientedMeteringPointFactory = newDisplayOrientedMeteringPointFactory; } - proxy.fromCamera2CameraControl = - ({ - required CameraControl cameraControl, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - cameraControl == cameraControlForComparison - ? camera2cameraControl - : Camera2CameraControl.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + proxy.fromCamera2CameraControl = ({ + required CameraControl cameraControl, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + cameraControl == cameraControlForComparison + ? camera2cameraControl + : Camera2CameraControl.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ); proxy.newCaptureRequestOptions = ({ required Map options, // ignore: non_constant_identifier_names @@ -660,19 +653,17 @@ void main() { // Tell plugin to create mock CameraSelectors for testing. camera.proxy = CameraXProxy( - setUpGenericsProxy: - ({ - BinaryMessenger? pigeonBinaryMessenger, - PigeonInstanceManager? pigeonInstanceManager, - }) {}, - getInstanceProcessCameraProvider: - ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - Future.value(mockProcessCameraProvider), + setUpGenericsProxy: ({ + BinaryMessenger? pigeonBinaryMessenger, + PigeonInstanceManager? pigeonInstanceManager, + }) {}, + getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + Future.value(mockProcessCameraProvider), newCameraSelector: ({ LensFacing? requireLensFacing, // ignore: non_constant_identifier_names @@ -730,10 +721,9 @@ void main() { (returnData[i] as Map).cast(); final CameraDescription cameraDescription = CameraDescription( name: typedData['name']! as String, - lensDirection: - (typedData['lensFacing']! as String) == 'front' - ? CameraLensDirection.front - : CameraLensDirection.back, + lensDirection: (typedData['lensFacing']! as String) == 'front' + ? CameraLensDirection.front + : CameraLensDirection.back, sensorOrientation: typedData['sensorOrientation']! as int, ); expect(cameraDescriptions[i], cameraDescription); @@ -922,7 +912,7 @@ void main() { }, newDeviceOrientationManager: ({ required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -1230,7 +1220,7 @@ void main() { }, newDeviceOrientationManager: ({ required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -1427,9 +1417,9 @@ void main() { continue; } - final CameraSize? previewSize = - await camera.preview!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); + final CameraSize? previewSize = await camera + .preview!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); expect(previewSize?.width, equals(expectedBoundSize.width)); expect(previewSize?.height, equals(expectedBoundSize.height)); expect( @@ -1438,9 +1428,9 @@ void main() { ResolutionStrategyFallbackRule.closestLowerThenHigher, ); - final CameraSize? imageCaptureSize = - await camera.imageCapture!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); + final CameraSize? imageCaptureSize = await camera + .imageCapture!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); expect(imageCaptureSize?.width, equals(expectedBoundSize.width)); expect(imageCaptureSize?.height, equals(expectedBoundSize.height)); expect( @@ -1449,9 +1439,9 @@ void main() { ResolutionStrategyFallbackRule.closestLowerThenHigher, ); - final CameraSize? imageAnalysisSize = - await camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); + final CameraSize? imageAnalysisSize = await camera + .imageAnalysis!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); expect(imageAnalysisSize?.width, equals(expectedBoundSize.width)); expect(imageAnalysisSize?.height, equals(expectedBoundSize.height)); expect( @@ -1604,9 +1594,9 @@ void main() { equals(expectedPreferredResolution.height), ); - final CameraSize? imageCaptureSize = - await camera.imageCapture!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); + final CameraSize? imageCaptureSize = await camera + .imageCapture!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); expect( imageCaptureSize?.width, equals(expectedPreferredResolution.width), @@ -1616,9 +1606,9 @@ void main() { equals(expectedPreferredResolution.height), ); - final CameraSize? imageAnalysisSize = - await camera.imageAnalysis!.resolutionSelector!.resolutionStrategy! - .getBoundSize(); + final CameraSize? imageAnalysisSize = await camera + .imageAnalysis!.resolutionSelector!.resolutionStrategy! + .getBoundSize(); expect( imageAnalysisSize?.width, equals(expectedPreferredResolution.width), @@ -1722,12 +1712,12 @@ void main() { final AspectRatioStrategy previewStrategy = await camera.preview!.resolutionSelector!.getAspectRatioStrategy(); - final AspectRatioStrategy imageCaptureStrategy = - await camera.imageCapture!.resolutionSelector! - .getAspectRatioStrategy(); - final AspectRatioStrategy imageAnalysisStrategy = - await camera.imageCapture!.resolutionSelector! - .getAspectRatioStrategy(); + final AspectRatioStrategy imageCaptureStrategy = await camera + .imageCapture!.resolutionSelector! + .getAspectRatioStrategy(); + final AspectRatioStrategy imageAnalysisStrategy = await camera + .imageCapture!.resolutionSelector! + .getAspectRatioStrategy(); // Check aspect ratio. expect( @@ -1983,13 +1973,13 @@ void main() { // Tell plugin to create mock/detached objects for testing createCamera // as needed. camera.proxy = CameraXProxy( - getInstanceProcessCameraProvider: - ({ - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => Future.value(mockProcessCameraProvider), + getInstanceProcessCameraProvider: ({ + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + Future.value(mockProcessCameraProvider), newCameraSelector: ({ LensFacing? requireLensFacing, // ignore: non_constant_identifier_names @@ -2004,88 +1994,88 @@ void main() { return mockBackCameraSelector; } }, - newPreview: - ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockPreview, - newImageCapture: - ({ - int? targetRotation, - CameraXFlashMode? flashMode, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockImageCapture, - newRecorder: - ({ - int? aspectRatio, - int? targetVideoEncodingBitRate, - QualitySelector? qualitySelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockRecorder(), - withOutputVideoCapture: - ({ - required VideoOutput videoOutput, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockVideoCapture(), - newImageAnalysis: - ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockImageAnalysis, - newResolutionStrategy: - ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockResolutionStrategy(), - newResolutionSelector: - ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockResolutionSelector(), - lowerQualityOrHigherThanFallbackStrategy: - ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockFallbackStrategy(), - fromQualitySelector: - ({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockQualitySelector(), + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockPreview, + newImageCapture: ({ + int? targetRotation, + CameraXFlashMode? flashMode, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockImageCapture, + newRecorder: ({ + int? aspectRatio, + int? targetVideoEncodingBitRate, + QualitySelector? qualitySelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockRecorder(), + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockVideoCapture(), + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockImageAnalysis, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockResolutionStrategy(), + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockResolutionSelector(), + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockFallbackStrategy(), + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockQualitySelector(), newObserver: ({ required void Function(Observer, T) onChanged, // ignore: non_constant_identifier_names @@ -2100,17 +2090,17 @@ void main() { ), ); }, - newSystemServicesManager: - ({ - required void Function(SystemServicesManager, String) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockSystemServicesManager(), + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockSystemServicesManager(), newDeviceOrientationManager: ({ required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -2123,23 +2113,23 @@ void main() { }); return manager; }, - newAspectRatioStrategy: - ({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockAspectRatioStrategy(), - createWithOnePreferredSizeResolutionFilter: - ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockResolutionFilter(), + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockAspectRatioStrategy(), + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockResolutionFilter(), fromCamera2CameraInfo: ({ required CameraInfo cameraInfo, // ignore: non_constant_identifier_names @@ -2154,29 +2144,29 @@ void main() { ).thenAnswer((_) async => 90); return mockCamera2CameraInfo; }, - newCameraSize: - ({ - required int width, - required int height, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockCameraSize(), - sensorOrientationCameraCharacteristics: - () => MockCameraCharacteristicsKey(), + newCameraSize: ({ + required int width, + required int height, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockCameraSize(), + sensorOrientationCameraCharacteristics: () => + MockCameraCharacteristicsKey(), ); final CameraInitializedEvent testCameraInitializedEvent = CameraInitializedEvent( - cameraId, - resolutionWidth.toDouble(), - resolutionHeight.toDouble(), - ExposureMode.auto, - true, - FocusMode.auto, - true, - ); + cameraId, + resolutionWidth.toDouble(), + resolutionHeight.toDouble(), + ExposureMode.auto, + true, + FocusMode.auto, + true, + ); // Call createCamera. when(mockPreview.setSurfaceProvider(any)).thenAnswer((_) async => cameraId); @@ -2240,8 +2230,8 @@ void main() { test('onCameraInitialized stream emits CameraInitializedEvents', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); const int cameraId = 16; - final Stream eventStream = camera - .onCameraInitialized(cameraId); + final Stream eventStream = + camera.onCameraInitialized(cameraId); final StreamQueue streamQueue = StreamQueue(eventStream); const CameraInitializedEvent testEvent = CameraInitializedEvent( @@ -2345,7 +2335,7 @@ void main() { camera.proxy = CameraXProxy( newDeviceOrientationManager: ({ required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -2587,14 +2577,14 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCamera2CameraInfo, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -2614,7 +2604,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -2742,14 +2732,14 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCamera2CameraInfo, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -2769,7 +2759,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -2896,14 +2886,14 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCamera2CameraInfo, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -2923,7 +2913,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -2955,9 +2945,8 @@ void main() { Completer(); final VideoCaptureOptions videoCaptureOptions = VideoCaptureOptions( cameraId, - streamCallback: - (CameraImageData imageData) => - imageDataCompleter.complete(imageData), + streamCallback: (CameraImageData imageData) => + imageDataCompleter.complete(imageData), ); // Mock method calls. @@ -3039,17 +3028,16 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - cameraInfo == initialCameraInfo - ? mockCamera2CameraInfo - : MockCamera2CameraInfo(), + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + cameraInfo == initialCameraInfo + ? mockCamera2CameraInfo + : MockCamera2CameraInfo(), newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -3069,7 +3057,7 @@ void main() { }, newDeviceOrientationManager: ({ required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -3084,7 +3072,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -3248,7 +3236,8 @@ void main() { verifyNoMoreInteractions(recording); }); - test('stopVideoRecording throws a camera exception if ' + test( + 'stopVideoRecording throws a camera exception if ' 'no recording is in progress', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); const String videoOutputPath = '/test/output/path'; @@ -3262,7 +3251,8 @@ void main() { }, throwsA(isA())); }); - test('stopVideoRecording throws a camera exception if ' + test( + 'stopVideoRecording throws a camera exception if ' 'videoOutputPath is null, and sets recording to null', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); final MockRecording mockRecording = MockRecording(); @@ -3293,7 +3283,8 @@ void main() { expect(camera.recording, null); }); - test('calling stopVideoRecording twice stops the recording ' + test( + 'calling stopVideoRecording twice stops the recording ' 'and then throws a CameraException', () async { final AndroidCameraCameraX camera = AndroidCameraCameraX(); final MockRecording recording = MockRecording(); @@ -3469,7 +3460,7 @@ void main() { camera.proxy = CameraXProxy( newDeviceOrientationManager: ({ required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -3854,8 +3845,8 @@ void main() { ).thenAnswer((_) async => MockLiveCameraState()); final CameraImageData mockCameraImageData = MockCameraImageData(); - final Stream imageStream = camera - .onStreamedFrameAvailable(cameraId); + final Stream imageStream = + camera.onStreamedFrameAvailable(cameraId); final StreamQueue streamQueue = StreamQueue(imageStream); @@ -3905,8 +3896,8 @@ void main() { ).thenAnswer((_) async => true); final CameraImageData mockCameraImageData = MockCameraImageData(); - final Stream imageStream = camera - .onStreamedFrameAvailable(cameraId); + final Stream imageStream = + camera.onStreamedFrameAvailable(cameraId); // Listen to image stream. final StreamSubscription imageStreamSubscription = @@ -3914,8 +3905,8 @@ void main() { // Cancel subscription to image stream. await imageStreamSubscription.cancel(); - final Stream imageStream2 = camera - .onStreamedFrameAvailable(cameraId); + final Stream imageStream2 = + camera.onStreamedFrameAvailable(cameraId); // Listen to image stream again. final StreamQueue streamQueue = @@ -4013,11 +4004,11 @@ void main() { final Completer imageDataCompleter = Completer(); final StreamSubscription - onStreamedFrameAvailableSubscription = camera - .onStreamedFrameAvailable(cameraId) - .listen((CameraImageData imageData) { - imageDataCompleter.complete(imageData); - }); + onStreamedFrameAvailableSubscription = camera + .onStreamedFrameAvailable(cameraId) + .listen((CameraImageData imageData) { + imageDataCompleter.complete(imageData); + }); // Test ImageAnalysis use case is bound to ProcessCameraProvider. await untilCalled(mockImageAnalysis.setAnalyzer(any)); @@ -4060,14 +4051,14 @@ void main() { // Tell plugin to create a detached analyzer for testing purposes. camera.proxy = CameraXProxy( - newAnalyzer: - ({ - required void Function(Analyzer, ImageProxy) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockAnalyzer(), + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockAnalyzer(), ); when( @@ -4101,17 +4092,17 @@ void main() { // Tell plugin to create a detached analyzer for testing purposes and mock // call to get current photo orientation. camera.proxy = CameraXProxy( - newAnalyzer: - ({ - required void Function(Analyzer, ImageProxy) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockAnalyzer(), + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockAnalyzer(), newDeviceOrientationManager: ({ required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -4249,22 +4240,21 @@ void main() { ); final CaptureRequestKey controlAELockKey = CaptureRequestKey.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + pigeon_instanceManager: testInstanceManager, + ); camera.proxy = CameraXProxy( - fromCamera2CameraControl: - ({ - required CameraControl cameraControl, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => - cameraControl == mockCameraControl - ? mockCamera2CameraControl - : Camera2CameraControl.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), + fromCamera2CameraControl: ({ + required CameraControl cameraControl, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + cameraControl == mockCameraControl + ? mockCamera2CameraControl + : Camera2CameraControl.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), newCaptureRequestOptions: ({ required Map options, // ignore: non_constant_identifier_names @@ -4369,20 +4359,20 @@ void main() { // Verify current auto-exposure metering point is removed if previously set. final FocusMeteringAction originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, + meteringPointsAe: [ + MeteringPoint.pigeon_detached( pigeon_instanceManager: testInstanceManager, - ); + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); camera.currentFocusMeteringAction = originalMeteringAction; await camera.setExposurePoint(cameraId, null); @@ -4507,20 +4497,20 @@ void main() { ); FocusMeteringAction originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, + meteringPointsAe: [ + MeteringPoint.pigeon_detached( pigeon_instanceManager: testInstanceManager, - ); + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); camera.currentFocusMeteringAction = originalMeteringAction; await camera.setExposurePoint(cameraId, exposurePoint); @@ -4908,20 +4898,20 @@ void main() { final FocusMeteringAction originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, + meteringPointsAe: [ + MeteringPoint.pigeon_detached( pigeon_instanceManager: testInstanceManager, - ); + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); camera.currentFocusMeteringAction = originalMeteringAction; await camera.setFocusPoint(cameraId, null); @@ -5043,20 +5033,20 @@ void main() { // Verify current auto-exposure metering point is removed if previously set. FocusMeteringAction originalMeteringAction = FocusMeteringAction.pigeon_detached( - meteringPointsAe: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAf: [ - MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ), - ], - meteringPointsAwb: const [], - isAutoCancelEnabled: false, + meteringPointsAe: [ + MeteringPoint.pigeon_detached( pigeon_instanceManager: testInstanceManager, - ); + ), + ], + meteringPointsAf: [ + MeteringPoint.pigeon_detached( + pigeon_instanceManager: testInstanceManager, + ), + ], + meteringPointsAwb: const [], + isAutoCancelEnabled: false, + pigeon_instanceManager: testInstanceManager, + ); camera.currentFocusMeteringAction = originalMeteringAction; await camera.setFocusPoint(cameraId, focusPoint); @@ -5323,8 +5313,8 @@ void main() { ).thenAnswer((_) async { final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + pigeon_instanceManager: testInstanceManager, + ); createdMeteringPoints.add(createdMeteringPoint); return createdMeteringPoint; }); @@ -5333,8 +5323,8 @@ void main() { ) async { final MeteringPoint createdMeteringPoint = MeteringPoint.pigeon_detached( - pigeon_instanceManager: testInstanceManager, - ); + pigeon_instanceManager: testInstanceManager, + ); createdMeteringPoints.add(createdMeteringPoint); return createdMeteringPoint; }); @@ -5978,14 +5968,14 @@ void main() { // Tell plugin to create a detached analyzer for testing purposes. camera.proxy = CameraXProxy( - newAnalyzer: - ({ - required void Function(Analyzer, ImageProxy) analyze, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => MockAnalyzer(), + newAnalyzer: ({ + required void Function(Analyzer, ImageProxy) analyze, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + MockAnalyzer(), newObserver: ({ required void Function(Observer, T) onChanged, // ignore: non_constant_identifier_names @@ -6071,14 +6061,14 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCamera2CameraInfo, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -6098,7 +6088,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -6204,14 +6194,14 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCamera2CameraInfo, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -6231,7 +6221,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -6337,14 +6327,14 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCamera2CameraInfo, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -6364,7 +6354,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -6489,14 +6479,14 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCamera2CameraInfo, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -6516,7 +6506,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -6645,14 +6635,14 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCamera2CameraInfo, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -6672,7 +6662,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -6793,14 +6783,14 @@ void main() { ), ); }, - fromCamera2CameraInfo: - ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCamera2CameraInfo, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCamera2CameraInfo, newSystemServicesManager: ({ required void Function(SystemServicesManager, String) onCameraError, // ignore: non_constant_identifier_names @@ -6820,7 +6810,7 @@ void main() { }, newVideoRecordEventListener: ({ required void Function(VideoRecordEventListener, VideoRecordEvent) - onEvent, + onEvent, // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names @@ -6914,11 +6904,11 @@ void main() { class TestMeteringPoint extends MeteringPoint { TestMeteringPoint.detached({required this.x, required this.y, this.size}) - : super.pigeon_detached( - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); + : super.pigeon_detached( + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); final double x; final double y; diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart index d88b2feba4f..e1ece4971f7 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.mocks.dart @@ -32,179 +32,179 @@ import 'package:mockito/src/dummies.dart' as _i6; class _FakePigeonInstanceManager_0 extends _i1.SmartFake implements _i2.PigeonInstanceManager { _FakePigeonInstanceManager_0(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeAnalyzer_1 extends _i1.SmartFake implements _i2.Analyzer { _FakeAnalyzer_1(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeAspectRatioStrategy_2 extends _i1.SmartFake implements _i2.AspectRatioStrategy { _FakeAspectRatioStrategy_2(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraControl_3 extends _i1.SmartFake implements _i2.CameraControl { _FakeCameraControl_3(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraInfo_4 extends _i1.SmartFake implements _i2.CameraInfo { _FakeCameraInfo_4(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera_5 extends _i1.SmartFake implements _i2.Camera { _FakeCamera_5(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeExposureState_6 extends _i1.SmartFake implements _i2.ExposureState { _FakeExposureState_6(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeLiveData_7 extends _i1.SmartFake implements _i3.LiveData { _FakeLiveData_7(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraInfo_8 extends _i1.SmartFake implements _i3.CameraInfo { _FakeCameraInfo_8(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraCharacteristicsKey_9 extends _i1.SmartFake implements _i2.CameraCharacteristicsKey { _FakeCameraCharacteristicsKey_9(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraSize_10 extends _i1.SmartFake implements _i2.CameraSize { _FakeCameraSize_10(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera2CameraControl_11 extends _i1.SmartFake implements _i2.Camera2CameraControl { _FakeCamera2CameraControl_11(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCamera2CameraInfo_12 extends _i1.SmartFake implements _i2.Camera2CameraInfo { _FakeCamera2CameraInfo_12(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraImageFormat_13 extends _i1.SmartFake implements _i4.CameraImageFormat { _FakeCameraImageFormat_13(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraSelector_14 extends _i1.SmartFake implements _i2.CameraSelector { _FakeCameraSelector_14(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCameraIntegerRange_15 extends _i1.SmartFake implements _i2.CameraIntegerRange { _FakeCameraIntegerRange_15(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeObserver_16 extends _i1.SmartFake implements _i3.Observer { _FakeObserver_16(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeSystemServicesManager_17 extends _i1.SmartFake implements _i2.SystemServicesManager { _FakeSystemServicesManager_17(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeDeviceOrientationManager_18 extends _i1.SmartFake implements _i2.DeviceOrientationManager { _FakeDeviceOrientationManager_18(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePreview_19 extends _i1.SmartFake implements _i2.Preview { _FakePreview_19(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoCapture_20 extends _i1.SmartFake implements _i2.VideoCapture { _FakeVideoCapture_20(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeRecorder_21 extends _i1.SmartFake implements _i2.Recorder { _FakeRecorder_21(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoRecordEventListener_22 extends _i1.SmartFake implements _i2.VideoRecordEventListener { _FakeVideoRecordEventListener_22(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageCapture_23 extends _i1.SmartFake implements _i2.ImageCapture { _FakeImageCapture_23(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionStrategy_24 extends _i1.SmartFake implements _i2.ResolutionStrategy { _FakeResolutionStrategy_24(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionSelector_25 extends _i1.SmartFake implements _i2.ResolutionSelector { _FakeResolutionSelector_25(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageAnalysis_26 extends _i1.SmartFake implements _i2.ImageAnalysis { _FakeImageAnalysis_26(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeQualitySelector_27 extends _i1.SmartFake implements _i2.QualitySelector { _FakeQualitySelector_27(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFallbackStrategy_28 extends _i1.SmartFake implements _i2.FallbackStrategy { _FakeFallbackStrategy_28(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringActionBuilder_29 extends _i1.SmartFake implements _i2.FocusMeteringActionBuilder { _FakeFocusMeteringActionBuilder_29(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCaptureRequestOptions_30 extends _i1.SmartFake implements _i2.CaptureRequestOptions { _FakeCaptureRequestOptions_30(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeResolutionFilter_31 extends _i1.SmartFake implements _i2.ResolutionFilter { _FakeResolutionFilter_31(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake @@ -218,61 +218,61 @@ class _FakeDisplayOrientedMeteringPointFactory_32 extends _i1.SmartFake class _FakeProcessCameraProvider_33 extends _i1.SmartFake implements _i2.ProcessCameraProvider { _FakeProcessCameraProvider_33(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeCaptureRequestKey_34 extends _i1.SmartFake implements _i2.CaptureRequestKey { _FakeCaptureRequestKey_34(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeMeteringPoint_35 extends _i1.SmartFake implements _i2.MeteringPoint { _FakeMeteringPoint_35(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringAction_36 extends _i1.SmartFake implements _i2.FocusMeteringAction { _FakeFocusMeteringAction_36(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeFocusMeteringResult_37 extends _i1.SmartFake implements _i2.FocusMeteringResult { _FakeFocusMeteringResult_37(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeImageProxy_38 extends _i1.SmartFake implements _i2.ImageProxy { _FakeImageProxy_38(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeRecording_39 extends _i1.SmartFake implements _i2.Recording { _FakeRecording_39(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePendingRecording_40 extends _i1.SmartFake implements _i2.PendingRecording { _FakePendingRecording_40(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakePlaneProxy_41 extends _i1.SmartFake implements _i2.PlaneProxy { _FakePlaneProxy_41(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeVideoOutput_42 extends _i1.SmartFake implements _i2.VideoOutput { _FakeVideoOutput_42(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } class _FakeZoomState_43 extends _i1.SmartFake implements _i2.ZoomState { _FakeZoomState_43(Object parent, Invocation parentInvocation) - : super(parent, parentInvocation); + : super(parent, parentInvocation); } /// A class which mocks [Analyzer]. @@ -282,43 +282,37 @@ class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { @override void Function(_i2.Analyzer, _i2.ImageProxy) get analyze => (super.noSuchMethod( - Invocation.getter(#analyze), - returnValue: - (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, - returnValueForMissingStub: - (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, - ) - as void Function(_i2.Analyzer, _i2.ImageProxy)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.Analyzer pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeAnalyzer_1( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeAnalyzer_1( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Analyzer); + Invocation.getter(#analyze), + returnValue: (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + returnValueForMissingStub: + (_i2.Analyzer pigeon_instance, _i2.ImageProxy image) {}, + ) as void Function(_i2.Analyzer, _i2.ImageProxy)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.Analyzer pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAnalyzer_1( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Analyzer); } /// A class which mocks [AspectRatioStrategy]. @@ -327,61 +321,54 @@ class MockAnalyzer extends _i1.Mock implements _i2.Analyzer { class MockAspectRatioStrategy extends _i1.Mock implements _i2.AspectRatioStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method(#getFallbackRule, []), - returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto, - ), - returnValueForMissingStub: - _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( - _i2.AspectRatioStrategyFallbackRule.auto, - ), - ) - as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); - - @override - _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => - (super.noSuchMethod( - Invocation.method(#getPreferredAspectRatio, []), - returnValue: _i5.Future<_i2.AspectRatio>.value( - _i2.AspectRatio.ratio16To9, - ), - returnValueForMissingStub: _i5.Future<_i2.AspectRatio>.value( - _i2.AspectRatio.ratio16To9, - ), - ) - as _i5.Future<_i2.AspectRatio>); - - @override - _i2.AspectRatioStrategy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeAspectRatioStrategy_2( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeAspectRatioStrategy_2( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.AspectRatioStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + returnValueForMissingStub: + _i5.Future<_i2.AspectRatioStrategyFallbackRule>.value( + _i2.AspectRatioStrategyFallbackRule.auto, + ), + ) as _i5.Future<_i2.AspectRatioStrategyFallbackRule>); + + @override + _i5.Future<_i2.AspectRatio> getPreferredAspectRatio() => (super.noSuchMethod( + Invocation.method(#getPreferredAspectRatio, []), + returnValue: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + returnValueForMissingStub: _i5.Future<_i2.AspectRatio>.value( + _i2.AspectRatio.ratio16To9, + ), + ) as _i5.Future<_i2.AspectRatio>); + + @override + _i2.AspectRatioStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeAspectRatioStrategy_2( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.AspectRatioStrategy); } /// A class which mocks [Camera]. @@ -389,62 +376,54 @@ class MockAspectRatioStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera extends _i1.Mock implements _i2.Camera { @override - _i2.CameraControl get cameraControl => - (super.noSuchMethod( - Invocation.getter(#cameraControl), - returnValue: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.getter(#cameraControl), - ), - ) - as _i2.CameraControl); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.CameraInfo> getCameraInfo() => - (super.noSuchMethod( - Invocation.method(#getCameraInfo, []), - returnValue: _i5.Future<_i2.CameraInfo>.value( - _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), - ), - returnValueForMissingStub: _i5.Future<_i2.CameraInfo>.value( - _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), - ), - ) - as _i5.Future<_i2.CameraInfo>); - - @override - _i2.Camera pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera_5( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera_5( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Camera); + _i2.CameraControl get cameraControl => (super.noSuchMethod( + Invocation.getter(#cameraControl), + returnValue: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.getter(#cameraControl), + ), + ) as _i2.CameraControl); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.CameraInfo> getCameraInfo() => (super.noSuchMethod( + Invocation.method(#getCameraInfo, []), + returnValue: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.CameraInfo>.value( + _FakeCameraInfo_4(this, Invocation.method(#getCameraInfo, [])), + ), + ) as _i5.Future<_i2.CameraInfo>); + + @override + _i2.Camera pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera_5( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Camera); } /// A class which mocks [CameraInfo]. @@ -452,98 +431,87 @@ class MockCamera extends _i1.Mock implements _i2.Camera { /// See the documentation for Mockito's code generation for more information. class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { @override - int get sensorRotationDegrees => - (super.noSuchMethod( - Invocation.getter(#sensorRotationDegrees), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); + int get sensorRotationDegrees => (super.noSuchMethod( + Invocation.getter(#sensorRotationDegrees), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.ExposureState get exposureState => (super.noSuchMethod( + Invocation.getter(#exposureState), + returnValue: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.getter(#exposureState), + ), + ) as _i2.ExposureState); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i2.ExposureState get exposureState => + _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => (super.noSuchMethod( - Invocation.getter(#exposureState), - returnValue: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.getter(#exposureState), - ), - ) - as _i2.ExposureState); + Invocation.method(#getCameraState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.CameraState>>.value( + _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#getCameraState, []), + ), + ), + ) as _i5.Future<_i3.LiveData<_i2.CameraState>>); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => (super.noSuchMethod( + Invocation.method(#getZoomState, []), + returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + returnValueForMissingStub: + _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( + _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#getZoomState, []), + ), + ), + ) as _i5.Future<_i3.LiveData<_i2.ZoomState>>); @override - _i5.Future<_i3.LiveData<_i2.CameraState>> getCameraState() => - (super.noSuchMethod( - Invocation.method(#getCameraState, []), - returnValue: _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#getCameraState, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.CameraState>>.value( - _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#getCameraState, []), - ), - ), - ) - as _i5.Future<_i3.LiveData<_i2.CameraState>>); - - @override - _i5.Future<_i3.LiveData<_i2.ZoomState>> getZoomState() => - (super.noSuchMethod( - Invocation.method(#getZoomState, []), - returnValue: _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#getZoomState, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i3.LiveData<_i2.ZoomState>>.value( - _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#getZoomState, []), - ), - ), - ) - as _i5.Future<_i3.LiveData<_i2.ZoomState>>); - - @override - _i3.CameraInfo pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraInfo_8( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraInfo_8( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.CameraInfo); + _i3.CameraInfo pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraInfo_8( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.CameraInfo); } /// A class which mocks [CameraCharacteristicsKey]. @@ -552,34 +520,30 @@ class MockCameraInfo extends _i1.Mock implements _i3.CameraInfo { class MockCameraCharacteristicsKey extends _i1.Mock implements _i2.CameraCharacteristicsKey { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.CameraCharacteristicsKey pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraCharacteristicsKey); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.CameraCharacteristicsKey pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraCharacteristicsKey_9( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraCharacteristicsKey); } /// A class which mocks [CameraControl]. @@ -587,82 +551,69 @@ class MockCameraCharacteristicsKey extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCameraControl extends _i1.Mock implements _i2.CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future enableTorch(bool? torch) => - (super.noSuchMethod( - Invocation.method(#enableTorch, [torch]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future enableTorch(bool? torch) => (super.noSuchMethod( + Invocation.method(#enableTorch, [torch]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future setZoomRatio(double? ratio) => - (super.noSuchMethod( - Invocation.method(#setZoomRatio, [ratio]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future setZoomRatio(double? ratio) => (super.noSuchMethod( + Invocation.method(#setZoomRatio, [ratio]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future<_i2.FocusMeteringResult?> startFocusAndMetering( _i2.FocusMeteringAction? action, ) => (super.noSuchMethod( - Invocation.method(#startFocusAndMetering, [action]), - returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), - returnValueForMissingStub: - _i5.Future<_i2.FocusMeteringResult?>.value(), - ) - as _i5.Future<_i2.FocusMeteringResult?>); + Invocation.method(#startFocusAndMetering, [action]), + returnValue: _i5.Future<_i2.FocusMeteringResult?>.value(), + returnValueForMissingStub: _i5.Future<_i2.FocusMeteringResult?>.value(), + ) as _i5.Future<_i2.FocusMeteringResult?>); @override - _i5.Future cancelFocusAndMetering() => - (super.noSuchMethod( - Invocation.method(#cancelFocusAndMetering, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future cancelFocusAndMetering() => (super.noSuchMethod( + Invocation.method(#cancelFocusAndMetering, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future setExposureCompensationIndex(int? index) => (super.noSuchMethod( - Invocation.method(#setExposureCompensationIndex, [index]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#setExposureCompensationIndex, [index]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.CameraControl pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraControl_3( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraControl_3( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraControl); + _i2.CameraControl pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraControl_3( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraControl); } /// A class which mocks [CameraSize]. @@ -670,52 +621,44 @@ class MockCameraControl extends _i1.Mock implements _i2.CameraControl { /// See the documentation for Mockito's code generation for more information. class MockCameraSize extends _i1.Mock implements _i2.CameraSize { @override - int get width => - (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get height => - (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.CameraSize pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraSize_10( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraSize_10( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraSize); + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.CameraSize pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSize_10( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraSize); } /// A class which mocks [Camera2CameraControl]. @@ -724,45 +667,40 @@ class MockCameraSize extends _i1.Mock implements _i2.CameraSize { class MockCamera2CameraControl extends _i1.Mock implements _i2.Camera2CameraControl { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future addCaptureRequestOptions( _i2.CaptureRequestOptions? bundle, ) => (super.noSuchMethod( - Invocation.method(#addCaptureRequestOptions, [bundle]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#addCaptureRequestOptions, [bundle]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Camera2CameraControl pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera2CameraControl_11( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera2CameraControl_11( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Camera2CameraControl); + _i2.Camera2CameraControl pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraControl_11( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Camera2CameraControl); } /// A class which mocks [Camera2CameraInfo]. @@ -770,58 +708,51 @@ class MockCamera2CameraControl extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future getCameraId() => - (super.noSuchMethod( - Invocation.method(#getCameraId, []), - returnValue: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#getCameraId, [])), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#getCameraId, [])), - ), - ) - as _i5.Future); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future getCameraId() => (super.noSuchMethod( + Invocation.method(#getCameraId, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#getCameraId, [])), + ), + ) as _i5.Future); @override _i5.Future getCameraCharacteristic( _i2.CameraCharacteristicsKey? key, ) => (super.noSuchMethod( - Invocation.method(#getCameraCharacteristic, [key]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#getCameraCharacteristic, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Camera2CameraInfo pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCamera2CameraInfo_12( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCamera2CameraInfo_12( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Camera2CameraInfo); + _i2.Camera2CameraInfo pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCamera2CameraInfo_12( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Camera2CameraInfo); } /// A class which mocks [CameraImageData]. @@ -830,46 +761,38 @@ class MockCamera2CameraInfo extends _i1.Mock implements _i2.Camera2CameraInfo { // ignore: must_be_immutable class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { @override - _i4.CameraImageFormat get format => - (super.noSuchMethod( - Invocation.getter(#format), - returnValue: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - returnValueForMissingStub: _FakeCameraImageFormat_13( - this, - Invocation.getter(#format), - ), - ) - as _i4.CameraImageFormat); + _i4.CameraImageFormat get format => (super.noSuchMethod( + Invocation.getter(#format), + returnValue: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + returnValueForMissingStub: _FakeCameraImageFormat_13( + this, + Invocation.getter(#format), + ), + ) as _i4.CameraImageFormat); @override - int get height => - (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); @override - int get width => - (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); @override - List<_i4.CameraImagePlane> get planes => - (super.noSuchMethod( - Invocation.getter(#planes), - returnValue: <_i4.CameraImagePlane>[], - returnValueForMissingStub: <_i4.CameraImagePlane>[], - ) - as List<_i4.CameraImagePlane>); + List<_i4.CameraImagePlane> get planes => (super.noSuchMethod( + Invocation.getter(#planes), + returnValue: <_i4.CameraImagePlane>[], + returnValueForMissingStub: <_i4.CameraImagePlane>[], + ) as List<_i4.CameraImagePlane>); } /// A class which mocks [CameraSelector]. @@ -877,47 +800,42 @@ class MockCameraImageData extends _i1.Mock implements _i4.CameraImageData { /// See the documentation for Mockito's code generation for more information. class MockCameraSelector extends _i1.Mock implements _i2.CameraSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future> filter(List<_i2.CameraInfo>? cameraInfos) => (super.noSuchMethod( - Invocation.method(#filter, [cameraInfos]), - returnValue: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - ) - as _i5.Future>); - - @override - _i2.CameraSelector pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCameraSelector_14( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCameraSelector_14( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CameraSelector); + Invocation.method(#filter, [cameraInfos]), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) as _i5.Future>); + + @override + _i2.CameraSelector pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCameraSelector_14( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CameraSelector); } /// A class which mocks [CameraXProxy]. @@ -928,25 +846,20 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { void Function({ _i8.BinaryMessenger? pigeonBinaryMessenger, _i2.PigeonInstanceManager? pigeonInstanceManager, - }) - get setUpGenericsProxy => - (super.noSuchMethod( - Invocation.getter(#setUpGenericsProxy), - returnValue: - ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - }) {}, - ) - as void Function({ - _i8.BinaryMessenger? pigeonBinaryMessenger, - _i2.PigeonInstanceManager? pigeonInstanceManager, - })); + }) get setUpGenericsProxy => (super.noSuchMethod( + Invocation.getter(#setUpGenericsProxy), + returnValue: ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + }) {}, + ) as void Function({ + _i8.BinaryMessenger? pigeonBinaryMessenger, + _i2.PigeonInstanceManager? pigeonInstanceManager, + })); @override _i2.CameraSize Function({ @@ -954,33 +867,28 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newCameraSize => - (super.noSuchMethod( - Invocation.getter(#newCameraSize), - returnValue: - ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), - returnValueForMissingStub: - ({ - required int height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int width, - }) => - _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), - ) - as _i2.CameraSize Function({ - required int height, - required int width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newCameraSize => (super.noSuchMethod( + Invocation.getter(#newCameraSize), + returnValue: ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + returnValueForMissingStub: ({ + required int height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int width, + }) => + _FakeCameraSize_10(this, Invocation.getter(#newCameraSize)), + ) as _i2.CameraSize Function({ + required int height, + required int width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraIntegerRange Function({ @@ -988,176 +896,158 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required int upper, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newCameraIntegerRange => - (super.noSuchMethod( - Invocation.getter(#newCameraIntegerRange), - returnValue: - ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - returnValueForMissingStub: - ({ - required int lower, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required int upper, - }) => _FakeCameraIntegerRange_15( - this, - Invocation.getter(#newCameraIntegerRange), - ), - ) - as _i2.CameraIntegerRange Function({ - required int lower, - required int upper, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newCameraIntegerRange => (super.noSuchMethod( + Invocation.getter(#newCameraIntegerRange), + returnValue: ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => + _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + returnValueForMissingStub: ({ + required int lower, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required int upper, + }) => + _FakeCameraIntegerRange_15( + this, + Invocation.getter(#newCameraIntegerRange), + ), + ) as _i2.CameraIntegerRange Function({ + required int lower, + required int upper, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i3.Observer Function({ required void Function(_i3.Observer, T) onChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newObserver => - (super.noSuchMethod( - Invocation.getter(#newObserver), - returnValue: - ({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16(this, Invocation.getter(#newObserver)), - returnValueForMissingStub: - ({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => - _FakeObserver_16(this, Invocation.getter(#newObserver)), - ) - as _i3.Observer Function({ - required void Function(_i3.Observer, T) onChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newObserver => (super.noSuchMethod( + Invocation.getter(#newObserver), + returnValue: ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + returnValueForMissingStub: ({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeObserver_16(this, Invocation.getter(#newObserver)), + ) as _i3.Observer Function({ + required void Function(_i3.Observer, T) onChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.LensFacing? requireLensFacing, - }) - get newCameraSelector => - (super.noSuchMethod( - Invocation.getter(#newCameraSelector), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - }) => _FakeCameraSelector_14( - this, - Invocation.getter(#newCameraSelector), - ), - ) - as _i2.CameraSelector Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.LensFacing? requireLensFacing, - })); + }) get newCameraSelector => (super.noSuchMethod( + Invocation.getter(#newCameraSelector), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => + _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + }) => + _FakeCameraSelector_14( + this, + Invocation.getter(#newCameraSelector), + ), + ) as _i2.CameraSelector Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.LensFacing? requireLensFacing, + })); @override _i2.SystemServicesManager Function({ required void Function(_i2.SystemServicesManager, String) onCameraError, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newSystemServicesManager => - (super.noSuchMethod( - Invocation.getter(#newSystemServicesManager), - returnValue: - ({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - returnValueForMissingStub: - ({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeSystemServicesManager_17( - this, - Invocation.getter(#newSystemServicesManager), - ), - ) - as _i2.SystemServicesManager Function({ - required void Function(_i2.SystemServicesManager, String) - onCameraError, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newSystemServicesManager => (super.noSuchMethod( + Invocation.getter(#newSystemServicesManager), + returnValue: ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + returnValueForMissingStub: ({ + required void Function(_i2.SystemServicesManager, String) + onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeSystemServicesManager_17( + this, + Invocation.getter(#newSystemServicesManager), + ), + ) as _i2.SystemServicesManager Function({ + required void Function(_i2.SystemServicesManager, String) onCameraError, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DeviceOrientationManager Function({ required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, + onDeviceOrientationChanged, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newDeviceOrientationManager => - (super.noSuchMethod( - Invocation.getter(#newDeviceOrientationManager), - returnValue: - ({ - required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - returnValueForMissingStub: - ({ - required void Function(_i2.DeviceOrientationManager, String) - onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeDeviceOrientationManager_18( - this, - Invocation.getter(#newDeviceOrientationManager), - ), - ) - as _i2.DeviceOrientationManager Function({ - required void Function(_i2.DeviceOrientationManager, String) + }) get newDeviceOrientationManager => (super.noSuchMethod( + Invocation.getter(#newDeviceOrientationManager), + returnValue: ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + returnValueForMissingStub: ({ + required void Function(_i2.DeviceOrientationManager, String) + onDeviceOrientationChanged, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeDeviceOrientationManager_18( + this, + Invocation.getter(#newDeviceOrientationManager), + ), + ) as _i2.DeviceOrientationManager Function({ + required void Function(_i2.DeviceOrientationManager, String) onDeviceOrientationChanged, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Preview Function({ @@ -1165,65 +1055,59 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) - get newPreview => - (super.noSuchMethod( - Invocation.getter(#newPreview), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakePreview_19(this, Invocation.getter(#newPreview)), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakePreview_19(this, Invocation.getter(#newPreview)), - ) - as _i2.Preview Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) get newPreview => (super.noSuchMethod( + Invocation.getter(#newPreview), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakePreview_19(this, Invocation.getter(#newPreview)), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakePreview_19(this, Invocation.getter(#newPreview)), + ) as _i2.Preview Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.VideoCapture Function({ required _i2.VideoOutput videoOutput, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get withOutputVideoCapture => - (super.noSuchMethod( - Invocation.getter(#withOutputVideoCapture), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoOutput videoOutput, - }) => _FakeVideoCapture_20( - this, - Invocation.getter(#withOutputVideoCapture), - ), - ) - as _i2.VideoCapture Function({ - required _i2.VideoOutput videoOutput, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get withOutputVideoCapture => (super.noSuchMethod( + Invocation.getter(#withOutputVideoCapture), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => + _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoOutput videoOutput, + }) => + _FakeVideoCapture_20( + this, + Invocation.getter(#withOutputVideoCapture), + ), + ) as _i2.VideoCapture Function({ + required _i2.VideoOutput videoOutput, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Recorder Function({ @@ -1232,81 +1116,72 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.QualitySelector? qualitySelector, int? targetVideoEncodingBitRate, - }) - get newRecorder => - (super.noSuchMethod( - Invocation.getter(#newRecorder), - returnValue: - ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), - returnValueForMissingStub: - ({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - }) => _FakeRecorder_21(this, Invocation.getter(#newRecorder)), - ) - as _i2.Recorder Function({ - int? aspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.QualitySelector? qualitySelector, - int? targetVideoEncodingBitRate, - })); + }) get newRecorder => (super.noSuchMethod( + Invocation.getter(#newRecorder), + returnValue: ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => + _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + returnValueForMissingStub: ({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + }) => + _FakeRecorder_21(this, Invocation.getter(#newRecorder)), + ) as _i2.Recorder Function({ + int? aspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.QualitySelector? qualitySelector, + int? targetVideoEncodingBitRate, + })); @override _i2.VideoRecordEventListener Function({ required void Function(_i2.VideoRecordEventListener, _i2.VideoRecordEvent) - onEvent, + onEvent, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newVideoRecordEventListener => - (super.noSuchMethod( - Invocation.getter(#newVideoRecordEventListener), - returnValue: - ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) - onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - returnValueForMissingStub: - ({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) - onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeVideoRecordEventListener_22( - this, - Invocation.getter(#newVideoRecordEventListener), - ), - ) - as _i2.VideoRecordEventListener Function({ - required void Function( - _i2.VideoRecordEventListener, - _i2.VideoRecordEvent, - ) - onEvent, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newVideoRecordEventListener => (super.noSuchMethod( + Invocation.getter(#newVideoRecordEventListener), + returnValue: ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + returnValueForMissingStub: ({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeVideoRecordEventListener_22( + this, + Invocation.getter(#newVideoRecordEventListener), + ), + ) as _i2.VideoRecordEventListener Function({ + required void Function( + _i2.VideoRecordEventListener, + _i2.VideoRecordEvent, + ) onEvent, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageCapture Function({ @@ -1315,40 +1190,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) - get newImageCapture => - (super.noSuchMethod( - Invocation.getter(#newImageCapture), - returnValue: - ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - returnValueForMissingStub: - ({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageCapture_23( - this, - Invocation.getter(#newImageCapture), - ), - ) - as _i2.ImageCapture Function({ - _i2.CameraXFlashMode? flashMode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) get newImageCapture => (super.noSuchMethod( + Invocation.getter(#newImageCapture), + returnValue: ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + returnValueForMissingStub: ({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageCapture_23( + this, + Invocation.getter(#newImageCapture), + ), + ) as _i2.ImageCapture Function({ + _i2.CameraXFlashMode? flashMode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.ResolutionStrategy Function({ @@ -1356,37 +1228,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.ResolutionStrategyFallbackRule fallbackRule, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newResolutionStrategy => - (super.noSuchMethod( - Invocation.getter(#newResolutionStrategy), - returnValue: - ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - returnValueForMissingStub: - ({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeResolutionStrategy_24( - this, - Invocation.getter(#newResolutionStrategy), - ), - ) - as _i2.ResolutionStrategy Function({ - required _i2.CameraSize boundSize, - required _i2.ResolutionStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newResolutionStrategy => (super.noSuchMethod( + Invocation.getter(#newResolutionStrategy), + returnValue: ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + returnValueForMissingStub: ({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeResolutionStrategy_24( + this, + Invocation.getter(#newResolutionStrategy), + ), + ) as _i2.ResolutionStrategy Function({ + required _i2.CameraSize boundSize, + required _i2.ResolutionStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ResolutionSelector Function({ @@ -1395,40 +1264,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionFilter? resolutionFilter, _i2.ResolutionStrategy? resolutionStrategy, - }) - get newResolutionSelector => - (super.noSuchMethod( - Invocation.getter(#newResolutionSelector), - returnValue: - ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - returnValueForMissingStub: - ({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - }) => _FakeResolutionSelector_25( - this, - Invocation.getter(#newResolutionSelector), - ), - ) - as _i2.ResolutionSelector Function({ - _i2.AspectRatioStrategy? aspectRatioStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionFilter? resolutionFilter, - _i2.ResolutionStrategy? resolutionStrategy, - })); + }) get newResolutionSelector => (super.noSuchMethod( + Invocation.getter(#newResolutionSelector), + returnValue: ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => + _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + returnValueForMissingStub: ({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + }) => + _FakeResolutionSelector_25( + this, + Invocation.getter(#newResolutionSelector), + ), + ) as _i2.ResolutionSelector Function({ + _i2.AspectRatioStrategy? aspectRatioStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionFilter? resolutionFilter, + _i2.ResolutionStrategy? resolutionStrategy, + })); @override _i2.AspectRatioStrategy Function({ @@ -1436,37 +1302,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.AspectRatio preferredAspectRatio, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newAspectRatioStrategy => - (super.noSuchMethod( - Invocation.getter(#newAspectRatioStrategy), - returnValue: - ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - returnValueForMissingStub: - ({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.AspectRatio preferredAspectRatio, - }) => _FakeAspectRatioStrategy_2( - this, - Invocation.getter(#newAspectRatioStrategy), - ), - ) - as _i2.AspectRatioStrategy Function({ - required _i2.AspectRatioStrategyFallbackRule fallbackRule, - required _i2.AspectRatio preferredAspectRatio, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newAspectRatioStrategy => (super.noSuchMethod( + Invocation.getter(#newAspectRatioStrategy), + returnValue: ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => + _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + returnValueForMissingStub: ({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.AspectRatio preferredAspectRatio, + }) => + _FakeAspectRatioStrategy_2( + this, + Invocation.getter(#newAspectRatioStrategy), + ), + ) as _i2.AspectRatioStrategy Function({ + required _i2.AspectRatioStrategyFallbackRule fallbackRule, + required _i2.AspectRatio preferredAspectRatio, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.ImageAnalysis Function({ @@ -1474,65 +1337,59 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.PigeonInstanceManager? pigeon_instanceManager, _i2.ResolutionSelector? resolutionSelector, int? targetRotation, - }) - get newImageAnalysis => - (super.noSuchMethod( - Invocation.getter(#newImageAnalysis), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - }) => _FakeImageAnalysis_26( - this, - Invocation.getter(#newImageAnalysis), - ), - ) - as _i2.ImageAnalysis Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - _i2.ResolutionSelector? resolutionSelector, - int? targetRotation, - })); + }) get newImageAnalysis => (super.noSuchMethod( + Invocation.getter(#newImageAnalysis), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + }) => + _FakeImageAnalysis_26( + this, + Invocation.getter(#newImageAnalysis), + ), + ) as _i2.ImageAnalysis Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + _i2.ResolutionSelector? resolutionSelector, + int? targetRotation, + })); @override _i2.Analyzer Function({ required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newAnalyzer => - (super.noSuchMethod( - Invocation.getter(#newAnalyzer), - returnValue: - ({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), - returnValueForMissingStub: - ({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), - ) - as _i2.Analyzer Function({ - required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newAnalyzer => (super.noSuchMethod( + Invocation.getter(#newAnalyzer), + returnValue: ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + returnValueForMissingStub: ({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeAnalyzer_1(this, Invocation.getter(#newAnalyzer)), + ) as _i2.Analyzer Function({ + required void Function(_i2.Analyzer, _i2.ImageProxy) analyze, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1540,37 +1397,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromQualitySelector => - (super.noSuchMethod( - Invocation.getter(#fromQualitySelector), - returnValue: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - returnValueForMissingStub: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromQualitySelector), - ), - ) - as _i2.QualitySelector Function({ - required _i2.VideoQuality quality, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromQualitySelector => (super.noSuchMethod( + Invocation.getter(#fromQualitySelector), + returnValue: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + returnValueForMissingStub: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromQualitySelector), + ), + ) as _i2.QualitySelector Function({ + required _i2.VideoQuality quality, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.QualitySelector Function({ @@ -1578,207 +1432,189 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.FallbackStrategy? fallbackStrategy, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromOrderedListQualitySelector => - (super.noSuchMethod( - Invocation.getter(#fromOrderedListQualitySelector), - returnValue: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - returnValueForMissingStub: - ({ - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required List<_i2.VideoQuality> qualities, - }) => _FakeQualitySelector_27( - this, - Invocation.getter(#fromOrderedListQualitySelector), - ), - ) - as _i2.QualitySelector Function({ - required List<_i2.VideoQuality> qualities, - _i2.FallbackStrategy? fallbackStrategy, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromOrderedListQualitySelector => (super.noSuchMethod( + Invocation.getter(#fromOrderedListQualitySelector), + returnValue: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + returnValueForMissingStub: ({ + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required List<_i2.VideoQuality> qualities, + }) => + _FakeQualitySelector_27( + this, + Invocation.getter(#fromOrderedListQualitySelector), + ), + ) as _i2.QualitySelector Function({ + required List<_i2.VideoQuality> qualities, + _i2.FallbackStrategy? fallbackStrategy, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get higherQualityOrLowerThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get higherQualityOrLowerThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityOrLowerThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get higherQualityThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#higherQualityThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#higherQualityThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get higherQualityThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#higherQualityThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#higherQualityThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get lowerQualityOrHigherThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get lowerQualityOrHigherThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityOrHigherThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FallbackStrategy Function({ required _i2.VideoQuality quality, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get lowerQualityThanFallbackStrategy => - (super.noSuchMethod( - Invocation.getter(#lowerQualityThanFallbackStrategy), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.VideoQuality quality, - }) => _FakeFallbackStrategy_28( - this, - Invocation.getter(#lowerQualityThanFallbackStrategy), - ), - ) - as _i2.FallbackStrategy Function({ - required _i2.VideoQuality quality, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get lowerQualityThanFallbackStrategy => (super.noSuchMethod( + Invocation.getter(#lowerQualityThanFallbackStrategy), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.VideoQuality quality, + }) => + _FakeFallbackStrategy_28( + this, + Invocation.getter(#lowerQualityThanFallbackStrategy), + ), + ) as _i2.FallbackStrategy Function({ + required _i2.VideoQuality quality, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newFocusMeteringActionBuilder => - (super.noSuchMethod( - Invocation.getter(#newFocusMeteringActionBuilder), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#newFocusMeteringActionBuilder), - ), - ) - as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newFocusMeteringActionBuilder => (super.noSuchMethod( + Invocation.getter(#newFocusMeteringActionBuilder), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#newFocusMeteringActionBuilder), + ), + ) as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.FocusMeteringActionBuilder Function({ @@ -1786,37 +1622,34 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get withModeFocusMeteringActionBuilder => - (super.noSuchMethod( - Invocation.getter(#withModeFocusMeteringActionBuilder), - returnValue: - ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - returnValueForMissingStub: - ({ - required _i2.MeteringMode mode, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.MeteringPoint point, - }) => _FakeFocusMeteringActionBuilder_29( - this, - Invocation.getter(#withModeFocusMeteringActionBuilder), - ), - ) - as _i2.FocusMeteringActionBuilder Function({ - required _i2.MeteringMode mode, - required _i2.MeteringPoint point, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get withModeFocusMeteringActionBuilder => (super.noSuchMethod( + Invocation.getter(#withModeFocusMeteringActionBuilder), + returnValue: ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + returnValueForMissingStub: ({ + required _i2.MeteringMode mode, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.MeteringPoint point, + }) => + _FakeFocusMeteringActionBuilder_29( + this, + Invocation.getter(#withModeFocusMeteringActionBuilder), + ), + ) as _i2.FocusMeteringActionBuilder Function({ + required _i2.MeteringMode mode, + required _i2.MeteringPoint point, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set withModeFocusMeteringActionBuilder( @@ -1825,49 +1658,46 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.MeteringPoint point, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _withModeFocusMeteringActionBuilder, - ) => super.noSuchMethod( - Invocation.setter( - #withModeFocusMeteringActionBuilder, - _withModeFocusMeteringActionBuilder, - ), - returnValueForMissingStub: null, - ); + })? _withModeFocusMeteringActionBuilder, + ) => + super.noSuchMethod( + Invocation.setter( + #withModeFocusMeteringActionBuilder, + _withModeFocusMeteringActionBuilder, + ), + returnValueForMissingStub: null, + ); @override _i2.CaptureRequestOptions Function({ required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newCaptureRequestOptions => - (super.noSuchMethod( - Invocation.getter(#newCaptureRequestOptions), - returnValue: - ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - returnValueForMissingStub: - ({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCaptureRequestOptions_30( - this, - Invocation.getter(#newCaptureRequestOptions), - ), - ) - as _i2.CaptureRequestOptions Function({ - required Map<_i2.CaptureRequestKey, Object?> options, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newCaptureRequestOptions => (super.noSuchMethod( + Invocation.getter(#newCaptureRequestOptions), + returnValue: ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + returnValueForMissingStub: ({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCaptureRequestOptions_30( + this, + Invocation.getter(#newCaptureRequestOptions), + ), + ) as _i2.CaptureRequestOptions Function({ + required Map<_i2.CaptureRequestKey, Object?> options, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set newCaptureRequestOptions( @@ -1875,46 +1705,43 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required Map<_i2.CaptureRequestKey, Object?> options, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _newCaptureRequestOptions, - ) => super.noSuchMethod( - Invocation.setter(#newCaptureRequestOptions, _newCaptureRequestOptions), - returnValueForMissingStub: null, - ); + })? _newCaptureRequestOptions, + ) => + super.noSuchMethod( + Invocation.setter(#newCaptureRequestOptions, _newCaptureRequestOptions), + returnValueForMissingStub: null, + ); @override _i2.Camera2CameraControl Function({ required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromCamera2CameraControl => - (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraControl), - returnValue: - ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - returnValueForMissingStub: - ({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraControl_11( - this, - Invocation.getter(#fromCamera2CameraControl), - ), - ) - as _i2.Camera2CameraControl Function({ - required _i2.CameraControl cameraControl, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromCamera2CameraControl => (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraControl), + returnValue: ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + returnValueForMissingStub: ({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraControl_11( + this, + Invocation.getter(#fromCamera2CameraControl), + ), + ) as _i2.Camera2CameraControl Function({ + required _i2.CameraControl cameraControl, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set fromCamera2CameraControl( @@ -1922,84 +1749,78 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required _i2.CameraControl cameraControl, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _fromCamera2CameraControl, - ) => super.noSuchMethod( - Invocation.setter(#fromCamera2CameraControl, _fromCamera2CameraControl), - returnValueForMissingStub: null, - ); + })? _fromCamera2CameraControl, + ) => + super.noSuchMethod( + Invocation.setter(#fromCamera2CameraControl, _fromCamera2CameraControl), + returnValueForMissingStub: null, + ); @override _i2.ResolutionFilter Function({ required _i2.CameraSize preferredSize, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get createWithOnePreferredSizeResolutionFilter => - (super.noSuchMethod( - Invocation.getter(#createWithOnePreferredSizeResolutionFilter), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => _FakeResolutionFilter_31( - this, - Invocation.getter( - #createWithOnePreferredSizeResolutionFilter, - ), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required _i2.CameraSize preferredSize, - }) => _FakeResolutionFilter_31( - this, - Invocation.getter( - #createWithOnePreferredSizeResolutionFilter, - ), - ), - ) - as _i2.ResolutionFilter Function({ - required _i2.CameraSize preferredSize, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get createWithOnePreferredSizeResolutionFilter => (super.noSuchMethod( + Invocation.getter(#createWithOnePreferredSizeResolutionFilter), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => + _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required _i2.CameraSize preferredSize, + }) => + _FakeResolutionFilter_31( + this, + Invocation.getter( + #createWithOnePreferredSizeResolutionFilter, + ), + ), + ) as _i2.ResolutionFilter Function({ + required _i2.CameraSize preferredSize, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.Camera2CameraInfo Function({ required _i3.CameraInfo cameraInfo, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get fromCamera2CameraInfo => - (super.noSuchMethod( - Invocation.getter(#fromCamera2CameraInfo), - returnValue: - ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - returnValueForMissingStub: - ({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _FakeCamera2CameraInfo_12( - this, - Invocation.getter(#fromCamera2CameraInfo), - ), - ) - as _i2.Camera2CameraInfo Function({ - required _i3.CameraInfo cameraInfo, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get fromCamera2CameraInfo => (super.noSuchMethod( + Invocation.getter(#fromCamera2CameraInfo), + returnValue: ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + returnValueForMissingStub: ({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _FakeCamera2CameraInfo_12( + this, + Invocation.getter(#fromCamera2CameraInfo), + ), + ) as _i2.Camera2CameraInfo Function({ + required _i3.CameraInfo cameraInfo, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.DisplayOrientedMeteringPointFactory Function({ @@ -2008,40 +1829,37 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get newDisplayOrientedMeteringPointFactory => - (super.noSuchMethod( - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - returnValue: - ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - returnValueForMissingStub: - ({ - required _i3.CameraInfo cameraInfo, - required double height, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - required double width, - }) => _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.getter(#newDisplayOrientedMeteringPointFactory), - ), - ) - as _i2.DisplayOrientedMeteringPointFactory Function({ - required _i3.CameraInfo cameraInfo, - required double height, - required double width, - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get newDisplayOrientedMeteringPointFactory => (super.noSuchMethod( + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + returnValue: ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => + _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + returnValueForMissingStub: ({ + required _i3.CameraInfo cameraInfo, + required double height, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + required double width, + }) => + _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.getter(#newDisplayOrientedMeteringPointFactory), + ), + ) as _i2.DisplayOrientedMeteringPointFactory Function({ + required _i3.CameraInfo cameraInfo, + required double height, + required double width, + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override set newDisplayOrientedMeteringPointFactory( @@ -2051,49 +1869,46 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { required double width, _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - })? - _newDisplayOrientedMeteringPointFactory, - ) => super.noSuchMethod( - Invocation.setter( - #newDisplayOrientedMeteringPointFactory, - _newDisplayOrientedMeteringPointFactory, - ), - returnValueForMissingStub: null, - ); + })? _newDisplayOrientedMeteringPointFactory, + ) => + super.noSuchMethod( + Invocation.setter( + #newDisplayOrientedMeteringPointFactory, + _newDisplayOrientedMeteringPointFactory, + ), + returnValueForMissingStub: null, + ); @override _i5.Future<_i2.ProcessCameraProvider> Function({ _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get getInstanceProcessCameraProvider => - (super.noSuchMethod( + }) get getInstanceProcessCameraProvider => (super.noSuchMethod( + Invocation.getter(#getInstanceProcessCameraProvider), + returnValue: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, Invocation.getter(#getInstanceProcessCameraProvider), - returnValue: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, - Invocation.getter(#getInstanceProcessCameraProvider), - ), - ), - returnValueForMissingStub: - ({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.ProcessCameraProvider>.value( - _FakeProcessCameraProvider_33( - this, - Invocation.getter(#getInstanceProcessCameraProvider), - ), - ), - ) - as _i5.Future<_i2.ProcessCameraProvider> Function({ - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + ), + ), + returnValueForMissingStub: ({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.ProcessCameraProvider>.value( + _FakeProcessCameraProvider_33( + this, + Invocation.getter(#getInstanceProcessCameraProvider), + ), + ), + ) as _i5.Future<_i2.ProcessCameraProvider> Function({ + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i5.Future<_i2.CameraSize?> Function( @@ -2101,203 +1916,175 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { _i2.VideoQuality, { _i8.BinaryMessenger? pigeon_binaryMessenger, _i2.PigeonInstanceManager? pigeon_instanceManager, - }) - get getResolutionQualitySelector => - (super.noSuchMethod( - Invocation.getter(#getResolutionQualitySelector), - returnValue: - ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: - ( - _i3.CameraInfo __p0, - _i2.VideoQuality __p1, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - }) => _i5.Future<_i2.CameraSize?>.value(), - ) - as _i5.Future<_i2.CameraSize?> Function( - _i3.CameraInfo, - _i2.VideoQuality, { - _i8.BinaryMessenger? pigeon_binaryMessenger, - _i2.PigeonInstanceManager? pigeon_instanceManager, - })); + }) get getResolutionQualitySelector => (super.noSuchMethod( + Invocation.getter(#getResolutionQualitySelector), + returnValue: ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: ( + _i3.CameraInfo __p0, + _i2.VideoQuality __p1, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + }) => + _i5.Future<_i2.CameraSize?>.value(), + ) as _i5.Future<_i2.CameraSize?> Function( + _i3.CameraInfo, + _i2.VideoQuality, { + _i8.BinaryMessenger? pigeon_binaryMessenger, + _i2.PigeonInstanceManager? pigeon_instanceManager, + })); @override _i2.CameraSelector Function() get defaultBackCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultBackCameraCameraSelector), - returnValue: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - returnValueForMissingStub: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultBackCameraCameraSelector), - ), - ) - as _i2.CameraSelector Function()); + Invocation.getter(#defaultBackCameraCameraSelector), + returnValue: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + returnValueForMissingStub: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultBackCameraCameraSelector), + ), + ) as _i2.CameraSelector Function()); @override _i2.CameraSelector Function() get defaultFrontCameraCameraSelector => (super.noSuchMethod( - Invocation.getter(#defaultFrontCameraCameraSelector), - returnValue: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - returnValueForMissingStub: - () => _FakeCameraSelector_14( - this, - Invocation.getter(#defaultFrontCameraCameraSelector), - ), - ) - as _i2.CameraSelector Function()); + Invocation.getter(#defaultFrontCameraCameraSelector), + returnValue: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + returnValueForMissingStub: () => _FakeCameraSelector_14( + this, + Invocation.getter(#defaultFrontCameraCameraSelector), + ), + ) as _i2.CameraSelector Function()); @override _i2.ResolutionStrategy Function() - get highestAvailableStrategyResolutionStrategy => - (super.noSuchMethod( + get highestAvailableStrategyResolutionStrategy => (super.noSuchMethod( Invocation.getter(#highestAvailableStrategyResolutionStrategy), - returnValue: - () => _FakeResolutionStrategy_24( - this, - Invocation.getter( - #highestAvailableStrategyResolutionStrategy, - ), - ), - returnValueForMissingStub: - () => _FakeResolutionStrategy_24( - this, - Invocation.getter( - #highestAvailableStrategyResolutionStrategy, - ), - ), - ) - as _i2.ResolutionStrategy Function()); + returnValue: () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + returnValueForMissingStub: () => _FakeResolutionStrategy_24( + this, + Invocation.getter( + #highestAvailableStrategyResolutionStrategy, + ), + ), + ) as _i2.ResolutionStrategy Function()); @override _i2.AspectRatioStrategy Function() - get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => - (super.noSuchMethod( + get ratio_16_9FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( Invocation.getter( #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, ), - returnValue: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - ), - ), - returnValueForMissingStub: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, - ), - ), - ) - as _i2.AspectRatioStrategy Function()); + returnValue: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_16_9FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) as _i2.AspectRatioStrategy Function()); @override _i2.AspectRatioStrategy Function() - get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => - (super.noSuchMethod( + get ratio_4_3FallbackAutoStrategyAspectRatioStrategy => + (super.noSuchMethod( Invocation.getter( #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, ), - returnValue: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - ), - ), - returnValueForMissingStub: - () => _FakeAspectRatioStrategy_2( - this, - Invocation.getter( - #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, - ), - ), - ) - as _i2.AspectRatioStrategy Function()); + returnValue: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + returnValueForMissingStub: () => _FakeAspectRatioStrategy_2( + this, + Invocation.getter( + #ratio_4_3FallbackAutoStrategyAspectRatioStrategy, + ), + ), + ) as _i2.AspectRatioStrategy Function()); @override _i2.CaptureRequestKey Function() get controlAELockCaptureRequest => (super.noSuchMethod( - Invocation.getter(#controlAELockCaptureRequest), - returnValue: - () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - returnValueForMissingStub: - () => _FakeCaptureRequestKey_34( - this, - Invocation.getter(#controlAELockCaptureRequest), - ), - ) - as _i2.CaptureRequestKey Function()); + Invocation.getter(#controlAELockCaptureRequest), + returnValue: () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + returnValueForMissingStub: () => _FakeCaptureRequestKey_34( + this, + Invocation.getter(#controlAELockCaptureRequest), + ), + ) as _i2.CaptureRequestKey Function()); @override set controlAELockCaptureRequest( _i2.CaptureRequestKey Function()? _controlAELockCaptureRequest, - ) => super.noSuchMethod( - Invocation.setter( - #controlAELockCaptureRequest, - _controlAELockCaptureRequest, - ), - returnValueForMissingStub: null, - ); + ) => + super.noSuchMethod( + Invocation.setter( + #controlAELockCaptureRequest, + _controlAELockCaptureRequest, + ), + returnValueForMissingStub: null, + ); @override _i2.CameraCharacteristicsKey Function() - get infoSupportedHardwareLevelCameraCharacteristics => - (super.noSuchMethod( + get infoSupportedHardwareLevelCameraCharacteristics => + (super.noSuchMethod( Invocation.getter(#infoSupportedHardwareLevelCameraCharacteristics), - returnValue: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter( - #infoSupportedHardwareLevelCameraCharacteristics, - ), - ), - returnValueForMissingStub: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter( - #infoSupportedHardwareLevelCameraCharacteristics, - ), - ), - ) - as _i2.CameraCharacteristicsKey Function()); + returnValue: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter( + #infoSupportedHardwareLevelCameraCharacteristics, + ), + ), + ) as _i2.CameraCharacteristicsKey Function()); @override _i2.CameraCharacteristicsKey Function() - get sensorOrientationCameraCharacteristics => - (super.noSuchMethod( + get sensorOrientationCameraCharacteristics => (super.noSuchMethod( Invocation.getter(#sensorOrientationCameraCharacteristics), - returnValue: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - returnValueForMissingStub: - () => _FakeCameraCharacteristicsKey_9( - this, - Invocation.getter(#sensorOrientationCameraCharacteristics), - ), - ) - as _i2.CameraCharacteristicsKey Function()); + returnValue: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + returnValueForMissingStub: () => _FakeCameraCharacteristicsKey_9( + this, + Invocation.getter(#sensorOrientationCameraCharacteristics), + ), + ) as _i2.CameraCharacteristicsKey Function()); } /// A class which mocks [CaptureRequestOptions]. @@ -2306,43 +2093,38 @@ class MockCameraXProxy extends _i1.Mock implements _i7.CameraXProxy { class MockCaptureRequestOptions extends _i1.Mock implements _i2.CaptureRequestOptions { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future getCaptureRequestOption(_i2.CaptureRequestKey? key) => (super.noSuchMethod( - Invocation.method(#getCaptureRequestOption, [key]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#getCaptureRequestOption, [key]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.CaptureRequestOptions pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeCaptureRequestOptions_30( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeCaptureRequestOptions_30( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.CaptureRequestOptions); + _i2.CaptureRequestOptions pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeCaptureRequestOptions_30( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeCaptureRequestOptions_30( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.CaptureRequestOptions); } /// A class which mocks [DeviceOrientationManager]. @@ -2352,97 +2134,83 @@ class MockDeviceOrientationManager extends _i1.Mock implements _i2.DeviceOrientationManager { @override void Function(_i2.DeviceOrientationManager, String) - get onDeviceOrientationChanged => - (super.noSuchMethod( + get onDeviceOrientationChanged => (super.noSuchMethod( Invocation.getter(#onDeviceOrientationChanged), - returnValue: - ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - returnValueForMissingStub: - ( - _i2.DeviceOrientationManager pigeon_instance, - String orientation, - ) {}, - ) - as void Function(_i2.DeviceOrientationManager, String)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + returnValue: ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + returnValueForMissingStub: ( + _i2.DeviceOrientationManager pigeon_instance, + String orientation, + ) {}, + ) as void Function(_i2.DeviceOrientationManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future startListeningForDeviceOrientationChange() => (super.noSuchMethod( - Invocation.method(#startListeningForDeviceOrientationChange, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#startListeningForDeviceOrientationChange, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future stopListeningForDeviceOrientationChange() => (super.noSuchMethod( - Invocation.method(#stopListeningForDeviceOrientationChange, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#stopListeningForDeviceOrientationChange, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future getDefaultDisplayRotation() => - (super.noSuchMethod( - Invocation.method(#getDefaultDisplayRotation, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); + _i5.Future getDefaultDisplayRotation() => (super.noSuchMethod( + Invocation.method(#getDefaultDisplayRotation, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); @override - _i5.Future getUiOrientation() => - (super.noSuchMethod( + _i5.Future getUiOrientation() => (super.noSuchMethod( + Invocation.method(#getUiOrientation, []), + returnValue: _i5.Future.value( + _i6.dummyValue( + this, Invocation.method(#getUiOrientation, []), - returnValue: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getUiOrientation, []), - ), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getUiOrientation, []), - ), - ), - ) - as _i5.Future); + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getUiOrientation, []), + ), + ), + ) as _i5.Future); @override - _i2.DeviceOrientationManager pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeDeviceOrientationManager_18( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeDeviceOrientationManager_18( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.DeviceOrientationManager); + _i2.DeviceOrientationManager pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeDeviceOrientationManager_18( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.DeviceOrientationManager); } /// A class which mocks [DisplayOrientedMeteringPointFactory]. @@ -2451,54 +2219,48 @@ class MockDeviceOrientationManager extends _i1.Mock class MockDisplayOrientedMeteringPointFactory extends _i1.Mock implements _i2.DisplayOrientedMeteringPointFactory { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: - _FakeDisplayOrientedMeteringPointFactory_32( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.DisplayOrientedMeteringPointFactory); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.DisplayOrientedMeteringPointFactory pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeDisplayOrientedMeteringPointFactory_32( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.DisplayOrientedMeteringPointFactory); @override _i5.Future<_i2.MeteringPoint> createPoint(double? x, double? y) => (super.noSuchMethod( + Invocation.method(#createPoint, [x, y]), + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, Invocation.method(#createPoint, [x, y]), - returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPoint, [x, y]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPoint, [x, y]), - ), - ), - ) - as _i5.Future<_i2.MeteringPoint>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPoint, [x, y]), + ), + ), + ) as _i5.Future<_i2.MeteringPoint>); @override _i5.Future<_i2.MeteringPoint> createPointWithSize( @@ -2507,21 +2269,20 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock double? size, ) => (super.noSuchMethod( + Invocation.method(#createPointWithSize, [x, y, size]), + returnValue: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, Invocation.method(#createPointWithSize, [x, y, size]), - returnValue: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPointWithSize, [x, y, size]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( - _FakeMeteringPoint_35( - this, - Invocation.method(#createPointWithSize, [x, y, size]), - ), - ), - ) - as _i5.Future<_i2.MeteringPoint>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.MeteringPoint>.value( + _FakeMeteringPoint_35( + this, + Invocation.method(#createPointWithSize, [x, y, size]), + ), + ), + ) as _i5.Future<_i2.MeteringPoint>); } /// A class which mocks [ExposureState]. @@ -2529,58 +2290,50 @@ class MockDisplayOrientedMeteringPointFactory extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockExposureState extends _i1.Mock implements _i2.ExposureState { @override - _i2.CameraIntegerRange get exposureCompensationRange => - (super.noSuchMethod( - Invocation.getter(#exposureCompensationRange), - returnValue: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - returnValueForMissingStub: _FakeCameraIntegerRange_15( - this, - Invocation.getter(#exposureCompensationRange), - ), - ) - as _i2.CameraIntegerRange); - - @override - double get exposureCompensationStep => - (super.noSuchMethod( - Invocation.getter(#exposureCompensationStep), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) - as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.ExposureState pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeExposureState_6( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeExposureState_6( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ExposureState); + _i2.CameraIntegerRange get exposureCompensationRange => (super.noSuchMethod( + Invocation.getter(#exposureCompensationRange), + returnValue: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + returnValueForMissingStub: _FakeCameraIntegerRange_15( + this, + Invocation.getter(#exposureCompensationRange), + ), + ) as _i2.CameraIntegerRange); + + @override + double get exposureCompensationStep => (super.noSuchMethod( + Invocation.getter(#exposureCompensationStep), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ExposureState pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeExposureState_6( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ExposureState); } /// A class which mocks [FallbackStrategy]. @@ -2588,34 +2341,30 @@ class MockExposureState extends _i1.Mock implements _i2.ExposureState { /// See the documentation for Mockito's code generation for more information. class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.FallbackStrategy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFallbackStrategy_28( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFallbackStrategy_28( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.FallbackStrategy); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.FallbackStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFallbackStrategy_28( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.FallbackStrategy); } /// A class which mocks [FocusMeteringActionBuilder]. @@ -2624,28 +2373,24 @@ class MockFallbackStrategy extends _i1.Mock implements _i2.FallbackStrategy { class MockFocusMeteringActionBuilder extends _i1.Mock implements _i2.FocusMeteringActionBuilder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future addPoint(_i2.MeteringPoint? point) => - (super.noSuchMethod( - Invocation.method(#addPoint, [point]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future addPoint(_i2.MeteringPoint? point) => (super.noSuchMethod( + Invocation.method(#addPoint, [point]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future addPointWithMode( @@ -2653,52 +2398,44 @@ class MockFocusMeteringActionBuilder extends _i1.Mock _i2.MeteringMode? mode, ) => (super.noSuchMethod( - Invocation.method(#addPointWithMode, [point, mode]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#addPointWithMode, [point, mode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future disableAutoCancel() => - (super.noSuchMethod( - Invocation.method(#disableAutoCancel, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future disableAutoCancel() => (super.noSuchMethod( + Invocation.method(#disableAutoCancel, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.FocusMeteringAction> build() => - (super.noSuchMethod( + _i5.Future<_i2.FocusMeteringAction> build() => (super.noSuchMethod( + Invocation.method(#build, []), + returnValue: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.FocusMeteringAction>.value( + _FakeFocusMeteringAction_36( + this, Invocation.method(#build, []), - returnValue: _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36(this, Invocation.method(#build, [])), - ), - returnValueForMissingStub: - _i5.Future<_i2.FocusMeteringAction>.value( - _FakeFocusMeteringAction_36( - this, - Invocation.method(#build, []), - ), - ), - ) - as _i5.Future<_i2.FocusMeteringAction>); - - @override - _i2.FocusMeteringActionBuilder pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.FocusMeteringActionBuilder); + ), + ), + ) as _i5.Future<_i2.FocusMeteringAction>); + + @override + _i2.FocusMeteringActionBuilder pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringActionBuilder_29( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.FocusMeteringActionBuilder); } /// A class which mocks [FocusMeteringResult]. @@ -2707,43 +2444,37 @@ class MockFocusMeteringActionBuilder extends _i1.Mock class MockFocusMeteringResult extends _i1.Mock implements _i2.FocusMeteringResult { @override - bool get isFocusSuccessful => - (super.noSuchMethod( - Invocation.getter(#isFocusSuccessful), - returnValue: false, - returnValueForMissingStub: false, - ) - as bool); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.FocusMeteringResult pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeFocusMeteringResult_37( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeFocusMeteringResult_37( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.FocusMeteringResult); + bool get isFocusSuccessful => (super.noSuchMethod( + Invocation.getter(#isFocusSuccessful), + returnValue: false, + returnValueForMissingStub: false, + ) as bool); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.FocusMeteringResult pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeFocusMeteringResult_37( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.FocusMeteringResult); } /// A class which mocks [ImageAnalysis]. @@ -2751,61 +2482,51 @@ class MockFocusMeteringResult extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => - (super.noSuchMethod( - Invocation.method(#setAnalyzer, [analyzer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i5.Future clearAnalyzer() => - (super.noSuchMethod( - Invocation.method(#clearAnalyzer, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i2.ImageAnalysis pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageAnalysis_26( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageAnalysis_26( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ImageAnalysis); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future setAnalyzer(_i2.Analyzer? analyzer) => (super.noSuchMethod( + Invocation.method(#setAnalyzer, [analyzer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future clearAnalyzer() => (super.noSuchMethod( + Invocation.method(#clearAnalyzer, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ImageAnalysis pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageAnalysis_26( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ImageAnalysis); } /// A class which mocks [ImageCapture]. @@ -2813,65 +2534,56 @@ class MockImageAnalysis extends _i1.Mock implements _i2.ImageAnalysis { /// See the documentation for Mockito's code generation for more information. class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future setFlashMode(_i2.CameraXFlashMode? flashMode) => (super.noSuchMethod( - Invocation.method(#setFlashMode, [flashMode]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + Invocation.method(#setFlashMode, [flashMode]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future takePicture() => - (super.noSuchMethod( - Invocation.method(#takePicture, []), - returnValue: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#takePicture, [])), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue(this, Invocation.method(#takePicture, [])), - ), - ) - as _i5.Future); + _i5.Future takePicture() => (super.noSuchMethod( + Invocation.method(#takePicture, []), + returnValue: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue(this, Invocation.method(#takePicture, [])), + ), + ) as _i5.Future); @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.ImageCapture pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageCapture_23( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageCapture_23( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ImageCapture); + _i2.ImageCapture pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageCapture_23( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ImageCapture); } /// A class which mocks [ImageProxy]. @@ -2879,83 +2591,69 @@ class MockImageCapture extends _i1.Mock implements _i2.ImageCapture { /// See the documentation for Mockito's code generation for more information. class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { @override - int get format => - (super.noSuchMethod( - Invocation.getter(#format), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get width => - (super.noSuchMethod( - Invocation.getter(#width), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get height => - (super.noSuchMethod( - Invocation.getter(#height), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future> getPlanes() => - (super.noSuchMethod( - Invocation.method(#getPlanes, []), - returnValue: _i5.Future>.value( - <_i2.PlaneProxy>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.PlaneProxy>[], - ), - ) - as _i5.Future>); - - @override - _i5.Future close() => - (super.noSuchMethod( - Invocation.method(#close, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i2.ImageProxy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeImageProxy_38( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeImageProxy_38( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ImageProxy); + int get format => (super.noSuchMethod( + Invocation.getter(#format), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get width => (super.noSuchMethod( + Invocation.getter(#width), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get height => (super.noSuchMethod( + Invocation.getter(#height), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future> getPlanes() => (super.noSuchMethod( + Invocation.method(#getPlanes, []), + returnValue: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.PlaneProxy>[], + ), + ) as _i5.Future>); + + @override + _i5.Future close() => (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.ImageProxy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeImageProxy_38( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ImageProxy); } /// A class which mocks [Observer]. @@ -2963,44 +2661,38 @@ class MockImageProxy extends _i1.Mock implements _i2.ImageProxy { /// See the documentation for Mockito's code generation for more information. class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { @override - void Function(_i2.Observer, Object) get onChanged => - (super.noSuchMethod( - Invocation.getter(#onChanged), - returnValue: (_i2.Observer pigeon_instance, Object value) {}, - returnValueForMissingStub: - (_i2.Observer pigeon_instance, Object value) {}, - ) - as void Function(_i2.Observer, Object)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i3.Observer<_i2.CameraState> pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.Observer<_i2.CameraState>); + void Function(_i2.Observer, Object) get onChanged => (super.noSuchMethod( + Invocation.getter(#onChanged), + returnValue: (_i2.Observer pigeon_instance, Object value) {}, + returnValueForMissingStub: + (_i2.Observer pigeon_instance, Object value) {}, + ) as void Function(_i2.Observer, Object)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i3.Observer<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeObserver_16<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.Observer<_i2.CameraState>); } /// A class which mocks [PendingRecording]. @@ -3008,47 +2700,42 @@ class MockObserver extends _i1.Mock implements _i3.Observer<_i2.CameraState> { /// See the documentation for Mockito's code generation for more information. class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.Recording> start(_i2.VideoRecordEventListener? listener) => (super.noSuchMethod( - Invocation.method(#start, [listener]), - returnValue: _i5.Future<_i2.Recording>.value( - _FakeRecording_39(this, Invocation.method(#start, [listener])), - ), - returnValueForMissingStub: _i5.Future<_i2.Recording>.value( - _FakeRecording_39(this, Invocation.method(#start, [listener])), - ), - ) - as _i5.Future<_i2.Recording>); - - @override - _i2.PendingRecording pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePendingRecording_40( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePendingRecording_40( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.PendingRecording); + Invocation.method(#start, [listener]), + returnValue: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + returnValueForMissingStub: _i5.Future<_i2.Recording>.value( + _FakeRecording_39(this, Invocation.method(#start, [listener])), + ), + ) as _i5.Future<_i2.Recording>); + + @override + _i2.PendingRecording pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePendingRecording_40( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.PendingRecording); } /// A class which mocks [PlaneProxy]. @@ -3056,61 +2743,51 @@ class MockPendingRecording extends _i1.Mock implements _i2.PendingRecording { /// See the documentation for Mockito's code generation for more information. class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { @override - _i9.Uint8List get buffer => - (super.noSuchMethod( - Invocation.getter(#buffer), - returnValue: _i9.Uint8List(0), - returnValueForMissingStub: _i9.Uint8List(0), - ) - as _i9.Uint8List); - - @override - int get pixelStride => - (super.noSuchMethod( - Invocation.getter(#pixelStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - int get rowStride => - (super.noSuchMethod( - Invocation.getter(#rowStride), - returnValue: 0, - returnValueForMissingStub: 0, - ) - as int); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.PlaneProxy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePlaneProxy_41( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePlaneProxy_41( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.PlaneProxy); + _i9.Uint8List get buffer => (super.noSuchMethod( + Invocation.getter(#buffer), + returnValue: _i9.Uint8List(0), + returnValueForMissingStub: _i9.Uint8List(0), + ) as _i9.Uint8List); + + @override + int get pixelStride => (super.noSuchMethod( + Invocation.getter(#pixelStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + int get rowStride => (super.noSuchMethod( + Invocation.getter(#rowStride), + returnValue: 0, + returnValueForMissingStub: 0, + ) as int); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.PlaneProxy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePlaneProxy_41( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.PlaneProxy); } /// A class which mocks [Preview]. @@ -3118,81 +2795,69 @@ class MockPlaneProxy extends _i1.Mock implements _i2.PlaneProxy { /// See the documentation for Mockito's code generation for more information. class MockPreview extends _i1.Mock implements _i2.Preview { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future setSurfaceProvider( _i2.SystemServicesManager? systemServicesManager, ) => (super.noSuchMethod( - Invocation.method(#setSurfaceProvider, [systemServicesManager]), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); + Invocation.method(#setSurfaceProvider, [systemServicesManager]), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); @override - _i5.Future releaseSurfaceProvider() => - (super.noSuchMethod( - Invocation.method(#releaseSurfaceProvider, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future releaseSurfaceProvider() => (super.noSuchMethod( + Invocation.method(#releaseSurfaceProvider, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => - (super.noSuchMethod( - Invocation.method(#getResolutionInfo, []), - returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), - returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), - ) - as _i5.Future<_i2.ResolutionInfo?>); + _i5.Future<_i2.ResolutionInfo?> getResolutionInfo() => (super.noSuchMethod( + Invocation.method(#getResolutionInfo, []), + returnValue: _i5.Future<_i2.ResolutionInfo?>.value(), + returnValueForMissingStub: _i5.Future<_i2.ResolutionInfo?>.value(), + ) as _i5.Future<_i2.ResolutionInfo?>); @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override _i5.Future surfaceProducerHandlesCropAndRotation() => (super.noSuchMethod( - Invocation.method(#surfaceProducerHandlesCropAndRotation, []), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) - as _i5.Future); + Invocation.method(#surfaceProducerHandlesCropAndRotation, []), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) as _i5.Future); @override - _i2.Preview pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakePreview_19( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakePreview_19( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Preview); + _i2.Preview pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakePreview_19( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Preview); } /// A class which mocks [ProcessCameraProvider]. @@ -3201,32 +2866,29 @@ class MockPreview extends _i1.Mock implements _i2.Preview { class MockProcessCameraProvider extends _i1.Mock implements _i2.ProcessCameraProvider { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future> getAvailableCameraInfos() => (super.noSuchMethod( - Invocation.method(#getAvailableCameraInfos, []), - returnValue: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - returnValueForMissingStub: _i5.Future>.value( - <_i2.CameraInfo>[], - ), - ) - as _i5.Future>); + Invocation.method(#getAvailableCameraInfos, []), + returnValue: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + returnValueForMissingStub: _i5.Future>.value( + <_i2.CameraInfo>[], + ), + ) as _i5.Future>); @override _i5.Future<_i2.Camera> bindToLifecycle( @@ -3234,63 +2896,54 @@ class MockProcessCameraProvider extends _i1.Mock List<_i2.UseCase>? useCases, ) => (super.noSuchMethod( + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + returnValue: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - returnValue: _i5.Future<_i2.Camera>.value( - _FakeCamera_5( - this, - Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.Camera>.value( - _FakeCamera_5( - this, - Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), - ), - ), - ) - as _i5.Future<_i2.Camera>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.Camera>.value( + _FakeCamera_5( + this, + Invocation.method(#bindToLifecycle, [cameraSelector, useCases]), + ), + ), + ) as _i5.Future<_i2.Camera>); @override - _i5.Future isBound(_i2.UseCase? useCase) => - (super.noSuchMethod( - Invocation.method(#isBound, [useCase]), - returnValue: _i5.Future.value(false), - returnValueForMissingStub: _i5.Future.value(false), - ) - as _i5.Future); + _i5.Future isBound(_i2.UseCase? useCase) => (super.noSuchMethod( + Invocation.method(#isBound, [useCase]), + returnValue: _i5.Future.value(false), + returnValueForMissingStub: _i5.Future.value(false), + ) as _i5.Future); @override - _i5.Future unbind(List<_i2.UseCase>? useCases) => - (super.noSuchMethod( - Invocation.method(#unbind, [useCases]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future unbind(List<_i2.UseCase>? useCases) => (super.noSuchMethod( + Invocation.method(#unbind, [useCases]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future unbindAll() => - (super.noSuchMethod( - Invocation.method(#unbindAll, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future unbindAll() => (super.noSuchMethod( + Invocation.method(#unbindAll, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.ProcessCameraProvider pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeProcessCameraProvider_33( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeProcessCameraProvider_33( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ProcessCameraProvider); + _i2.ProcessCameraProvider pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeProcessCameraProvider_33( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ProcessCameraProvider); } /// A class which mocks [QualitySelector]. @@ -3298,34 +2951,30 @@ class MockProcessCameraProvider extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.QualitySelector pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeQualitySelector_27( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeQualitySelector_27( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.QualitySelector); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.QualitySelector pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeQualitySelector_27( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.QualitySelector); } /// A class which mocks [Recorder]. @@ -3333,90 +2982,79 @@ class MockQualitySelector extends _i1.Mock implements _i2.QualitySelector { /// See the documentation for Mockito's code generation for more information. class MockRecorder extends _i1.Mock implements _i2.Recorder { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future getAspectRatio() => - (super.noSuchMethod( - Invocation.method(#getAspectRatio, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); - - @override - _i5.Future getTargetVideoEncodingBitRate() => - (super.noSuchMethod( - Invocation.method(#getTargetVideoEncodingBitRate, []), - returnValue: _i5.Future.value(0), - returnValueForMissingStub: _i5.Future.value(0), - ) - as _i5.Future); - - @override - _i5.Future<_i2.QualitySelector> getQualitySelector() => - (super.noSuchMethod( + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future getAspectRatio() => (super.noSuchMethod( + Invocation.method(#getAspectRatio, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); + + @override + _i5.Future getTargetVideoEncodingBitRate() => (super.noSuchMethod( + Invocation.method(#getTargetVideoEncodingBitRate, []), + returnValue: _i5.Future.value(0), + returnValueForMissingStub: _i5.Future.value(0), + ) as _i5.Future); + + @override + _i5.Future<_i2.QualitySelector> getQualitySelector() => (super.noSuchMethod( + Invocation.method(#getQualitySelector, []), + returnValue: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, Invocation.method(#getQualitySelector, []), - returnValue: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( - this, - Invocation.method(#getQualitySelector, []), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( - _FakeQualitySelector_27( - this, - Invocation.method(#getQualitySelector, []), - ), - ), - ) - as _i5.Future<_i2.QualitySelector>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.QualitySelector>.value( + _FakeQualitySelector_27( + this, + Invocation.method(#getQualitySelector, []), + ), + ), + ) as _i5.Future<_i2.QualitySelector>); @override _i5.Future<_i2.PendingRecording> prepareRecording(String? path) => (super.noSuchMethod( + Invocation.method(#prepareRecording, [path]), + returnValue: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, Invocation.method(#prepareRecording, [path]), - returnValue: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_40( - this, - Invocation.method(#prepareRecording, [path]), - ), - ), - returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( - _FakePendingRecording_40( - this, - Invocation.method(#prepareRecording, [path]), - ), - ), - ) - as _i5.Future<_i2.PendingRecording>); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.PendingRecording>.value( + _FakePendingRecording_40( + this, + Invocation.method(#prepareRecording, [path]), + ), + ), + ) as _i5.Future<_i2.PendingRecording>); @override - _i2.Recorder pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecorder_21( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeRecorder_21( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Recorder); + _i2.Recorder pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecorder_21( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Recorder); } /// A class which mocks [ResolutionFilter]. @@ -3424,34 +3062,30 @@ class MockRecorder extends _i1.Mock implements _i2.Recorder { /// See the documentation for Mockito's code generation for more information. class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.ResolutionFilter pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionFilter_31( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionFilter_31( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ResolutionFilter); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ResolutionFilter pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionFilter_31( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ResolutionFilter); } /// A class which mocks [ResolutionSelector]. @@ -3460,54 +3094,48 @@ class MockResolutionFilter extends _i1.Mock implements _i2.ResolutionFilter { class MockResolutionSelector extends _i1.Mock implements _i2.ResolutionSelector { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.AspectRatioStrategy> getAspectRatioStrategy() => (super.noSuchMethod( + Invocation.method(#getAspectRatioStrategy, []), + returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, Invocation.method(#getAspectRatioStrategy, []), - returnValue: _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, - Invocation.method(#getAspectRatioStrategy, []), - ), - ), - returnValueForMissingStub: - _i5.Future<_i2.AspectRatioStrategy>.value( - _FakeAspectRatioStrategy_2( - this, - Invocation.method(#getAspectRatioStrategy, []), - ), - ), - ) - as _i5.Future<_i2.AspectRatioStrategy>); - - @override - _i2.ResolutionSelector pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionSelector_25( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionSelector_25( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ResolutionSelector); + ), + ), + returnValueForMissingStub: _i5.Future<_i2.AspectRatioStrategy>.value( + _FakeAspectRatioStrategy_2( + this, + Invocation.method(#getAspectRatioStrategy, []), + ), + ), + ) as _i5.Future<_i2.AspectRatioStrategy>); + + @override + _i2.ResolutionSelector pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionSelector_25( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ResolutionSelector); } /// A class which mocks [ResolutionStrategy]. @@ -3516,57 +3144,50 @@ class MockResolutionSelector extends _i1.Mock class MockResolutionStrategy extends _i1.Mock implements _i2.ResolutionStrategy { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future<_i2.CameraSize?> getBoundSize() => - (super.noSuchMethod( - Invocation.method(#getBoundSize, []), - returnValue: _i5.Future<_i2.CameraSize?>.value(), - returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), - ) - as _i5.Future<_i2.CameraSize?>); + _i5.Future<_i2.CameraSize?> getBoundSize() => (super.noSuchMethod( + Invocation.method(#getBoundSize, []), + returnValue: _i5.Future<_i2.CameraSize?>.value(), + returnValueForMissingStub: _i5.Future<_i2.CameraSize?>.value(), + ) as _i5.Future<_i2.CameraSize?>); @override _i5.Future<_i2.ResolutionStrategyFallbackRule> getFallbackRule() => (super.noSuchMethod( - Invocation.method(#getFallbackRule, []), - returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher, - ), - returnValueForMissingStub: - _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( - _i2.ResolutionStrategyFallbackRule.closestHigher, - ), - ) - as _i5.Future<_i2.ResolutionStrategyFallbackRule>); - - @override - _i2.ResolutionStrategy pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeResolutionStrategy_24( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeResolutionStrategy_24( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ResolutionStrategy); + Invocation.method(#getFallbackRule, []), + returnValue: _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + returnValueForMissingStub: + _i5.Future<_i2.ResolutionStrategyFallbackRule>.value( + _i2.ResolutionStrategyFallbackRule.closestHigher, + ), + ) as _i5.Future<_i2.ResolutionStrategyFallbackRule>); + + @override + _i2.ResolutionStrategy pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeResolutionStrategy_24( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ResolutionStrategy); } /// A class which mocks [Recording]. @@ -3574,70 +3195,58 @@ class MockResolutionStrategy extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockRecording extends _i1.Mock implements _i2.Recording { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future close() => - (super.noSuchMethod( - Invocation.method(#close, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future close() => (super.noSuchMethod( + Invocation.method(#close, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future pause() => - (super.noSuchMethod( - Invocation.method(#pause, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future pause() => (super.noSuchMethod( + Invocation.method(#pause, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future resume() => - (super.noSuchMethod( - Invocation.method(#resume, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future resume() => (super.noSuchMethod( + Invocation.method(#resume, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future stop() => - (super.noSuchMethod( - Invocation.method(#stop, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future stop() => (super.noSuchMethod( + Invocation.method(#stop, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i2.Recording pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeRecording_39( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeRecording_39( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.Recording); + _i2.Recording pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeRecording_39( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.Recording); } /// A class which mocks [SystemServicesManager]. @@ -3648,80 +3257,71 @@ class MockSystemServicesManager extends _i1.Mock @override void Function(_i2.SystemServicesManager, String) get onCameraError => (super.noSuchMethod( - Invocation.getter(#onCameraError), - returnValue: - ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - returnValueForMissingStub: - ( - _i2.SystemServicesManager pigeon_instance, - String errorDescription, - ) {}, - ) - as void Function(_i2.SystemServicesManager, String)); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + Invocation.getter(#onCameraError), + returnValue: ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + returnValueForMissingStub: ( + _i2.SystemServicesManager pigeon_instance, + String errorDescription, + ) {}, + ) as void Function(_i2.SystemServicesManager, String)); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override _i5.Future<_i2.CameraPermissionsError?> requestCameraPermissions( bool? enableAudio, ) => (super.noSuchMethod( - Invocation.method(#requestCameraPermissions, [enableAudio]), - returnValue: _i5.Future<_i2.CameraPermissionsError?>.value(), - returnValueForMissingStub: - _i5.Future<_i2.CameraPermissionsError?>.value(), - ) - as _i5.Future<_i2.CameraPermissionsError?>); + Invocation.method(#requestCameraPermissions, [enableAudio]), + returnValue: _i5.Future<_i2.CameraPermissionsError?>.value(), + returnValueForMissingStub: + _i5.Future<_i2.CameraPermissionsError?>.value(), + ) as _i5.Future<_i2.CameraPermissionsError?>); @override _i5.Future getTempFilePath(String? prefix, String? suffix) => (super.noSuchMethod( + Invocation.method(#getTempFilePath, [prefix, suffix]), + returnValue: _i5.Future.value( + _i6.dummyValue( + this, Invocation.method(#getTempFilePath, [prefix, suffix]), - returnValue: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getTempFilePath, [prefix, suffix]), - ), - ), - returnValueForMissingStub: _i5.Future.value( - _i6.dummyValue( - this, - Invocation.method(#getTempFilePath, [prefix, suffix]), - ), - ), - ) - as _i5.Future); + ), + ), + returnValueForMissingStub: _i5.Future.value( + _i6.dummyValue( + this, + Invocation.method(#getTempFilePath, [prefix, suffix]), + ), + ), + ) as _i5.Future); @override - _i2.SystemServicesManager pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeSystemServicesManager_17( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeSystemServicesManager_17( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.SystemServicesManager); + _i2.SystemServicesManager pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeSystemServicesManager_17( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.SystemServicesManager); } /// A class which mocks [VideoCapture]. @@ -3729,56 +3329,48 @@ class MockSystemServicesManager extends _i1.Mock /// See the documentation for Mockito's code generation for more information. class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i5.Future<_i2.VideoOutput> getOutput() => - (super.noSuchMethod( - Invocation.method(#getOutput, []), - returnValue: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), - ), - returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( - _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), - ), - ) - as _i5.Future<_i2.VideoOutput>); - - @override - _i5.Future setTargetRotation(int? rotation) => - (super.noSuchMethod( - Invocation.method(#setTargetRotation, [rotation]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); - - @override - _i2.VideoCapture pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeVideoCapture_20( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeVideoCapture_20( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.VideoCapture); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i5.Future<_i2.VideoOutput> getOutput() => (super.noSuchMethod( + Invocation.method(#getOutput, []), + returnValue: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + returnValueForMissingStub: _i5.Future<_i2.VideoOutput>.value( + _FakeVideoOutput_42(this, Invocation.method(#getOutput, [])), + ), + ) as _i5.Future<_i2.VideoOutput>); + + @override + _i5.Future setTargetRotation(int? rotation) => (super.noSuchMethod( + Invocation.method(#setTargetRotation, [rotation]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); + + @override + _i2.VideoCapture pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeVideoCapture_20( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.VideoCapture); } /// A class which mocks [ZoomState]. @@ -3786,52 +3378,44 @@ class MockVideoCapture extends _i1.Mock implements _i2.VideoCapture { /// See the documentation for Mockito's code generation for more information. class MockZoomState extends _i1.Mock implements _i2.ZoomState { @override - double get minZoomRatio => - (super.noSuchMethod( - Invocation.getter(#minZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) - as double); - - @override - double get maxZoomRatio => - (super.noSuchMethod( - Invocation.getter(#maxZoomRatio), - returnValue: 0.0, - returnValueForMissingStub: 0.0, - ) - as double); - - @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - returnValueForMissingStub: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); - - @override - _i2.ZoomState pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeZoomState_43( - this, - Invocation.method(#pigeon_copy, []), - ), - returnValueForMissingStub: _FakeZoomState_43( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i2.ZoomState); + double get minZoomRatio => (super.noSuchMethod( + Invocation.getter(#minZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) as double); + + @override + double get maxZoomRatio => (super.noSuchMethod( + Invocation.getter(#maxZoomRatio), + returnValue: 0.0, + returnValueForMissingStub: 0.0, + ) as double); + + @override + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + returnValueForMissingStub: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); + + @override + _i2.ZoomState pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + returnValueForMissingStub: _FakeZoomState_43( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i2.ZoomState); } /// A class which mocks [LiveData]. @@ -3844,60 +3428,48 @@ class MockLiveCameraState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => - (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) - as _i2.LiveDataSupportedType); + _i2.LiveDataSupportedType get type => (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) as _i2.LiveDataSupportedType); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future observe(_i2.Observer? observer) => - (super.noSuchMethod( - Invocation.method(#observe, [observer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.CameraState?> getValue() => - (super.noSuchMethod( - Invocation.method(#getValue, []), - returnValue: _i5.Future<_i2.CameraState?>.value(), - ) - as _i5.Future<_i2.CameraState?>); + _i5.Future<_i2.CameraState?> getValue() => (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.CameraState?>.value(), + ) as _i5.Future<_i2.CameraState?>); @override - _i3.LiveData<_i2.CameraState> pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeLiveData_7<_i2.CameraState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.LiveData<_i2.CameraState>); + _i3.LiveData<_i2.CameraState> pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.CameraState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.LiveData<_i2.CameraState>); @override - _i5.Future removeObservers() => - (super.noSuchMethod( - Invocation.method(#removeObservers, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future removeObservers() => (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); } /// A class which mocks [LiveData]. @@ -3910,58 +3482,46 @@ class MockLiveZoomState extends _i1.Mock } @override - _i2.LiveDataSupportedType get type => - (super.noSuchMethod( - Invocation.getter(#type), - returnValue: _i2.LiveDataSupportedType.cameraState, - ) - as _i2.LiveDataSupportedType); + _i2.LiveDataSupportedType get type => (super.noSuchMethod( + Invocation.getter(#type), + returnValue: _i2.LiveDataSupportedType.cameraState, + ) as _i2.LiveDataSupportedType); @override - _i2.PigeonInstanceManager get pigeon_instanceManager => - (super.noSuchMethod( - Invocation.getter(#pigeon_instanceManager), - returnValue: _FakePigeonInstanceManager_0( - this, - Invocation.getter(#pigeon_instanceManager), - ), - ) - as _i2.PigeonInstanceManager); + _i2.PigeonInstanceManager get pigeon_instanceManager => (super.noSuchMethod( + Invocation.getter(#pigeon_instanceManager), + returnValue: _FakePigeonInstanceManager_0( + this, + Invocation.getter(#pigeon_instanceManager), + ), + ) as _i2.PigeonInstanceManager); @override - _i5.Future observe(_i2.Observer? observer) => - (super.noSuchMethod( - Invocation.method(#observe, [observer]), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future observe(_i2.Observer? observer) => (super.noSuchMethod( + Invocation.method(#observe, [observer]), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); @override - _i5.Future<_i2.ZoomState?> getValue() => - (super.noSuchMethod( - Invocation.method(#getValue, []), - returnValue: _i5.Future<_i2.ZoomState?>.value(), - ) - as _i5.Future<_i2.ZoomState?>); + _i5.Future<_i2.ZoomState?> getValue() => (super.noSuchMethod( + Invocation.method(#getValue, []), + returnValue: _i5.Future<_i2.ZoomState?>.value(), + ) as _i5.Future<_i2.ZoomState?>); @override - _i3.LiveData<_i2.ZoomState> pigeon_copy() => - (super.noSuchMethod( - Invocation.method(#pigeon_copy, []), - returnValue: _FakeLiveData_7<_i2.ZoomState>( - this, - Invocation.method(#pigeon_copy, []), - ), - ) - as _i3.LiveData<_i2.ZoomState>); + _i3.LiveData<_i2.ZoomState> pigeon_copy() => (super.noSuchMethod( + Invocation.method(#pigeon_copy, []), + returnValue: _FakeLiveData_7<_i2.ZoomState>( + this, + Invocation.method(#pigeon_copy, []), + ), + ) as _i3.LiveData<_i2.ZoomState>); @override - _i5.Future removeObservers() => - (super.noSuchMethod( - Invocation.method(#removeObservers, []), - returnValue: _i5.Future.value(), - returnValueForMissingStub: _i5.Future.value(), - ) - as _i5.Future); + _i5.Future removeObservers() => (super.noSuchMethod( + Invocation.method(#removeObservers, []), + returnValue: _i5.Future.value(), + returnValueForMissingStub: _i5.Future.value(), + ) as _i5.Future); } diff --git a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart index b4b047fa2a7..fc651d779ce 100644 --- a/packages/camera/camera_android_camerax/test/preview_rotation_test.dart +++ b/packages/camera/camera_android_camerax/test/preview_rotation_test.dart @@ -26,7 +26,7 @@ void main() { /// /// Returns mock ProcessCameraProvider that is used to select test camera. MockProcessCameraProvider - setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera({ + setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera({ required MockCameraSelector mockCameraSelector, required int sensorRotationDegrees, }) { @@ -69,35 +69,34 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) - createCameraSelector, + }) createCameraSelector, required bool handlesCropAndRotation, required Future Function() getUiOrientation, - }) => CameraXProxy( - getInstanceProcessCameraProvider: - ({ + }) => + CameraXProxy( + getInstanceProcessCameraProvider: ({ // ignore: non_constant_identifier_names BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) async => mockProcessCameraProvider, - newCameraSelector: createCameraSelector, - newPreview: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockPreview preview = MockPreview(); - when( - preview.surfaceProducerHandlesCropAndRotation(), - ).thenAnswer((_) async => handlesCropAndRotation); - return preview; - }, - newImageCapture: - ({ + }) async => + mockProcessCameraProvider, + newCameraSelector: createCameraSelector, + newPreview: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockPreview preview = MockPreview(); + when( + preview.surfaceProducerHandlesCropAndRotation(), + ).thenAnswer((_) async => handlesCropAndRotation); + return preview; + }, + newImageCapture: ({ int? targetRotation, CameraXFlashMode? flashMode, ResolutionSelector? resolutionSelector, @@ -105,9 +104,9 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) => MockImageCapture(), - newRecorder: - ({ + }) => + MockImageCapture(), + newRecorder: ({ int? aspectRatio, int? targetVideoEncodingBitRate, QualitySelector? qualitySelector, @@ -115,152 +114,155 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) => MockRecorder(), - withOutputVideoCapture: ({ - required VideoOutput videoOutput, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockVideoCapture(); - }, - newImageAnalysis: ({ - int? targetRotation, - ResolutionSelector? resolutionSelector, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockImageAnalysis(); - }, - newResolutionStrategy: ({ - required CameraSize boundSize, - required ResolutionStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionStrategy(); - }, - newResolutionSelector: ({ - AspectRatioStrategy? aspectRatioStrategy, - ResolutionStrategy? resolutionStrategy, - ResolutionFilter? resolutionFilter, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionSelector(); - }, - lowerQualityOrHigherThanFallbackStrategy: ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, - lowerQualityThanFallbackStrategy: ({ - required VideoQuality quality, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockFallbackStrategy(); - }, - fromCamera2CameraInfo: ({ - required CameraInfo cameraInfo, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockCamera2CameraInfo camera2cameraInfo = MockCamera2CameraInfo(); - when( - camera2cameraInfo.getCameraCharacteristic(any), - ).thenAnswer((_) async => 90); - return camera2cameraInfo; - }, - fromQualitySelector: ({ - required VideoQuality quality, - FallbackStrategy? fallbackStrategy, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockQualitySelector(); - }, - newObserver: ({ - required void Function(Observer, T) onChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return Observer.detached( - onChanged: onChanged, - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), + }) => + MockRecorder(), + withOutputVideoCapture: ({ + required VideoOutput videoOutput, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockVideoCapture(); + }, + newImageAnalysis: ({ + int? targetRotation, + ResolutionSelector? resolutionSelector, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockImageAnalysis(); + }, + newResolutionStrategy: ({ + required CameraSize boundSize, + required ResolutionStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionStrategy(); + }, + newResolutionSelector: ({ + AspectRatioStrategy? aspectRatioStrategy, + ResolutionStrategy? resolutionStrategy, + ResolutionFilter? resolutionFilter, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionSelector(); + }, + lowerQualityOrHigherThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + lowerQualityThanFallbackStrategy: ({ + required VideoQuality quality, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockFallbackStrategy(); + }, + fromCamera2CameraInfo: ({ + required CameraInfo cameraInfo, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockCamera2CameraInfo camera2cameraInfo = + MockCamera2CameraInfo(); + when( + camera2cameraInfo.getCameraCharacteristic(any), + ).thenAnswer((_) async => 90); + return camera2cameraInfo; + }, + fromQualitySelector: ({ + required VideoQuality quality, + FallbackStrategy? fallbackStrategy, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockQualitySelector(); + }, + newObserver: ({ + required void Function(Observer, T) onChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return Observer.detached( + onChanged: onChanged, + pigeon_instanceManager: PigeonInstanceManager( + onWeakReferenceRemoved: (_) {}, + ), + ); + }, + newSystemServicesManager: ({ + required void Function(SystemServicesManager, String) onCameraError, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockSystemServicesManager(); + }, + newDeviceOrientationManager: ({ + required void Function(DeviceOrientationManager, String) + onDeviceOrientationChanged, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockDeviceOrientationManager manager = + MockDeviceOrientationManager(); + when(manager.getUiOrientation()) + .thenAnswer((_) => getUiOrientation()); + return manager; + }, // 3 is a random Flutter SurfaceTexture ID for testing + newAspectRatioStrategy: ({ + required AspectRatio preferredAspectRatio, + required AspectRatioStrategyFallbackRule fallbackRule, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + final MockAspectRatioStrategy mockAspectRatioStrategy = + MockAspectRatioStrategy(); + when( + mockAspectRatioStrategy.getFallbackRule(), + ).thenAnswer((_) async => fallbackRule); + when( + mockAspectRatioStrategy.getPreferredAspectRatio(), + ).thenAnswer((_) async => preferredAspectRatio); + return mockAspectRatioStrategy; + }, + createWithOnePreferredSizeResolutionFilter: ({ + required CameraSize preferredSize, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) { + return MockResolutionFilter(); + }, ); - }, - newSystemServicesManager: ({ - required void Function(SystemServicesManager, String) onCameraError, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockSystemServicesManager(); - }, - newDeviceOrientationManager: ({ - required void Function(DeviceOrientationManager, String) - onDeviceOrientationChanged, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockDeviceOrientationManager manager = - MockDeviceOrientationManager(); - when(manager.getUiOrientation()).thenAnswer((_) => getUiOrientation()); - return manager; - }, // 3 is a random Flutter SurfaceTexture ID for testing - newAspectRatioStrategy: ({ - required AspectRatio preferredAspectRatio, - required AspectRatioStrategyFallbackRule fallbackRule, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - final MockAspectRatioStrategy mockAspectRatioStrategy = - MockAspectRatioStrategy(); - when( - mockAspectRatioStrategy.getFallbackRule(), - ).thenAnswer((_) async => fallbackRule); - when( - mockAspectRatioStrategy.getPreferredAspectRatio(), - ).thenAnswer((_) async => preferredAspectRatio); - return mockAspectRatioStrategy; - }, - createWithOnePreferredSizeResolutionFilter: ({ - required CameraSize preferredSize, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) { - return MockResolutionFilter(); - }, - ); /// Returns function that a CameraXProxy can use to select the front camera. MockCameraSelector Function({ @@ -269,8 +271,7 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) - createCameraSelectorForFrontCamera(MockCameraSelector mockCameraSelector) { + }) createCameraSelectorForFrontCamera(MockCameraSelector mockCameraSelector) { return ({ LensFacing? requireLensFacing, // ignore: non_constant_identifier_names @@ -297,8 +298,7 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) - createCameraSelectorForBackCamera(MockCameraSelector mockCameraSelector) { + }) createCameraSelectorForBackCamera(MockCameraSelector mockCameraSelector) { return ({ LensFacing? requireLensFacing, // ignore: non_constant_identifier_names @@ -338,23 +338,22 @@ void main() { final MockCameraSelector mockCameraSelector = MockCameraSelector(); final MockProcessCameraProvider mockProcessCameraProvider = setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockCameraSelector, - sensorRotationDegrees: /* irrelevant for test */ 90, - ); + mockCameraSelector: mockCameraSelector, + sensorRotationDegrees: /* irrelevant for test */ 90, + ); camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, - createCameraSelector: - ({ - LensFacing? requireLensFacing, - // ignore: non_constant_identifier_names - BinaryMessenger? pigeon_binaryMessenger, - // ignore: non_constant_identifier_names - PigeonInstanceManager? pigeon_instanceManager, - }) => mockCameraSelector, + createCameraSelector: ({ + LensFacing? requireLensFacing, + // ignore: non_constant_identifier_names + BinaryMessenger? pigeon_binaryMessenger, + // ignore: non_constant_identifier_names + PigeonInstanceManager? pigeon_instanceManager, + }) => + mockCameraSelector, handlesCropAndRotation: true, - /* irrelevant for test */ getUiOrientation: - () async => - _serializeDeviceOrientation(DeviceOrientation.landscapeLeft), + /* irrelevant for test */ getUiOrientation: () async => + _serializeDeviceOrientation(DeviceOrientation.landscapeLeft), ); // Get and create test camera. @@ -393,8 +392,7 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) - proxyCreateCameraSelectorForFrontCamera; + }) proxyCreateCameraSelectorForFrontCamera; late MockProcessCameraProvider mockProcessCameraProviderForFrontCamera; late MediaSettings testMediaSettings; @@ -409,9 +407,9 @@ void main() { createCameraSelectorForFrontCamera(mockFrontCameraSelector); mockProcessCameraProviderForFrontCamera = setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockFrontCameraSelector, - sensorRotationDegrees: 270, - ); + mockCameraSelector: mockFrontCameraSelector, + sensorRotationDegrees: 270, + ); // Media settings to create camera; irrelevant for test. testMediaSettings = const MediaSettings(); @@ -426,9 +424,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: - () async => - _serializeDeviceOrientation(DeviceOrientation.portraitUp), + getUiOrientation: () async => + _serializeDeviceOrientation(DeviceOrientation.portraitUp), ); // Get and create test front camera. @@ -470,10 +467,9 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: - () async => _serializeDeviceOrientation( - DeviceOrientation.landscapeRight, - ), + getUiOrientation: () async => _serializeDeviceOrientation( + DeviceOrientation.landscapeRight, + ), ); // Get and create test front camera. @@ -515,9 +511,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: - () async => - _serializeDeviceOrientation(DeviceOrientation.portraitDown), + getUiOrientation: () async => + _serializeDeviceOrientation(DeviceOrientation.portraitDown), ); // Get and create test front camera. @@ -560,10 +555,9 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForFrontCamera, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: - () async => _serializeDeviceOrientation( - DeviceOrientation.landscapeLeft, - ), + getUiOrientation: () async => _serializeDeviceOrientation( + DeviceOrientation.landscapeLeft, + ), ); // Get and create test front camera. @@ -613,15 +607,14 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) - proxyCreateCameraSelectorForFrontCamera = + }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForFrontCamera(mockFrontCameraSelector); final MockProcessCameraProvider - mockProcessCameraProviderForFrontCamera = + mockProcessCameraProviderForFrontCamera = setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockFrontCameraSelector, - sensorRotationDegrees: 90, - ); + mockCameraSelector: mockFrontCameraSelector, + sensorRotationDegrees: 90, + ); // Media settings to create camera; irrelevant for test. const MediaSettings testMediaSettings = MediaSettings(); @@ -650,11 +643,11 @@ void main() { // ((90 - currentDeviceOrientation * 1 + 360) % 360) - currentDeviceOrientation. final Map expectedRotationPerDeviceOrientation = { - DeviceOrientation.portraitUp: _90DegreesClockwise, - DeviceOrientation.landscapeRight: _270DegreesClockwise, - DeviceOrientation.portraitDown: _90DegreesClockwise, - DeviceOrientation.landscapeLeft: _270DegreesClockwise, - }; + DeviceOrientation.portraitUp: _90DegreesClockwise, + DeviceOrientation.landscapeRight: _270DegreesClockwise, + DeviceOrientation.portraitDown: _90DegreesClockwise, + DeviceOrientation.landscapeLeft: _270DegreesClockwise, + }; // Put camera preview in widget tree. await tester.pumpWidget(camera.buildPreview(cameraId)); @@ -675,10 +668,9 @@ void main() { final RotatedBox rotatedBox = tester.widget( find.byType(RotatedBox), ); - final int clockwiseQuarterTurns = - rotatedBox.quarterTurns < 0 - ? rotatedBox.quarterTurns + 4 - : rotatedBox.quarterTurns; + final int clockwiseQuarterTurns = rotatedBox.quarterTurns < 0 + ? rotatedBox.quarterTurns + 4 + : rotatedBox.quarterTurns; expect(rotatedBox.child, isA()); expect((rotatedBox.child! as Texture).textureId, cameraId); expect( @@ -708,8 +700,7 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) - proxyCreateCameraSelectorForBackCamera; + }) proxyCreateCameraSelectorForBackCamera; late MediaSettings testMediaSettings; late DeviceOrientation testInitialDeviceOrientation; @@ -735,11 +726,11 @@ void main() { // Create mock ProcessCameraProvider that will acknowledge that the test back camera with sensor orientation degrees // 90 is available. final MockProcessCameraProvider - mockProcessCameraProviderForBackCamera = + mockProcessCameraProviderForBackCamera = setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockBackCameraSelector, - sensorRotationDegrees: 90, - ); + mockCameraSelector: mockBackCameraSelector, + sensorRotationDegrees: 90, + ); // Set up test to use back camera, tell camera that handlesCropAndRotation is false, // set camera initial device orientation to landscape left. @@ -747,9 +738,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, createCameraSelector: proxyCreateCameraSelectorForBackCamera, handlesCropAndRotation: false, - getUiOrientation: - () async => - _serializeDeviceOrientation(testInitialDeviceOrientation), + getUiOrientation: () async => + _serializeDeviceOrientation(testInitialDeviceOrientation), ); // Get and create test back camera. @@ -789,11 +779,11 @@ void main() { // Create mock ProcessCameraProvider that will acknowledge that the test back camera with sensor orientation degrees // 270 is available. final MockProcessCameraProvider - mockProcessCameraProviderForBackCamera = + mockProcessCameraProviderForBackCamera = setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockBackCameraSelector, - sensorRotationDegrees: 270, - ); + mockCameraSelector: mockBackCameraSelector, + sensorRotationDegrees: 270, + ); // Set up test to use back camera, tell camera that handlesCropAndRotation is false, // set camera initial device orientation to landscape left. @@ -801,9 +791,8 @@ void main() { mockProcessCameraProvider: mockProcessCameraProviderForBackCamera, createCameraSelector: proxyCreateCameraSelectorForBackCamera, handlesCropAndRotation: false, - getUiOrientation: - () async => - _serializeDeviceOrientation(testInitialDeviceOrientation), + getUiOrientation: () async => + _serializeDeviceOrientation(testInitialDeviceOrientation), ); // Get and create test back camera. @@ -869,9 +858,9 @@ void main() { MockCameraSelector(); final MockProcessCameraProvider mockProcessCameraProvider = setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockFrontCameraSelector, - sensorRotationDegrees: testSensorOrientation, - ); + mockCameraSelector: mockFrontCameraSelector, + sensorRotationDegrees: testSensorOrientation, + ); // Set up front camera selection and initial device orientation as landscape right. final MockCameraSelector Function({ @@ -880,16 +869,14 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) - proxyCreateCameraSelectorForFrontCamera = + }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForFrontCamera(mockFrontCameraSelector); camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: - () async => - _serializeDeviceOrientation(testInitialDeviceOrientation), + getUiOrientation: () async => + _serializeDeviceOrientation(testInitialDeviceOrientation), ); // Get and create test camera. @@ -931,9 +918,9 @@ void main() { MockCameraSelector(); final MockProcessCameraProvider mockProcessCameraProvider = setUpMockCameraSelectorAndMockProcessCameraProviderForSelectingTestCamera( - mockCameraSelector: mockBackCameraSelector, - sensorRotationDegrees: testSensorOrientation, - ); + mockCameraSelector: mockBackCameraSelector, + sensorRotationDegrees: testSensorOrientation, + ); // Set up front camera selection and initial device orientation as landscape right. final MockCameraSelector Function({ @@ -942,16 +929,14 @@ void main() { BinaryMessenger? pigeon_binaryMessenger, // ignore: non_constant_identifier_names PigeonInstanceManager? pigeon_instanceManager, - }) - proxyCreateCameraSelectorForFrontCamera = + }) proxyCreateCameraSelectorForFrontCamera = createCameraSelectorForBackCamera(mockBackCameraSelector); camera.proxy = getProxyForCreatingTestCamera( mockProcessCameraProvider: mockProcessCameraProvider, createCameraSelector: proxyCreateCameraSelectorForFrontCamera, handlesCropAndRotation: false, - getUiOrientation: - () async => - _serializeDeviceOrientation(testInitialDeviceOrientation), + getUiOrientation: () async => + _serializeDeviceOrientation(testInitialDeviceOrientation), ); // Get and create test camera. From 892b96eb2be76ff5843c5cff3afe810018682460 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Wed, 2 Apr 2025 16:47:58 -0400 Subject: [PATCH 136/148] uncomment --- .../camera/camera_android_camerax/example/android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/example/android/build.gradle b/packages/camera/camera_android_camerax/example/android/build.gradle index 8bd358f5a5f..76edbf940bb 100644 --- a/packages/camera/camera_android_camerax/example/android/build.gradle +++ b/packages/camera/camera_android_camerax/example/android/build.gradle @@ -30,7 +30,7 @@ tasks.register("clean", Delete) { gradle.projectsEvaluated { project(":camera_android_camerax") { tasks.withType(JavaCompile) { - //options.compilerArgs << "-Xlint:all" << "-Werror" + options.compilerArgs << "-Xlint:all" << "-Werror" } } } From 5036d7490bc9798256e6ec9c98ae605d84cb4e34 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 3 Apr 2025 14:33:30 -0400 Subject: [PATCH 137/148] add expected pattern to tests --- .../java/io/flutter/plugins/camerax/AnalyzerTest.java | 4 ++-- .../plugins/camerax/AspectRatioStrategyTest.java | 6 +++--- .../plugins/camerax/Camera2CameraControlTest.java | 2 +- .../flutter/plugins/camerax/Camera2CameraInfoTest.java | 4 ++-- .../plugins/camerax/CameraIntegerRangeTest.java | 6 +++--- .../plugins/camerax/CameraPermissionsErrorTest.java | 4 ++-- .../io/flutter/plugins/camerax/CameraSelectorTest.java | 4 ++-- .../io/flutter/plugins/camerax/CameraSizeTest.java | 6 +++--- .../plugins/camerax/CameraStateStateErrorTest.java | 2 +- .../io/flutter/plugins/camerax/CameraStateTest.java | 4 ++-- .../plugins/camerax/CaptureRequestOptionsTest.java | 4 ++-- .../camerax/DeviceOrientationManagerApiTest.java | 10 +++++----- .../io/flutter/plugins/camerax/ExposureStateTest.java | 4 ++-- .../flutter/plugins/camerax/FallbackStrategyTest.java | 8 ++++---- .../camerax/FocusMeteringActionBuilderTest.java | 8 ++++---- .../plugins/camerax/FocusMeteringActionTest.java | 8 ++++---- .../plugins/camerax/FocusMeteringResultTest.java | 2 +- .../io/flutter/plugins/camerax/ImageAnalysisTest.java | 4 ++-- .../io/flutter/plugins/camerax/ImageCaptureTest.java | 4 ++-- .../io/flutter/plugins/camerax/ImageProxyTest.java | 10 +++++----- .../java/io/flutter/plugins/camerax/LiveDataTest.java | 8 ++++---- .../plugins/camerax/MeteringPointFactoryTest.java | 4 ++-- .../io/flutter/plugins/camerax/MeteringPointTest.java | 2 +- .../java/io/flutter/plugins/camerax/ObserverTest.java | 2 +- .../flutter/plugins/camerax/PendingRecordingTest.java | 2 +- .../io/flutter/plugins/camerax/PlaneProxyTest.java | 4 ++-- .../java/io/flutter/plugins/camerax/PreviewTest.java | 10 +++++----- .../plugins/camerax/ProcessCameraProviderTest.java | 10 +++++----- .../flutter/plugins/camerax/QualitySelectorTest.java | 4 ++-- .../java/io/flutter/plugins/camerax/RecorderTest.java | 8 ++++---- .../java/io/flutter/plugins/camerax/RecordingTest.java | 8 ++++---- .../flutter/plugins/camerax/ResolutionFilterTest.java | 2 +- .../io/flutter/plugins/camerax/ResolutionInfoTest.java | 2 +- .../plugins/camerax/ResolutionSelectorTest.java | 6 +++--- .../plugins/camerax/ResolutionStrategyTest.java | 6 +++--- .../io/flutter/plugins/camerax/VideoCaptureTest.java | 4 ++-- .../plugins/camerax/VideoRecordEventListenerTest.java | 4 ++-- .../java/io/flutter/plugins/camerax/ZoomStateTest.java | 4 ++-- 38 files changed, 97 insertions(+), 97 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java index 5be7f5f1952..f8f72677e2b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AnalyzerTest.java @@ -16,14 +16,14 @@ public class AnalyzerTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_makesCallToCreateAnalyzerInstance() { final PigeonApiAnalyzer api = new TestProxyApiRegistrar().getPigeonApiAnalyzer(); assertTrue(api.pigeon_defaultConstructor() instanceof AnalyzerProxyApi.AnalyzerImpl); } @Test - public void analyze() { + public void analyze_makesCallToDartAnalyze() { final AnalyzerProxyApi mockApi = mock(AnalyzerProxyApi.class); when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java index 9f8f1d280f9..61b9062fb2e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/AspectRatioStrategyTest.java @@ -13,7 +13,7 @@ public class AspectRatioStrategyTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsExpectedAspectRatioStrategyInstance() { final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); @@ -26,7 +26,7 @@ public void pigeon_defaultConstructor() { } @Test - public void getFallbackRule() { + public void getFallbackRule_returnsFallbackRuleOfInstance() { final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); @@ -39,7 +39,7 @@ public void getFallbackRule() { } @Test - public void getPreferredAspectRatio() { + public void getPreferredAspectRatio_returnAspectRatioOfInstance() { final PigeonApiAspectRatioStrategy api = new TestProxyApiRegistrar().getPigeonApiAspectRatioStrategy(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java index f3ba9f28b6b..2de54a18049 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraControlTest.java @@ -26,7 +26,7 @@ public class Camera2CameraControlTest { @Test - public void from() { + public void from_createsInstanceFromCameraControlInstance() { final PigeonApiCamera2CameraControl api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraControl(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java index d68ef8eb27e..8056de6496c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/Camera2CameraInfoTest.java @@ -18,7 +18,7 @@ public class Camera2CameraInfoTest { @Test - public void from() { + public void from_createsInstanceFromCameraInfoInstance() { final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); @@ -49,7 +49,7 @@ public void getCameraId_returnsExpectedId() { @SuppressWarnings("unchecked") @Test - public void getCameraCharacteristic() { + public void getCameraCharacteristic_returnsCorrespondingValueOfKey() { final PigeonApiCamera2CameraInfo api = new TestProxyApiRegistrar().getPigeonApiCamera2CameraInfo(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java index 7bbe70660a4..35c1099ecd9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraIntegerRangeTest.java @@ -12,7 +12,7 @@ public class CameraIntegerRangeTest { @SuppressWarnings("unchecked") @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsInstanceWithConstructorValues() { final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); @@ -25,7 +25,7 @@ public void pigeon_defaultConstructor() { } @Test - public void lower() { + public void lower_returnsValueOfLowerFromInstance() { final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); @@ -36,7 +36,7 @@ public void lower() { } @Test - public void upper() { + public void upper_returnsValueOfUpperFromInstance() { final PigeonApiCameraIntegerRange api = new TestProxyApiRegistrar().getPigeonApiCameraIntegerRange(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java index f50377f7d53..f07922d00a6 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraPermissionsErrorTest.java @@ -10,7 +10,7 @@ public class CameraPermissionsErrorTest { @Test - public void errorCode() { + public void errorCode_returnsValueOfErrorCodeFromInstance() { final PigeonApiCameraPermissionsError api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsError(); @@ -21,7 +21,7 @@ public void errorCode() { } @Test - public void description() { + public void description_returnsValueOfDescriptionFromInstance() { final PigeonApiCameraPermissionsError api = new TestProxyApiRegistrar().getPigeonApiCameraPermissionsError(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java index 5bc64a5e4de..93ab0014edd 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSelectorTest.java @@ -16,7 +16,7 @@ public class CameraSelectorTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsCameraSelectorInstanceWithLensFacing() { final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); final CameraSelector selector = @@ -26,7 +26,7 @@ public void pigeon_defaultConstructor() { } @Test - public void filter() { + public void filter_callsFilterWithMethodParameters() { final PigeonApiCameraSelector api = new TestProxyApiRegistrar().getPigeonApiCameraSelector(); final CameraSelector instance = mock(CameraSelector.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java index f2c2bd68bf5..4a7bf85b436 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraSizeTest.java @@ -13,7 +13,7 @@ public class CameraSizeTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsSizeInstanceWithWidthAndHeight() { final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); final int width = 6; @@ -25,7 +25,7 @@ public void pigeon_defaultConstructor() { } @Test - public void width() { + public void width_returnsWidthValueFromInstance() { final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); final Size instance = mock(Size.class); @@ -36,7 +36,7 @@ public void width() { } @Test - public void height() { + public void height_returnsHeightValueFromInstance() { final PigeonApiCameraSize api = new TestProxyApiRegistrar().getPigeonApiCameraSize(); final Size instance = mock(Size.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java index 1bb0cf44829..fc4a0c5574d 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateStateErrorTest.java @@ -13,7 +13,7 @@ public class CameraStateStateErrorTest { @Test - public void code() { + public void code_returnsCodeValueFromInstance() { final PigeonApiCameraStateStateError api = new TestProxyApiRegistrar().getPigeonApiCameraStateStateError(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java index 2f8cfe858dd..e7820c362ee 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CameraStateTest.java @@ -13,7 +13,7 @@ public class CameraStateTest { @Test - public void type() { + public void type_returnsExpectedType() { final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); final CameraState instance = mock(CameraState.class); @@ -24,7 +24,7 @@ public void type() { } @Test - public void error() { + public void error_returnsExpectedError() { final PigeonApiCameraState api = new TestProxyApiRegistrar().getPigeonApiCameraState(); final CameraState instance = mock(CameraState.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java index dd10e87ecf2..c10550d700f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/CaptureRequestOptionsTest.java @@ -18,7 +18,7 @@ public class CaptureRequestOptionsTest { @SuppressWarnings("unchecked") @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_buildsExpectedCaptureKeyRequestOptions() { final CaptureRequestOptions.Builder mockBuilder = mock(CaptureRequestOptions.Builder.class); final CaptureRequestOptions mockOptions = mock(CaptureRequestOptions.class); when(mockBuilder.build()).thenReturn(mockOptions); @@ -41,7 +41,7 @@ CaptureRequestOptions.Builder createBuilder() { @SuppressWarnings("unchecked") @Test - public void getCaptureRequestOption() { + public void getCaptureRequestOption_returnsExpectedCorrespondingRequestOption() { final PigeonApiCaptureRequestOptions api = new TestProxyApiRegistrar().getPigeonApiCaptureRequestOptions(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java index 390f4980a10..f3f7d0d579b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/DeviceOrientationManagerApiTest.java @@ -17,7 +17,7 @@ public class DeviceOrientationManagerApiTest { @Test - public void startListeningForDeviceOrientationChange() { + public void startListeningForDeviceOrientationChange_callsStartOnInstance() { final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); @@ -28,7 +28,7 @@ public void startListeningForDeviceOrientationChange() { } @Test - public void stopListeningForDeviceOrientationChange() { + public void stopListeningForDeviceOrientationChange_callsStopOnInstance() { final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); @@ -39,7 +39,7 @@ public void stopListeningForDeviceOrientationChange() { } @Test - public void getDefaultDisplayRotation() { + public void getDefaultDisplayRotation_returnsExpectedRotation() { final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); @@ -51,7 +51,7 @@ public void getDefaultDisplayRotation() { } @Test - public void getUiOrientation() { + public void getUiOrientation_returnsExpectedOrientation() { final PigeonApiDeviceOrientationManager api = new TestProxyApiRegistrar().getPigeonApiDeviceOrientationManager(); @@ -64,7 +64,7 @@ public void getUiOrientation() { } @Test - public void onDeviceOrientationChanged() { + public void onDeviceOrientationChanged_shouldSendMessageWhenOrientationIsUpdated() { final DeviceOrientationManagerProxyApi mockApi = mock(DeviceOrientationManagerProxyApi.class); when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java index 517eaf41170..d194a4568eb 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ExposureStateTest.java @@ -16,7 +16,7 @@ public class ExposureStateTest { @SuppressWarnings("unchecked") @Test - public void exposureCompensationRange() { + public void exposureCompensationRange_returnsExpectedRange() { final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); final ExposureState instance = mock(ExposureState.class); @@ -27,7 +27,7 @@ public void exposureCompensationRange() { } @Test - public void exposureCompensationStep() { + public void exposureCompensationStep_returnsExpectedStep() { final PigeonApiExposureState api = new TestProxyApiRegistrar().getPigeonApiExposureState(); final ExposureState instance = mock(ExposureState.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java index 7a80f1a8e06..eeb1ed68f57 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FallbackStrategyTest.java @@ -16,7 +16,7 @@ public class FallbackStrategyTest { @Test - public void higherQualityOrLowerThan() { + public void higherQualityOrLowerThan_makesExpectedFallbackStrategyWithHigherQualityOrLowerThan() { final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); @@ -34,7 +34,7 @@ public void higherQualityOrLowerThan() { } @Test - public void higherQualityThan() { + public void higherQualityThan_makesExpectedFallbackStrategyWithHigherQualityThan() { final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); @@ -52,7 +52,7 @@ public void higherQualityThan() { } @Test - public void lowerQualityOrHigherThan() { + public void lowerQualityOrHigherThan_makesExpectedFallbackStrategyWithLowerQualityOrHigherThan() { final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); @@ -70,7 +70,7 @@ public void lowerQualityOrHigherThan() { } @Test - public void lowerQualityThan() { + public void lowerQualityThan_makesExpectedFallbackStrategyWithLowerQualityThan() { final PigeonApiFallbackStrategy api = new TestProxyApiRegistrar().getPigeonApiFallbackStrategy(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java index 5cd6268ad9d..a0522d2162a 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionBuilderTest.java @@ -15,7 +15,7 @@ public class FocusMeteringActionBuilderTest { @Test - public void addPoint() { + public void addPoint_callsAddPointWithoutModeOnInstance() { final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); @@ -27,7 +27,7 @@ public void addPoint() { } @Test - public void addPointWithMode() { + public void addPointWithMode_callsAddPointWithModeOnInstance() { final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); @@ -40,7 +40,7 @@ public void addPointWithMode() { } @Test - public void disableAutoCancel() { + public void disableAutoCancel_callsDisableAutoCancelOnInstance() { final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); @@ -51,7 +51,7 @@ public void disableAutoCancel() { } @Test - public void build() { + public void build_returnExpectedFocusMeteringAction() { final PigeonApiFocusMeteringActionBuilder api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringActionBuilder(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java index 8a4fc29386e..78e2b27409e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringActionTest.java @@ -16,7 +16,7 @@ public class FocusMeteringActionTest { @Test - public void meteringPointsAe() { + public void meteringPointsAe_returnsExpectedAeMeteringPoints() { final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); @@ -28,7 +28,7 @@ public void meteringPointsAe() { } @Test - public void meteringPointsAf() { + public void meteringPointsAf_returnsExpectedAfMeteringPoints() { final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); @@ -41,7 +41,7 @@ public void meteringPointsAf() { } @Test - public void meteringPointsAwb() { + public void meteringPointsAwb_returnsExpectedAwbMeteringPoints() { final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); @@ -54,7 +54,7 @@ public void meteringPointsAwb() { } @Test - public void isAutoCancelEnabled() { + public void isAutoCancelEnabled_callsIsAutoCancelEnabledOnInstance() { final PigeonApiFocusMeteringAction api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringAction(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java index 6d3fd6aeff1..9e3f930d4a4 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/FocusMeteringResultTest.java @@ -13,7 +13,7 @@ public class FocusMeteringResultTest { @Test - public void isFocusSuccessful() { + public void isFocusSuccessful_returnsExpectedResult() { final PigeonApiFocusMeteringResult api = new TestProxyApiRegistrar().getPigeonApiFocusMeteringResult(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java index f888e84b3af..5b8aa9a9c0c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageAnalysisTest.java @@ -27,7 +27,7 @@ @RunWith(RobolectricTestRunner.class) public class ImageAnalysisTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsExpectedImageAnalysisInstance() { final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); @@ -40,7 +40,7 @@ public void pigeon_defaultConstructor() { } @Test - public void resolutionSelector() { + public void resolutionSelector_returnsExpectedResolutionSelector() { final PigeonApiImageAnalysis api = new TestProxyApiRegistrar().getPigeonApiImageAnalysis(); final ImageAnalysis instance = mock(ImageAnalysis.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java index a206af2b3b5..02151111f96 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageCaptureTest.java @@ -32,7 +32,7 @@ @RunWith(RobolectricTestRunner.class) public class ImageCaptureTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsImageCaptureWithCorrectConfiguration() { final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); @@ -47,7 +47,7 @@ public void pigeon_defaultConstructor() { } @Test - public void resolutionSelector() { + public void resolutionSelector_returnsExpectedResolutionSelector() { final PigeonApiImageCapture api = new TestProxyApiRegistrar().getPigeonApiImageCapture(); final ImageCapture instance = mock(ImageCapture.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java index 621adf29802..50f7782ef61 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ImageProxyTest.java @@ -17,7 +17,7 @@ public class ImageProxyTest { @Test - public void format() { + public void format_returnsExpectedFormat() { final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); final ImageProxy instance = mock(ImageProxy.class); @@ -28,7 +28,7 @@ public void format() { } @Test - public void width() { + public void width_returnsExpectedWidth() { final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); final ImageProxy instance = mock(ImageProxy.class); @@ -39,7 +39,7 @@ public void width() { } @Test - public void height() { + public void height_returnsExpectedHeight() { final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); final ImageProxy instance = mock(ImageProxy.class); @@ -50,7 +50,7 @@ public void height() { } @Test - public void getPlanes() { + public void getPlanes_returnsExpectedPlanes() { final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); final ImageProxy instance = mock(ImageProxy.class); @@ -61,7 +61,7 @@ public void getPlanes() { } @Test - public void close() { + public void close_callsCloseOnInstance() { final PigeonApiImageProxy api = new TestProxyApiRegistrar().getPigeonApiImageProxy(); final ImageProxy instance = mock(ImageProxy.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java index 9b84be53f28..c0cf221e22f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/LiveDataTest.java @@ -20,7 +20,7 @@ public class LiveDataTest { @Test - public void type() { + public void type_returnsExpectedType() { final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); final LiveDataSupportedType value = @@ -32,7 +32,7 @@ public void type() { @SuppressWarnings("unchecked") @Test - public void observe() { + public void observe_callsObserveOnInstanceWithLifeCycleOwner() { final PigeonApiLiveData api = new TestProxyApiRegistrar() { @Nullable @@ -54,7 +54,7 @@ public LifecycleOwner getLifecycleOwner() { @SuppressWarnings("unchecked") @Test - public void removeObservers() { + public void removeObservers_callsRemoveObserversOnInstance() { final PigeonApiLiveData api = new TestProxyApiRegistrar() { @Nullable @@ -75,7 +75,7 @@ public LifecycleOwner getLifecycleOwner() { @SuppressWarnings("unchecked") @Test - public void getValue() { + public void getValue_returnsExpectedResult() { final PigeonApiLiveData api = new TestProxyApiRegistrar().getPigeonApiLiveData(); final LiveData liveData = mock(LiveData.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java index 349f10700e5..2a30ea6f0e1 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointFactoryTest.java @@ -14,7 +14,7 @@ public class MeteringPointFactoryTest { @Test - public void createPoint() { + public void createPoint_createsExpectedMeteringPointWithoutSizeSpecified() { final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); @@ -28,7 +28,7 @@ public void createPoint() { } @Test - public void createPointWithSize() { + public void createPointWithSize_createsExpectedMeteringPointWithSizeSpecified() { final PigeonApiMeteringPointFactory api = new TestProxyApiRegistrar().getPigeonApiMeteringPointFactory(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java index a5974514a97..24f31641788 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/MeteringPointTest.java @@ -13,7 +13,7 @@ public class MeteringPointTest { @Test - public void getSize() { + public void getSize_returnsExpectedSize() { final PigeonApiMeteringPoint api = new TestProxyApiRegistrar().getPigeonApiMeteringPoint(); final MeteringPoint instance = mock(MeteringPoint.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java index 977c4f5dc7f..b2140cf9e88 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ObserverTest.java @@ -14,7 +14,7 @@ public class ObserverTest { @Test - public void onChanged() { + public void onChanged_makesExpectedCallToDartCallback() { final ObserverProxyApi mockApi = mock(ObserverProxyApi.class); when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java index d750d3d495c..23e8279a7a4 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PendingRecordingTest.java @@ -20,7 +20,7 @@ public class PendingRecordingTest { @Test - public void start() { + public void start_callsStartOnInstance() { final PigeonApiPendingRecording api = new TestProxyApiRegistrar().getPigeonApiPendingRecording(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java index 51b34846c1d..2abc3d7695b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PlaneProxyTest.java @@ -13,7 +13,7 @@ public class PlaneProxyTest { @Test - public void pixelStride() { + public void pixelStride_returnsExpectedPixelStride() { final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); final PlaneProxy instance = mock(PlaneProxy.class); @@ -24,7 +24,7 @@ public void pixelStride() { } @Test - public void rowStride() { + public void rowStride_returnsExpectedRowStride() { final PigeonApiPlaneProxy api = new TestProxyApiRegistrar().getPigeonApiPlaneProxy(); final PlaneProxy instance = mock(PlaneProxy.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java index 5e2f279b17f..a94f6f288ad 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/PreviewTest.java @@ -31,7 +31,7 @@ @RunWith(RobolectricTestRunner.class) public class PreviewTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsPreviewWithCorrectConfiguration() { final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); final ResolutionSelector mockResolutionSelector = new ResolutionSelector.Builder().build(); @@ -44,7 +44,7 @@ public void pigeon_defaultConstructor() { } @Test - public void resolutionSelector() { + public void resolutionSelector_returnsExpectedResolutionSelector() { final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); final Preview instance = mock(Preview.class); @@ -56,7 +56,7 @@ public void resolutionSelector() { } @Test - public void setSurfaceProvider() { + public void setSurfaceProvider_createsSurfaceProviderAndReturnsTextureEntryId() { final TextureRegistry mockTextureRegistry = mock(TextureRegistry.class); final TextureRegistry.SurfaceProducer mockSurfaceProducer = mock(TextureRegistry.SurfaceProducer.class); @@ -236,7 +236,7 @@ TextureRegistry getTextureRegistry() { } @Test - public void getResolutionInfo() { + public void getResolutionInfo_returnsExpectedResolutionInfo() { final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); final Preview instance = mock(Preview.class); @@ -247,7 +247,7 @@ public void getResolutionInfo() { } @Test - public void setTargetRotation() { + public void setTargetRotation_returnsExpectedTargetRotation() { final PigeonApiPreview api = new TestProxyApiRegistrar().getPigeonApiPreview(); final Preview instance = mock(Preview.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java index e217a5f29df..0ae47bcdf3b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ProcessCameraProviderTest.java @@ -36,7 +36,7 @@ @RunWith(RobolectricTestRunner.class) public class ProcessCameraProviderTest { @Test - public void getInstanceTest() { + public void getInstance_returnsExpectedProcessCameraProviderInFutureCallback() { final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); @@ -74,7 +74,7 @@ public void getInstanceTest() { } @Test - public void getAvailableCameraInfos() { + public void getAvailableCameraInfos_returnsExpectedCameraInfos() { final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); @@ -86,7 +86,7 @@ public void getAvailableCameraInfos() { } @Test - public void bindToLifecycle() { + public void bindToLifecycle_callsBindToLifecycleWithSelectorsAndUseCases() { final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar() { @Nullable @@ -109,7 +109,7 @@ public LifecycleOwner getLifecycleOwner() { } @Test - public void isBound() { + public void isBound_returnsExpectedIsBound() { final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); @@ -122,7 +122,7 @@ public void isBound() { } @Test - public void unbind() { + public void unbind_callsUnBindOnInstance() { final PigeonApiProcessCameraProvider api = new TestProxyApiRegistrar().getPigeonApiProcessCameraProvider(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java index 42f9c5cf733..1c05fbe6304 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/QualitySelectorTest.java @@ -20,7 +20,7 @@ public class QualitySelectorTest { @Test - public void from() { + public void from_createsExpectedQualitySelectorWhenOneQualitySpecified() { final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); final QualitySelector mockQualitySelector = mock(QualitySelector.class); @@ -37,7 +37,7 @@ public void from() { } @Test - public void fromOrderedList() { + public void fromOrderedList_createsExpectedQualitySelectorWhenOrderedListOfQualitiesSpecified() { final PigeonApiQualitySelector api = new TestProxyApiRegistrar().getPigeonApiQualitySelector(); final QualitySelector mockQualitySelector = mock(QualitySelector.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java index 211bfaff4f7..fad2c425754 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecorderTest.java @@ -22,7 +22,7 @@ @RunWith(RobolectricTestRunner.class) public class RecorderTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsExpectedRecorderInstance() { final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); final long aspectRatio = 5; @@ -37,7 +37,7 @@ public void pigeon_defaultConstructor() { } @Test - public void getAspectRatioTest() { + public void getAspectRatio_returnsExpectedAspectRatio() { final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); final Recorder instance = mock(Recorder.class); @@ -48,7 +48,7 @@ public void getAspectRatioTest() { } @Test - public void getTargetVideoEncodingBitRateTest() { + public void getTargetVideoEncodingBitRate_returnsExpectedBitRate() { final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); final Recorder instance = mock(Recorder.class); @@ -59,7 +59,7 @@ public void getTargetVideoEncodingBitRateTest() { } @Test - public void getQualitySelector() { + public void getQualitySelector_returnsExpectedQualitySelector() { final PigeonApiRecorder api = new TestProxyApiRegistrar().getPigeonApiRecorder(); final Recorder instance = mock(Recorder.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java index 52876299187..f143d8e1b9c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/RecordingTest.java @@ -12,7 +12,7 @@ public class RecordingTest { @Test - public void close() { + public void close_callsCloseOnInstance() { final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); final Recording instance = mock(Recording.class); @@ -22,7 +22,7 @@ public void close() { } @Test - public void pause() { + public void pause_callsPauseOnInstance() { final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); final Recording instance = mock(Recording.class); @@ -32,7 +32,7 @@ public void pause() { } @Test - public void resume() { + public void resume_callsResumeOnInstance() { final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); final Recording instance = mock(Recording.class); @@ -42,7 +42,7 @@ public void resume() { } @Test - public void stop() { + public void stop_callsStopOnInstance() { final PigeonApiRecording api = new TestProxyApiRegistrar().getPigeonApiRecording(); final Recording instance = mock(Recording.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java index f604bfa30fb..d3440eec64b 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionFilterTest.java @@ -14,7 +14,7 @@ public class ResolutionFilterTest { @Test - public void createWithOnePreferredSize() { + public void createWithOnePreferredSize_createsExpectedResolutionFilterInstance() { final PigeonApiResolutionFilter api = new TestProxyApiRegistrar().getPigeonApiResolutionFilter(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java index 71c95c3a286..4dba9b3486e 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionInfoTest.java @@ -14,7 +14,7 @@ public class ResolutionInfoTest { @Test - public void resolution() { + public void resolution_returnsExpectedResolution() { final PigeonApiResolutionInfo api = new TestProxyApiRegistrar().getPigeonApiResolutionInfo(); final ResolutionInfo instance = mock(ResolutionInfo.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java index 176b06ccd7e..725d9d28e1f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionSelectorTest.java @@ -19,7 +19,7 @@ @RunWith(RobolectricTestRunner.class) public class ResolutionSelectorTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsExpectedResolutionSelectorInstance() { final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); @@ -36,7 +36,7 @@ public void pigeon_defaultConstructor() { } @Test - public void resolutionFilter() { + public void resolutionFilter_returnsExpectedResolutionFilter() { final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); @@ -49,7 +49,7 @@ public void resolutionFilter() { } @Test - public void resolutionStrategy() { + public void resolutionStrategy_returnsExpectedResolutionStrategy() { final PigeonApiResolutionSelector api = new TestProxyApiRegistrar().getPigeonApiResolutionSelector(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java index 984d9a50065..acd741666a9 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java @@ -17,7 +17,7 @@ @RunWith(RobolectricTestRunner.class) public class ResolutionStrategyTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsExpectedResolutionStrategyInstanceWhenArgumentsValid() { final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); @@ -31,7 +31,7 @@ public void pigeon_defaultConstructor() { } @Test - public void getBoundSize() { + public void getBoundSize_returnsExpectedSize() { final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); @@ -43,7 +43,7 @@ public void getBoundSize() { } @Test - public void getFallbackRule() { + public void getFallbackRule_returnsExpectedFallbackRule() { final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java index 00db5cfa51c..960ad4dc83f 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoCaptureTest.java @@ -22,7 +22,7 @@ public class VideoCaptureTest { @SuppressWarnings({"unchecked", "rawtypes"}) @Test - public void withOutput() { + public void withOutput_createsVideoCaptureWithVideoOutput() { final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); final VideoCapture instance = mock(VideoCapture.class); @@ -40,7 +40,7 @@ public void withOutput() { @SuppressWarnings("unchecked") @Test - public void getOutput() { + public void getOutput_returnsAssociatedRecorder() { final PigeonApiVideoCapture api = new TestProxyApiRegistrar().getPigeonApiVideoCapture(); final VideoCapture instance = mock(VideoCapture.class); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerTest.java index 0a62b256008..525ea796e71 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/VideoRecordEventListenerTest.java @@ -16,7 +16,7 @@ public class VideoRecordEventListenerTest { @Test - public void pigeon_defaultConstructor() { + public void pigeon_defaultConstructor_createsExpectedVideoRecordEvent() { final PigeonApiVideoRecordEventListener api = new TestProxyApiRegistrar().getPigeonApiVideoRecordEventListener(); @@ -26,7 +26,7 @@ public void pigeon_defaultConstructor() { } @Test - public void onEvent() { + public void onEvent_makesCallToDartCallback() { final VideoRecordEventListenerProxyApi mockApi = mock(VideoRecordEventListenerProxyApi.class); when(mockApi.getPigeonRegistrar()).thenReturn(new TestProxyApiRegistrar()); diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java index 3d4673eb8c9..2338759edd6 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ZoomStateTest.java @@ -13,7 +13,7 @@ public class ZoomStateTest { @Test - public void minZoomRatio() { + public void minZoomRatio_returnsExpectedMinZoomRatio() { final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); final ZoomState instance = mock(ZoomState.class); @@ -24,7 +24,7 @@ public void minZoomRatio() { } @Test - public void maxZoomRatio() { + public void maxZoomRatio_returnsExpectedMaxZoomRatio() { final PigeonApiZoomState api = new TestProxyApiRegistrar().getPigeonApiZoomState(); final ZoomState instance = mock(ZoomState.class); From a539d65284acedb6d447fc56a0a3a1bc543517c4 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 3 Apr 2025 15:11:49 -0400 Subject: [PATCH 138/148] formatting --- .../io/flutter/plugins/camerax/ResolutionStrategyTest.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java index acd741666a9..650744c1723 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/ResolutionStrategyTest.java @@ -17,7 +17,8 @@ @RunWith(RobolectricTestRunner.class) public class ResolutionStrategyTest { @Test - public void pigeon_defaultConstructor_createsExpectedResolutionStrategyInstanceWhenArgumentsValid() { + public void + pigeon_defaultConstructor_createsExpectedResolutionStrategyInstanceWhenArgumentsValid() { final PigeonApiResolutionStrategy api = new TestProxyApiRegistrar().getPigeonApiResolutionStrategy(); From c5ae202033ab4b4208b07b18377789adbedfac62 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 3 Apr 2025 15:18:41 -0400 Subject: [PATCH 139/148] throw exception on error --- .../lib/src/android_camera_camerax.dart | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index ddec22c681a..edfc658d7d5 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -344,12 +344,15 @@ class AndroidCameraCameraX extends CameraPlatform { CameraDescription cameraDescription, MediaSettings? mediaSettings, ) async { - // TODO(bparrishMines): Failure to get permissions isn't actually handled. - // Must obtain proper permissions before attempting to access a camera. - await systemServicesManager.requestCameraPermissions( + final CameraPermissionsError? error = + await systemServicesManager.requestCameraPermissions( mediaSettings?.enableAudio ?? false, ); + if (error != null) { + throw CameraException(error.errorCode, error.description); + } + // Save CameraSelector that matches cameraDescription. final LensFacing cameraSelectorLensDirection = _getCameraSelectorLensDirection(cameraDescription.lensDirection); From 177339dcab21ccf93b4ad82189c1920faa76c043 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Thu, 3 Apr 2025 15:28:52 -0400 Subject: [PATCH 140/148] fix permission unit test --- .../test/android_camera_camerax_test.dart | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart index aef226c00dd..a9c2141ee6b 100644 --- a/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart +++ b/packages/camera/camera_android_camerax/test/android_camera_camerax_test.dart @@ -900,13 +900,7 @@ void main() { mockSystemServicesManager.requestCameraPermissions(any), ).thenAnswer((_) async { cameraPermissionsRequested = true; - return CameraPermissionsError.pigeon_detached( - errorCode: '', - description: '', - pigeon_instanceManager: PigeonInstanceManager( - onWeakReferenceRemoved: (_) {}, - ), - ); + return null; }); return mockSystemServicesManager; }, From 0a425402b1d3f30dd1fe26a82bb6823f779a75b4 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Sun, 13 Apr 2025 20:14:39 -0400 Subject: [PATCH 141/148] change ignore to true --- .../io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java index b591bc01dbb..b1f5c4f1893 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/CameraAndroidCameraxPlugin.java @@ -38,7 +38,7 @@ public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { @Override public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { if (proxyApiRegistrar != null) { - proxyApiRegistrar.setIgnoreCallsToDart(false); + proxyApiRegistrar.setIgnoreCallsToDart(true); proxyApiRegistrar.tearDown(); proxyApiRegistrar.getInstanceManager().stopFinalizationListener(); proxyApiRegistrar = null; From d63078b9c7de0d9885bdb25f8f6ceea0f1ad28f7 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 14 Apr 2025 16:54:10 -0400 Subject: [PATCH 142/148] add docs for systemservices --- .../io/flutter/plugins/camerax/SystemServicesManager.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java index e8f0076caf3..6b3a434177c 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManager.java @@ -11,9 +11,11 @@ import java.io.File; import java.io.IOException; +/** Utility class used to access system services not provided by the camerax library. */ public abstract class SystemServicesManager { @NonNull private final CameraPermissionsManager cameraPermissionsManager; + /** Handles result of a permissions request. */ public interface PermissionsResultListener { void onResult(boolean isSuccessful, @Nullable CameraPermissionsError error); } @@ -30,6 +32,12 @@ protected SystemServicesManager(@NonNull CameraPermissionsManager cameraPermissi @Nullable abstract CameraPermissionsManager.PermissionsRegistry getPermissionsRegistry(); + /** + * Requests camera permissions using an instance of a {@link CameraPermissionsManager}. + * + *

Will result with {@code null} if permissions were approved or there were no errors; + * otherwise, it will result with the error data explaining what went wrong. + */ public void requestCameraPermissions( @NonNull Boolean enableAudio, @NonNull PermissionsResultListener listener) { if (!(getContext() instanceof Activity)) { From 9100a9c59bb2a5ed6ea76da962eba6243c4282d4 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 14 Apr 2025 17:59:55 -0400 Subject: [PATCH 143/148] log error on failed flutter method --- .../plugins/camerax/AnalyzerProxyApi.java | 21 +++++++++++- .../camerax/DeviceOrientationManager.java | 19 +++++++++-- .../plugins/camerax/ObserverProxyApi.java | 21 +++++++++++- .../plugins/camerax/ProxyApiRegistrar.java | 32 ++++++++++++++++++- .../SystemServicesManagerProxyApi.java | 20 +++++++++++- .../VideoRecordEventListenerProxyApi.java | 21 +++++++++++- .../camerax/TestProxyApiRegistrar.java | 2 +- 7 files changed, 128 insertions(+), 8 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java index 9fe06f32f06..7777f3e8676 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java @@ -6,6 +6,7 @@ import androidx.annotation.NonNull; import androidx.camera.core.ImageAnalysis.Analyzer; +import java.util.Objects; /** * ProxyApi implementation for {@link Analyzer}. This class may handle instantiating native object @@ -33,7 +34,25 @@ static class AnalyzerImpl implements Analyzer { @Override public void analyze(@NonNull androidx.camera.core.ImageProxy image) { - api.getPigeonRegistrar().runOnMainThread(() -> api.analyze(this, image, reply -> null)); + api.getPigeonRegistrar() + .runOnMainThread( + new ProxyApiRegistrar.FlutterMethodRunnable() { + @Override + public void run() { + api.analyze( + AnalyzerImpl.this, + image, + ResultCompat.asCompatCallback( + result -> { + if (result.isFailure()) { + onFailure( + "Analyzer.analyze", + Objects.requireNonNull(result.exceptionOrNull())); + } + return null; + })); + } + }); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java index 943156a595b..fa391d2af49 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/DeviceOrientationManager.java @@ -15,6 +15,7 @@ import androidx.annotation.VisibleForTesting; import io.flutter.embedding.engine.systemchannels.PlatformChannel; import io.flutter.embedding.engine.systemchannels.PlatformChannel.DeviceOrientation; +import java.util.Objects; /** * Support class to help to determine the media orientation based on the orientation of the device. @@ -100,9 +101,23 @@ static void handleOrientationChange( if (!newOrientation.equals(previousOrientation)) { api.getPigeonRegistrar() .runOnMainThread( - () -> + new ProxyApiRegistrar.FlutterMethodRunnable() { + @Override + public void run() { api.onDeviceOrientationChanged( - manager, newOrientation.toString(), reply -> null)); + manager, + newOrientation.toString(), + ResultCompat.asCompatCallback( + result -> { + if (result.isFailure()) { + onFailure( + "DeviceOrientationManager.onDeviceOrientationChanged", + Objects.requireNonNull(result.exceptionOrNull())); + } + return null; + })); + } + }); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java index 2ee388fcbc3..3392ba6239d 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java @@ -6,6 +6,7 @@ import androidx.annotation.NonNull; import androidx.lifecycle.Observer; +import java.util.Objects; /** * ProxyApi implementation for {@link Observer}. This class may handle instantiating native object @@ -23,7 +24,25 @@ static class ObserverImpl implements Observer { @Override public void onChanged(T t) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onChanged(this, t, reply -> null)); + api.getPigeonRegistrar() + .runOnMainThread( + new ProxyApiRegistrar.FlutterMethodRunnable() { + @Override + public void run() { + api.onChanged( + ObserverImpl.this, + t, + ResultCompat.asCompatCallback( + result -> { + if (result.isFailure()) { + onFailure( + "Observer.onChanged", + Objects.requireNonNull(result.exceptionOrNull())); + } + return null; + })); + } + }); } } diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index dff09240e25..f1d1c367b8a 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -29,6 +29,36 @@ public class ProxyApiRegistrar extends CameraXLibraryPigeonProxyApiRegistrar { @Nullable private CameraPermissionsManager.PermissionsRegistry permissionsRegistry; + /** + * Handles errors received from calling a method from host->Dart. + * + *

If a call to Dart fails, users should call `onFailure`. + */ + public abstract static class FlutterMethodRunnable implements Runnable { + void onFailure(@NonNull String methodName, @NonNull Throwable throwable) { + final String errorMessage; + if (throwable instanceof CameraXError) { + final CameraXError cameraXError = (CameraXError) throwable; + errorMessage = + cameraXError.getCode() + + ": Error returned from calling " + + methodName + + ": " + + cameraXError.getMessage() + + " Details: " + + cameraXError.getDetails(); + } else { + errorMessage = + throwable.getClass().getSimpleName() + + ": Error returned from calling " + + methodName + + ": " + + throwable.getMessage(); + } + Log.e("ProxyApiRegistrar", errorMessage); + } + } + // PreviewProxyApi maintains a state to track SurfaceProducers provided by the Flutter engine. @NonNull private final PreviewProxyApi previewProxyApi = new PreviewProxyApi(this); @@ -49,7 +79,7 @@ boolean sdkIsAtLeast(int version) { // Added to be overridden for tests. The test implementation calls `callback` immediately, instead // of waiting for the main thread to run it. - void runOnMainThread(@NonNull Runnable runnable) { + void runOnMainThread(@NonNull FlutterMethodRunnable runnable) { if (context instanceof Activity) { ((Activity) context).runOnUiThread(runnable); } else { diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java index d5bc9b310c1..093187fcdd6 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import java.io.IOException; +import java.util.Objects; import kotlin.Result; import kotlin.Unit; import kotlin.jvm.functions.Function1; @@ -33,7 +34,24 @@ static class SystemServicesManagerImpl extends SystemServicesManager { @Override public void onCameraError(@NonNull String errorDescription) { api.getPigeonRegistrar() - .runOnMainThread(() -> api.onCameraError(this, errorDescription, reply -> null)); + .runOnMainThread( + new ProxyApiRegistrar.FlutterMethodRunnable() { + @Override + public void run() { + api.onCameraError( + SystemServicesManagerImpl.this, + errorDescription, + ResultCompat.asCompatCallback( + result -> { + if (result.isFailure()) { + onFailure( + "SystemServicesManager.onCameraError", + Objects.requireNonNull(result.exceptionOrNull())); + } + return null; + })); + } + }); } @NonNull diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java index 75c7c089d78..3ee83a71bcc 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java @@ -6,6 +6,7 @@ import androidx.annotation.NonNull; import androidx.camera.video.VideoRecordEvent; +import java.util.Objects; /** * ProxyApi implementation for {@link VideoRecordEventListener}. This class may handle instantiating @@ -29,7 +30,25 @@ static class VideoRecordEventListenerImpl implements VideoRecordEventListener { @Override public void onEvent(@NonNull VideoRecordEvent event) { - api.getPigeonRegistrar().runOnMainThread(() -> api.onEvent(this, event, reply -> null)); + api.getPigeonRegistrar() + .runOnMainThread( + new ProxyApiRegistrar.FlutterMethodRunnable() { + @Override + public void run() { + api.onEvent( + VideoRecordEventListenerImpl.this, + event, + ResultCompat.asCompatCallback( + result -> { + if (result.isFailure()) { + onFailure( + "VideoRecordEventListener.onEvent", + Objects.requireNonNull(result.exceptionOrNull())); + } + return null; + })); + } + }); } } diff --git a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java index 38873620f34..956d4bcf72c 100644 --- a/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/test/java/io/flutter/plugins/camerax/TestProxyApiRegistrar.java @@ -21,7 +21,7 @@ public TestProxyApiRegistrar() { } @Override - void runOnMainThread(@NonNull Runnable runnable) { + void runOnMainThread(@NonNull FlutterMethodRunnable runnable) { runnable.run(); } From 595472926062ad8c4401f1fe5c5c8920355298e0 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 14 Apr 2025 18:03:44 -0400 Subject: [PATCH 144/148] unused method --- .../io/flutter/plugins/camerax/ProxyApiRegistrar.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java index f1d1c367b8a..42042488c02 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ProxyApiRegistrar.java @@ -87,17 +87,6 @@ void runOnMainThread(@NonNull FlutterMethodRunnable runnable) { } } - // For logging exceptions received from Host -> Dart message calls. - void logError(@NonNull String tag, @NonNull Throwable exception) { - Log.e( - tag, - exception.getClass().getSimpleName() - + ", Message: " - + exception.getMessage() - + ", Stacktrace: " - + Log.getStackTraceString(exception)); - } - @NonNull public Context getContext() { return context; From e627829608e3e346f04163f0f9693cbcdd170298 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 14 Apr 2025 18:23:21 -0400 Subject: [PATCH 145/148] improve example and add comment --- .../camera_android_camerax/example/android/app/build.gradle | 1 + packages/camera/camera_android_camerax/example/lib/main.dart | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/camera/camera_android_camerax/example/android/app/build.gradle b/packages/camera/camera_android_camerax/example/android/app/build.gradle index 3a0ff95a2cd..ff29b2f9982 100644 --- a/packages/camera/camera_android_camerax/example/android/app/build.gradle +++ b/packages/camera/camera_android_camerax/example/android/app/build.gradle @@ -33,6 +33,7 @@ android { } kotlinOptions { + // This must match the Java version provided in compileOptions. jvmTarget = '11' } diff --git a/packages/camera/camera_android_camerax/example/lib/main.dart b/packages/camera/camera_android_camerax/example/lib/main.dart index 9eee18c4573..bb8e6af20bd 100644 --- a/packages/camera/camera_android_camerax/example/lib/main.dart +++ b/packages/camera/camera_android_camerax/example/lib/main.dart @@ -435,7 +435,8 @@ class _CameraExampleHomeState extends State min: _minAvailableExposureOffset, max: _maxAvailableExposureOffset, label: _currentExposureOffset.toString(), - onChanged: _minAvailableExposureOffset == + onChanged: (_) {}, + onChangeEnd: _minAvailableExposureOffset == _maxAvailableExposureOffset ? null : setExposureOffset, From 3c6529c0a7b3a40d135ad509cd5581dfd07c3e76 Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 14 Apr 2025 18:26:15 -0400 Subject: [PATCH 146/148] fix syntheticaccessor lint --- .../main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java | 2 +- .../main/java/io/flutter/plugins/camerax/ObserverProxyApi.java | 2 +- .../flutter/plugins/camerax/SystemServicesManagerProxyApi.java | 2 +- .../plugins/camerax/VideoRecordEventListenerProxyApi.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java index 7777f3e8676..61a217393fd 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/AnalyzerProxyApi.java @@ -26,7 +26,7 @@ public ProxyApiRegistrar getPigeonRegistrar() { /** Implementation of {@link Analyzer} that passes arguments of callback methods to Dart. */ static class AnalyzerImpl implements Analyzer { - private final AnalyzerProxyApi api; + final AnalyzerProxyApi api; AnalyzerImpl(@NonNull AnalyzerProxyApi api) { this.api = api; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java index 3392ba6239d..4a150eee758 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/ObserverProxyApi.java @@ -16,7 +16,7 @@ class ObserverProxyApi extends PigeonApiObserver { /** Implementation of {@link Observer} that passes arguments of callback methods to Dart. */ static class ObserverImpl implements Observer { - private final ObserverProxyApi api; + final ObserverProxyApi api; ObserverImpl(@NonNull ObserverProxyApi api) { this.api = api; diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java index 093187fcdd6..53a1626414e 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/SystemServicesManagerProxyApi.java @@ -24,7 +24,7 @@ public class SystemServicesManagerProxyApi extends PigeonApiSystemServicesManage * Dart. */ static class SystemServicesManagerImpl extends SystemServicesManager { - private final SystemServicesManagerProxyApi api; + final SystemServicesManagerProxyApi api; SystemServicesManagerImpl(@NonNull SystemServicesManagerProxyApi api) { super(api.getPigeonRegistrar().getCameraPermissionsManager()); diff --git a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java index 3ee83a71bcc..58078f7f78f 100644 --- a/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java +++ b/packages/camera/camera_android_camerax/android/src/main/java/io/flutter/plugins/camerax/VideoRecordEventListenerProxyApi.java @@ -22,7 +22,7 @@ class VideoRecordEventListenerProxyApi extends PigeonApiVideoRecordEventListener * Dart. */ static class VideoRecordEventListenerImpl implements VideoRecordEventListener { - private final VideoRecordEventListenerProxyApi api; + final VideoRecordEventListenerProxyApi api; VideoRecordEventListenerImpl(@NonNull VideoRecordEventListenerProxyApi api) { this.api = api; From 44f911361202c12479baff3e0cdf20f44fd44b1e Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 14 Apr 2025 19:30:19 -0400 Subject: [PATCH 147/148] surface missing cameracontrol errors --- .../lib/src/android_camera_camerax.dart | 53 ++++++++++++++++--- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index edfc658d7d5..891e1cf068f 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -742,7 +742,10 @@ class AndroidCameraCameraX extends CameraPlatform { final int? newIndex = await cameraControl.setExposureCompensationIndex( roundedExposureCompensationIndex, ); + if (newIndex == null) { + cameraErrorStreamController.add( + 'Setting exposure compensation index was canceled due to the camera being closed or a new request being submitted.'); throw CameraException( setExposureOffsetFailedErrorCode, 'Setting exposure compensation index was canceled due to the camera being closed or a new request being submitted.', @@ -751,6 +754,11 @@ class AndroidCameraCameraX extends CameraPlatform { return newIndex.toDouble(); } on PlatformException catch (e) { + cameraErrorStreamController.add(e.message ?? + 'Setting the camera exposure compensation index failed.'); + // Surfacing error to plugin layer to maintain consistency of + // setExposureOffset implementation across platform implementations. + throw CameraException( setExposureOffsetFailedErrorCode, e.message ?? 'Setting the camera exposure compensation index failed.', @@ -801,7 +809,13 @@ class AndroidCameraCameraX extends CameraPlatform { }, ); - await camera2Control.addCaptureRequestOptions(captureRequestOptions); + try { + await camera2Control.addCaptureRequestOptions(captureRequestOptions); + } on PlatformException catch (e) { + cameraErrorStreamController.add(e.message ?? + 'The camera was unable to set new capture request options due to new options being unavailable or the camera being closed.'); + } + _currentExposureMode = mode; } @@ -846,7 +860,12 @@ class AndroidCameraCameraX extends CameraPlatform { /// Throws a `CameraException` when an illegal zoom level is supplied. @override Future setZoomLevel(int cameraId, double zoom) async { - await cameraControl.setZoomRatio(zoom); + try { + await cameraControl.setZoomRatio(zoom); + } on PlatformException catch (e) { + cameraErrorStreamController.add(e.message ?? + 'Zoom ratio was unable to be set. If ratio was not out of range, newer value may have been set; otherwise, the camera may be closed.'); + } } /// The ui orientation changed. @@ -984,7 +1003,13 @@ class AndroidCameraCameraX extends CameraPlatform { // Torch mode enabled already. return; } - await cameraControl.enableTorch(true); + + try { + await cameraControl.enableTorch(true); + } on PlatformException catch (e) { + cameraErrorStreamController + .add(e.message ?? 'The camera was unable to change torch modes.'); + } torchEnabled = true; } } @@ -1651,9 +1676,25 @@ class AndroidCameraCameraX extends CameraPlatform { currentFocusMeteringAction = await actionBuilder.build(); } - final FocusMeteringResult? result = - await cameraControl.startFocusAndMetering(currentFocusMeteringAction!); - return result?.isFocusSuccessful ?? false; + try { + final FocusMeteringResult? result = await cameraControl + .startFocusAndMetering(currentFocusMeteringAction!); + + if (result == null) { + cameraErrorStreamController.add( + 'Starting focus and metering was canceled due to the camera being closed or a new request being submitted.', + ); + } + + return result?.isFocusSuccessful ?? false; + } on PlatformException catch (e) { + cameraErrorStreamController.add( + e.message ?? 'Starting focus and metering failed.', + ); + // Surfacing error to differentiate an operation cancellation from an + // illegal argument exception at a plugin layer. + rethrow; + } } // Combines the metering points and metering modes of a `FocusMeteringAction` From a8327d1567014cd1502d411bb4f37d473af6065b Mon Sep 17 00:00:00 2001 From: Maurice Parrish <10687576+bparrishMines@users.noreply.github.com> Date: Mon, 14 Apr 2025 19:34:39 -0400 Subject: [PATCH 148/148] also try catch turning torch mode off --- .../lib/src/android_camera_camerax.dart | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart index 891e1cf068f..9bb3f121a78 100644 --- a/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart +++ b/packages/camera/camera_android_camerax/lib/src/android_camera_camerax.dart @@ -986,7 +986,7 @@ class AndroidCameraCameraX extends CameraPlatform { Future setFlashMode(int cameraId, FlashMode mode) async { // Turn off torch mode if it is enabled and not being redundantly set. if (mode != FlashMode.torch && torchEnabled) { - await cameraControl.enableTorch(false); + await _enableTorchMode(false); torchEnabled = false; } @@ -1004,12 +1004,7 @@ class AndroidCameraCameraX extends CameraPlatform { return; } - try { - await cameraControl.enableTorch(true); - } on PlatformException catch (e) { - cameraErrorStreamController - .add(e.message ?? 'The camera was unable to change torch modes.'); - } + await _enableTorchMode(true); torchEnabled = true; } } @@ -1725,6 +1720,15 @@ class AndroidCameraCameraX extends CameraPlatform { ]; } + Future _enableTorchMode(bool value) async { + try { + await cameraControl.enableTorch(value); + } on PlatformException catch (e) { + cameraErrorStreamController + .add(e.message ?? 'The camera was unable to change torch modes.'); + } + } + static DeviceOrientation _deserializeDeviceOrientation(String orientation) { switch (orientation) { case 'LANDSCAPE_LEFT':